Några veckor till

Postad 2017-02-25 av Karl Pettersson. Taggar: epidemiologi

För ett år sedan skrev jag om utvecklingen av influensasäsongen i Sverige och hur denna kunde förväntas påverka livslängden för 2016. Det hade skett en minskning av livslängden från 2014 till 2015, vilket kunde vara relaterat till hög dödlighet i influensa i början av 2015. Jag gissade att det från 2015 till 2016 skulle bli en ökning igen, därför att det i början av 2016 huvudsakligen var influensa A(H1N1)pdm09 som cirkulerade, och den brukar inte drabba äldre personer i så stor utsträckning, till skillnad från den andra cirkulerande A-subtypen, A(H3N2).

Nu i dagarna har SCB offentliggjort data över Sveriges folkmängd i slutet av 2016 (SCB 2019) och över antalet döda 2016 (SCB 2023). Utifrån detta är det möjligt att konstruera livslängdstabeller för 2016 (genomsnittet av folkmängden 2015 och 2016 kan användas för att beräkna medelfolkmängd under 2016). Om filerna med folkmängd och antal döda i ettårsklasser finns tillgängliga i Unicodeformat som svbef1516u.tsv och svdths16u.tsv i katalogen data kan följande Juliakod användas för att skapa en tabell med medelfolkmängd och antal döda:

using DataFrames
pop = readtable("data/svbef1516u.tsv")
dths = readtable("data/svdths16u.tsv")

sexes = ["män"; "kvinnor"]

function mpopdth(sex)
    popsex = pop[pop[:kön].==sexes[sex], :]
    popsex[:ålder] =
        map((x)->parse(split(x, ['+'; ' '])[1]), popsex[:ålder])
    meanpopsex = by(popsex, :ålder, df -> mean(df[:Folkmängd]))
    dthssex = dths[dths[:kön].==sexes[sex], :]
    DataFrame(age = meanpopsex[:ålder],
        mpop = meanpopsex[:x1], dths = dthssex[:Döda])
end

Med dessa definitioner kan t.ex. en livslängdstabell för kvinnor skapas med funktionerna i mitt LifeTable-paket.

using LifeTable
periodlifetable(mpopdth(2), 2)

På så vis beräknade jag den förväntade livslängden för 2016 till 84,08 år för kvinnor och 80,55 år för män. Det är mycket riktigt en ökning jämfört med 2015, fast den är bara 0,07 år för kvinnorna, och bara 0,03 år jämfört med 2014. En förklaring till detta ges i den senaste influensarapporten, som redovisar influensarelaterad överdödlighet bland personer över 65 år från 2011 och framåt. Som väntat var den låg under början av 2016, men det blev samtidigt en topp under de allra sista veckorna 2016. Den toppen beror på ovanligt tidig influensaaktivitet, som nästan enbart verkar ha utgjorts av A(H3N2), och den förklarar varför livslängdsökningen 2016 inte blev större.

Allmänt verkar det som de flesta influensasäsonger under 2010-talet varit ganska intensiva. Före utbrottet 2009 var A(H3N2) den enda subtyp av influensa A som det var något krut i. Var det en intensiv A(H3N2)-säsong var flockimmuniteten god till nästa säsong, viket resulterade i att det inte blev så mycket influensa då. Numera innebär en intensiv säsong dominerad av A(H3N2) (som 2014/15) att immuniteten mot A(H1N1)pdm09 är dålig till nästa säsong, så då blir det i stället hög aktivitet av denna influensatyp (och tvärtom).

I övrigt har jag uppdaterat min webbplats Mortalitetsdiagram. Numera har jag rutiner i Julia för att extrahera de data som ligger till grund för diagrammen. Det finns förteckningar över diagram i form av HTML-tabeller i stället för den tidigare jQuery-menyn. Själva diagrammen genereras med Bokeh, som är bättre lämpat än matplotlib för att skapa interaktiva diagram för webben.

Referenser

SCB. 2019. ”Folkmängden efter region, civilstånd, ålder och kön”. http://www.statistikdatabasen.scb.se/goto/sv/ssd/BefolkningNy.
———. 2023. ”Döda efter region, ålder (uppnådd under året) och kön”. https://www.statistikdatabasen.scb.se/goto/sv/ssd/DodaHandelseK.