Normalfördelade data

Experimentell design i Python

James Chapman

Curriculum Manager, DataCamp

Normalfördelningen

 

  • Den välkända klockformade kurvan
  • Kopplad till z-poängberäkningar

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

  • Medelvärde = 0, std = 1
    • "Hur många standardavvikelser är punkten från medelvärdet?"
    • "Vad är sannolikheten att få detta värde?"

 

En graf över en typisk klockformad kurva, en blå klockformad linje mot vit bakgrund.

Experimentell design i Python

Normalfördelade data och statistiska tester

 

  • Krävs för parametriska tester
  • Icke-parametriska tester: förutsätter inte normalfördelade data

 

En graf över en typisk klockformad kurva, en blå klockformad linje mot vit bakgrund.

Experimentell design i Python

Normal, Z och alfa

 

  • Viktig koppling till signifikansnivån ($\alpha$)
  • Jämför p-värdet med $\alpha$
  • Sannolikheten för ett Typ I-fel

 

En normalfördelning med två små svartfyllda områden i varje svans

Experimentell design i Python

Visualisera normalfördelade data

 

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

 

En klockformad fördelning som är smalare och högre än den traditionella men fortfarande med typisk klockform

Experimentell design i Python

QQ-plottar

QQ-plot: jämför data med en given fördelning

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • Idealt: punkterna följer linjen
  • Dåligt: buktnar utåt vid ändarna

 

En QQ-plot där alla punkter ligger nära den mittersta 45-graderslinjen

En QQ-plot där punkterna i mitten följer linjen nära men buktnar inåt vid båda ändarna och bildar en böjd linje

Experimentell design i Python

Test för normalitet

 

  • Shapiro-Wilk (lämplig för mindre datamängder)
  • D'Agostino $K^2$ (använder kurtosis och skevhet)
  • Anderson-Darling (returnerar en lista med värden)

 

$H_0$ = "Data är hämtad från en normalfördelning"

Experimentell design i Python

Ett Shapiro-Wilk-test

 

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
    • Förkastar inte $H_0$ → troligen normalfördelad
Experimentell design i Python

Ett Anderson-Darling-test

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]
    • Förkastar inte $H_0$ → troligen normalfördelad
Experimentell design i Python

Nu kör vi en övning!

Experimentell design i Python

Preparing Video For Download...