आर में पूर्वानुमान अंतराल कैसे बनाएं
एक रेखीय प्रतिगमन मॉडल दो चीजों के लिए उपयोगी हो सकता है:
(1) एक या अधिक भविष्यवक्ता चर और एक प्रतिक्रिया चर के बीच संबंध को मापें।
(2) भविष्य के मूल्यों की भविष्यवाणी करने के लिए मॉडल का उपयोग करें।
(2) के संबंध में, जब हम भविष्य के मूल्यों की भविष्यवाणी करने के लिए एक प्रतिगमन मॉडल का उपयोग करते हैं, तो हम अक्सर सटीक मूल्य के साथ-साथ संभावित मूल्यों की एक श्रृंखला वाले अंतराल की भविष्यवाणी करना चाहते हैं। इस अंतराल को पूर्वानुमान अंतराल कहा जाता है।
उदाहरण के लिए, मान लीजिए कि हम भविष्यवक्ता चर के रूप में अध्ययन किए गए घंटों और प्रतिक्रिया चर के रूप में परीक्षा स्कोर का उपयोग करके एक सरल रैखिक प्रतिगमन मॉडल फिट करते हैं। इस मॉडल का उपयोग करके, हम अनुमान लगा सकते हैं कि एक छात्र जो 6 घंटे पढ़ाई करता है वह परीक्षा में 91 अंक प्राप्त करेगा।
हालाँकि, चूँकि इस भविष्यवाणी को लेकर अनिश्चितता है, हम एक भविष्यवाणी अंतराल बना सकते हैं जो दर्शाता है कि 95% संभावना है कि एक छात्र जो 6 घंटे पढ़ाई करता है वह 85 और 97 के बीच परीक्षा स्कोर प्राप्त करेगा। मूल्यों की इस श्रृंखला को 95% पूर्वानुमान अंतराल के रूप में जाना जाता है और यह अक्सर सटीक अनुमानित मूल्य जानने की तुलना में हमारे लिए अधिक उपयोगी होता है।
आर में पूर्वानुमान अंतराल कैसे बनाएं
यह समझाने के लिए कि आर में पूर्वानुमान अंतराल कैसे बनाया जाए, हम अंतर्निहित एमटीकार्स डेटासेट का उपयोग करेंगे, जिसमें कई अलग-अलग कारों की विशेषताओं के बारे में जानकारी शामिल है:
#view first six rows of mtcars head(mtcars) # mpg cyl disp hp drat wt qsec vs am gear carb #Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 #Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 #Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 #Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 #Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 #Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
सबसे पहले, हम डिस्प को प्रेडिक्टर वेरिएबल के रूप में और एमपीजी को रिस्पॉन्स वेरिएबल के रूप में उपयोग करके एक सरल रैखिक प्रतिगमन मॉडल फिट करेंगे।
#fit simple linear regression model model <- lm(mpg ~ disp, data = mtcars) #view summary of fitted model summary(model) #Call: #lm(formula = mpg ~ availability, data = mtcars) # #Residuals: # Min 1Q Median 3Q Max #-4.8922 -2.2022 -0.9631 1.6272 7.2305 # #Coefficients: #Estimate Std. Error t value Pr(>|t|) #(Intercept) 29.599855 1.229720 24.070 < 2e-16 *** #disp -0.041215 0.004712 -8.747 9.38e-10 *** #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # #Residual standard error: 3.251 on 30 degrees of freedom #Multiple R-squared: 0.7183, Adjusted R-squared: 0.709 #F-statistic: 76.51 on 1 and 30 DF, p-value: 9.38e-10
इसके बाद, हम disp के लिए तीन नए मानों के आधार पर mpg के मूल्य की भविष्यवाणी करने के लिए फिटेड रिग्रेशन मॉडल का उपयोग करेंगे।
#create data frame with three new values for avail new_disp <- data.frame(disp= c(150, 200, 250)) #use the fitted model to predict the value for mpg based on the three new values #for avail predict(model, newdata = new_disp) #1 2 3 #23.41759 21.35683 19.29607
इन मूल्यों की व्याख्या करने का तरीका इस प्रकार है:
- 150 के ईपीए वाली एक नई कार के लिए, हम उम्मीद करते हैं कि उसका एमपीजी 23.41759 होगा।
- 200 के ईपीए वाली एक नई कार के लिए, हम उम्मीद करते हैं कि उसका एमपीजी 21.35683 होगा।
- 250 के ईपीए वाली एक नई कार के लिए, हम उम्मीद करते हैं कि उसका एमपीजी 19.29607 होगा।
इसके बाद, हम इन अनुमानित मूल्यों के आसपास पूर्वानुमान अंतराल बनाने के लिए फिटेड रिग्रेशन मॉडल का उपयोग करेंगे:
#create prediction intervals around the predicted values predict(model, newdata = new_disp, interval = " predict ") # fit lwr upr #1 23.41759 16.62968 30.20549 #2 21.35683 14.60704 28.10662 #3 19.29607 12.55021 26.04194
इन मूल्यों की व्याख्या करने का तरीका इस प्रकार है:
- 150 के ईपीए वाली कार के लिए 95% एमपीजी पूर्वानुमान अंतराल 16.62968 और 30.20549 के बीच है।
- 200 ईपीए वाली कार के लिए 95% एमपीजी पूर्वानुमान अंतराल 14.60704 और 28.10662 के बीच है।
- 250 के ईपीए वाली कार के लिए 95% एमपीजी पूर्वानुमान अंतराल 12.55021 और 26.04194 के बीच है।
डिफ़ॉल्ट रूप से, R 95% पूर्वानुमान अंतराल का उपयोग करता है। हालाँकि, हम लेवल कमांड का उपयोग करके इसे अपनी इच्छानुसार बदल सकते हैं। उदाहरण के लिए, निम्नलिखित कोड दर्शाता है कि 99% पूर्वानुमान अंतराल कैसे बनाएं:
#create 99% prediction intervals around the predicted values predict(model, newdata = new_disp, interval = " predict ", level = 0.99 ) # fit lwr upr #1 23.41759 14.27742 32.55775 #2 21.35683 12.26799 30.44567 #3 19.29607 10.21252 28.37963
ध्यान दें कि 99% पूर्वानुमान अंतराल 95% पूर्वानुमान अंतराल से अधिक व्यापक हैं। यह समझ में आता है क्योंकि अंतराल जितना व्यापक होगा, अनुमानित मूल्य शामिल होने की संभावना उतनी ही अधिक होगी।
आर में पूर्वानुमान अंतराल की कल्पना कैसे करें
निम्नलिखित कोड दर्शाता है कि निम्नलिखित कार्यक्षमता के साथ चार्ट कैसे बनाया जाए:
- उपलब्धता और एमपीजी के लिए डेटा बिंदुओं का एक स्कैटर प्लॉट
- फिटेड रिग्रेशन लाइन के लिए एक नीली रेखा
- ग्रे कॉन्फिडेंस बैंड
- लाल भविष्यवाणी बैंड
#define dataset data <- mtcars[, c("mpg", "disp")] #create simple linear regression model model <- lm(mpg ~ disp, data = mtcars) #use model to create prediction intervals predictions <- predict(model, interval = " predict ") #create dataset that contains original data along with prediction intervals all_data <- cbind(data, predictions) #load ggplot2 library library(ggplot2) #createplot ggplot(all_data, aes(x = disp, y = mpg)) + #define x and y axis variables geom_point() + #add scatterplot points stat_smooth(method = lm) + #confidence bands geom_line(aes(y = lwr), col = "coral2", linetype = "dashed") + #lwr pred interval geom_line(aes(y = upr), col = "coral2", linetype = "dashed") #upr pred interval
आत्मविश्वास अंतराल बनाम पूर्वानुमान अंतराल का उपयोग कब करें
एक पूर्वानुमान अंतराल एक एकल मूल्य के आसपास अनिश्चितता को पकड़ लेता है। एक आत्मविश्वास अंतराल अनुमानित माध्य मानों के आसपास अनिश्चितता को पकड़ लेता है। इस प्रकार, एक पूर्वानुमान अंतराल हमेशा समान मूल्य के लिए विश्वास अंतराल से अधिक व्यापक होगा।
जब आप विशिष्ट व्यक्तिगत भविष्यवाणियों में रुचि रखते हैं तो आपको भविष्यवाणी अंतराल का उपयोग करना चाहिए, क्योंकि एक आत्मविश्वास अंतराल मूल्यों की बहुत संकीर्ण सीमा उत्पन्न करेगा, जिसके परिणामस्वरूप अधिक संभावना होगी कि अंतराल में सही मूल्य शामिल नहीं होगा।