@DikranMarsupial बिल्कुल सही है, लेकिन यह मेरे लिए हुआ कि उसकी बात को स्पष्ट करना अच्छा होगा, खासकर जब से यह चिंता बार-बार सामने आती है। विशेष रूप से, एक प्रतिगमन मॉडल के अवशिष्टों को पी-मान के सही होने के लिए सामान्य रूप से वितरित किया जाना चाहिए। हालाँकि, भले ही अवशेष सामान्य रूप से वितरित किए गए हों, लेकिन यह गारंटी नहीं देता है कि होगा (ऐसा नहीं है कि यह मायने रखता है ...); यह एक्स के वितरण पर निर्भर करता है । Yएक्स
आइए एक सरल उदाहरण लें (जो मैं बना रहा हूं)। मान लें कि हम पृथक सिस्टोलिक उच्च रक्तचाप के लिए एक दवा का परीक्षण कर रहे हैं (यानी, शीर्ष रक्तचाप की संख्या बहुत अधिक है)। आइए आगे बताते हैं कि सिस्टोलिक बीपी सामान्य रूप से हमारी रोगी आबादी के भीतर वितरित किया जाता है, जिसका मतलब 160 और एसडी 3 है, और यह कि दवा के प्रत्येक मिलीग्राम के लिए जो रोगी प्रत्येक दिन लेते हैं, सिस्टोलिक बीपी 1 मिमीएचजी से नीचे चला जाता है। दूसरे शब्दों में, के सही मूल्य 160 है, और बीटा 1 -1 होता है, और सच डेटा पैदा समारोह है:
बी पी एस वाई एस = 160 - 1 × दैनिक दवा खुराक + εβ0β1
हमारे काल्पनिक अध्ययन में, 300 मरीजों को बेतरतीब ढंग 0mg (प्लेसीबो), 20 मिलीग्राम, या 40mg प्रति दिन इस नए दवा के लेने के लिए आवंटित कर रहे हैं। (ध्यान दें कि एक्स सामान्य रूप से वितरित नहीं किया गया है।) फिर, दवा लेने के लिए पर्याप्त समय के बाद, हमारा डेटा इस तरह दिखाई दे सकता है:
बी पीs yरों= 160 - 1 × दैनिक दवा खुराक + εजहां ε ~ एन( 0 , 9 )
एक्स
(मैंने डोजेज का मजाक उड़ाया ताकि अंक इतने अधिक ओवरलैप न हो जाएं कि उन्हें भेद पाना कठिन हो।) अब, के वितरण की जांच करें (यानी, यह सीमांत / मूल वितरण है), और अवशिष्ट: Y
YY
Yएक्सपी < .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
ये परिणाम बताते हैं कि सब कुछ ठीक काम करता है।
एक्स Yएक्स