Normální data

Experimentální design v Pythonu

James Chapman

Curriculum Manager, DataCamp

Normální rozdělení

 

  • Typický tvar „zvonové křivky"
  • Souvislost s výpočtem z-skóre

$$ {z} = \frac{x-\mu}{\sigma}$$

  • Střední hodnota = 0, std = 1
    • „O kolik směrodatných odchylek je tento bod od střední hodnoty?"
    • „Jaká je pravděpodobnost tohoto výsledku?"

 

Graf typické zvonové křivky – modrá čára na bílém pozadí.

Experimentální design v Pythonu

Normální data a statistické testy

 

  • Vyžadováno pro parametrické testy
  • Neparametrické testy: nepředpokládají normální data

 

Graf typické zvonové křivky – modrá čára na bílém pozadí.

Experimentální design v Pythonu

Normální rozdělení, Z a alfa

 

  • Klíčová vazba na hladinu významnosti ($\alpha$)
  • Porovnání p-hodnoty s $\alpha$
  • Pravděpodobnost chyby I. druhu

 

Normální rozdělení s černě vyznačenými malými oblastmi v obou chvostech

Experimentální design v Pythonu

Vizualizace normálních dat

 

sns.displot(data=salaries,
            x='salary',
            kind="kde")
plt.show()

 

Rozdělení ve tvaru zvonové křivky, užší a vyšší než typická, ale stále se zachovaným tvarem zvonu

Experimentální design v Pythonu

QQ grafy

QQ graf: porovnání dat s daným rozdělením

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • Ideální: body kopírují přímku
  • Špatný: odchylky na koncích

 

QQ graf, kde body těsně kopírují středovou přímku pod úhlem 45 stupňů

QQ graf, kde body uprostřed kopírují přímku, ale na obou koncích se odchylují dovnitř a tvoří zakřivenou linii

Experimentální design v Pythonu

Testy normality

 

  • Shapiro-Wilk (vhodný pro menší datové sady)
  • D'Agostino $K^2$ (využívá kurtozu a šikmost)
  • Anderson-Darling (vrací seznam hodnot)

 

$H_0$ = „Data pocházejí z normálního rozdělení"

Experimentální design v Pythonu

Test Shapiro-Wilk

 

from scipy.stats import shapiro
alpha = 0.05

stat, p = shapiro(salaries['salary']) print(f"p: {round(p,4)} test stat: {round(stat,4)}")
p: 0.8293 test stat: 0.9956
  • p > alpha
    • Nezamítáme $H_0$ → pravděpodobně normální
Experimentální design v Pythonu

Test Anderson-Darling

from scipy.stats import anderson
result = anderson(x=salaries['salary'], dist="norm")
print(round(result.statistic,4))
print(result.significance_level)
print(result.critical_values)
0.2748
[15.  10.   5.   2.5  1. ]
[0.572 0.651 0.781 0.911 1.084]
  • 0.2748 < [0.572 0.651 0.781 0.911 1.084]
    • Nezamítáme $H_0$ → pravděpodobně normální
Experimentální design v Pythonu

Pojďme si procvičit!

Experimentální design v Pythonu

Preparing Video For Download...