Dane normalne

Projektowanie eksperymentów w Pythonie

James Chapman

Curriculum Manager, DataCamp

Rozkład normalny

 

  • Znany kształt „krzywej dzwonowej"
  • Powiązany z pracą ze z-score

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

  • Średnia = 0, odch. stand. = 1
    • „O ile odchyleń standardowych punkt oddany jest od średniej?"
    • „Jakie jest prawdopodobieństwo uzyskania tego wyniku?"

 

Wykres typowej krzywej dzwonowej – niebieska linia na białym tle.

Projektowanie eksperymentów w Pythonie

Dane normalne a testy statystyczne

 

  • Wymagane dla testów parametrycznych
  • Testy nieparametryczne: nie zakładają normalności danych

 

Wykres typowej krzywej dzwonowej – niebieska linia na białym tle.

Projektowanie eksperymentów w Pythonie

Rozkład normalny, Z i alfa

 

  • Kluczowe powiązanie z poziomem istotności ($\alpha$)
  • Porównanie p-wartości z $\alpha$
  • Prawdopodobieństwo błędu I rodzaju

 

Rozkład normalny z dwoma małymi obszarami zacieniowanymi na czarno na obu ogonach

Projektowanie eksperymentów w Pythonie

Wizualizacja danych normalnych

 

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

 

Rozkład krzywej dzwonowej wyższy i węższy niż typowy, ale zachowujący charakterystyczny kształt

Projektowanie eksperymentów w Pythonie

Wykresy QQ

Wykres QQ: porównuje dane z wybranym rozkładem

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • Idealnie: punkty blisko linii
  • Źle: odchylenia na końcach

 

Wykres QQ, na którym punkty blisko przylegają do środkowej linii pod kątem 45 stopni

Wykres QQ, na którym punkty w środku przylegają do linii, ale na obu końcach odchylają się do wewnątrz, tworząc wygiętą linię

Projektowanie eksperymentów w Pythonie

Testy normalności

 

  • Shapiro-Wilk (dla mniejszych zbiorów danych)
  • D'Agostino $K^2$ (wykorzystuje kurtozę i skośność)
  • Anderson-Darling (zwraca listę wartości)

 

$H_0$ = „Dane pochodzą z rozkładu normalnego"

Projektowanie eksperymentów w Pythonie

Test Shapiro-Wilka

 

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
    • Brak podstaw do odrzucenia $H_0$ → prawdopodobnie normalny
Projektowanie eksperymentów w Pythonie

Test Andersona-Darlinga

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]
    • Brak podstaw do odrzucenia $H_0$ → prawdopodobnie normalny
Projektowanie eksperymentów w Pythonie

Czas na ćwiczenia!

Projektowanie eksperymentów w Pythonie

Preparing Video For Download...