इनपुट के रूप में मूल डेटा का उपयोग करते समय आर में पूर्वानुमान () फ़ंक्शन द्वारा लौटाए गए अनुमानित मान क्या हैं?


11

reg <- lm(y ~ x1 + x2, data=example)डेटासेट पर फ़ॉर्म का एक प्रतिगमन चलाने के बाद , मैं उपयोग किए जाने वाले अनुमानित मान प्राप्त कर सकता हूं

predict(reg, example, interval="prediction", level=0.95)

मैं सोच रहा हूं कि वास्तविक डेटासेट की भविष्यवाणी करने के लिए मैं रिग्रेशन का उपयोग कर रहा हूं तब वास्तव में अनुमानित मूल्य क्या है। क्या मुझे मूल मूल्य प्राप्त नहीं करने चाहिए?

जवाबों:


18

जिस मॉडल के साथ आप काम कर रहे हैं वह फॉर्म लेता है

yi=μ+β1x1i+β2x2i+ϵi (1)

जहाँ एक शून्य-सामान्य सामान्य वितरण से आया एक त्रुटि शब्द है।ϵi

आपने मॉडल फिट किया है और आपने अनुमान प्राप्त किए हैं: , , और । बीटा 1 बीटा 2μ^β^1β^2

अब, यदि आप उनकी सीमा के भीतर कोवरिएट मानों को ठीक करते हैं, तो और , लिए एक अनुमानित मान कंप्यूटिंग द्वारा प्राप्त किया जा सकता है एक्स 2 मैं y मैंx1ix2iyi

yi=μ^+β^1x1i+β^2x2i (2)

यदि आपका मॉडल आपके डेटा को पूरी तरह से फिट बैठता है, तो अनुमानित मूल्य वास्तविक मूल्य हैं। लेकिन, सामान्य तौर पर, मानों को मानों के एक सरल रैखिक संयोजन के रूप में प्राप्त नहीं किया जा सकता है (" सभी मॉडल गलत हैं, लेकिन कुछ उपयोगी हैं ")। अन्य शब्दों में, (1) में त्रुटि शब्द का विचरण सामान्य रूप से शून्य नहीं है। लेकिन, मूल रूप से, मॉडल (1) एक अच्छा सन्निकटन है यदि अवशिष्ट (या इनमें से एक छोटा संस्करण) "छोटा" है।x y मैं - y मैंyxyiyi

संपादित करें

अपनी टिप्पणियों में, आपने पूछा कि predict()वास्तव में क्या करता है। यहाँ एक सरल उदाहरण है।

    #generate a simple illustrative data set
> x <- runif(10)
> y <- 5 + 2.7 * x + rnorm(10, mean=0, sd=sqrt(0.15))
> 
>   #fit the model and store the coefficients
> regLin <- lm(y~x)
> coef <- coef(regLin)
> 
>   #use the predict() function
> y_star2 <- predict(regLin)
>   #use equation (2)
> y_star1 <- coef[1] + coef[2] * x
>   #compare
> cbind(y, y_star1, y_star2) 
          y  y_star1  y_star2
1  7.100217 6.813616 6.813616
2  6.186333 5.785473 5.785473
3  7.141016 7.492979 7.492979
4  5.121265 5.282990 5.282990
5  4.681924 4.849776 4.849776
6  6.102339 6.106751 6.106751
7  7.223215 7.156512 7.156512
8  5.158546 5.253380 5.253380
9  7.160201 7.198074 7.198074
10 5.555289 5.490793 5.490793

1
(+1) उस मॉडल पर ध्यान दें (1) जैसा कि लिखा गया है कि मान लिया गया है x1और x2निरंतर भविष्यवाणियां हैं, न कि श्रेणीबद्ध। (क्यों द्वारा अवरोधन को संकेतित नहीं ?)β0
CHL

@ocram तब वास्तव में क्या भविष्यवाणी कार्य कर रहा है जब मैं उसी डेटासेट और संबंधित प्रतिगमन समीकरण का उपयोग कर रहा हूं?
upabove

@chl, क्या इसका मतलब यह है कि श्रेणीबद्ध भविष्यवक्ताओं के साथ अनुमान एक glm (या glm.nb) मॉडल पर नहीं होना चाहिए? पूर्व के लिए: डेटा <- data.frame (y = as.numeric (c (10,15,12,1,0,2,180,200,188,181,300,288)), p = as.factor (c (rep ("हाँ", 6), प्रतिनिधि) ("नहीं", 6)), t = as.factor (c (प्रतिनिधि ("tp1", 3), rep ("tp2", 3), rep ("tp1", 3), rep ("tp2") , 3))))) की आवश्यकता है (MASS) nb_fit <- glm.nb (y ~ p * t, data = dat) pre_fit <- भविष्यवाणी (nb_fit, type = "response")
अरुण

@chl: आप सही कह रहे हैं: my को सामान्य वितरण के माध्यम से भ्रमित नहीं होना चाहिए। निश्चित रूप से एक बेहतर अंकन है। β 0μβ0
ओकराम

1
kk1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.