पृष्ठभूमि
मैं फिटिंग मॉडलों पर एक कोर्स में पहला उदाहरण समझने की कोशिश कर रहा हूं (इसलिए यह बहुत सरल लग सकता है)। मैंने हाथ से गणना की है और वे उदाहरण से मेल खाते हैं, लेकिन जब मैं उन्हें आर में दोहराता हूं, तो मॉडल गुणांक बंद हो जाते हैं। मैंने सोचा था कि अंतर पाठ्यपुस्तक के कारण हो सकता है जनसंख्या विचरण ( ) का उपयोग करते हुए, जबकि आर नमूना विचलन ( ) का उपयोग कर सकता है , लेकिन मैं नहीं देख सकता कि ये गणना में कहां उपयोग किए जाते हैं। उदाहरण के लिए, यदि
कहीं पर मदद करता है, तो नोटों पर सहायता अनुभाग :lm()
var()
var()
भाजक n - 1 का उपयोग किया जाता है जो कि iid अवलोकनों के लिए (सह) भिन्नता का निष्पक्ष अनुमानक देता है।
मैंने दोनों के लिए कोड को देखा है lm()
और दोनों का lm.fit()
उपयोग नहीं किया है var()
, लेकिन lm.fit()
उस डेटा को संकलित सी कोड ( z <- .Call(C_Cdqrls, x, y, tol, FALSE)
) में पास किया है, जिसकी मुझे पहुंच नहीं है।
सवाल
क्या कोई समझा सकता है कि आर अलग-अलग परिणाम क्यों दे रहा है? यहां तक कि अगर नमूना बनाम जनसंख्या विचलन का उपयोग करने में अंतर है, तो गुणांक अनुमान भिन्न क्यों हैं?
डेटा
स्कूल में ग्रेड से जूते के आकार की भविष्यवाणी करने के लिए एक लाइन फिट करें।
# model data
mod.dat <- read.table(
text = 'grade shoe
1 1
2 5
4 9'
, header = T);
# mean
mod.mu <- mean(mod.dat$shoe);
# variability
mod.var <- sum((mod.dat$shoe - mod.mu)^2)
# model coefficients from textbook
mod.m <- 8/3;
mod.b <- -1;
# predicted values ( 1.666667 4.333333 9.666667 )
mod.man.pred <- mod.dat$grade * mod.m + mod.b;
# residuals ( -0.6666667 0.6666667 -0.6666667 )
mod.man.resid <- (mod.dat$shoe - mod.man.pred)
# residual variance ( 1.333333 )
mod.man.unexpl.var <- sum(mod.man.resid^2);
# r^2 ( 0.9583333 )
mod.man.expl.var <- 1 - mod.man.unexpl.var / mod.var;
# but lm() gives different results:
summary(lm(shoe ~ grade, data = mod.dat))
Call:
lm(formula = shoe ~ grade, data = mod.dat)
Residuals:
1 2 3
-0.5714 0.8571 -0.2857
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.0000 1.3093 -0.764 0.585
grade 2.5714 0.4949 5.196 0.121
Residual standard error: 1.069 on 1 degrees of freedom
Multiple R-squared: 0.9643, Adjusted R-squared: 0.9286
F-statistic: 27 on 1 and 1 DF, p-value: 0.121
संपादित करें
जैसा कि बेन बोल्कर ने दिखाया है, ऐसा लगता है कि शिक्षक कभी-कभी गलतियाँ करते हैं। ऐसा लगता है कि आर गणना सही है। मोरल ऑफ़ द स्टोरी: कुछ विश्वास मत करो क्योंकि एक शिक्षक कहता है कि यह सच है। इसे अपने लिए सत्यापित करें!
lm
आर में समारोह के मामले में , सचमुच हजारों लोगों ने अन्य चीजों के साथ तुलना करके परिणामों की जांच की है, और lm
कोड में कुछ भी बदलाव होने पर हर बार ज्ञात उदाहरणों के खिलाफ आउटपुट की जांच की जाती है। यहां उत्तरों के साथ, कम से कम कुछ लोगों की जांच करने की संभावना है (आपके प्रश्न को 29 बार देखा गया है)।
mod.m=8/3
। क्योंकि अगर आप सेट करते हैंmod.m=2.5714
, तो वे समान प्रतीत होते हैं।