Considere lo siguiente simple python
código:
import numpy as np
import scipy.stats as stats
np.random.seed(1000)#(seed)
for i in range(10):
X = np.random.normal(0,1,2000000)
Y = np.random.normal(0,1,2000000)
print(stats.ttest_ind(X,Y))
Ya que ambos $X$ y $Y$ se muestrean a partir de la misma distribución normal (misma media y misma varianza) Esperaba que los valores p devueltos fueran bastante altos. Sin embargo, en realidad, en mi máquina, obtengo la siguiente salida:
(-0.63504239247902361, 0.52540080331521977)
(0.95766169154615455, 0.33823343778490922)
(0.77495702809122613, 0.43836509803793244)
(1.0889385249318819, 0.27618106157897093)
(0.97293351367380154, 0.33058640601636757)
(1.3556340433654583, 0.17521571107906755)
(0.58921373947134548, 0.55571793482831677)
(0.91391361607063426, 0.36076229350915234)
(0.62066063893057222, 0.5348229679159715)
(2.3510055029223147, 0.018722805219522423)
Fíjese que para $ \alpha =0.05$ el último par de muestras sugeriría que debería rechazar la hipótesis nula, a saber que $ \mu_X = \mu_Y $ .
Como un control de cordura corrí,
stats.ttest_ind(X,X)
que da lugar a (0.0, 1.0)
como se esperaba. Además, también he hecho lo siguiente:
import numpy as np
import scipy.stats as stats
np.random.seed(1000)#(seed)
for i in range(10):
X = np.random.normal(0,1,2000000)
Y = np.random.normal(10,1,2000000) # Different mean for Y
print(stats.ttest_ind(X,Y))
que siempre dio un valor p cero, como esperaba.
La pregunta: ¿Qué está pasando aquí? ¿Por qué es este el comportamiento y qué me estoy perdiendo?
1 votos
Aunque es difícil determinar exactamente cuál es su pregunta, se trata de asuntos que se discuten a fondo en stats.stackexchange.com/questions/31 . Tal vez las respuestas que allí se ofrecen le resulten útiles.