23 December 2020

Coronavirus in Romania: evaluating excess mortality

Since the early days of the pandemic, tracking excess mortality became a valuable tool to evaluate and compare the situation across countries. It should better reflect the overall death toll of the crisis, as strains on the health care system led to a larger number of deaths during this period from unrelated causes, people that would have otherwise received medical care and survived.

Finding the necessary data for Romania proved a bit challenging though. After some searching on the internet, I discovered the site of our National Statistics Institute, which publishes demographic data regularly. Unfortunately for my purposes, the available summary does not offer weekly data, as in many other countries, only monthly. The time series only goes back to 2015, meaning there is less historical data to compare 2020 with. There are delays in publication as well, data is made available around 5 to 6 weeks after the end of the month in question, for example now in December INS released preliminary demographic numbers for October.

General observations

Plotting the last five years as a time series reveals interesting patterns. As expected, mortality rates show pronounced seasonal fluctuations, with large peaks in the winter months and lows during summer. I did not find any official analysis into the causes, but data from other countries suggest it is not related to influenza, but rather to a sharp increase in cardio-pulmonary deaths likely caused by cold weather. Curiously, February has consistently lower numbers than either January or March, an effect that may be caused solely by its shorter duration. In some years March surpassed even the January death toll, possibly a reflection of shifting seasons – in recent years, the chilly weather seems to arrive later and later. Variations from year to year are also larger in the winter season compared to summer and autumn.

Given the seasonality of the data, I have applied a 12-month moving average to look for possible trends. While there is no appreciable long-term growth over the past 5 years, another curious pattern emerged: an apparent 2-year long cycle (more precisely 22 to 23 months, but the series is too short to say for sure) influencing winter peaks. Thus, winter seasons alternate between heavier deaths tolls (in 2017 there were 99500 deaths between December and March; in 2019 98000) and milder seasons (91000 in 2016 and 95500 in 2018).

Mortality in 2020

The winter of 2020 (December 2019 to March 2020) continues this pattern with a reported number of deaths of just above 90000, the lowest in this time frame. Unfortunately, without looking at the broader context, this fact was used in the media and by COVID deniers as an argument to dismiss official warnings about the disease: ‘reported deaths are still low, so the dangers are overblown, it’s like the flu!’ Other journalists pointed out abnormally large mortality in several areas more affected by the first wave of the pandemic.

As you can see in the chart below, the pandemic toll became obvious into the summer and autumn: starting with June, reported deaths were consistently higher than in previous years, and growing each month. This trend reversed the expected seasonal dip from June to September, culminating in October at 27500 deaths, which is the second largest number of monthly deaths reported since January 2015!

Monthly Deaths in Romania
Figure 1: Monthly Deaths in Romania (2015–2020) compared to average

In the next chart I set the monthly average over 2015–2019 as a baseline with error bars showing the standard deviation between years. The solid bars represent the difference between 2020 and average in absolute terms, and the official number of deaths caused by COVID-19. Here we can observe that the winter was unusually mild, and how the first wave in spring is basically indistinguishable from natural variations.

Starting with June, the 1100 deaths above the yearly average surpasses the standard deviation, even though official COVID deaths remained relatively low at 390. The excess continues to grow in the following months: 2300 in July, 3300 in August, 3100 in September, and 5800 in October, when the official COVID death toll was only 2100. Across this period, excess mortality was 2.6 to 3.3 times larger than the COVID deaths, a reflection of the continuing spread of the virus in Romania during summer – and that it, unlike influenza, is perfectly capable of causing damage during warmer weather.

Mortality in 2020 compared to previous 5-year average
Figure 2: Mortality in 2020 compared to previous 5-year average

Considering that in November Romania reported almost 4400 COVID-related deaths, I think we can expect an excess mortality between 11000 and 15000 deaths, for a total in the range 32000 to 36000, which would set a new unfortunate record for this period beginning in 2015. Although new infections have started to decline, December might break this record again.

Month-over-month and year-over-year comparisons

During this analysis, I have calculated variations against previous months and previous years and charted them. The general conclusions remain largely the same, here are some visualizations below.

The following chart displays how mortality changes from month to month over the course of a year, in absolute numbers. For past years we can notice the dips in February and over the course of the summer, climbing back from October. By contrast, in June, July and August 2020, the reported numbers are increasing compared to the previous month, an abnormal trend pointing to an unusual event. While September shows a month-over-month change near the average, this change applies to an already larger number from August. The point corresponding to October also stands out from previous years, where the average increase from September was 3200 deaths; this year it was 5500.

Month-over-month absolute variations (in thousands)
Figure 3: Month-over-month absolute variations (in thousands)

The second chart compares mortality to the previous year; here 2015 is no longer included, as I do not have data for the previous year to compare to. Individual variations are quite large, but they average out to a flat curve near zero. 2020’s curve deviates starkly from previous years after June; October has the largest year-on-year change in this dataset, with 6400 more deaths than October 2019.

Year-over-year absolute variations (in thousands)
Figure 4: Year-over-year absolute variations (in thousands)

Seasonal forecast

Given how the data has a pronounced seasonal component, it should be well suited to the application of exponential smoothing. In the past I used to do this manually, but in the meantime, Excel introduced its own exponential smoothing method, available through the FORECAST function and as an individual feature in the ‘Data’ tab. Based on the data for the past 5 years, I charted a forecast for 2020 to see how the actual numbers compare.

The results are similar to the comparison against the average as discussed above, because a trend is practically nonexistent. The forecast yields slightly smaller values throughout 2020 compared to the yearly average, likely because of the lower mortality at the end of 2019, but that only makes the extent of the coronavirus-induced deaths larger.

Mortality in 2020 compared to forecast based on the previous 5 years
Figure 5: Mortality in 2020 compared to forecast based on the previous 5 years

Starting in July, the actual numbers exceed the confidence interval of the forecast, another confirmation of abnormal changes in the data compared to previous yearly trends. As an example, the forecast for December 2020 of 23000 deaths is slightly smaller than the actual deaths recorded in August, 23170, which is normally a ‘quiet’ month…

Distribution by age groups

In more recent updates, the INS has begun releasing more detailed statistical data about mortality, including distribution by age, sex, and residence (urban vs. rural). The distribution by age groups should be most relevant in the case of this coronavirus, seeing how the associated disease is deadlier for seniors. The table below shows the absolute difference in deaths by age groups between 2020 and 2019. As before, the first months of the year show a significant reduction in mortality; there is a moderate peak in April in the 65 to 74 range; it drops again in May, but from June on the mortality increases almost constantly for all age groups above 45.

Absolute variation of deaths by age groups, 2020 vs. 2019
Month 45-49 50-54 55-59 60-64 65-69 70-74 75-79 80-84 85+
January -106 -106 -288 -285 -416 -269 -779 -777 -956
February -41 -35 -169 -213 4 136 -267 -104 49
March -80 53 -147 -142 -122 82 -365 -66 -153
April 36 135 -2 0 104 282 -46 -17 55
May -72 11 -97 -131 -56 174 -161 -227 -383
June -86 73 -64 29 291 223 -33 15 176
July -7 100 122 169 411 440 206 299 351
August 40 162 79 295 505 582 409 501 643
September 69 102 111 226 380 616 133 567 711
October 110 301 177 335 889 1042 836 1129 1452
Total -137 796 -278 283 1990 3308 -67 1320 1945
Figure 6: Absolute variation of deaths by age groups, 2020 vs. 2019, older than 45. Positive numbers indicate an excess of deaths in 2020 compared to 2019; background shading switches in increments of 200.

Another notable pattern is the pronounced peak in the 65 to 74 age range, followed by slightly less mortality between 75 and 79, and another peak past 80 years old. I think this unusual effect is caused by the larger percentage of men killed by the disease and differences in life expectancy across sexes. Because the life expectancy of men is smaller, they make up a slightly larger percentage of the population at younger ages, whereas beyond 75 years old, women outnumber men by more than 50%. This would mean the first peak reflects predominantly male mortality, and the second women. A smaller peak forms for the age group 50–54, though I am less certain about its cause.

I plan to revisit these numbers in around 6 months after winter, but the current trends are not encouraging… With or without vaccines, we have a couple of very hard months ahead.

Post a Comment