कुछ मूल्य के खिलाफ टेस्ट मॉडल गुणांक (प्रतिगमन ढलान)


20

आर में, जब मैं एक (सामान्यीकृत) रेखीय मॉडल है ( lm, glm, gls, glmm, ...), मैं कैसे गुणांक (प्रतिगमन ढलान) 0 के अलावा कोई अन्य मूल्य के खिलाफ परीक्षण कर सकते हैं? मॉडल के सारांश में, गुणांक के टी-परीक्षण के परिणाम स्वचालित रूप से रिपोर्ट किए जाते हैं, लेकिन केवल 0. के साथ तुलना के लिए मैं इसे दूसरे मूल्य के साथ तुलना करना चाहता हूं।

मैं जानता हूँ कि मैं reparametrizing साथ एक चाल का उपयोग कर सकते y ~ xके रूप में y - T*x ~ xहै, जहां Tपरीक्षण किया मूल्य है, और इस reparametrized मॉडल चलाने के लिए, लेकिन मैं सरल समाधान, कि संभवतः होगा मूल मॉडल पर काम करना चाहते हैं।


जवाबों:


17

यहां एक व्यापक समाधान है जो किसी भी पैकेज के साथ काम करेगा, या यहां तक ​​कि अगर आपके पास केवल प्रतिगमन आउटपुट (जैसे एक कागज से) है।

गुणांक और उसके मानक त्रुटि को लें।

कंप्यूट । लिए df समान हैं क्योंकि वे साथ परीक्षण के लिए होंगे ।टी=β^-βएच0से(β^)टीएच0:β=0


1
धन्यवाद ग्लेन, मैं इसे [इस महान उत्तर] से जानता हूं। लेकिन टी-वैल्यू से मुझे पी-वैल्यू कैसे मिलेगी?
जिज्ञासु

2
@ गंभीरpt()
Affine

@ गंभीर: जैसा कि Affine आर फ़ंक्शन को कहता है pt - या कुछ और जो आपको t cdfs का मूल्य देता है। कई पैकेजों में ये हैं, और व्यापक रूप से उपलब्ध टी-टेबल हैं।
Glen_b -Reinstate Monica

यह अच्छा होगा अगर lm, lmer और अन्य ने सीधे शून्य से भिन्न परीक्षण पैरामीटर को स्वीकार कर लिया।
स्कैन

@sk यह पी-वैल्यू पाने के लिए आर कोड की एक एकल पंक्ति है; समरी का आउटपुट लेने के लिए एक छोटा सा फंक्शन लिखना आसान होगा। अपने सटीक स्पेसिफिकेशन्स के लिए एक नया टेबल तैयार करें।
Glen_b -Reinstate मोनिका

10

आप Glen_b द्वारा प्रस्तावित या अधिक सामान्य वाल्ड टेस्ट के रूप में या तो एक साधारण टी-टेस्ट का उपयोग कर सकते हैं।

आरβ=क्षβ

आपके उदाहरण में, जहां आपके पास एक पैरामीटर पर सिर्फ एक परिकल्पना है, आर एक पंक्ति वेक्टर है, जिसमें प्रश्न में पैरामीटर के लिए एक का मान है और शून्य कहीं और है, और q परीक्षण करने के लिए प्रतिबंध के साथ एक स्केलर है।

आर में, आप पैकेज कार से फ़ंक्शन लीनियरहाइपोथिसिस () के साथ वाल्ड टेस्ट चला सकते हैं । यदि दूसरा गुणांक (तर्क परिकल्पना द्वारा संकेत दिया गया है ) तो आप यह जांचना चाहते हैं कि मान लें कि (तर्क rhs ) 0.1 से भिन्न है :

reg <- lm(freeny)
coef(reg)

# wald test for lag.quarterly.revenue =0.1
>library(car)
>linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0.1)
#skip some result, look at last value on last row, of Pr(>F) 
  Res.Df       RSS Df  Sum of Sq      F Pr(>F)
1     35 0.0073811                            
2     34 0.0073750  1 6.0936e-06 0.0281 0.8679

टी-टेस्ट के लिए, यह फ़ंक्शन Glen_b द्वारा दिखाए गए टी-टेस्ट को लागू करता है:

ttest <- function(reg, coefnum, val){
  co <- coef(summary(reg))
  tstat <- (co[coefnum,1]-val)/co[coefnum,2]
  2 * pt(abs(tstat), reg$df.residual, lower.tail = FALSE)
}

> ttest(reg, 2,0.1)
[1] 0.8678848

आइए हम सुनिश्चित करते हैं कि वाल्ड, हमारे टी-टेस्ट और आर डिफॉल्ट टी-टेस्ट की तुलना करके हमें सही प्रक्रिया मिली, मानक परिकल्पना के लिए कि दूसरा गुणांक शून्य है:

> linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0)[["Pr(>F)"]][2]
[1] 0.3904361
> ttest(reg, 2,0)
[1] 0.3904361
## The 'right' answer from R:
> coef(summary(reg))[2,4]
[1] 0.3904361

आपको तीन प्रक्रियाओं के साथ एक ही परिणाम प्राप्त करना चाहिए।


अच्छा लग रहा है! क्या आप कृपया hypothesis.matrixपैरामीटर की व्याख्या कर सकते हैं ?
उत्सुक

मुझे यकीन नहीं है कि अगर वाल्ड परीक्षण करता है। मेरा मतलब सामान्य टी-टेस्ट का उपयोग करना था जो मानकों के साथ-साथ मानक रूप से रिपोर्ट किया जाता है, लेकिन 0 के साथ नहीं बल्कि कुछ अन्य मूल्य के साथ।
जिज्ञासु

@ गंभीर आशा है कि यह अब स्पष्ट है?
मतिफौ

3

अंत में, अब तक का सबसे आसान उपाय था रिपार्टमेट्रीजेशन:

gls(I(y - T*x) ~ x, ...)

क्या वही परिणाम देगा?
स्कैन

लेकिन आप कुछ स्वतंत्र नहीं कर रहे हैं। यह कम से कम वर्गों के लिए मान्यताओं के साथ समस्या नहीं होगी या संपार्श्विकता के साथ? यह lm (y ~ x + + ऑफसेट (T * x)) से कैसे भिन्न है?
स्कैन १०'१ '

1
@ प्रतिगमन एक्स पर सशर्त है, वहां कोई निर्भरता नहीं है; यह ऑफसेट का उपयोग करने के समान होना चाहिए।
Glen_b -Reinstate मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.