Datos normales

Diseño experimental en Python

James Chapman

Curriculum Manager, DataCamp

La distribución normal

 

  • La conocida forma de campana
  • Relacionada con el z-score

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

  • Media = 0, desv. típ. = 1
    • «¿Cuántas desviaciones típicas está este punto de la media?»
    • «¿Cuál es la probabilidad de obtener este valor?»

 

Gráfico típico de una campana azul sobre fondo blanco.

Diseño experimental en Python

Datos normales y pruebas estadísticas

 

  • Requerida en pruebas paramétricas
  • No paramétricas: no asumen normalidad

 

Gráfico típico de una campana azul sobre fondo blanco.

Diseño experimental en Python

Normal, Z y alfa

 

  • Vínculo clave con el nivel de significación ($\alpha$)
  • Compara el p-valor con $\alpha$
  • Probabilidad de error de tipo I

 

Una normal con dos pequeñas áreas sombreadas en las colas

Diseño experimental en Python

Visualizar datos normales

 

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

 

Una campana más alta y estrecha que la típica, pero con la forma clásica de campana

Diseño experimental en Python

Gráficos QQ

Gráfico QQ: compara datos con una distribución

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • Ideal: puntos pegados a la línea
  • Mal: se arquean en los extremos

 

Un gráfico QQ donde casi todos los puntos se pegan a la línea media de 45 grados

Un gráfico QQ donde los puntos del centro se pegan a la línea de 45 grados pero en ambos extremos se curvan hacia dentro

Diseño experimental en Python

Pruebas de normalidad

 

  • Shapiro-Wilk (mejor para muestras pequeñas)
  • D'Agostino $K^2$ (usa curtosis y asimetría)
  • Anderson-Darling (devuelve una lista de valores)

 

$H_0$ = "Los datos vienen de una normal"

Diseño experimental en Python

Prueba de 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
    • No se rechaza $H_0$ → probablemente normal
Diseño experimental en Python

Prueba de 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]
    • No se rechaza $H_0$ → probablemente normal
Diseño experimental en Python

¡Vamos a practicar!

Diseño experimental en Python

Preparing Video For Download...