Studio sulle cause di morte negli USA degli ultimi 15 anni

Prendiamo i dati relativi alle maggiori cause di morte negli USA relative agli ultimi 15 anni. I dati sono presi dal sito del governo americano.
Il file con i dati è scaricabile qui: https://catalog.data.gov/dataset/age-adjusted-death-rates-for-the-top-10-leading-causes-of-death-united-states-2013

In [1]:
import numpy as np, pandas as pd
import matplotlib.pyplot as plt
plt.style.use('bmh')
In [2]:
df = pd.read_csv('D:\\Admin_1\\Download\\NCHS_-_Leading_Causes_of_Death__United_States.csv')

Le prime 10 righe di questa tabella sono ad esempio relative al primo anno preso in esame. La prima riga ad esempio ci dice che nel 1999, in Alabama, sono morte 2313 persone a causa di incidenti fortuiti.

In [3]:
df.head(10)
Out[3]:
Year 113 Cause Name Cause Name State Deaths Age-adjusted Death Rate
0 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Alabama 2313.0 52.2
1 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Alaska 294.0 55.9
2 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Arizona 2214.0 44.8
3 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Arkansas 1287.0 47.6
4 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries California 9198.0 28.7
5 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Colorado 1519.0 39.0
6 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Connecticut 1034.0 29.3
7 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Delaware 267.0 35.3
8 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries District of Columbia 161.0 28.4
9 1999 Accidents (unintentional injuries) (V01-X59,Y8... Unintentional Injuries Florida 5961.0 35.7

Cerchiamo ora di strutturare i dati in maniera da avere piu' informazioni possibili.
A tal fine modifichiamo il database originale in maniera tale da sintetizzarlo in questo modo:
per ogni anno e per ogni causa di morte vediamo qual è la somma dei decessi fra tutti gli Stati USA

In [4]:
df2 = df['Deaths'].groupby([df['Year'],df['Cause Name']]).sum()
df2unstack = df2.unstack()
df2unstack
Out[4]:
Cause Name All Causes Alzheimer's disease CLRD Cancer Chronic liver disease and cirrhosis Diabetes Diseases of Heart Essential hypertension and hypertensive renal disease Homicide Influenza and pneumonia Kidney Disease Parkinson's disease Pneumonitis due to solids and liquids Septicemia Stroke Suicide Unintentional Injuries
Year
1999 4782798.0 89072.0 248362.0 1099676.0 52518.0 136798.0 1450384.0 33931.0 33778.0 127460.0 71050.0 29186.0 30536.0 61360.0 334732.0 58398.0 195720.0
2000 4806702.0 99116.0 244018.0 1106182.0 53104.0 138602.0 1421520.0 36146.0 33530.0 130626.0 74502.0 31364.0 33272.0 62448.0 335322.0 58700.0 195800.0
2001 4832850.0 107704.0 246026.0 1107536.0 54070.0 142744.0 1400284.0 38494.0 40607.0 124068.0 78960.0 33088.0 34602.0 64476.0 327076.0 61244.0 203074.0
2002 4886774.0 117732.0 249632.0 1114542.0 54514.0 146498.0 1393894.0 40513.0 35252.0 131362.0 81948.0 33918.0 35186.0 67730.0 325344.0 63310.0 213484.0
2003 4896576.0 126914.0 252764.0 1113804.0 55006.0 148438.0 1370178.0 43880.0 35464.0 130326.0 84906.0 35994.0 34670.0 68138.0 315378.0 62968.0 218554.0
2004 4795230.0 131930.0 243974.0 1107776.0 54026.0 146276.0 1304972.0 46152.0 34714.0 119328.0 84960.0 35978.0 33560.0 66746.0 300148.0 64878.0 224024.0
2005 4896034.0 143198.0 261866.0 1118624.0 55060.0 150238.0 1304182.0 49804.0 36248.0 126002.0 87802.0 39088.0 34558.0 68272.0 287158.0 65274.0 235618.0
2006 4852528.0 144864.0 249166.0 1119776.0 55110.0 144898.0 1263272.0 47710.0 37137.0 112652.0 90688.0 39132.0 33774.0 68468.0 274238.0 66600.0 243198.0
2007 4847424.0 149264.0 255848.0 1125750.0 58330.0 142764.0 1232134.0 47930.0 36722.0 105434.0 92896.0 40116.0 33976.0 69656.0 271904.0 69196.0 247412.0
2008 4943968.0 164870.0 282180.0 1130938.0 59926.0 141106.0 1233656.0 51484.0 35649.0 112568.0 96474.0 40966.0 33216.0 71854.0 268296.0 72070.0 243804.0
2009 4874326.0 158006.0 274706.0 1135256.0 61116.0 137410.0 1198826.0 51468.0 33590.0 107384.0 97870.0 41130.0 31896.0 71278.0 257684.0 73818.0 236042.0
2010 4936870.0 166988.0 276160.0 1149486.0 63806.0 138142.0 1195378.0 53268.0 32501.0 100194.0 100952.0 44064.0 34022.0 69624.0 258952.0 76728.0 241718.0
2011 5030916.0 169948.0 285886.0 1153382.0 67284.0 147662.0 1193154.0 55706.0 32468.0 107652.0 91182.0 46222.0 36381.0 71496.0 257864.0 79036.0 252876.0
2012 5086558.0 167274.0 286978.0 1165246.0 69958.0 147864.0 1199422.0 58230.0 33367.0 101272.0 91244.0 47636.0 35794.0 71684.0 257092.0 81200.0 255584.0
2013 5193986.0 169534.0 298410.0 1169762.0 72854.0 151156.0 1222210.0 61540.0 32242.0 113958.0 94224.0 50392.0 37158.0 76312.0 257956.0 82298.0 261114.0
2014 5252836.0 187082.0 294202.0 1183400.0 76340.0 152976.0 1228696.0 60442.0 31744.0 110454.0 96292.0 52300.0 37584.0 77880.0 266206.0 85652.0 271856.0
2015 5425260.0 221122.0 310082.0 1191860.0 80652.0 159070.0 1267684.0 64400.0 35586.0 114124.0 99918.0 55944.0 39606.0 81546.0 280646.0 88386.0 293142.0

Vediamo quali sono tutte le cause di morte che compaiono nel database

In [5]:
for elem in df2.index.levels[1]:
    print(elem)
All Causes
Alzheimer's disease
CLRD
Cancer
Chronic liver disease and cirrhosis
Diabetes
Diseases of Heart
Essential hypertension and hypertensive renal disease
Homicide
Influenza and pneumonia
Kidney Disease
Parkinson's disease
Pneumonitis due to solids and liquids
Septicemia
Stroke
Suicide
Unintentional Injuries

Ordiniamo il database in modo da visualizzare quali sono nell'ultimo anno preso in considerazione, cioe' l'anno 2015, le cause di morte piu' significative in ordine decrescente.

In [6]:
%matplotlib inline
In [7]:
Decessi_2015 = df2unstack.sort_values(by=2015, axis=1, ascending = False).iloc[:,1:]
plt.figure(figsize=(10,10))
Decessi_2015.loc[2015].plot.barh();
plt.gca().invert_yaxis()
plt.title('Decessi in numero assoluto per causa nel 2015 in USA', fontsize=18)
plt.xlabel('Numero decessi',fontsize = 14)
plt.ylabel('')
plt.xticks(fontsize = 12) 
plt.yticks(fontsize = 12); 

Il grafico di sopra ci mostra quindi che le prime tre cause di morte in USA nel 2015 sono:
1) Malattie legate al cuore
2) Cancro
3) Malattie legate all'apparato respiratorio (Chronic Lower Respiratory Disease)

Quello che pero' noi vogliamo analizzare, non è tanto una fotografia dell'anno 2015, ma capire come si sono evolute queste cause di morte dal 1999 al 2015, per capire se ci sono dei trend evidenti in corso.

Come possiamo vedere nel grafico di sotto infatti, anche se le malattie legate al cuore sono la causa maggiore di decessi, nel corso degli ultimi 15 anni, i decessi legati al cuore sono diminuiti. Il valore assoluto del 2015 quindi ci da poche informazioni. Cio' che va monitorato è come cambia un determinato valore nel corso del tempo. Il grafico sotto ci dice che molto probabilmente si stanno facendo passi avanti nella cura e/o prevenzione delle malattie legate al cuore. Vedremo pero' che un discorso esattamente opposto vale per altre cause di morte

In [8]:
plt.figure(figsize=(10,10))
plt.title('Decessi per malattie al cuore nel corso degli anni')
df2unstack['Diseases of Heart'].plot(linestyle = '--', marker ='o');
plt.axis('tight');

La tabella di sotto mostra la differenza di decessi tra un anno e quello precedente, per ogni singola causa di morte

In [9]:
delta_values = {}
for elem in df2.index.levels[1]:
    singlecause = df2.loc[:, elem]
    delta_annuo = singlecause.diff()[1:]
    delta_values[elem] = delta_annuo
    
delta_values = pd.DataFrame(delta_values)
delta_values
Out[9]:
All Causes Alzheimer's disease CLRD Cancer Chronic liver disease and cirrhosis Diabetes Diseases of Heart Essential hypertension and hypertensive renal disease Homicide Influenza and pneumonia Kidney Disease Parkinson's disease Pneumonitis due to solids and liquids Septicemia Stroke Suicide Unintentional Injuries
Year
2000 23904.0 10044.0 -4344.0 6506.0 586.0 1804.0 -28864.0 2215.0 -248.0 3166.0 3452.0 2178.0 2736.0 1088.0 590.0 302.0 80.0
2001 26148.0 8588.0 2008.0 1354.0 966.0 4142.0 -21236.0 2348.0 7077.0 -6558.0 4458.0 1724.0 1330.0 2028.0 -8246.0 2544.0 7274.0
2002 53924.0 10028.0 3606.0 7006.0 444.0 3754.0 -6390.0 2019.0 -5355.0 7294.0 2988.0 830.0 584.0 3254.0 -1732.0 2066.0 10410.0
2003 9802.0 9182.0 3132.0 -738.0 492.0 1940.0 -23716.0 3367.0 212.0 -1036.0 2958.0 2076.0 -516.0 408.0 -9966.0 -342.0 5070.0
2004 -101346.0 5016.0 -8790.0 -6028.0 -980.0 -2162.0 -65206.0 2272.0 -750.0 -10998.0 54.0 -16.0 -1110.0 -1392.0 -15230.0 1910.0 5470.0
2005 100804.0 11268.0 17892.0 10848.0 1034.0 3962.0 -790.0 3652.0 1534.0 6674.0 2842.0 3110.0 998.0 1526.0 -12990.0 396.0 11594.0
2006 -43506.0 1666.0 -12700.0 1152.0 50.0 -5340.0 -40910.0 -2094.0 889.0 -13350.0 2886.0 44.0 -784.0 196.0 -12920.0 1326.0 7580.0
2007 -5104.0 4400.0 6682.0 5974.0 3220.0 -2134.0 -31138.0 220.0 -415.0 -7218.0 2208.0 984.0 202.0 1188.0 -2334.0 2596.0 4214.0
2008 96544.0 15606.0 26332.0 5188.0 1596.0 -1658.0 1522.0 3554.0 -1073.0 7134.0 3578.0 850.0 -760.0 2198.0 -3608.0 2874.0 -3608.0
2009 -69642.0 -6864.0 -7474.0 4318.0 1190.0 -3696.0 -34830.0 -16.0 -2059.0 -5184.0 1396.0 164.0 -1320.0 -576.0 -10612.0 1748.0 -7762.0
2010 62544.0 8982.0 1454.0 14230.0 2690.0 732.0 -3448.0 1800.0 -1089.0 -7190.0 3082.0 2934.0 2126.0 -1654.0 1268.0 2910.0 5676.0
2011 94046.0 2960.0 9726.0 3896.0 3478.0 9520.0 -2224.0 2438.0 -33.0 7458.0 -9770.0 2158.0 2359.0 1872.0 -1088.0 2308.0 11158.0
2012 55642.0 -2674.0 1092.0 11864.0 2674.0 202.0 6268.0 2524.0 899.0 -6380.0 62.0 1414.0 -587.0 188.0 -772.0 2164.0 2708.0
2013 107428.0 2260.0 11432.0 4516.0 2896.0 3292.0 22788.0 3310.0 -1125.0 12686.0 2980.0 2756.0 1364.0 4628.0 864.0 1098.0 5530.0
2014 58850.0 17548.0 -4208.0 13638.0 3486.0 1820.0 6486.0 -1098.0 -498.0 -3504.0 2068.0 1908.0 426.0 1568.0 8250.0 3354.0 10742.0
2015 172424.0 34040.0 15880.0 8460.0 4312.0 6094.0 38988.0 3958.0 3842.0 3670.0 3626.0 3644.0 2022.0 3666.0 14440.0 2734.0 21286.0

Cio' che pero' piu' ci interessa è vedere qual è questa differenza cumulativa nel corso degli anni, per ogni causa di morte. Il tutto rispetto ad un anno di riferimento, che ovviamente è l'anno dal quale si inizia l'indagine. In questo caso il 1999.
Ordiniamo quindi la tabella in ordine decrescente, dalla causa di morte che è piu' cresciuta nel corso degli anni, a quella meno. Per ogni anno e per ogni causa di morte abbiamo quindi qual è la differenza tra il numero di decessi di quell'anno e il numero di decessi del 1999.

In [10]:
diff_cumulata = delta_values.cumsum()
del diff_cumulata['All Causes'] #qui eliminiamo 'All Causes' dalla tabella
diff_cumulata_sorted = diff_cumulata.sort_values(by = 2015, axis = 1, ascending = False)
diff_cumulata_sorted
Out[10]:
Alzheimer's disease Unintentional Injuries Cancer CLRD Essential hypertension and hypertensive renal disease Suicide Kidney Disease Chronic liver disease and cirrhosis Parkinson's disease Diabetes Septicemia Pneumonitis due to solids and liquids Homicide Influenza and pneumonia Stroke Diseases of Heart
Year
2000 10044.0 80.0 6506.0 -4344.0 2215.0 302.0 3452.0 586.0 2178.0 1804.0 1088.0 2736.0 -248.0 3166.0 590.0 -28864.0
2001 18632.0 7354.0 7860.0 -2336.0 4563.0 2846.0 7910.0 1552.0 3902.0 5946.0 3116.0 4066.0 6829.0 -3392.0 -7656.0 -50100.0
2002 28660.0 17764.0 14866.0 1270.0 6582.0 4912.0 10898.0 1996.0 4732.0 9700.0 6370.0 4650.0 1474.0 3902.0 -9388.0 -56490.0
2003 37842.0 22834.0 14128.0 4402.0 9949.0 4570.0 13856.0 2488.0 6808.0 11640.0 6778.0 4134.0 1686.0 2866.0 -19354.0 -80206.0
2004 42858.0 28304.0 8100.0 -4388.0 12221.0 6480.0 13910.0 1508.0 6792.0 9478.0 5386.0 3024.0 936.0 -8132.0 -34584.0 -145412.0
2005 54126.0 39898.0 18948.0 13504.0 15873.0 6876.0 16752.0 2542.0 9902.0 13440.0 6912.0 4022.0 2470.0 -1458.0 -47574.0 -146202.0
2006 55792.0 47478.0 20100.0 804.0 13779.0 8202.0 19638.0 2592.0 9946.0 8100.0 7108.0 3238.0 3359.0 -14808.0 -60494.0 -187112.0
2007 60192.0 51692.0 26074.0 7486.0 13999.0 10798.0 21846.0 5812.0 10930.0 5966.0 8296.0 3440.0 2944.0 -22026.0 -62828.0 -218250.0
2008 75798.0 48084.0 31262.0 33818.0 17553.0 13672.0 25424.0 7408.0 11780.0 4308.0 10494.0 2680.0 1871.0 -14892.0 -66436.0 -216728.0
2009 68934.0 40322.0 35580.0 26344.0 17537.0 15420.0 26820.0 8598.0 11944.0 612.0 9918.0 1360.0 -188.0 -20076.0 -77048.0 -251558.0
2010 77916.0 45998.0 49810.0 27798.0 19337.0 18330.0 29902.0 11288.0 14878.0 1344.0 8264.0 3486.0 -1277.0 -27266.0 -75780.0 -255006.0
2011 80876.0 57156.0 53706.0 37524.0 21775.0 20638.0 20132.0 14766.0 17036.0 10864.0 10136.0 5845.0 -1310.0 -19808.0 -76868.0 -257230.0
2012 78202.0 59864.0 65570.0 38616.0 24299.0 22802.0 20194.0 17440.0 18450.0 11066.0 10324.0 5258.0 -411.0 -26188.0 -77640.0 -250962.0
2013 80462.0 65394.0 70086.0 50048.0 27609.0 23900.0 23174.0 20336.0 21206.0 14358.0 14952.0 6622.0 -1536.0 -13502.0 -76776.0 -228174.0
2014 98010.0 76136.0 83724.0 45840.0 26511.0 27254.0 25242.0 23822.0 23114.0 16178.0 16520.0 7048.0 -2034.0 -17006.0 -68526.0 -221688.0
2015 132050.0 97422.0 92184.0 61720.0 30469.0 29988.0 28868.0 28134.0 26758.0 22272.0 20186.0 9070.0 1808.0 -13336.0 -54086.0 -182700.0

La tabella di sopra è particolarmente importante: ci dice che le cause di morte che piu' sono aumentate in valore assoluto negli USA negli ultimi 15 anni sono:
1) Alzheimer (nel 2015 ci sono 132 mila decessi in piu' rispetto al 1999 riconducibili a questa malattia)
2) Incidenti fortuiti
3) Cancro

L'ultimo step da fare è rapportare questo differenziale assoluto con quello che era il valore assoluto di ogni causa di morte nel 1999. In questo modo troveremo il tasso con il quale una certa causa di morte si è evoluta nel corso del tempo. I valori assoluti del 1999 li abbiamo qui sotto:

In [11]:
initvalue = {}
for elem in df2.index.levels[1][1:]:
    singlecause = df2.loc[:,elem]
    initvalue[elem] = singlecause.loc[1999]
initvalue = pd.Series(initvalue)
init_sorted = initvalue.sort_values(ascending = False)
init_sorted
Out[11]:
Diseases of Heart                                        1450384.0
Cancer                                                   1099676.0
Stroke                                                    334732.0
CLRD                                                      248362.0
Unintentional Injuries                                    195720.0
Diabetes                                                  136798.0
Influenza and pneumonia                                   127460.0
Alzheimer's disease                                        89072.0
Kidney Disease                                             71050.0
Septicemia                                                 61360.0
Suicide                                                    58398.0
Chronic liver disease and cirrhosis                        52518.0
Essential hypertension and hypertensive renal disease      33931.0
Homicide                                                   33778.0
Pneumonitis due to solids and liquids                      30536.0
Parkinson's disease                                        29186.0
dtype: float64

Quindi creiamo una tabella dove per ogni causa di morte, vediamo qual è il tasso di incremento cumulativo nel corso degli anni. La differenza tra la seguente tabella e la precedente, è che la tabella di sotto tiene conto dello sviluppo anno dopo anno in termini relativi, dandoci il tasso, mentre quella precedente accumulava l'incremento di ciascuna colonna in termini assoluti, dandoci l'incremento assoluto cumulato di decessi per ogni anno.

In [12]:
evolution = diff_cumulata_sorted / init_sorted
evolution_sorted = evolution.sort_values(by = 2015, axis = 1, ascending = False)
evolution_sorted
Out[12]:
Alzheimer's disease Parkinson's disease Essential hypertension and hypertensive renal disease Chronic liver disease and cirrhosis Suicide Unintentional Injuries Kidney Disease Septicemia Pneumonitis due to solids and liquids CLRD Diabetes Cancer Homicide Influenza and pneumonia Diseases of Heart Stroke
Year
2000 0.112763 0.074625 0.065280 0.011158 0.005171 0.000409 0.048586 0.017731 0.089599 -0.017491 0.013187 0.005916 -0.007342 0.024839 -0.019901 0.001763
2001 0.209179 0.133694 0.134479 0.029552 0.048735 0.037574 0.111330 0.050782 0.133154 -0.009406 0.043466 0.007148 0.202173 -0.026612 -0.034543 -0.022872
2002 0.321762 0.162133 0.193982 0.038006 0.084112 0.090762 0.153385 0.103814 0.152279 0.005114 0.070907 0.013519 0.043638 0.030614 -0.038948 -0.028046
2003 0.424847 0.233263 0.293213 0.047374 0.078256 0.116667 0.195018 0.110463 0.135381 0.017724 0.085089 0.012847 0.049914 0.022485 -0.055300 -0.057819
2004 0.481161 0.232714 0.360172 0.028714 0.110963 0.144615 0.195778 0.087777 0.099031 -0.017668 0.069285 0.007366 0.027710 -0.063800 -0.100258 -0.103318
2005 0.607666 0.339272 0.467802 0.048402 0.117744 0.203852 0.235778 0.112647 0.131713 0.054372 0.098247 0.017231 0.073125 -0.011439 -0.100802 -0.142126
2006 0.626370 0.340780 0.406089 0.049355 0.140450 0.242581 0.276397 0.115841 0.106039 0.003237 0.059211 0.018278 0.099443 -0.116178 -0.129009 -0.180724
2007 0.675768 0.374495 0.412573 0.110667 0.184904 0.264112 0.307474 0.135202 0.112654 0.030141 0.043612 0.023711 0.087157 -0.172807 -0.150477 -0.187696
2008 0.850974 0.403618 0.517315 0.141056 0.234118 0.245677 0.357833 0.171023 0.087765 0.136164 0.031492 0.028428 0.055391 -0.116837 -0.149428 -0.198475
2009 0.773913 0.409237 0.516843 0.163715 0.264050 0.206019 0.377481 0.161636 0.044538 0.106071 0.004474 0.032355 -0.005566 -0.157508 -0.173442 -0.230178
2010 0.874753 0.509765 0.569892 0.214936 0.313881 0.235019 0.420859 0.134681 0.114160 0.111925 0.009825 0.045295 -0.037806 -0.213918 -0.175820 -0.226390
2011 0.907985 0.583705 0.641744 0.281161 0.353403 0.292029 0.283350 0.165189 0.191413 0.151086 0.079416 0.048838 -0.038783 -0.155406 -0.177353 -0.229640
2012 0.877964 0.632152 0.716130 0.332077 0.390459 0.305866 0.284222 0.168253 0.172190 0.155483 0.080893 0.059627 -0.012168 -0.205461 -0.173031 -0.231947
2013 0.903337 0.726581 0.813681 0.387220 0.409261 0.334120 0.326165 0.243677 0.216859 0.201512 0.104958 0.063733 -0.045473 -0.105931 -0.157320 -0.229366
2014 1.100346 0.791955 0.781321 0.453597 0.466694 0.389005 0.355271 0.269231 0.230810 0.184569 0.118262 0.076135 -0.060217 -0.133422 -0.152848 -0.204719
2015 1.482509 0.916809 0.897969 0.535702 0.513511 0.497762 0.406305 0.328977 0.297026 0.248508 0.162809 0.083828 0.053526 -0.104629 -0.125967 -0.161580

La tabella di sopra quindi ci mostra le cause di morte che piu' sono cresciute nel corso degli anni, in ordine descrescente da sx verso dx, in termini relativi.
Nel 2015 il numero dei decessi causati dall'Alzheimer è aumentato del 148% rispetto al 1999.
Nel 2015 il numero del decessi causati dal Parkinson è aumentato del 91,6% rispetto al 1999.
E cosi via.
Andiamo a mettere su un grafico quest'ultima tabella

In [13]:
plt.figure(figsize=(12,12))
ax = evolution_sorted.loc[2015].plot.bar()
vals = ax.get_yticks()
plt.title('Variazione percentuale di decessi tra l\'anno 1999 e l\'anno 2015',fontsize=18)
ax.set_yticklabels(['{:3.0f}%'.format(x*100) for x in vals]);

Come invece avevamo gia' fatto notare, le malattie del cuore, nonostante sia ancora la maggiore causa di morte nel 2015, causano meno decessi rispetto a 15 anni fa.


Prima di continuare pero' andiamo a vedere se è aumentato o diminuita la popozione negli USA negli ultimi 15 anni


Lo vediamo scaricando le statistiche della popolazione mondiale

In [14]:
dfPop = pd.read_csv('D:\\Admin_1\\Download\\DataWorld\\Population\\0f84ec41-55d9-4678-81d3-99665e7c9152_Data.csv')
new = np.array(['1990','2000','2008','2009','2010','2011','2012','2013','2014','2015','2016','2017'])
old = ['Pop','Code','Country Name','Country Code']
dfPop.columns = [old[i] if i < 4 else new[i-4] for i in range(16)]
dfPop.head(10) #visualizziamo le prime 10 righe di questo database
Out[14]:
Pop Code Country Name Country Code 1990 2000 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017
0 Population, total SP.POP.TOTL Afghanistan AFG 12249114 20093756 27294031 28004331 28803167 29708599 30696958 31731688 32758020 33736494 34656032 ..
1 Population, total SP.POP.TOTL Albania ALB 3286542 3089027 2947314 2927519 2913021 2905195 2900401 2895092 2889104 2880703 2876101 ..
2 Population, total SP.POP.TOTL Algeria DZA 25912367 31183660 34860715 35465760 36117637 36819558 37565847 38338562 39113313 39871528 40606052 ..
3 Population, total SP.POP.TOTL American Samoa ASM 47038 57521 57030 56227 55637 55320 55230 55307 55437 55537 55599 ..
4 Population, total SP.POP.TOTL Andorra AND 54509 65390 83861 84462 84449 83751 82431 80788 79223 78014 77281 ..
5 Population, total SP.POP.TOTL Angola AGO 12171441 16440924 21759420 22549547 23369131 24218565 25096150 25998340 26920466 27859305 28813463 ..
6 Population, total SP.POP.TOTL Antigua and Barbuda ATG 66696 83584 92478 93581 94661 95719 96777 97824 98875 99923 100963 ..
7 Population, total SP.POP.TOTL Argentina ARG 32729739 37057452 40382389 40799407 41223889 41656879 42096739 42539925 42981515 43417765 43847430 ..
8 Population, total SP.POP.TOTL Armenia ARM 3538165 3069588 2908220 2888584 2877311 2875581 2881922 2893509 2906220 2916950 2924816 ..
9 Population, total SP.POP.TOTL Aruba ABW 62149 90853 101353 101453 101669 102053 102577 103187 103795 104341 104822 ..

Prendiamo i dati riguardanti gli USA

In [15]:
dfPop[dfPop['Country Name'] == 'United States']
Out[15]:
Pop Code Country Name Country Code 1990 2000 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017
206 Population, total SP.POP.TOTL United States USA 249623000 282162411 304093966 306771529 309348193 311663358 313998379 316204908 318563456 320896618 323127513 ..
In [16]:
USA = dfPop[dfPop['Country Name'] == 'United States']
USA_int = USA.apply(pd.to_numeric, errors='coerce')
print('Popolazione USA nel 2000:', USA_int['2000'].values[0])
print()
print('Popolazione USA nel 2015:', USA_int['2015'].values[0])
diffperc = (USA_int['2015'] - USA_int['2000']) / USA_int['2000']
diffperc = diffperc.values[0]
print()
print('Incremento percentuale della popolazione USA tra il 2015 e il 2000: {:3.2f}%'.format(diffperc*100))
Popolazione USA nel 2000: 282162411

Popolazione USA nel 2015: 320896618

Incremento percentuale della popolazione USA tra il 2015 e il 2000: 13.73%

Se riprendiamo il grafico dei decessi (vedi tabella sotto), la colonna 'All Causes' ci dice il numero di decessi totale negli USA anno per anno. Questo dato include sia le cause singole presenti nella tabella, sia cause minori non presenti nella tabella. Come possiamo vedere, dal 1999 al 2015, il numero totale di decessi negli USA è aumentato ogni anno. Se la popolazione complessiva è aumentata del 14% dal 1999 al 2015, significa che il numero delle nascite, anno per anno, è aumentato con un tasso superiore al tasso con cui è aumentato il numero dei decessi.

In [17]:
# def highlight(s):
#     return ['background-color: yellow']

# df2_highlight = df2unstack.style.apply(highlight, axis = 1, subset = ['All Causes'])
# df2_highlight
df2unstack
Out[17]:
Cause Name All Causes Alzheimer's disease CLRD Cancer Chronic liver disease and cirrhosis Diabetes Diseases of Heart Essential hypertension and hypertensive renal disease Homicide Influenza and pneumonia Kidney Disease Parkinson's disease Pneumonitis due to solids and liquids Septicemia Stroke Suicide Unintentional Injuries
Year
1999 4782798.0 89072.0 248362.0 1099676.0 52518.0 136798.0 1450384.0 33931.0 33778.0 127460.0 71050.0 29186.0 30536.0 61360.0 334732.0 58398.0 195720.0
2000 4806702.0 99116.0 244018.0 1106182.0 53104.0 138602.0 1421520.0 36146.0 33530.0 130626.0 74502.0 31364.0 33272.0 62448.0 335322.0 58700.0 195800.0
2001 4832850.0 107704.0 246026.0 1107536.0 54070.0 142744.0 1400284.0 38494.0 40607.0 124068.0 78960.0 33088.0 34602.0 64476.0 327076.0 61244.0 203074.0
2002 4886774.0 117732.0 249632.0 1114542.0 54514.0 146498.0 1393894.0 40513.0 35252.0 131362.0 81948.0 33918.0 35186.0 67730.0 325344.0 63310.0 213484.0
2003 4896576.0 126914.0 252764.0 1113804.0 55006.0 148438.0 1370178.0 43880.0 35464.0 130326.0 84906.0 35994.0 34670.0 68138.0 315378.0 62968.0 218554.0
2004 4795230.0 131930.0 243974.0 1107776.0 54026.0 146276.0 1304972.0 46152.0 34714.0 119328.0 84960.0 35978.0 33560.0 66746.0 300148.0 64878.0 224024.0
2005 4896034.0 143198.0 261866.0 1118624.0 55060.0 150238.0 1304182.0 49804.0 36248.0 126002.0 87802.0 39088.0 34558.0 68272.0 287158.0 65274.0 235618.0
2006 4852528.0 144864.0 249166.0 1119776.0 55110.0 144898.0 1263272.0 47710.0 37137.0 112652.0 90688.0 39132.0 33774.0 68468.0 274238.0 66600.0 243198.0
2007 4847424.0 149264.0 255848.0 1125750.0 58330.0 142764.0 1232134.0 47930.0 36722.0 105434.0 92896.0 40116.0 33976.0 69656.0 271904.0 69196.0 247412.0
2008 4943968.0 164870.0 282180.0 1130938.0 59926.0 141106.0 1233656.0 51484.0 35649.0 112568.0 96474.0 40966.0 33216.0 71854.0 268296.0 72070.0 243804.0
2009 4874326.0 158006.0 274706.0 1135256.0 61116.0 137410.0 1198826.0 51468.0 33590.0 107384.0 97870.0 41130.0 31896.0 71278.0 257684.0 73818.0 236042.0
2010 4936870.0 166988.0 276160.0 1149486.0 63806.0 138142.0 1195378.0 53268.0 32501.0 100194.0 100952.0 44064.0 34022.0 69624.0 258952.0 76728.0 241718.0
2011 5030916.0 169948.0 285886.0 1153382.0 67284.0 147662.0 1193154.0 55706.0 32468.0 107652.0 91182.0 46222.0 36381.0 71496.0 257864.0 79036.0 252876.0
2012 5086558.0 167274.0 286978.0 1165246.0 69958.0 147864.0 1199422.0 58230.0 33367.0 101272.0 91244.0 47636.0 35794.0 71684.0 257092.0 81200.0 255584.0
2013 5193986.0 169534.0 298410.0 1169762.0 72854.0 151156.0 1222210.0 61540.0 32242.0 113958.0 94224.0 50392.0 37158.0 76312.0 257956.0 82298.0 261114.0
2014 5252836.0 187082.0 294202.0 1183400.0 76340.0 152976.0 1228696.0 60442.0 31744.0 110454.0 96292.0 52300.0 37584.0 77880.0 266206.0 85652.0 271856.0
2015 5425260.0 221122.0 310082.0 1191860.0 80652.0 159070.0 1267684.0 64400.0 35586.0 114124.0 99918.0 55944.0 39606.0 81546.0 280646.0 88386.0 293142.0

Sotto troviamo invece l'ultima tabella di questo studio, forse la piu' importante: ci indica anno per anno, qual è stato il peso di ciascuna causa di morte in quell'anno. La tabella è ordinata dalla causa piu' frequente a quella meno nell'anno finale (2015), da sinistra verso destra.

In [18]:
disease_weights = {}
for elem in df2unstack.columns[1:]:
    quoz = df2unstack[elem] / df2unstack.iloc[:,0]
    disease_weights[elem] = quoz
    
disease_weights = pd.DataFrame(disease_weights)
disease_weights = disease_weights.sort_values (by = 2015, axis = 1, ascending = False)
disease_weights
Out[18]:
Diseases of Heart Cancer CLRD Unintentional Injuries Stroke Alzheimer's disease Diabetes Influenza and pneumonia Kidney Disease Suicide Septicemia Chronic liver disease and cirrhosis Essential hypertension and hypertensive renal disease Parkinson's disease Pneumonitis due to solids and liquids Homicide
Year
1999 0.303250 0.229923 0.051928 0.040922 0.069987 0.018623 0.028602 0.026650 0.014855 0.012210 0.012829 0.010981 0.007094 0.006102 0.006385 0.007062
2000 0.295737 0.230133 0.050766 0.040735 0.069761 0.020620 0.028835 0.027176 0.015500 0.012212 0.012992 0.011048 0.007520 0.006525 0.006922 0.006976
2001 0.289743 0.229168 0.050907 0.042020 0.067678 0.022286 0.029536 0.025672 0.016338 0.012672 0.013341 0.011188 0.007965 0.006846 0.007160 0.008402
2002 0.285238 0.228073 0.051083 0.043686 0.066576 0.024092 0.029978 0.026881 0.016769 0.012955 0.013860 0.011155 0.008290 0.006941 0.007200 0.007214
2003 0.279824 0.227466 0.051621 0.044634 0.064408 0.025919 0.030315 0.026616 0.017340 0.012860 0.013915 0.011234 0.008961 0.007351 0.007080 0.007243
2004 0.272140 0.231016 0.050878 0.046718 0.062593 0.027513 0.030504 0.024885 0.017718 0.013530 0.013919 0.011267 0.009625 0.007503 0.006999 0.007239
2005 0.266375 0.228476 0.053485 0.048124 0.058651 0.029248 0.030686 0.025736 0.017933 0.013332 0.013944 0.011246 0.010172 0.007984 0.007058 0.007404
2006 0.260333 0.230761 0.051348 0.050118 0.056514 0.029853 0.029860 0.023215 0.018689 0.013725 0.014110 0.011357 0.009832 0.008064 0.006960 0.007653
2007 0.254183 0.232237 0.052780 0.051040 0.056092 0.030792 0.029452 0.021751 0.019164 0.014275 0.014370 0.012033 0.009888 0.008276 0.007009 0.007576
2008 0.249528 0.228751 0.057076 0.049313 0.054267 0.033348 0.028541 0.022769 0.019513 0.014577 0.014534 0.012121 0.010413 0.008286 0.006718 0.007211
2009 0.245947 0.232905 0.056358 0.048426 0.052866 0.032416 0.028191 0.022031 0.020079 0.015144 0.014623 0.012538 0.010559 0.008438 0.006544 0.006891
2010 0.242133 0.232837 0.055938 0.048962 0.052453 0.033825 0.027982 0.020295 0.020449 0.015542 0.014103 0.012924 0.010790 0.008925 0.006891 0.006583
2011 0.237164 0.229259 0.056826 0.050264 0.051256 0.033781 0.029351 0.021398 0.018124 0.015710 0.014211 0.013374 0.011073 0.009188 0.007231 0.006454
2012 0.235802 0.229083 0.056419 0.050247 0.050543 0.032885 0.029070 0.019910 0.017938 0.015964 0.014093 0.013754 0.011448 0.009365 0.007037 0.006560
2013 0.235313 0.225215 0.057453 0.050272 0.049664 0.032640 0.029102 0.021940 0.018141 0.015845 0.014692 0.014027 0.011848 0.009702 0.007154 0.006208
2014 0.233911 0.225288 0.056008 0.051754 0.050679 0.035615 0.029123 0.021027 0.018331 0.016306 0.014826 0.014533 0.011507 0.009957 0.007155 0.006043
2015 0.233663 0.219687 0.057155 0.054033 0.051730 0.040758 0.029320 0.021036 0.018417 0.016292 0.015031 0.014866 0.011870 0.010312 0.007300 0.006559
In [19]:
fig, ax = plt.subplots(figsize = (20,20))
disease_weights.plot(ax = ax, linestyle = '--', marker = '*');
ax.set_ylabel('Peso della singola causa sul totale dei decessi', fontsize = 16);
ax.set_xlabel('Anno', fontsize = 16);

Ultime note:
La tabella sopra mostra i pesi, ordinati in maniera descrescente da sx verso dx, di ciascuna causa di morte, anno per anno, sul totale di decessi.
Le malattie del cuore causano il 23% dei decessi, ma nel 1999 ne causavano il 30%. Quindi c'è stato un miglioramento relativamente a questa causa di morte. Non sappiamo ovviamente se il miglioramento dipende da una miglior prevenzione o migliori trattamenti farmacologici. Servono molte altri dati e indagini per capirlo.
Il cancro causa il 22% dei decessi nel 2015, una percentuale quasi uguale a quella del 1999. C'è quindi un sostanziale pareggio nella lotta contro questa malattia. Nessun avanzamento della ricerca negli ultimi 15 anni.
Le morti per ictus ('stroke') sono leggermente meno rispetto a quelle del 1999.
Le morti per diabete praticamente uguali.
Il suicidio invece è aumentato in percentuale, e non di poco (decima colonna del grafico di sopra).
Nel 2015 su 100 decessi, 16 sono causati da suicidio, mentre nel '99 erano 12.
L'Alzheimer, la causa di morte piu' cresciuta negli ultimi 15 anni, conta il 4% dei decessi nel 2015. Mentre nel 1999 meno del 2%. Difficile dire se l'aumento del 148% è imputabile ad un aumento degli over 60-70 nella popolazione, oppure ad un aumento dei fattori di rischio ad esso associati. Probabilmente un mix dei due. E' importante notare che per tutte le cause di morte, il decorso dei tassi è stato "graduale" nel tempo.
Se ad esempio prendiamo la prima colonna si è partiti da un 30%, e anno per anno, si è avuto una diminuzione costante nel tempo.
Se prendiamo la colonna relativa al 'Diabete', il relativo peso è rimasto costante non solo tra il 2015 e il 1999, ma praticamente in tutti gli anni.
Se prendiamo la colonna relativa all' 'Alzheimer', il relativo peso è aumentanto in maniera costante nel corso del tempo.
Questa "gradualita'" di aumento o diminuizione ci porta a dire che c'è un trend relativo, e che quindi è molto diffice che il tutto dipenda dal caso. Idem per quanto riguarda le cause i cui pesi relativi sono rimasti stabili nel tempo.
Immaginiamo infatti 2 scenari:

Scenario a) Nel 1999 e nel 2015 piu' o meno il 3% dei decessi è stato causato dal diabete ma nel 2005 il peso era salito al 10% e nel 2010 era sceso al 1%.
Scenario b) Nel 1999 e nel 2015 piu' o meno il 3% dei decessi è stato causato dal diabete, e non c'è stato nessun anno in cui il peso è aumentato o diminuito rispetto a questo valore.

Nel primo caso avremmo un dato la cui distribuzione ha una varianza molto alta, che non ci consente con facilita' di capire qual'è il peso che dovremmo ragionevolmente aspettarci da quella causa di morte nel prossimo futuro. Nel secondo caso, che è quello che poi si è verificato, possiamo predire che con molta probabilita' da qui a pochi anni, il peso dei decessi relativo al diabete sara' vicino al 3%.


In [ ]: