Health Expectancy - Analyze

1. Déterminez quelles sont les variables Discrètes et Continues du dataset
2. Analysez la variable 'Country'
2. Analysez la variable 'Spending_USD'
4. Faites de même pour la variable 'Life_Expectancy'
5. Observez l’évolution de la durée de vie à travers le temps
6. Analysez l’évolution des dépenses en santé de l’Allemagne et de la Grande-Bretagne à travers le temps
7. Analyzez l’histograme, la boxplot, et les statistiques de 'Life_Expectancy' propre à chaque pays
8. Analysez la relation entre la durée de vie et les dépenses dans la santé, aux États-Unis, de 2000 à 2020
9. Il y a une valeur aberrante tant tout cela. Laquelle? Pourquoi?



1. Déterminez quelles sont les variables Discrètes et Continues du dataset

df.info()


df.nunique()

Year                51
Country              6
Spending_USD       274
Life_Expectancy    118
dtype: int64

df.head()

   Year        Country  Spending_USD  Life_Expectancy
0  1970        Germany       252.311             70.6
1  1970         France       192.143             72.2
2  1970  Great Britain       123.993             71.9
3  1970          Japan       150.437             72.0
4  1970            USA       326.961             70.9

Variables discrètes : 'Year' et 'Country'
Variables continues : 'Spending_USD' et 'Life_Expectancy'




2. Analysez la variable 'Country'

La variable 'Country' est une variable discrète contenant 6 valeurs distinctes.

Tri par valeur décroissante
df['Country'].value_counts(normalize=False)

Country
USA              51
Japan            51
Germany          50
Canada           44
Great Britain    43
France           35
Name: count, dtype: int64

Tri par pays
df['Country'].value_counts(normalize=False).sort_index()

Country
Canada           44
France           35
Germany          50
Great Britain    43
Japan            51
USA              51
Name: count, dtype: int64

["df['Country'].value_counts(normalize=True, sort=True, ascending=False).round(2)"]

→ Les pays ne sont pas représentés de manière équivalente.

sns.countplot(data=df, x='Country', order=df['Country'].value_counts().index)
plt.title('Nombre d’apparitions de chaque pays dans ce jeu de données de 1970 à 1020')




2. Analysez la variable 'Spending_USD'

La variable 'Spending_USD' est une variable continue.

Moyenne, variance,...
df['Spending_USD'].describe()

count      274.000000
mean      2789.338905
std       2194.939785
min        123.993000
25%       1038.357000
50%       2295.578000
75%       4055.610000
max      11859.179000
Name: Spending_USD, dtype: float64

→ La France, les USA, le Canada, le Japon, l’Allemagne et la Grande-Bretagne ont dépensé ensemble en moyenne 2789 USD par an de 1970 à 2020
avec un écrat-type de 2195 USD
La plus faible dépense est de 124 USD en Angleterre en 1970
La plus élevée est de 11859 USD aux USA en 2020
/!\ L’écart-type (std) est important et presque égal à la moyenne (mean).
/!\ La médiane (50%) est inférieure de presque 500 USD à la moyenne.

sns.histplot(data=df, x='Spending_USD')
plt.title('Histogramme des dépenses')

sns.boxplot(data=df, x='Spending_USD')
plt.title('Boite à moustache des dépenses')

fig, ax = sns.subplots(2, 1, sharex=True)
plt.suptitle('Répartition des dépenses de santé en USD entre 1970 et 2020 pour les pays France, USA, Canada, Japon, Allemagne et Grande-Bretagne')
sns.histplot(data=df, x='Spending_USD', ax=ax[0])
sns.boxplot(data=df, x='Spending_USD', ax=ax[1])




4. Faites de même pour la variable 'Life_Expectancy'

La variable 'Life_Expectancy' est une variable continue.

Moyenne, variance,...
df['Life_Expectancy'].describe()

count    274.000000
mean      77.909489
std        3.276263
min       70.600000
25%       75.525000
50%       78.100000
75%       80.575000
max       84.700000
Name: Life_Expectancy, dtype: float64

→ La durée de vie moyenne en France, les USA, le Canada, le Japon, l’Allemagne et GB de 1970 à 2020 est de 77.9 ans pour tous ces pays
avec un écart-type de 3.27 ans
une médiane de 78.1 ans

fig, ax = sns.subplots(2, 1, sharex=True)
plt.suptitle('Répartition de l’espérance de vie entre 1970 et 2020 pour les pays France, USA, Canada, Japon, Allemagne et Grande-Bretagne')
sns.histplot(data=df, x='Life_Expectancy', ax=ax[0])
sns.boxplot(data=df, x='Life_Expectancy', ax=ax[1])




5. Observez l’évolution de la durée de vie à travers le temps

Moyenne des espérances de vie par année
df.groupby('Year')['Life_Expectancy'].mean()

Year
1970    71.52
1971    71.92
1972    71.80
1973    72.03
1974    72.40
1975    72.85
1976    73.32
1977    73.70
1978    73.87
1979    74.50
1980    74.23
1981    74.62
1982    74.92
1983    75.12
1984    75.42
1985    75.62
1986    75.86
1987    76.18
1988    76.26
1989    76.48
1990    76.92
1991    77.06
1992    77.10
1993    77.08
1994    77.45
1995    77.45
1996    77.77
1997    78.07
1998    78.28
1999    78.38
2000    78.72
2001    78.95
2002    79.08
2003    79.13
2004    79.68
2005    79.77
2006    80.15
2007    80.37
2008    80.48
2009    80.77
2010    80.93
2011    81.10
2012    81.22
2013    81.32
2014    81.63
2015    81.43
2016    81.62
2017    81.63
2018    81.68
2019    81.83
2020    81.20
Name: Life_Expectancy, dtype: float64

df.groupby('Year')['Life_Expectancy'].mean().plot(kind='bar')
plt.title('Life Expectancy by Year')

sns.boxplot(data=df, x='Year', y='Life_Expectancy')
plt.title('Life Expectancy by Year (boxplot)')

sns.scatterplot(data=df, x='Year', y='Life_Expectancy')
plt.title('Life Expectancy by Year')

sns.scatterplot(data=df, x='Year', y='Life_Expectancy', hue='Country')
plt.title('Life Expectancy by Year')




6. Analysez l’évolution des dépenses en santé de l’Allemagne et de la Grande-Bretagne à travers le temps

Filtre sur Allemgne et Grande-Bretagne
df.query("`Country` == 'Germany' | `Country` == 'Great Britain'")

     Year        Country  Spending_USD  Life_Expectancy
0    1970        Germany       252.311             70.6
2    1970  Great Britain       123.993             71.9
6    1971        Germany       298.251             70.8
7    1971  Great Britain       134.172             71.9
10   1972        Germany       337.364             71.0
..    ...            ...           ...              ...
259  2018  Great Britain      4189.708             81.3
263  2019        Germany      6407.928             81.3
265  2019  Great Britain      4385.463             81.4
269  2020        Germany      6938.983             81.1
271  2020  Great Britain      5018.700             80.4

[93 rows x 4 columns]

sns.scatterplot(data=df.query("`Country` == 'Germany' | `Country` == 'Great Britain'"), x='Year', y='Life_Expectancy', hue='Country')
plt.title('Espérance de vie par année en Allemagne et en Grande-Bretagne')




7. Analyzez l’histograme, la boxplot, et les statistiques de 'Life_Expectancy' propre à chaque pays

Statistiques par pays
df.groupby('Country')['Life_Expectancy'].describe()

               count       mean       std   min     25%   50%     75%   max
Country                                                                    
Canada          44.0  78.706818  2.502222  72.8  76.775  78.7  80.975  82.2
France          35.0  79.565714  2.862120  72.2  78.050  79.4  82.200  82.9
Germany         50.0  76.726000  3.473915  70.6  73.575  77.1  80.175  81.3
Great Britain   43.0  77.620930  2.827548  71.9  75.350  77.5  80.400  81.4
Japan           51.0  79.554902  3.547242  72.0  76.950  79.8  82.650  84.7
USA             51.0  75.843137  2.336258  70.9  74.550  75.7  77.950  78.9

sns.displot(data=df, x='Life_Expectancy', col='Country')
plt.title('Distribution de l’Espérance de vie par pays')

sns.boxplot(data=df, x='Life_Expectancy', y='Country')
plt.title('Distribution de l’Espérance de vie par pays')




8. Analysez la relation entre la durée de vie et les dépenses dans la santé, aux États-Unis, de 2000 à 2020

Filtre sur Etats-Unis, de 2000 à 2020
df.query("`Country` == 'USA' & `Year` >= 2000 & `Year` <= 2020 ")

     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

sns.scatterplot(data=df.query("`Country` == 'USA' & `Year` >= 2000 & `Year` <= 2020"), x='Spending_USD', y='Life_Expectancy')
plt.title('Espérance de vie et dépenses aux Etats-Unis depuis les années 2000')




9. Il y a une valeur aberrante tant tout cela. Laquelle? Pourquoi?

sns.scatterplot(data=df.query("`Country` == 'USA' & `Year` >= 2000 & `Year` <= 2020"), x='Spending_USD', y='Life_Expectancy')
for index, row in df.query("`Country` == 'USA' & `Year` >= 2000 & `Year` <= 2020").iterrows():
plt.text(row['Spending_USD'], row['Life_Expectancy'] + 0.1, str(row['Year'], color='black', ha='center')
plt.title('Espérance de vie et dépenses aux Etats-Unis depuis les années 2000')

En 2020 les dépenses de santé sont les plus importantes au sein de l'échantillon (12 OOO USD), alors que l'espérance de vie est faible (77 ans)
Cela correspond a l'impact de la COVID-19.