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 pour chaque facteur
  • Réponse - Une valeur numérique mesurée
  • Facteur - Une valeur catégorielle définissant des groupes

Un tableau montrant le capital de risque financé par plusieurs entreprises dans divers 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 facteur suivent une loi normale
    • Les montants de financement par marché suivent une loi normale
  • Les réponses par facteur ont une variance populationnelle égale
    • La variation du financement par marché suit une loi normale
Fondements de l'inférence en Python

Réponse distribuée normalement

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 beaucoup plus petites au-delà.

Fondements de l'inférence en Python

Transformation logarithmique 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 beaucoup 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 d'égalité des variances

$H_0:$ Les populations ont des variances égales

$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 : on ne rejette pas 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 un financement statistiquement différent.

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 analyses supplémentaires.
Fondements de l'inférence en Python

Passons à la pratique !

Fondements de l'inférence en Python

Preparing Video For Download...