Test parametrici

Fondamenti dell'inferenza in Python

Paul Savala

Assistant Professor or Mathematics

ANOVA

  • ANOVA: Confronta la media della risposta per fattore
  • Risposta: Valore numerico misurato
  • Fattore: Categoria che definisce i gruppi

Una tabella che mostra i finanziamenti di venture capital di diverse aziende in vari mercati.

Fondamenti dell'inferenza in Python

ANOVA

investments_df.groupby('market')['funding_total_usd'].mean()
Market        Average funding
===========   ===============
Advertising      13806610
Analytics        14762930
Biotechnology    20838670
...              ...
  • Risposta: Funding
  • Fattore: Mercato
  • ANOVA: confronta la media del funding per mercato
Fondamenti dell'inferenza in Python

Assunzioni dell'ANOVA

  • Le risposte per ogni fattore sono normalmente distribuite
    • Gli importi di funding per mercato sono normali
  • Le risposte per fattore hanno varianza di popolazione uguale
    • La variazione del funding per mercato è uguale
Fondamenti dell'inferenza in Python

Risposta normale

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

Un istogramma con il totale dei finanziamenti per azienda sull'asse x, frequenza sull'asse y, una barra molto alta vicino a zero e diverse barre molto più basse oltre.

Fondamenti dell'inferenza in Python

Trasformazioni log e normalità

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

health_log.plot(kind='hist')

Un istogramma con il totale dei finanziamenti per azienda sull'asse x, frequenza sull'asse y, una barra molto alta vicino a zero e diverse barre molto più basse oltre.

Fondamenti dell'inferenza in Python

Varianza uguale

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 di Levene per varianze uguali

$H_0:$ Le popolazioni hanno varianze uguali

$H_a:$ Le popolazioni hanno varianze diverse

Fondamenti dell'inferenza in Python

Varianza uguale

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

Conclusione: Non si rifiuta l'ipotesi nulla. I mercati hanno varianza di funding uguale.

Fondamenti dell'inferenza in Python

ANOVA in SciPy

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

print(p_value < 0.05)
True

Conclusione: I mercati hanno funding significativamente diverso.

Fondamenti dell'inferenza in Python

Inferenza con ANOVA

  • $H_0:$ Tutte le medie sono uguali
  • $H_a:$ Almeno una media è diversa
  • Non indica quale media differisce: serve analisi aggiuntiva.
Fondamenti dell'inferenza in Python

Passons à la pratique !

Fondamenti dell'inferenza in Python

Preparing Video For Download...