R की lm () मेरी पाठ्यपुस्तक की तुलना में अलग गुणांक का अनुमान क्यों लगाती है?


13

पृष्ठभूमि

मैं फिटिंग मॉडलों पर एक कोर्स में पहला उदाहरण समझने की कोशिश कर रहा हूं (इसलिए यह बहुत सरल लग सकता है)। मैंने हाथ से गणना की है और वे उदाहरण से मेल खाते हैं, लेकिन जब मैं उन्हें आर में दोहराता हूं, तो मॉडल गुणांक बंद हो जाते हैं। मैंने सोचा था कि अंतर पाठ्यपुस्तक के कारण हो सकता है जनसंख्या विचरण ( ) का उपयोग करते हुए, जबकि आर नमूना विचलन ( ) का उपयोग कर सकता है , लेकिन मैं नहीं देख सकता कि ये गणना में कहां उपयोग किए जाते हैं। उदाहरण के लिए, यदि कहीं पर मदद करता है, तो नोटों पर सहायता अनुभाग :σ2S2lm()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

संपादित करें

जैसा कि बेन बोल्कर ने दिखाया है, ऐसा लगता है कि शिक्षक कभी-कभी गलतियाँ करते हैं। ऐसा लगता है कि आर गणना सही है। मोरल ऑफ़ द स्टोरी: कुछ विश्वास मत करो क्योंकि एक शिक्षक कहता है कि यह सच है। इसे अपने लिए सत्यापित करें!


2
डबल चेक mod.m=8/3। क्योंकि अगर आप सेट करते हैं mod.m=2.5714, तो वे समान प्रतीत होते हैं।
स्टेट

2
गुणांक mod.m = 8/3 और mod.b = -1 को टिप्पणियों में कहीं भी गणना नहीं की जाती है जहां तक ​​मैं समझता हूं, इसलिए यह स्पष्ट नहीं है। ऊपर @ टिप्पणियों के रूप में, त्रुटि कंप्यूटिंग mod.m में लगता है।
जुहो कोक्कल

2
यह ध्यान रखना महत्वपूर्ण है कि कोई भी गलतियाँ कर सकता है - आपका शिक्षक, आप, यहां उत्तरदाता, आर प्रोग्रामर - कोई भी। इसलिए जब यह पता लगाने की कोशिश की जाती है कि जब चीजें असहमत होती हैं तो गलतियां कैसे हो सकती हैं, इस बात पर विचार करें कि कितने लोग प्रत्येक चीज की जांच कर रहे हैं। lmआर में समारोह के मामले में , सचमुच हजारों लोगों ने अन्य चीजों के साथ तुलना करके परिणामों की जांच की है, और lmकोड में कुछ भी बदलाव होने पर हर बार ज्ञात उदाहरणों के खिलाफ आउटपुट की जांच की जाती है। यहां उत्तरों के साथ, कम से कम कुछ लोगों की जांच करने की संभावना है (आपके प्रश्न को 29 बार देखा गया है)।
Glen_b -Reinstate Monica

1
@Glen_b आपकी बात वास्तव में यही कारण है कि मैं यहां पूछने आया था। मैं समझ नहीं पा रहा था कि इस तरह की बुनियादी गणना पर R कैसे गलत हो सकता है, लेकिन मैं यह पता नहीं लगा सका कि वे अलग क्यों थे। मैं स्रोत कोड के आसपास स्नूप किया गया। लेकिन अंत में, त्रुटि अंतिम स्थान पर थी जिसे मैंने देखना सोचा था, ज्यादातर क्योंकि कलन भाग मेरे ज्ञान की सीमा पर है। हालांकि मैंने जवाब से बहुत कुछ सीखा है!
बाद

2
हां, यह पता लगाने की कोशिश करना महत्वपूर्ण है कि वे अलग क्यों हैं; अगर आप इसे बाहर काम नहीं कर सकते हैं तो यह यहाँ पूछने का मतलब है मैं यह सुझाव देने की कोशिश कर रहा था कि आपके द्वारा माना जाने वाला अंतिम स्थान पहले देखने के स्थानों में से एक क्यों हो सकता है। मुझे एक-दो मौकों पर खुद के उदाहरणों में अंतिम-मिनट के 'सरलीकृत' परिवर्तन करके पकड़ा गया है।
Glen_b -रिटनेट मोनिका

जवाबों:


25

ऐसा लगता है कि लेखक ने कहीं गणितीय त्रुटि की है।

यदि आप राशि-वर्ग विचलन का विस्तार करते हैं

S=((b+m)1)2+((b+2m)5)2+((b+4m)9)2
आपको मिलेगा
S=b2+2bm+m2+12b2m+b2+4bm+4m2+2510b20m+b2+8bm+16m2+8118b72m

जो हो जाता है, जो लेखक की अभिव्यक्ति के समान है, स्थिर शब्द को छोड़कर, जो वैसे भी कोई फर्क नहीं पड़ता)।

3b2+14bm+21m2+10730b94m

अब हमें सिस्टम को और संबंध में के डेरिवेटिव को सेट करके और सिस्टम को हल करके इसे कम करने की कोशिश करनी होगी । Sbm

dS/db=6b+14m303b+7m15=0
dS/dm=14b+42m947b+21m47=0

का समाधान

b=(157m)/30=7(157m)/3+21m474735=(49/3+21)mm=(4735)/(2149/3)=18/7

R का कहना है कि यह वास्तव में 2.571429 है ...

इस लिंक के आधार पर यह एक कसेरा कोर्स से लगता है ...? शायद डेटा का गलत ट्रांसक्रिप्शन कहीं था?

इस गणना को करने का दूसरा, स्वतंत्र तरीका यह है कि अनुमानित प्रतिगमन ढलान क्रॉस उत्पादों के योग के बराबर है ( ) वर्गों के योग से विभाजित ( )।(yy¯)(xx¯)(xx¯)2

g <- c(1,2,4)
g0 <- g - mean(g)
s <- c(1,5,9)
s0 <- s- mean(s)
sum(g0*s0)/(sum(g0^2))
## [1] 2.571429

तो लगता है कि अगर जूता आकार थे के बजाय तो ढलान होगा बाहर 8/3 के लिए आते हैं ...{ 1 , 5 , 9 }{1,11/3,9}{1,5,9}


2
वाह। हाँ आप सही है। यह एक कोर्टेरा कोर्स से है और यह वीडियो से है, ट्रांसक्रिप्शन से नहीं। इसलिए मैं अनुमान लगा रहा हूं कि उसने वीडियो के लिए गणनाओं को सरल बनाने के लिए इसे सरल बनाया और किसी से भी यह अपेक्षा नहीं की कि वह इसे दोहराए। यह सिर्फ पहला वीडियो था जो मैंने देखा था इसलिए मैंने साथ चलने की कोशिश की। यह स्पष्ट है कि जब मुझे गणित की बात आती है तो मुझे अपस्किल करना होगा। मुझे लगता है कि हालांकि त्रुटि मिली। निरंतर शब्द, जिसे आप कहते हैं कि कोई फर्क नहीं पड़ता, शायद सही मूल्य है जो उसकी गणना के माध्यम से है। मैं खुद को सिखाने के लिए आपके उत्तर के माध्यम से कुछ और बार देखूंगा। मैं वास्तव में इसकी प्रशंसा करता हूँ!
पोस्ट-

मुझे नहीं लगता कि लगातार कार्यकाल गणना से बाहर हो जाएगा। यह ढलान और अवरोधन के अनुमान को प्रभावित नहीं करेगा (यह गायब हो जाता है जब हम व्युत्पन्न लेते हैं), केवल अवशिष्ट एसएसक्यू / मानक विचलन का अनुमान है।
बेन बोलकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.