ประเด็นการทดสอบคือคุณต้องการปฏิเสธสมมติฐานว่างของคุณไม่ใช่ยืนยัน ความจริงที่ว่าไม่มีความแตกต่างอย่างมีนัยสำคัญไม่มีทางพิสูจน์การขาดความแตกต่างที่สำคัญ สำหรับสิ่งนั้นคุณจะต้องกำหนดขนาดของเอฟเฟกต์ที่คุณเห็นว่าเหมาะสมเพื่อปฏิเสธค่าว่าง
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
ตอนนี้คุณควรตระหนักถึงความจริงที่ว่าขนาดเอฟเฟกต์ที่แตกต่างกันมีความสำคัญคือ
> qt(0.975,DF)*seslope
[1] 0.08672358
โดยมีเงื่อนไขว่าเรามีตัวประมาณค่าที่เหมาะสมของข้อผิดพลาดมาตรฐานบนความชัน ดังนั้นหากคุณตัดสินใจว่าควรตรวจจับความแตกต่างที่สำคัญจาก 0.1 คุณสามารถคำนวณ DF ที่จำเป็นดังนี้:
optimize(
function(x)abs(qt(0.975,x)*seslope - 0.1),
interval=c(5,500)
)
$minimum
[1] 6.2593
ใจคุณนี่มันขึ้นอยู่กับการประมาณของ seslope เพื่อให้ได้ค่าประมาณที่ดีกว่าสำหรับ seslope คุณสามารถทำการ resampling ข้อมูลของคุณได้ วิธีที่ไร้เดียงสาจะเป็น:
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 ในฟังก์ชั่นการเพิ่มประสิทธิภาพผลตอบแทน:
$minimum
[1] 6.954609
ทั้งหมดนี้จะบอกคุณว่าชุดข้อมูลของคุณจะให้ผลลัพธ์ที่สำคัญเร็วกว่าที่คุณเห็นว่าจำเป็นและคุณต้องการเพียง 7 องศาอิสระ (ในกรณีนี้คือ 9 ข้อสังเกต) หากคุณต้องการให้แน่ใจว่าสิ่งที่ไม่สำคัญคือสิ่งที่คุณต้องการ วิธี