Testin amacı, sıfır hipotezinizi reddetmek, reddetmek istemenizdir. Önemli bir fark olmaması, hiçbir şekilde önemli bir farkın olmadığının kanıtı değildir. Bunun için, null değerini reddetmek için hangi efekt büyüklüğünü makul bulduğunuzu tanımlamanız gerekir.
s l o p e - 1
set.seed(20); y = rnorm(20); x = y + rnorm(20, 0, 0.2)
model <- lm(y~x)
coefx <- coef(summary(model))[2,1]
seslope <- coef(summary(model))[2,2]
DF <- model$df.residual
# normal test
p <- (1 - pt(coefx/seslope,DF) )*2
# test whether different from 1
p2 <- (1 - pt(abs(coefx-1)/seslope,DF) )*2
Şimdi, bir farkın önemli hale geldiği etki büyüklüğünün,
> qt(0.975,DF)*seslope
[1] 0.08672358
eğimdeki standart hatanın iyi bir tahmincisine sahip olmamız koşuluyla. Bu nedenle, önemli bir farkın sadece 0.1'den tespit edilmesi gerektiğine karar verirseniz, gerekli DF'yi aşağıdaki gibi hesaplayabilirsiniz:
optimize(
function(x)abs(qt(0.975,x)*seslope - 0.1),
interval=c(5,500)
)
$minimum
[1] 6.2593
Dikkat edin, bu seslope tahminine oldukça bağlıdır. Seslop hakkında daha iyi bir tahmin elde etmek için verilerinizin yeniden örneklenmesini yapabilirsiniz. Saf bir yol olurdu:
n <- length(y)
seslope2 <-
mean(
replicate(n,{
id <- sample(seq.int(n),1)
model <- lm(y[-id]~x[-id])
coef(summary(model))[2,2]
})
)
seslope2'yi optimizasyon işlevine koyarak, şunu döndürür:
$minimum
[1] 6.954609
Tüm bunlar, veri kümenizin gerekli gördüğünüzden daha hızlı önemli bir sonuç döndüreceğini ve anlamlı olmayanın istediğinizi ifade ettiğinden emin olmak istiyorsanız sadece 7 dereceye (bu durumda 9 gözlem) ihtiyacınız olduğunu söyleyecektir. anlamına geliyor.