आर में मल्टीपल लीनियर रिग्रेशन कैसे करें


यह मार्गदर्शिका आर में एकाधिक रैखिक प्रतिगमन कैसे करें इसका एक उदाहरण दिखाती है, जिसमें शामिल हैं:

  • मॉडल फिट करने से पहले डेटा की जांच करें
  • मॉडल समायोजन
  • मॉडल मान्यताओं की जाँच करना
  • मॉडल आउटपुट की व्याख्या करना
  • फिट की मॉडल अच्छाई का आकलन करना
  • पूर्वानुमान लगाने के लिए मॉडल का उपयोग करें

चल दर!

सुविधा

इस उदाहरण के लिए, हम अंतर्निहित आर डेटासेट एमटीकार्स का उपयोग करेंगे, जिसमें 32 विभिन्न कारों की विभिन्न विशेषताओं की जानकारी शामिल है:

 #view first six lines 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

इस उदाहरण में, हम एक मल्टीपल लीनियर रिग्रेशन मॉडल बनाएंगे जो प्रतिक्रिया चर के रूप में mpg और भविष्यवक्ता चर के रूप में disp , hp और drat का उपयोग करता है।

 #create new data frame that contains only the variables we would like to use to
data <- mtcars[, c("mpg", "disp", "hp", "drat")]

#view first six rows of new data frame
head(data)

# mpg disp hp drat
#Mazda RX4 21.0 160 110 3.90
#Mazda RX4 Wag 21.0 160 110 3.90
#Datsun 710 22.8 108 93 3.85
#Hornet 4 Drive 21.4 258 110 3.08
#Hornet Sportabout 18.7 360 175 3.15
#Valiant 18.1 225 105 2.76

डेटा समीक्षा

मॉडल को फिट करने से पहले, हम इसे बेहतर ढंग से समझने के लिए डेटा को देख सकते हैं और यह भी मूल्यांकन कर सकते हैं कि इस डेटा को फिट करने के लिए मल्टीपल लीनियर रिग्रेशन एक अच्छा मॉडल हो सकता है या नहीं।

विशेष रूप से, हमें यह जांचने की आवश्यकता है कि क्या भविष्यवक्ता चर का प्रतिक्रिया चर के साथ एक रैखिक संबंध है, जो इंगित करेगा कि एक एकाधिक रैखिक प्रतिगमन मॉडल उपयुक्त हो सकता है।

ऐसा करने के लिए, हम चर के प्रत्येक संभावित जोड़े का स्कैटरप्लॉट बनाने के लिए जोड़े() फ़ंक्शन का उपयोग कर सकते हैं:

 pairs(data, pch = 18, col = "steelblue")

इस जोड़े ग्राफ़ से हम निम्नलिखित देख सकते हैं:

  • ऐसा प्रतीत होता है कि एमपीजी और उपलब्धता में एक मजबूत नकारात्मक रैखिक सहसंबंध है
  • ऐसा प्रतीत होता है कि एमपीजी और एचपी में एक मजबूत सकारात्मक रैखिक सहसंबंध है
  • ऐसा प्रतीत होता है कि एमपीजी और ड्रैट में मामूली नकारात्मक रैखिक सहसंबंध है

ध्यान दें कि हम प्रत्येक जोड़ी चर के लिए वास्तविक रैखिक सहसंबंध गुणांक युक्त एक समान प्लॉट बनाने के लिए GGally लाइब्रेरी से ggpairs() फ़ंक्शन का भी उपयोग कर सकते हैं:

 #install and load the GGally library
install.packages("GGally")
library(GGally)

#generate the pairs plot
ggpairs(data)

ऐसा प्रतीत होता है कि प्रत्येक भविष्यवक्ता चर का प्रतिक्रिया चर mpg के साथ एक उल्लेखनीय रैखिक सहसंबंध है, इसलिए हम डेटा में रैखिक प्रतिगमन मॉडल को फिट करने के लिए आगे बढ़ेंगे।

मॉडल समायोजन

R में एकाधिक रैखिक प्रतिगमन मॉडल को फ़िट करने का मूल सिंटैक्स है:

 lm(response_variable ~ predictor_variable1 + predictor_variable2 + ..., data = data)

अपने डेटा का उपयोग करके, हम निम्नलिखित कोड का उपयोग करके मॉडल को फिट कर सकते हैं:

 model <- lm(mpg ~ disp + hp + drat, data = data)

मॉडल मान्यताओं की जाँच करना

मॉडल परिणामों को सत्यापित करने के लिए आगे बढ़ने से पहले, हमें पहले यह सत्यापित करना होगा कि मॉडल धारणाएँ पूरी हुई हैं। अर्थात्, हमें निम्नलिखित की जाँच करने की आवश्यकता है:

1. मॉडल अवशेषों का वितरण लगभग सामान्य होना चाहिए।

हम यह जांच सकते हैं कि क्या यह धारणा अवशेषों का एक सरल हिस्टोग्राम बनाकर पूरी होती है:

 hist(residuals(model), col = "steelblue")

हालाँकि वितरण थोड़ा दायीं ओर झुका हुआ है, लेकिन यह इतना असामान्य नहीं है कि बड़ी चिंता का कारण बने।

2. सभी अवलोकनों के लिए अवशेषों का विचरण सुसंगत होना चाहिए।

इस पसंदीदा स्थिति को होमोसेडैस्टिसिटी के रूप में जाना जाता है। इस धारणा का उल्लंघन विषमलैंगिकता के रूप में जाना जाता है।

यह जांचने के लिए कि क्या यह धारणा पूरी हुई है, हम एक समायोजित/अवशिष्ट मूल्य ग्राफ बना सकते हैं:

 #create fitted value vs residual plot
plot(fitted(model), residuals(model))

#add horizontal line at 0
abline(h = 0, lty = 2)

आदर्श रूप से, हम चाहेंगे कि अवशेष प्रत्येक फिट मूल्य पर समान रूप से बिखरे हुए हों। ग्राफ़ से हम देख सकते हैं कि बड़े फिट मानों के लिए फैलाव थोड़ा बड़ा हो जाता है, लेकिन यह प्रवृत्ति इतनी चरम नहीं है कि बहुत अधिक चिंता का कारण बने।

मॉडल आउटपुट की व्याख्या करना

एक बार जब हम सत्यापित कर लेते हैं कि मॉडल धारणाएं पर्याप्त रूप से पूरी हो गई हैं, तो हम सारांश() फ़ंक्शन का उपयोग करके मॉडल आउटपुट की जांच कर सकते हैं:

 summary(model)

#Call:
#lm(formula = mpg ~ disp + hp + drat, data = data)
#
#Residuals:
# Min 1Q Median 3Q Max 
#-5.1225 -1.8454 -0.4456 1.1342 6.4958 
#
#Coefficients:
#Estimate Std. Error t value Pr(>|t|)   
#(Intercept) 19.344293 6.370882 3.036 0.00513 **
#disp -0.019232 0.009371 -2.052 0.04960 * 
#hp -0.031229 0.013345 -2.340 0.02663 * 
#drat 2.714975 1.487366 1.825 0.07863 . 
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
#Residual standard error: 3.008 on 28 degrees of freedom
#Multiple R-squared: 0.775, Adjusted R-squared: 0.7509 
#F-statistic: 32.15 on 3 and 28 DF, p-value: 3.28e-09

परिणाम से हम निम्नलिखित देख सकते हैं:

  • मॉडल का समग्र एफ-आँकड़ा 32.15 है और संबंधित पी-मान 3.28e-09 है। यह इंगित करता है कि समग्र मॉडल सांख्यिकीय रूप से महत्वपूर्ण है। दूसरे शब्दों में, प्रतिगमन मॉडल समग्र रूप से उपयोगी है।
  • डिस्प 0.10 महत्व स्तर पर सांख्यिकीय रूप से महत्वपूर्ण है। विशेष रूप से, मॉडल परिणामों से गुणांक इंगित करता है कि उपलब्धता में एक-इकाई वृद्धि एमपीजी में औसतन -0.019 इकाई की कमी के साथ जुड़ी हुई है, यह मानते हुए कि अश्वशक्ति और ईंधन की खपत स्थिर रहती है। .
  • एचपी 0.10 महत्व स्तर पर सांख्यिकीय रूप से महत्वपूर्ण है। विशेष रूप से, मॉडल परिणामों से गुणांक इंगित करता है कि अश्वशक्ति में एक इकाई की वृद्धि एमपीजी में औसतन -0.031 इकाइयों की कमी के साथ जुड़ी हुई है, यह मानते हुए कि डिस्प और ड्रैट स्थिर रहते हैं।
  • ड्राट 0.10 महत्व स्तर पर सांख्यिकीय रूप से महत्वपूर्ण है। विशेष रूप से, मॉडल परिणामों से गुणांक इंगित करता है कि गैसोलीन खपत में एक इकाई की वृद्धि एमपीजी की 2,715 इकाइयों की औसत वृद्धि के साथ जुड़ी हुई है, यह मानते हुए कि प्रवाह दर और अश्वशक्ति स्थिर रहती है।

फिट की मॉडल अच्छाई का आकलन करना

यह आकलन करने के लिए कि प्रतिगमन मॉडल डेटा में कितनी अच्छी तरह फिट बैठता है, हम कुछ अलग-अलग मैट्रिक्स देख सकते हैं:

1. एकाधिक आर-वर्ग

यह भविष्यवक्ता चर और प्रतिक्रिया चर के बीच रैखिक संबंध की ताकत को मापता है। 1 का R-वर्ग गुणज एक पूर्ण रैखिक संबंध को इंगित करता है जबकि 0 का R-वर्ग गुणज कोई रैखिक संबंध नहीं दर्शाता है।

एकाधिक आर, आर वर्ग का वर्गमूल भी है, जो प्रतिक्रिया चर में भिन्नता का अनुपात है जिसे भविष्यवक्ता चर द्वारा समझाया जा सकता है। इस उदाहरण में, R-वर्ग गुणक 0.775 है। तो R वर्ग 0.775 2 = 0.601 है। यह इंगित करता है कि एमपीजी में 60.1% भिन्नता को मॉडल भविष्यवक्ताओं द्वारा समझाया जा सकता है।

संबंधित: एक अच्छा आर-वर्ग मान क्या है?

2. अवशिष्ट मानक त्रुटि

यह प्रेक्षित मानों और प्रतिगमन रेखा के बीच की औसत दूरी को मापता है। इस उदाहरण में, देखे गए मान प्रतिगमन रेखा से औसतन 3.008 इकाइयों तक विचलित होते हैं

संबंधित:   प्रतिगमन की मानक त्रुटि को समझना

पूर्वानुमान लगाने के लिए मॉडल का उपयोग करें

मॉडल परिणामों से, हम जानते हैं कि फिट किया गया एकाधिक रैखिक प्रतिगमन समीकरण है:

हैट mpg = -19.343 – 0.019*डिस्प – 0.031*एचपी + 2.715*ड्रेट

हम इस समीकरण का उपयोग यह अनुमान लगाने के लिए कर सकते हैं कि नए अवलोकनों के लिए एमपीजी क्या होगा। उदाहरण के लिए, हम उस कार के लिए अनुमानित mpg मान पा सकते हैं जिसमें निम्नलिखित विशेषताएँ हैं:

  • प्रदर्शन = 220
  • सीएच = 150
  • ड्रेट = 3
 #define the coefficients from the model output
intercept <- coef(summary(model))["(Intercept)", "Estimate"]
disp <- coef(summary(model))["disp", "Estimate"]
hp <- coef(summary(model))["hp", "Estimate"]
drat <- coef(summary(model))["drat", "Estimate"]

#use the model coefficients to predict the value for mpg
intercept + disp*220 + hp*150 + drat*3

#[1] 18.57373

डिस्प = 220, एचपी = 150 और ड्रैट = 3 वाली कार के लिए, मॉडल भविष्यवाणी करता है कि कार को 18.57373 एमपीजी मिलेगा।

आप इस ट्यूटोरियल में उपयोग किया गया पूरा आर कोड यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य प्रकार के प्रतिगमन मॉडल को कैसे फिट किया जाए:

आर में द्विघात प्रतिगमन कैसे करें
आर में बहुपद प्रतिगमन कैसे करें
आर में घातीय प्रतिगमन कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *