@DikranMarsupial memang benar, tentu saja, tetapi terlintas dalam benak saya bahwa mungkin lebih baik untuk mengilustrasikan maksudnya, terutama karena kekhawatiran ini tampaknya sering muncul. Secara khusus, residu model regresi harus didistribusikan secara normal agar nilai-p menjadi benar. Namun, bahkan jika residu terdistribusi secara normal, itu tidak menjamin bahwa akan menjadi (bukan berarti itu penting ...); itu tergantung pada distribusi XYX .
Mari kita ambil contoh sederhana (yang saya buat). Katakanlah kita sedang menguji obat untuk hipertensi sistolik terisolasi (yaitu, angka tekanan darah tinggi terlalu tinggi). Mari kita tentukan lebih lanjut bahwa bp sistolik biasanya terdistribusi dalam populasi pasien kami, dengan rata-rata 160 & SD 3, dan untuk setiap mg obat yang dikonsumsi setiap hari, bp sistolik turun 1 mmHg. Dengan kata lain, nilai sebenarnya dari adalah 160, dan ß 1 adalah -1, dan fungsi pembangkit data yang benar adalah:
B P s y s = 160 - 1 × dosis obat harian + εβ0β1
Dalam penelitian fiktif kami, 300 pasien ditugaskan secara acak untuk mengonsumsi 0mg (plasebo), 20mg, atau 40mg obat baru ini per hari. (Perhatikan bahwa X tidak terdistribusi secara normal.) Kemudian, setelah periode waktu yang cukup untuk obat tersebut berlaku, data kami mungkin terlihat seperti ini:
B Ps ys= 160 - 1 × dosis obat harian + εdimana ε ∼ N( 0 , 9 )
X
(Saya jittered dosis sehingga poin tidak akan tumpang tindih sehingga sulit untuk dibedakan.) Sekarang, mari kita periksa distribusi (yaitu, itu distribusi marjinal / asli), dan residu: Y
YY
YXp < 0,05β1
set.seed(123456789) # this make the simulation repeatable
b0 = 160; b1 = -1; b1_null = 0 # these are the true beta values
x = rep(c(0, 20, 40), each=100) # the (non-normal) drug dosages patients get
estimated.b1s = vector(length=10000) # these will store the simulation's results
estimated.b1ns = vector(length=10000)
null.p.values = vector(length=10000)
for(i in 1:10000){
residuals = rnorm(300, mean=0, sd=3)
y.works = b0 + b1*x + residuals
y.null = b0 + b1_null*x + residuals # everything is identical except b1
model.works = lm(y.works~x)
model.null = lm(y.null~x)
estimated.b1s[i] = coef(model.works)[2]
estimated.b1ns[i] = coef(model.null)[2]
null.p.values[i] = summary(model.null)$coefficients[2,4]
}
mean(estimated.b1s) # the sampling distributions are centered on the true values
[1] -1.000084
mean(estimated.b1ns)
[1] -8.43504e-05
mean(null.p.values<.05) # when the null is true, p<.05 5% of the time
[1] 0.0532
Hasil ini menunjukkan bahwa semuanya berjalan dengan baik.
X YX