Нормально розподілені дані

Експериментальний дизайн у Python

James Chapman

Curriculum Manager, DataCamp

Нормальний розподіл

 

  • Знайома форма «дзвона»
  • Пов'язано з роботою із z-оцінками

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

  • Середнє = 0, std = 1
    • «На скільки стандартних відхилень ця точка від середнього?»
    • «Яка ймовірність отримати це значення?»

 

Графік типової кривої-дзвона: синя лінія на білому тлі.

Експериментальний дизайн у Python

Нормальні дані та статистичні тести

 

  • Потрібний для параметричних тестів
  • Непараметричні тести: не припускають нормальності даних

 

Графік типової кривої-дзвона: синя лінія на білому тлі.

Експериментальний дизайн у Python

Нормальний розподіл, Z і альфа

 

  • Важливий зв'язок із рівнем значущості ($\alpha$)
  • Порівняйте p-значення з $\alpha$
  • Імовірність помилки першого роду

 

Нормальний розподіл із двома маленькими зафарбованими чорним ділянками на кінцях хвостів

Експериментальний дизайн у Python

Візуалізація нормальних даних

 

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

 

Розподіл-крива-дзвін, вища й вужча за традиційну, але з типовою формою дзвона

Експериментальний дизайн у Python

QQ-графіки

QQ-графік: порівнює дані з певним розподілом

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • Ідеально: точки прилягають до лінії
  • Погано: вигинаються на кінцях

 

QQ-графік, де всі точки здебільшого щільно прилягають до середньої 45-градусної лінії

QQ-графік, де точки посередині прилягають до 45-градусної лінії, але на обох кінцях вони вигинаються всередину, утворюючи криву з точок

Експериментальний дизайн у Python

Тести на нормальність

 

  • Шапіро — Вілка (добре для малих наборів даних)
  • D'Agostino $K^2$ (використовує ексцес і асиметрію)
  • Андерсона — Дарлінга (повертає список значень)

 

$H_0$ = "Дані взято з нормального розподілу"

Експериментальний дизайн у Python

Тест Шапіро — Вілка

 

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
    • Не відхиляємо $H_0$ → ймовірно нормальний
Експериментальний дизайн у Python

Тест Андерсона — Дарлінга

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]
    • Не відхиляємо $H_0$ → ймовірно нормальний
Експериментальний дизайн у Python

Давайте потренуємось!

Експериментальний дизайн у Python

Preparing Video For Download...