Health Expectancy - Tests d'Hypothèses

1. Spending_USD et Life_Expectancy semblent être corrélées.
2. Il semblait également que l'Allemagne et la Grande-Bretagne avaient la même durée de vie moyenne de 1970 à 2020.
3. Un politicien américain affirme que depuis 1970, la durée de vie aux États-Unis augmente en moyenne de 0,3 an.



1. Spending_USD et Life_Expectancy semblent être corrélées.

df_temp = df.query("`Year` <= 2020 & `Year` >= 2000 & `Country` == 'USA'")

     Year Country  Spending_USD  Life_Expectancy
153  2000     USA      4536.561             76.7
159  2001     USA      4888.518             76.9
165  2002     USA      5316.522             77.0
171  2003     USA      5726.538             77.1
177  2004     USA      6069.530             77.6
183  2005     USA      6430.757             77.6
189  2006     USA      6808.054             77.8
195  2007     USA      7166.513             78.1
201  2008     USA      7385.026             78.1
207  2009     USA      7645.002             78.5
213  2010     USA      7879.253             78.6
219  2011     USA      8079.467             78.7
225  2012     USA      8346.064             78.8
231  2013     USA      8519.620             78.8
237  2014     USA      8925.879             78.9
243  2015     USA      9355.118             78.7
249  2016     USA      9717.649             78.7
255  2017     USA     10046.472             78.6
261  2018     USA     10451.386             78.7
267  2019     USA     10855.517             78.8
273  2020     USA     11859.179             77.0

df_temp = df.query("`Year` <= 2020 & `Year` >= 2000 & `Country` == 'USA'")
sns.scatterplot(data=df_temp, x='Spending_USD', y='Life_Expectancy')

Question 1 : Quelle est la corrélation de Pearson entre ces deux variables aux États-Unis, de 2000 à 2020 ?

Test de Pearson
personr(df_temp['Spending_USD'], df_temp['Life_Expectancy'])

PearsonRResult(statistic=np.float64(0.6210674528998252), pvalue=np.float64(0.002658154480579906))

→ Le coefficient de corrélation de Pearson entre ces deux variables est de 0.62
(1= les deux variables augmentent ensemble, 0= pas de lien, -1=Une variable augmente quand l'autre diminue)

Question 2 : Quelle serait la probabilité d'obtenir une corrélation au moins aussi importante que celle-ci, si en réalité les deux variables n'étaient pas corrélées ?

Nombre de chances d'obtenir ces résultats
p_value = personr(df_temp['Spending_USD'], df_temp['Life_Expectancy']).pvalue
1 / pvalue

376.20085939544

→ La probabilité d'obtenir une telle corrélation si les deux variables étaient en réalité totalement décorrélées serait de 0.0026
Autrement dit, elle serait de 1 chance sur 326

Nombre de chances d'obtenir cette corrélation
1 / ttest_1samp(df_temp, popmean=0.3).pvalue

1956.176463661705




2. Il semblait également que l'Allemagne et la Grande-Bretagne avaient la même durée de vie moyenne de 1970 à 2020.

df_temp = df.query("`Country` == 'Germany' | `Country` == 'Great Britain'")
sns.scatterplot(data=df_temp, x='Year', y='Life_Expectancy', hue='Country')

Test de Student ?
Non car il y a une dépendance entre les données (série temporelle).
Non car il compare seulement les moyennes, quelle que soit l'évolution. => Utiliser un modèle pour séries temporelles




3. Un politicien américain affirme que depuis 1970, la durée de vie aux États-Unis augmente en moyenne de 0,3 an.

Différences de Life_Expectancy année après année.
df_temp = df.query("`Country` == 'USA'")['Life_Expectancy'].diff().dropna()

9      0.3
12     0.0
15     0.2
18     0.6
22     0.7
26     0.2
29     0.4
32     0.2
36     0.4
42    -0.2
47     0.4
52     0.4
57     0.1
62     0.1
68     0.0
73     0.0
78     0.2
83     0.0
88     0.2
94     0.2
99     0.2
105    0.2
111   -0.2
117    0.2
123    0.0
129    0.4
135    0.4
141    0.2
147    0.0
153    0.0
159    0.2
165    0.1
171    0.1
177    0.5
183    0.0
189    0.2
195    0.3
201    0.0
207    0.4
213    0.1
219    0.1
225    0.1
231    0.0
237    0.1
243   -0.2
249    0.0
255   -0.1
261    0.1
267    0.1
273   -1.8
Name: Life_Expectancy, dtype: float64

Statistiques des différences de Life_Expectancy année après année.
df_temp.describe()

count    50.000000
mean      0.122000
std       0.338237
min      -1.800000
25%       0.000000
50%       0.100000
75%       0.200000
max       0.700000
Name: Life_Expectancy, dtype: float64

0.122 +/- 0.338 convient ?

Test de Student à 1 échantillon (ttest 1 sample).
ttest_1samp(df_temp, popmean=0.3)

TtestResult(statistic=np.float64(-3.7212105613188773), pvalue=np.float64(0.0005112013249193949), df=np.int64(49))

Données indépendantes les unes des autres : OK
Issues d'une distribution normale (ou bien plus de 30 points) : OK (51 points et distribution normale)

→ La p_value de notre test est inférieure à 0.02 => On peut rejeter l'hypothèse du politicien américain
Une chance sur 1956 d'observer ces résultat là si le politicien avait raison avec une augmentation de 0.3 an chaque année