Les tests d'hypothèses pour des données volumineuses doivent prendre en compte le niveau de différence souhaité, plutôt que de déterminer s'il existe une différence ou non. Le chiffre H0 ne vous intéresse pas car l'estimation est exactement égale à 0. Une approche générale consisterait à vérifier si la différence entre l'hypothèse nulle et la valeur observée est supérieure à une valeur seuil donnée.
Un exemple simple avec le test T: Vous pouvez faire les hypothèses suivantes pour les grandes tailles d’échantillon, étant donné que vous avez des tailles d’échantillon et des écarts types égaux dans les deux groupes, et :
donc
X1¯>X2¯
T=X1¯−X2¯−δS2n−−−√+δS2n−−−√≈N(δS2n−−−√,1)
T=X1¯−X2¯S2n−−−√≈N(δS2n−−−√,1)
comme votre hypothèse nulle implique:H0:X1¯−X2¯=δ
X1¯−X2¯−δS2n−−−√≈N(0,1)
Ceci, vous pouvez facilement utiliser pour tester une différence significative et pertinente. Dans R, vous pouvez également utiliser le paramètre de non-centralité des distributions T pour généraliser ce résultat aux échantillons plus petits. Vous devez prendre en compte qu'il s'agit d'un test unilatéral, l'alternative est .HAX1¯−X2¯>δ
mod.test <- function(x1,x2,dif,...){
avg.x1 <- mean(x1)
avg.x2 <- mean(x2)
sd.x1 <- sd(x1)
sd.x2 <- sd(x2)
sd.comb <- sqrt((sd.x1^2+sd.x2^2)/2)
n <- length(x1)
t.val <- (abs(avg.x1-avg.x2))*sqrt(n)/sd.comb
ncp <- (dif*sqrt(n)/sd.comb)
p.val <- pt(t.val,n-1,ncp=ncp,lower.tail=FALSE)
return(p.val)
}
n <- 5000
test1 <- replicate(100,
t.test(rnorm(n),rnorm(n,0.05))$p.value)
table(test1<0.05)
test2 <- replicate(100,
t.test(rnorm(n),rnorm(n,0.5))$p.value)
table(test2<0.05)
test3 <- replicate(100,
mod.test(rnorm(n),rnorm(n,0.05),dif=0.3))
table(test3<0.05)
test4 <- replicate(100,
mod.test(rnorm(n),rnorm(n,0.5),dif=0.3))
table(test4<0.05)
Qui donne :
> table(test1<0.05)
FALSE TRUE
24 76
> table(test2<0.05)
TRUE
100
> table(test3<0.05)
FALSE
100
> table(test4<0.05)
TRUE
100