Teste parametrice

Bazele inferenței în Python

Paul Savala

Assistant Professor or Mathematics

ANOVA

  • ANOVA - Compară media răspunsului pentru fiecare factor
  • Răspuns - O valoare numerică măsurată
  • Factor - O valoare categorică ce definește grupuri

Un tabel cu finanțări de capital de risc pentru mai multe companii din mai multe piețe diferite.

Bazele inferenței în Python

ANOVA

investments_df.groupby('market')['funding_total_usd'].mean()
Market        Average funding
===========   ===============
Advertising      13806610
Analytics        14762930
Biotechnology    20838670
...              ...
  • Răspuns: Finanțare
  • Factor: Piață
  • ANOVA: Compară finanțarea medie pe piețe
Bazele inferenței în Python

Ipotezele ANOVA

  • Răspunsurile pentru fiecare factor sunt distribuite normal
    • Sumele de finanțare pe piețe sunt distribuite normal
  • Răspunsurile pe factor au varianță egală în populație
    • Variația finanțărilor pe piețe este distribuită normal
Bazele inferenței în Python

Răspuns distribuit normal

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

O histogramă cu finanțarea totală pe companie pe axa x, frecvența pe axa y, o bară foarte înaltă aproape de zero și câteva bare mult mai mici după aceea.

Bazele inferenței în Python

Transformări logaritmice și normalitate

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

health_log.plot(kind='hist')

O histogramă cu finanțarea totală pe companie pe axa x, frecvența pe axa y, o bară foarte înaltă aproape de zero și câteva bare mult mai mici după aceea.

Bazele inferenței în Python

Egalitatea varianțelor

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
...                    ...

Testul Levene pentru egalitatea varianțelor

$H_0:$ Populațiile au varianță egală

$H_a:$ Populațiile au varianțe diferite

Bazele inferenței în Python

Egalitatea varianțelor

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

Concluzie: Ipoteza nulă nu este respinsă. Piețele au varianță egală a finanțărilor.

Bazele inferenței în Python

ANOVA în SciPy

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

print(p_value < 0.05)
True

Concluzie: Finanțările diferă semnificativ statistic între piețe.

Bazele inferenței în Python

Inferențe bazate pe ANOVA

  • $H_0:$ Toate mediile sunt egale
  • $H_a:$ Cel puțin o medie este diferită
  • Nu se poate determina care medie diferă fără analize suplimentare.
Bazele inferenței în Python

Să exersăm!

Bazele inferenței în Python

Preparing Video For Download...