การทดสอบสมมติฐานสำหรับข้อมูลขนาดใหญ่ควรมีระดับความแตกต่างตามที่ต้องการแทนที่จะพิจารณาว่ามีความแตกต่างหรือไม่ คุณไม่สนใจใน H0 ว่าค่าประมาณนั้นเป็น 0 วิธีการทั่วไปคือการทดสอบว่าความแตกต่างระหว่างสมมติฐานว่างกับค่าที่สังเกตได้มีค่ามากกว่าค่าตัดที่กำหนด
X1¯>X2¯
T=X1¯−X2¯−δS2n−−−√+δS2n−−−√≈N(δS2n−−−√,1)
T=X1¯−X2¯S2n−−−√≈N(δS2n−−−√,1)
H0:X1¯−X2¯=δ
X1¯−X2¯−δS2n−−−√≈N(0,1)
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)
ซึ่งจะช่วยให้ :
> 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