Tests paramétriques

Fondements de l’inférence en Python

Paul Savala

Assistant Professor or Mathematics

ANOVA

  • ANOVA – Compare la moyenne de la réponse selon chaque facteur
  • Réponse – Valeur numérique mesurée
  • Facteur – Valeur catégorielle définissant des groupes

Un tableau montrant des financements en capital-risque pour plusieurs entreprises sur différents marchés.

Fondements de l’inférence en Python

ANOVA

investments_df.groupby('market')['funding_total_usd'].mean()
Market        Average funding
===========   ===============
Advertising      13806610
Analytics        14762930
Biotechnology    20838670
...              ...
  • Réponse : financement
  • Facteur : marché
  • ANOVA : comparer le financement moyen par marché
Fondements de l’inférence en Python

Hypothèses de l'ANOVA

  • Les réponses pour chaque niveau du facteur suivent une loi normale
    • Les montants de financement par marché sont normalement distribués
  • Les réponses par facteur ont une variance de population égale
    • La variation du financement par marché est normalement distribuée
Fondements de l’inférence en Python

Réponse normalement distribuée

health_df = investments_df[investments_df['market'] == 'Health and Wellness']
health_df['funding_total_usd'].plot(kind='hist')

Un histogramme avec le financement total par entreprise sur l'axe des x, la fréquence sur l'axe des y, une très grande barre près de zéro et plusieurs barres plus petites au-delà.

Fondements de l’inférence en Python

Transformations logarithmiques et normalité

health_log = np.log(health_df['funding_total_usd'])

health_log.plot(kind='hist')

Un histogramme avec le financement total par entreprise sur l'axe des x, la fréquence sur l'axe des y, une très grande barre près de zéro et plusieurs barres plus petites au-delà.

Fondements de l’inférence en Python

Variance égale

investments_df['log_funding'] = np.log(investments_df['funding_total_usd'])

investments_df.groupby('market')['log_funding'].std()
Advertising            2.254390
Analytics              2.152852
Biotechnology          1.946059
...                    ...

Test de Levene pour l'égalité des variances

$H_0:$ Les populations ont une variance égale

$H_a:$ Les populations ont des variances différentes

Fondements de l’inférence en Python

Variance égale

from scipy import stats

health_df = investments_df[investments_df['market'] == 'Health and Wellness']
analytics_df = investments_df[investments_df['market'] == 'Analytics']

s, p_value = stats.levene(health_df['log_funding'], analytics_df['log_funding'])
print(p_value < 0.05)
False

Conclusion : échec du rejet de l'hypothèse nulle. Les marchés ont une variance de financement égale.

Fondements de l’inférence en Python

ANOVA avec SciPy

s, p_value = stats.f_oneway(health_df['log_funding'], 
                            analytics_df['log_funding'])

print(p_value < 0.05)
True

Conclusion : les marchés présentent des financements statistiquement différents.

Fondements de l’inférence en Python

Inférence basée sur l'ANOVA

  • $H_0:$ Toutes les moyennes sont identiques
  • $H_a:$ Au moins une moyenne est différente
  • Impossible de conclure quelle moyenne diffère sans analyse supplémentaire.
Fondements de l’inférence en Python

Passons à la pratique !

Fondements de l’inférence en Python

Preparing Video For Download...