R में मल्टीपल लीनियर रिग्रेशन: सरल और चरणबद्ध रिग्रेशन उदाहरणों सहित
⚡ स्मार्ट सारांश
R में सरल और बहु रैखिक प्रतिगमन (सिंपल लीनियर रिग्रेशन) एक सतत परिणाम को साधारण न्यूनतम वर्ग विधि द्वारा फिट किए गए भविष्यवाणियों के भारित योग के रूप में मॉडल करता है। यह विस्तृत प्रक्रिया lm() फ़ंक्शन, गुणांक पठन, कारक भविष्यवाणियों, अवशिष्ट निदान, भविष्यवाणी और स्वचालित चर चयन को कवर करती है।

मशीन लर्निंग में लीनियर रिग्रेशन की भूमिका
लीनियर रिग्रेशन सबसे पुराने सुपरवाइज्ड तरीकों में से एक है। यंत्र अधिगम एल्गोरिदम, और यह अभी भी पहला मॉडल है जिसका उपयोग अधिकांश विश्लेषक करते हैं। मशीन लर्निंग के शुरुआती अनुप्रयोगों में से एक था... स्पैम छांटना.
मशीन लर्निंग के अन्य सामान्य अनुप्रयोगों में शामिल हैं:
- ईमेल में अवांछित स्पैम संदेशों की पहचान
- लक्षित विज्ञापन के लिए ग्राहक व्यवहार का विभाजन
- धोखाधड़ी वाले क्रेडिट कार्ड लेनदेन में कमी
- घरों और कार्यालय भवनों में ऊर्जा उपयोग का अनुकूलन
- चेहरे की पहचान
पर्यवेक्षित अध्ययन
In पर्यवेक्षित अध्ययन, आपके द्वारा एल्गोरिथम को दिए गए प्रशिक्षण डेटा में एक लेबल शामिल होता है।
वर्गीकरण यह संभवतः सबसे अधिक उपयोग की जाने वाली पर्यवेक्षित शिक्षण तकनीक है। शोधकर्ताओं द्वारा हल किए गए पहले वर्गीकरण कार्यों में से एक स्पैम फ़िल्टर था। इस शिक्षण का उद्देश्य यह अनुमान लगाना है कि कोई ईमेल स्पैम है या हैम (अच्छा ईमेल)। प्रशिक्षण चरण के बाद, मशीन ईमेल के वर्ग का पता लगा सकती है।
प्रतिगमन मशीन लर्निंग के क्षेत्र में सतत मानों की भविष्यवाणी करने के लिए इनका आमतौर पर उपयोग किया जाता है। एक रिग्रेशन कार्य किसी वस्तु के मान की भविष्यवाणी कर सकता है। निर्भर चर के एक सेट के आधार पर स्वतंत्र चर (इन्हें प्रेडिक्टर या रिग्रॉसर भी कहा जाता है)। उदाहरण के लिए, रैखिक रिग्रेशन स्टॉक मूल्य, मौसम पूर्वानुमान, बिक्री आदि की भविष्यवाणी कर सकता है।
कुछ मूलभूत पर्यवेक्षित शिक्षण एल्गोरिदम इस प्रकार हैं:
- रेखीय प्रतिगमन
- रसद प्रतिगमन
- निकटतम पड़ोसी
- समर्थन वेक्टर मशीन (SVM)
- निर्णय वृक्ष और यादृच्छिक वन
- तंत्रिका नेटवर्क
अनसुनी हुई पढ़ाई
In अनसुनी हुई पढ़ाई, प्रशिक्षण डेटा लेबल रहित है। सिस्टम बिना किसी संदर्भ के सीखने की कोशिश करता है। नीचे अप्रशिक्षित शिक्षण एल्गोरिदम की एक सूची दी गई है।
- कश्मीर मीन
- श्रेणीबद्ध Cluster विश्लेषण
- अपेक्षा अधिकतमीकरण
- विज़ुअलाइज़ेशन और आयाम में कमी
- प्रमुख कंपोनेंट विश्लेषण
- कर्नेल पीसीए
- स्थानीय-रैखिक एम्बेडिंग
इस संदर्भ को ध्यान में रखते हुए, इस ट्यूटोरियल के बाकी हिस्से में R में चरण दर चरण रिग्रेशन मॉडल बनाए जाते हैं।
आर में सरल रेखीय प्रतिगमन
लीनियर रिग्रेशन एक सरल प्रश्न का उत्तर देता है: क्या आप एक लक्ष्य चर और भविष्यवाणियों के एक समूह के बीच एक सटीक संबंध को माप सकते हैं?
सबसे सरल संभाव्यता मॉडल सीधी रेखा मॉडल है:
जहां
- y = आश्रित चर
- x = स्वतंत्र चर
-
= यादृच्छिक त्रुटि घटक
-
= अवरोधन
-
= x का गुणांक
निम्नलिखित कथानक पर विचार करें:
समीकरण है इस समीकरण में इंटरसेप्ट 4.77 है, इसलिए जब x शून्य के बराबर होता है तो y का फिटेड मान 4.77 होता है। ढलान से पता चलता है कि x में परिवर्तन होने पर y किस अनुपात में बदलता है।
के इष्टतम मूल्यों का अनुमान लगाने के लिए और
, आप नामक विधि का उपयोग करते हैं साधारण जानवर वर्ग (OLS)यह विधि उन मापदंडों को खोजने का प्रयास करती है जो वर्ग त्रुटियों के योग को न्यूनतम करते हैं, अर्थात पूर्वानुमानित y मानों और वास्तविक y मानों के बीच ऊर्ध्वाधर दूरी। अंतर को के रूप में जाना जाता है त्रुटि शब्द.
मॉडल का अनुमान लगाने से पहले, आप स्कैटरप्लॉट बनाकर यह निर्धारित कर सकते हैं कि y और x के बीच रैखिक संबंध संभव है या नहीं।
स्कैटर प्लॉट
हम सरल रेखीय प्रतिगमन की अवधारणा को समझाने के लिए एक बहुत ही सरल डेटासेट का उपयोग करेंगे। हम अमेरिकी महिलाओं के लिए औसत ऊँचाई और वजन आयात करेंगे। डेटासेट में 15 अवलोकन हैं। आप मापना चाहते हैं कि क्या ऊँचाई वजन के साथ सकारात्मक रूप से सहसंबंधित है।
library(ggplot2) path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/women.csv' df <-read.csv(path) ggplot(df,aes(x=height, y = weight))+ geom_point()
आउटपुट:
स्कैटरप्लॉट से यह प्रवृत्ति झलकती है कि ऊंचाई बढ़ने के साथ वजन भी बढ़ता है। अगले चरण में, आप यह मापेंगे कि ऊंचाई की प्रत्येक अतिरिक्त इकाई के लिए वजन में कितनी वृद्धि होती है।
न्यूनतम वर्ग अनुमान
एक सरल ओएलएस प्रतिगमन में, की गणना और
यह सीधा-सादा है। इस ट्यूटोरियल में सूत्रों को व्युत्पन्न नहीं किया गया है, बल्कि केवल उन्हें बताया गया है।
आप अनुमान लगाना चाहते हैं:
ओएलएस प्रतिगमन का लक्ष्य निम्नलिखित समीकरण को न्यूनतम करना है:
जहां
वास्तविक मूल्य है और
पूर्वानुमानित मूल्य है.
के लिए समाधान is
ध्यान दें कि x का औसत मान मतलब है
के लिए समाधान is
R में, आप cov() और var() फ़ंक्शन का उपयोग करके अनुमान लगा सकते हैं। और आप अनुमान लगाने के लिए mean() फ़ंक्शन का उपयोग कर सकते हैं
beta <- cov(df$height, df$weight) / var (df$height) beta
आउटपुट:
##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height) alpha
आउटपुट:
## [1] -87.51667
बीटा गुणांक से यह पता चलता है कि ऊंचाई में प्रत्येक अतिरिक्त इंच के लिए, औसत वजन 3.45 पाउंड बढ़ जाता है।
किसी रैखिक समीकरण का हाथ से अनुमान लगाना ज्ञानवर्धक तो है, लेकिन अव्यावहारिक है। R यह फ़ंक्शन आपको lm() फ़ंक्शन प्रदान करता है, और आप इसे अगले भाग से आगे उपयोग करेंगे। वास्तविक परियोजनाओं में आप शायद ही कभी एकल-पूर्वसूचक मॉडल को फिट करेंगे; प्रतिगमन कार्यों में आमतौर पर एक साथ कई अनुमानक शामिल होते हैं।
आर में बहु रैखिक प्रतिगमन
प्रतिगमन विश्लेषण के व्यावहारिक अनुप्रयोगों में सरल सीधी रेखा मॉडल की तुलना में अधिक जटिल मॉडल का उपयोग किया जाता है। एक से अधिक स्वतंत्र चर वाले संभाव्यता मॉडल को कहा जाता है बहु प्रतिगमन मॉडलइस मॉडल का सामान्य रूप है:
मैट्रिक्स संकेतन में, आप मॉडल को पुनः लिख सकते हैं:
आश्रित चर y अब k स्वतंत्र चरों का एक फलन है। गुणांक का मान स्वतंत्र चर का योगदान निर्धारित करता है
और
.
हम यादृच्छिक त्रुटि के बारे में अपनी धारणा का संक्षेप में परिचय देते हैं ओएलएस का:
- माध्य 0 के बराबर
- विचरण बराबर
- सामान्य वितरण
- यादृच्छिक त्रुटियाँ स्वतंत्र होती हैं (संभाव्य अर्थ में)
आपको इसका समाधान करना होगा , प्रतिगमन गुणांकों का सदिश जो पूर्वानुमानित और वास्तविक y मानों के बीच वर्ग त्रुटियों के योग को न्यूनतम करता है।
बंद-रूप समाधान है:
संग:
- इंगित करता है खिसकाना मैट्रिक्स X का
इंगित करता है उलटा मैट्रिक्स
नीचे दिए गए उदाहरणों में बिल्ट-इन mtcars डेटासेट का उपयोग किया गया है। इसका उद्देश्य कुछ विशेषताओं के आधार पर माइल्स प्रति गैलन (mpg) का अनुमान लगाना है।
आर में सतत चर
अभी के लिए, आप केवल निरंतर चर का उपयोग करेंगे और श्रेणीबद्ध विशेषताओं को अलग रखेंगे। चर am एक बाइनरी चर है जो मैनुअल ट्रांसमिशन होने पर 1 का मान लेता है और ऑटोमैटिक कारों के लिए 0; vs भी एक बाइनरी चर है।
library(dplyr) df <- mtcars %>% select(-c(am, vs, cyl, gear, carb)) glimpse(df)
आउटपुट:
## Observations: 32 ## Variables: 6 ## $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.... ## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1... ## $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ... ## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9... ## $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3... ## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 2...
आप पैरामीटर की गणना करने के लिए lm() फ़ंक्शन का उपयोग कर सकते हैं। इस फ़ंक्शन का मूल सिंटैक्स है:
lm(formula, data, subset)
Arguments:
-formula: The equation you want to estimate
-data: The dataset used
-subset: Estimate the model on a subset of the dataset
याद रखें कि समीकरण निम्न रूप का होता है
आर में
- प्रतीक = को ~ से प्रतिस्थापित किया गया है
- प्रत्येक x को चर नाम से प्रतिस्थापित किया जाता है
- यदि आप स्थिरांक हटाना चाहते हैं, तो सूत्र के अंत में -1 जोड़ें
उदाहरण:
आप व्यक्तियों की ऊंचाई और आय के आधार पर उनके वजन का अनुमान लगाना चाहते हैं। समीकरण है
R में समीकरण इस प्रकार लिखा जाता है:
y ~ X1+ X2+…+Xn # अवरोधन सहित
तो हमारे उदाहरण के लिए:
- वजन ~ ऊंचाई + राजस्व
आपका उद्देश्य चरों के एक सेट के आधार पर प्रति गैलन मील का अनुमान लगाना है। अनुमान लगाने के लिए समीकरण है:
आप अपने पहले रैखिक प्रतिगमन का अनुमान लगाएंगे और परिणाम को फिट ऑब्जेक्ट में संग्रहीत करेंगे।
model <- mpg ~ disp + hp + drat + wt + qsec
fit <- lm(model, df)
fit
Code व्याख्या
- model <- mpg ~ disp + hp + drat + wt + qsec: अनुमान लगाने के लिए मॉडल को स्टोर करें
- lm(मॉडल, df): डेटा फ़्रेम df के साथ मॉडल का अनुमान लगाएं
## ## Call: ## lm(formula = model, data = df) ## ## Coefficients: ## (Intercept) disp hp drat wt ## 16.53357 0.00872 -0.02060 2.01577 -4.38546 ## qsec ## 0.64015
आउटपुट फिट की गुणवत्ता के बारे में पर्याप्त जानकारी प्रदान नहीं करता है। आप summary() फ़ंक्शन के साथ गुणांकों के महत्व, स्वतंत्रता की डिग्री और अवशिष्टों के आकार जैसे अधिक विवरणों तक पहुँच सकते हैं।
summary(fit)
आउटपुट:
## return the p-value and coefficient ## ## Call: ## lm(formula = model, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.5404 -1.6701 -0.4264 1.1320 5.4996 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 16.53357 10.96423 1.508 0.14362 ## disp 0.00872 0.01119 0.779 0.44281 ## hp -0.02060 0.01528 -1.348 0.18936 ## drat 2.01578 1.30946 1.539 0.13579 ## wt -4.38546 1.24343 -3.527 0.00158 ** ## qsec 0.64015 0.45934 1.394 0.17523 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.558 on 26 degrees of freedom ## Multiple R-squared: 0.8489, Adjusted R-squared: 0.8199 ## F-statistic: 29.22 on 5 and 26 DF, p-value: 6.892e-10
उपरोक्त तालिका आउटपुट से निष्कर्ष
- तालिका wt और mpg के बीच एक मजबूत नकारात्मक संबंध और drat के लिए एक सकारात्मक गुणांक दर्शाती है।
- केवल चर wt का mpg पर सांख्यिकीय प्रभाव होता है। याद रखें, सांख्यिकी में परिकल्पना का परीक्षण करने के लिए, हम उपयोग करते हैं:
- H0: कोई सांख्यिकीय प्रभाव नहीं
- H1: भविष्यवक्ता का आपके जीवन पर सार्थक प्रभाव पड़ता है
- यदि p मान 0.05 से कम है, तो यह इंगित करता है कि चर सांख्यिकीय रूप से महत्वपूर्ण है
- समायोजित आर-स्क्वेर्ड: मॉडल द्वारा y के विचरण का वह भाग जिसे प्रेडिक्टर्स की संख्या के अनुसार समायोजित किया गया है। यहाँ यह 0.8199 है, जिसका अर्थ है कि मॉडल mpg के विचरण का लगभग 82 प्रतिशत भाग स्पष्ट करता है। आर-स्क्वेर्ड का मान हमेशा 0 और 1 के बीच होता है, और जितना अधिक होगा उतना बेहतर होगा।
आप दौड़ सकते हैं एनोवा anova() फ़ंक्शन के साथ विचरणों पर प्रत्येक विशेषता के प्रभाव का अनुमान लगाने के लिए परीक्षण करें।
anova(fit)
आउटपुट:
## Analysis of Variance Table ## ## Response: mpg ## Df Sum Sq Mean Sq F value Pr(>F) ## disp 1 808.89 808.89 123.6185 2.23e-11 *** ## hp 1 33.67 33.67 5.1449 0.031854 * ## drat 1 30.15 30.15 4.6073 0.041340 * ## wt 1 70.51 70.51 10.7754 0.002933 ** ## qsec 1 12.71 12.71 1.9422 0.175233 ## Residuals 26 170.13 6.54 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
मॉडल के प्रदर्शन का अनुमान लगाने का एक अधिक पारंपरिक तरीका विभिन्न मापों के विरुद्ध अवशिष्ट को प्रदर्शित करना है।
आप चार ग्राफ़ दिखाने के लिए plot() फ़ंक्शन का उपयोग कर सकते हैं:
– अवशिष्ट बनाम फिट मूल्य
– सामान्य QQ प्लॉट: सैद्धांतिक चतुर्थक बनाम मानकीकृत अवशिष्ट
- स्केल-स्थान: मानकीकृत अवशिष्टों के वर्गमूल बनाम फिट किए गए मान
– अवशिष्ट बनाम उत्तोलन: उत्तोलन बनाम मानकीकृत अवशिष्ट
आप plot(fit) से पहले par(mfrow = c(2, 2)) कोड जोड़ते हैं। यदि आप यह कोड नहीं जोड़ते हैं, तो R आपको अगला ग्राफ़ प्रदर्शित करने के लिए एंटर दबाने के लिए कहेगा।
par(mfrow = c(2, 2))
Code व्याख्या
- (mfrow=c(2,2)): चार ग्राफों को साथ-साथ दिखाते हुए एक विंडो लौटाता है।
- पहले 2 पंक्तियों की संख्या जोड़ते हैं
- दूसरा 2 स्तंभों की संख्या जोड़ता है।
- यदि आप (mfrow=c(3,2)) लिखते हैं: तो आप 3 पंक्तियों 2 कॉलम वाली विंडो बनाएंगे
plot(fit)
आउटपुट:
lm() सूत्र उपयोगी जानकारी से भरपूर एक सूची लौटाता है। आप अपने द्वारा बनाए गए fit ऑब्जेक्ट का उपयोग करके, $ चिह्न के बाद और वांछित जानकारी लिखकर इस सूची तक पहुँच सकते हैं।tract.
– गुणांक: `fit$coefficients`
– अवशिष्ट: `fit$residuals`
- फिट किया गया मान: `fit$fitted.values`
आर में कारक प्रतिगमन
अंतिम मॉडल अनुमान में, आप केवल निरंतर चर पर mpg को पुनः प्राप्त करते हैं। मॉडल में कारक चर जोड़ना सीधा है। आप अपने मॉडल में चर am जोड़ते हैं। यह सुनिश्चित करना महत्वपूर्ण है कि चर एक कारक स्तर है और निरंतर नहीं है।
df <- mtcars %>%
mutate(cyl = factor(cyl),
vs = factor(vs),
am = factor(am),
gear = factor(gear),
carb = factor(carb))
model <- mpg ~ .
summary(lm(model, df))
आउटपुट:
## ## Call: ## lm(formula = model, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.5087 -1.3584 -0.0948 0.7745 4.6251 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 23.87913 20.06582 1.190 0.2525 ## cyl6 -2.64870 3.04089 -0.871 0.3975 ## cyl8 -0.33616 7.15954 -0.047 0.9632 ## disp 0.03555 0.03190 1.114 0.2827 ## hp -0.07051 0.03943 -1.788 0.0939 . ## drat 1.18283 2.48348 0.476 0.6407 ## wt -4.52978 2.53875 -1.784 0.0946 . ## qsec 0.36784 0.93540 0.393 0.6997 ## vs1 1.93085 2.87126 0.672 0.5115 ## am1 1.21212 3.21355 0.377 0.7113 ## gear4 1.11435 3.79952 0.293 0.7733 ## gear5 2.52840 3.73636 0.677 0.5089 ## carb2 -0.97935 2.31797 -0.423 0.6787 ## carb3 2.99964 4.29355 0.699 0.4955 ## carb4 1.09142 4.44962 0.245 0.8096 ## carb6 4.47757 6.38406 0.701 0.4938 ## carb8 7.25041 8.36057 0.867 0.3995 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.833 on 15 degrees of freedom ## Multiple R-squared: 0.8931, Adjusted R-squared: 0.779 ## F-statistic: 7.83 on 16 and 15 DF, p-value: 0.000124
आर पहले कारक स्तर को आधार समूह के रूप में उपयोग करता है। आपको आधार समूह के विरुद्ध दूसरे समूह के गुणांकों की तुलना करनी होगी।
R में रैखिक प्रतिगमन की मान्यताएँ
साधारण न्यूनतम वर्ग विधि विश्वसनीय गुणांक और पी-मान तभी उत्पन्न करती है जब पाँच शर्तें पूरी होती हैं। प्लॉट(फिट) द्वारा निर्मित चार नैदानिक प्लॉट इन्हीं शर्तों की जाँच के लिए बनाए गए हैं।
- linearity: प्रत्येक प्रेडिक्टर और y के बीच संबंध रैखिक है। जाँच करें अवशिष्ट बनाम फिटेड प्लॉट; एक दृश्यमान वक्र का अर्थ है कि आपको रूपांतरण या बहुपद पद की आवश्यकता है।
- आजादी: त्रुटि पद असंबद्ध हैं। समय-क्रमबद्ध डेटा अक्सर इसका उल्लंघन करता है, जिसका परीक्षण आप कार पैकेज से durbinWatsonTest() का उपयोग करके कर सकते हैं।
- homoscedasticity: त्रुटि विचरण फिट किए गए मानों में स्थिर है। फ़नल के आकार में स्केल-स्थान साजिश उल्लंघन का संकेत देती है।
- अवशिष्टों की सामान्यता: त्रुटियाँ सामान्य वितरण का अनुसरण करती हैं। बिंदु सामान्य वितरण के विकर्ण पर स्थित होने चाहिए। सामान्य क्यूक्यू भूखंड।
- कोई बहुसंरेखता नहीं: भविष्यसूचक कारक एक दूसरे के लगभग समान नहीं होते हैं। 5 से अधिक का विचरण मुद्रास्फीति कारक आमतौर पर चेतावनी का संकेत होता है।
library(car) vif(fit) # variance inflation factors shapiro.test(residuals(fit)) # normality of residuals
उल्लंघन हमेशा मॉडल को अमान्य नहीं करते हैं, लेकिन वे पी-मानों पर आपके भरोसे को बदल देते हैं, इसलिए किसी भी गुणांक की रिपोर्ट करने से पहले उनकी जांच कर लें।
R में लीनियर रिग्रेशन मॉडल का उपयोग करके पूर्वानुमान कैसे लगाएं
मॉडल को फिट करना तो केवल आधा काम है। predict() फ़ंक्शन फिट किए गए गुणांकों को नए प्रेक्षणों पर लागू करता है।
predict(object, newdata, interval = "none", level = 0.95) arguments: -object: The model returned by lm() -newdata: A data frame whose columns match the predictors used in the formula -interval: "none", "confidence" for the mean response, or "prediction" for a single new case -level: The confidence level, 0.95 by default
इन तीन चरणों का पालन करें।
- नए मामलों का एक डेटा फ्रेम बनाएं। कॉलम के नाम फॉर्मूले में मौजूद प्रेडिक्टर के नामों से बिल्कुल मेल खाने चाहिए, और फैक्टर लेवल ट्रेनिंग डेटा से मेल खाने चाहिए।
- predict() को कॉल करें। फिट किए गए ऑब्जेक्ट और नए डेटा फ्रेम को पास करें।
- एक अंतराल जोड़ें। औसत प्रतिक्रिया के आसपास की अनिश्चितता जानने के लिए "आत्मविश्वास" चुनें, और किसी एक कार के लिए सीमा जानने के लिए "भविष्यवाणी" चुनें।
new_cars <- data.frame(wt = c(2.5, 3.2), hp = c(110, 175)) fit_final <- lm(mpg ~ wt + hp, data = mtcars) predict(fit_final, newdata = new_cars) predict(fit_final, newdata = new_cars, interval = "prediction")
परिणाम पढ़ना। 2.5 हजार पाउंड वजन और 110 हॉर्सपावर वाली कार का अनुमानित माइलेज लगभग 24.1 मील प्रति गैलन है। पूर्वानुमान अंतराल हमेशा विश्वास अंतराल से अधिक चौड़ा होता है, क्योंकि इसमें फिट की गई रेखा की अनिश्चितता के साथ-साथ एक अवलोकन की अनिश्चितता भी शामिल होती है।
दो नियम भविष्यवाणियों को सटीक बनाए रखते हैं। प्रशिक्षण भविष्यवाणियों की सीमा से परे कभी भी अनुमान न लगाएं, क्योंकि सीधी रेखा का कोई प्रमाण मौजूद नहीं है। और हमेशा ऐसे डेटा पर मूल्यांकन करें जिसे मॉडल ने पहले नहीं देखा हो, अन्यथा बताई गई त्रुटि आशावादी होगी।
R में लीनियर रिग्रेशन बनाम लॉजिस्टिक रिग्रेशन
जब परिणाम सतत नहीं होता है, तो विश्लेषक अक्सर lm() फ़ंक्शन का उपयोग करते हैं। नीचे दी गई तालिका सीमा बिंदु दर्शाती है।
| मापदंड | Linear Regression Slope | रसद प्रतिगमन |
|---|---|---|
| प्रतिसाद चर | निरंतर | बाइनरी या श्रेणीबद्ध |
| अनुमानित आउटपुट | कोई भी वास्तविक संख्या | 0 और 1 के बीच की प्रायिकता |
| अनुमान | सामान्य कम चौकोर | अधिकतम संभावना |
| फिट माप | आर-स्क्वायर, आरएमएसई | एआईसी, विचलन, सटीकता |
| आर फ़ंक्शन | lm(सूत्र, डेटा) | glm(formula, data, family = “binomial”) |
यदि परिणाम हां या ना में हो, तो आगे बढ़ें सामान्यीकृत रैखिक मॉडल शून्य और एक के बीच से एक सीधी रेखा खींचने के बजाय।
आर में चरणबद्ध रैखिक प्रतिगमन
इस ट्यूटोरियल का अंतिम भाग निम्नलिखित से संबंधित है चरणबद्ध प्रतिगमन एल्गोरिथ्म। इस एल्गोरिथ्म का उद्देश्य मॉडल में संभावित उम्मीदवारों को जोड़ना और हटाना है और उन लोगों को रखना है जिनका आश्रित चर पर महत्वपूर्ण प्रभाव पड़ता है। यह एल्गोरिथ्म तब सार्थक होता है जब डेटासेट में भविष्यवाणियों की एक बड़ी सूची होती है। आपको स्वतंत्र चर को मैन्युअल रूप से जोड़ने और हटाने की आवश्यकता नहीं है। मॉडल में फिट होने के लिए सबसे अच्छे उम्मीदवारों का चयन करने के लिए चरणबद्ध प्रतिगमन बनाया गया है।
आइए इसे व्यवहार में देखें। आप mtcars डेटासेट का उपयोग केवल सतत चरों के साथ उदाहरण के तौर पर कर रहे हैं। विश्लेषण शुरू करने से पहले, सहसंबंध मैट्रिक्स का उपयोग करके डेटा में संबंधों की जांच करना उचित है। GGally लाइब्रेरी ggplot2 का एक विस्तार है।
लाइब्रेरी में मैट्रिक्स में सभी चरों के सहसंबंध और वितरण जैसे सारांश सांख्यिकी दिखाने के लिए विभिन्न फ़ंक्शन शामिल हैं। हम ggscatmat फ़ंक्शन का उपयोग करेंगे, लेकिन आप इसका संदर्भ ले सकते हैं शब्दचित्र GGally लाइब्रेरी के बारे में अधिक जानकारी के लिए.
ggscatmat() का मूल सिंटैक्स है:
ggscatmat(df, columns = 1:ncol(df), corMethod = "pearson") arguments: -df: A matrix of continuous variables -columns: Pick up the columns to use in the function. By default, all columns are used -corMethod: Define the function to compute the correlation between variable. By default, the algorithm uses the Pearson formula
आप अपने सभी वेरिएबल्स के बीच सहसंबंध प्रदर्शित करते हैं और यह तय करते हैं कि स्टेपवाइज रिग्रेशन के पहले चरण के लिए कौन से वेरिएबल्स सबसे उपयुक्त हैं। आपके वेरिएबल्स और आश्रित वेरिएबल (mpg) के बीच कुछ मजबूत सहसंबंध हैं।
library(GGally) df <- mtcars %>% select(-c(am, vs, cyl, gear, carb)) ggscatmat(df, columns = 1: ncol(df))
आउटपुट:
चरणबद्ध प्रतिगमन चरण दर चरण उदाहरण
मॉडल फिटिंग में वेरिएबल का चयन एक महत्वपूर्ण हिस्सा है, और स्टेपवाइज रिग्रेशन यह खोज स्वचालित रूप से करता है। डेटासेट में कितने संभावित विकल्प हैं, इसका अनुमान लगाने के लिए, आप गणना करते हैं। k के साथ भविष्यवाणियों की संख्या है। स्वतंत्र चर की संख्या के साथ संभावनाओं की मात्रा बड़ी होती जाती है। इसलिए आपको एक स्वचालित खोज की आवश्यकता है।
आपको CRAN से olsrr पैकेज इंस्टॉल करना होगा। पैकेज अभी Anaconda में उपलब्ध नहीं है। इसलिए, आप इसे सीधे कमांड लाइन से इंस्टॉल करें:
install.packages("olsrr")
आप फिट मानदंड (यानी आर-स्क्वायर, एडजस्टेड आर-स्क्वायर, बायेसियन मानदंड) के साथ संभावनाओं के सभी उपसमूहों को प्लॉट कर सकते हैं। सबसे कम AIC मानदंड वाला मॉडल अंतिम मॉडल होगा।
library(olsrr) model <- mpg~. fit <- lm(model, df) test <- ols_all_subset(fit) plot(test)
Code व्याख्या
- एमपीजी ~.: अनुमान लगाने के लिए मॉडल का निर्माण करें
- lm(मॉडल, df): OLS मॉडल चलाएँ
- ols_all_subset(फिट): प्रासंगिक सांख्यिकीय जानकारी के साथ ग्राफ़ बनाएं
- प्लॉट(परीक्षण): ग्राफ़ प्लॉट करें
आउटपुट:
रैखिक प्रतिगमन मॉडल का उपयोग करें टी परीक्षण स्वतंत्र चर का आश्रित चर पर सांख्यिकीय प्रभाव का अनुमान लगाने के लिए। शोधकर्ता आमतौर पर अधिकतम सीमा 10 प्रतिशत निर्धारित करते हैं, और कम p-मान एक मजबूत सांख्यिकीय संबंध को इंगित करते हैं। चरणबद्ध प्रतिगमन (स्टेपवाइज रिग्रेशन) इसी परीक्षण पर आधारित है, जिसका उपयोग संभावित भविष्यवाणियों को जोड़ने और हटाने के लिए किया जाता है। एल्गोरिदम इस प्रकार कार्य करता है:

- चरण 1: प्रत्येक भविष्यवक्ता को y पर अलग से रिग्रेस करें। अर्थात, x_1 को y पर, x_2 को y पर x_n पर रिग्रेस करें। संग्रह करें पी - मूल्य और रिग्रेसर को परिभाषित सीमा (डिफ़ॉल्ट रूप से 0.1) से कम p-मान के साथ रखें। सीमा से कम महत्व वाले भविष्यवक्ता अंतिम मॉडल में जोड़े जाएँगे। यदि किसी चर का p-मान प्रवेश सीमा से कम नहीं है, तो एल्गोरिथ्म रुक जाता है, और आपके पास केवल एक स्थिरांक वाला अंतिम मॉडल होता है।
- चरण 2: सबसे कम p-मान वाले प्रेडिक्टर का उपयोग करें और अलग से एक चर जोड़ें। आप एक स्थिरांक, चरण एक का सबसे अच्छा प्रेडिक्टर और एक तीसरा चर वापस लेते हैं। आप चरणबद्ध मॉडल में, प्रवेश सीमा से कम मूल्य वाले नए प्रेडिक्टर जोड़ते हैं। यदि किसी भी चर का p-मान 0.1 से कम नहीं है, तो एल्गोरिथ्म बंद हो जाता है, और आपके पास केवल एक प्रेडिक्टर वाला अंतिम मॉडल होता है। आप चरण 1 के सर्वश्रेष्ठ प्रेडिक्टर के महत्व की जांच करने के लिए चरणबद्ध मॉडल को वापस लेते हैं। यदि यह हटाने की सीमा से अधिक है, तो आप इसे चरणबद्ध मॉडल में रखते हैं। अन्यथा, आप इसे बाहर कर देते हैं।
- चरण 3: आप नए सर्वश्रेष्ठ चरणबद्ध मॉडल पर चरण 2 को दोहराते हैं। एल्गोरिथ्म दर्ज किए गए मानों के आधार पर चरणबद्ध मॉडल में प्रेडिक्टर जोड़ता है और यदि यह बहिष्करण सीमा को पूरा नहीं करता है तो चरणबद्ध मॉडल से प्रेडिक्टर को बाहर कर देता है।
- एल्गोरिथ्म तब तक चलता रहता है जब तक कोई चर जोड़ा या हटाया नहीं जा सकता।
आप olsrr पैकेज से ols_stepwise() फ़ंक्शन के साथ एल्गोरिथ्म निष्पादित कर सकते हैं।
ols_stepwise(fit, pent = 0.1, prem = 0.3, details = FALSE) arguments: -fit: Model to fit. Need to use `lm()`before to run `ols_stepwise() -pent: Threshold of the p-value used to enter a variable into the stepwise model. By default, 0.1 -prem: Threshold of the p-value used to exclude a variable into the stepwise model. By default, 0.3 -details: Print the details of each step
⚠️ पैकेज संबंधी सूचना: olsrr के हाल के संस्करणों ने इन फ़ंक्शंस का नाम बदल दिया है। उपयोग करें ols_step_all_possible() ols_all_subset() के स्थान पर और ols_step_both_p() ols_stepwise() के स्थान पर इसका प्रयोग किया जाता है। आर्गुमेंट और आउटपुट अपरिवर्तित रहते हैं।
इससे पहले, हम आपको एल्गोरिथ्म के चरण दिखाते हैं। नीचे आश्रित और स्वतंत्र चर वाली एक तालिका दी गई है:
| निर्भर चर | स्वतंत्र चर |
|---|---|
| एमपीजी | विवाद |
| hp | |
| ड्रैट | |
| wt | |
| क्यूसेक |
प्रारंभ
सबसे पहले, एल्गोरिथ्म प्रत्येक स्वतंत्र चर पर अलग-अलग मॉडल चलाकर शुरू होता है। तालिका प्रत्येक मॉडल के लिए p-मान दिखाती है।
## [[1]] ## (Intercept) disp ## 3.576586e-21 9.380327e-10 ## ## [[2]] ## (Intercept) hp ## 6.642736e-18 1.787835e-07 ## ## [[3]] ## (Intercept) drat ## 0.1796390847 0.0000177624 ## ## [[4]] ## (Intercept) wt ## 8.241799e-19 1.293959e-10 ## ## [[5] ## (Intercept) qsec ## 0.61385436 0.01708199
मॉडल में प्रवेश करने के लिए, एल्गोरिथ्म सबसे कम p-मान वाले चर को रखता है। उपरोक्त आउटपुट से, यह wt है
चरण 1
पहले चरण में, एल्गोरिथ्म mpg को wt और अन्य चरों पर स्वतंत्र रूप से चलाता है।
## [[1]] ## (Intercept) wt disp ## 4.910746e-16 7.430725e-03 6.361981e-02 ## ## [[2]] ## (Intercept) wt hp ## 2.565459e-20 1.119647e-06 1.451229e-03 ## ## [[3]] ## (Intercept) wt drat ## 2.737824e-04 1.589075e-06 3.308544e-01 ## ## [[4]] ## (Intercept) wt qsec ## 7.650466e-04 2.518948e-11 1.499883e-03
प्रत्येक चर अंतिम मॉडल में शामिल होने के लिए एक संभावित उम्मीदवार है। हालाँकि, एल्गोरिदम केवल कम p-मान वाले चर को ही रखता है। पता चलता है कि hp का p-मान qsec से थोड़ा कम है, इसलिए hp को अंतिम मॉडल में शामिल किया जाता है।
चरण 2
एल्गोरिथ्म पहले चरण को दोहराता है लेकिन इस बार अंतिम मॉडल में दो स्वतंत्र चर शामिल होते हैं।
## [[1]] ## (Intercept) wt hp disp ## 1.161936e-16 1.330991e-03 1.097103e-02 9.285070e-01 ## ## [[2]] ## (Intercept) wt hp drat ## 5.133678e-05 3.642961e-04 1.178415e-03 1.987554e-01 ## ## [[3]] ## (Intercept) wt hp qsec ## 2.784556e-03 3.217222e-06 2.441762e-01 2.546284e-01
शेष उम्मीदवारों में से किसी का भी p-मान प्रवेश सीमा से कम नहीं है। एल्गोरिदम यहीं रुक जाता है, और यह अंतिम मॉडल है:
## ## Call: ## lm(formula = mpg ~ wt + hp, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.941 -1.600 -0.182 1.050 5.854 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 37.22727 1.59879 23.285 < 2e-16 *** ## wt -3.87783 0.63273 -6.129 1.12e-06 *** ## hp -0.03177 0.00903 -3.519 0.00145 ** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.593 on 29 degrees of freedom ## Multiple R-squared: 0.8268, Adjusted R-squared: 0.8148 ## F-statistic: 69.21 on 2 and 29 DF, p-value: 9.109e-12
आप परिणामों की तुलना करने के लिए ols_stepwise() फ़ंक्शन का उपयोग कर सकते हैं।
stp_s <-ols_stepwise(fit, details=TRUE)
आउटपुट:
यह एल्गोरिदम दो चरणों के बाद एक समाधान ढूंढ लेता है और ऊपर दिए गए मैनुअल वॉकथ्रू के समान आउटपुट देता है।
अतः अंतिम मॉडल को दो भविष्यसूचकों और एक अवरोधन द्वारा समझाया गया है: माइल्स प्रति गैलन सकल हॉर्सपावर और वजन दोनों से नकारात्मक रूप से संबंधित है।
## You are selecting variables based on p value... ## 1 variable(s) added.... ## Variable Selection Procedure ## Dependent Variable: mpg ## ## Stepwise Selection: Step 1 ## ## Variable wt Entered ## ## Model Summary ## -------------------------------------------------------------- ## R 0.868 RMSE 3.046 ## R-Squared 0.753 Coef. Var 15.161 ## Adj. R-Squared 0.745 MSE 9.277 ## Pred R-Squared 0.709 MAE 2.341 ## -------------------------------------------------------------- ## RMSE: Root Mean Square Error ## MSE: Mean Square Error ## MAE: Mean Absolute Error ## ANOVA ## -------------------------------------------------------------------- ## Sum of ## Squares DF Mean Square F Sig. ## -------------------------------------------------------------------- ## Regression 847.725 1 847.725 91.375 0.0000 ## Residual 278.322 30 9.277 ## Total 1126.047 31 ## -------------------------------------------------------------------- ## ## Parameter Estimates ## ---------------------------------------------------------------------------------------- ## model Beta Std. Error Std. Beta t Sig lower upper ## ---------------------------------------------------------------------------------------- ## (Intercept) 37.285 1.878 19.858 0.000 33.450 41.120 ## wt -5.344 0.559 -0.868 -9.559 0.000 -6.486 -4.203 ## ---------------------------------------------------------------------------------------- ## 1 variable(s) added... ## Stepwise Selection: Step 2 ## ## Variable hp Entered ## ## Model Summary ## -------------------------------------------------------------- ## R 0.909 RMSE 2.593 ## R-Squared 0.827 Coef. Var 12.909 ## Adj. R-Squared 0.815 MSE 6.726 ## Pred R-Squared 0.781 MAE 1.901 ## -------------------------------------------------------------- ## RMSE: Root Mean Square Error ## MSE: Mean Square Error ## MAE: Mean Absolute Error ## ANOVA ## -------------------------------------------------------------------- ## Sum of ## Squares DF Mean Square F Sig. ## -------------------------------------------------------------------- ## Regression 930.999 2 465.500 69.211 0.0000 ## Residual 195.048 29 6.726 ## Total 1126.047 31 ## -------------------------------------------------------------------- ## ## Parameter Estimates ## ---------------------------------------------------------------------------------------- ## model Beta Std. Error Std. Beta t Sig lower upper ## ---------------------------------------------------------------------------------------- ## (Intercept) 37.227 1.599 23.285 0.000 33.957 40.497 ## wt -3.878 0.633 -0.630 -6.129 0.000 -5.172 -2.584 ## hp -0.032 0.009 -0.361 -3.519 0.001 -0.050 -0.013 ## ---------------------------------------------------------------------------------------- ## No more variables to be added or removed.
R में लीनियर रिग्रेशन: मुख्य बिंदु और फ़ंक्शन संदर्भ
- लीनियर रिग्रेशन एक सरल प्रश्न का उत्तर देता है: क्या आप एक लक्ष्य चर और भविष्यवाणियों के एक समूह के बीच एक सटीक संबंध को माप सकते हैं?
- साधारण न्यूनतम वर्ग विधि उन मापदंडों को ज्ञात करती है जो वर्ग त्रुटियों के योग को न्यूनतम करते हैं, अर्थात् अनुमानित y मानों और वास्तविक y मानों के बीच की ऊर्ध्वाधर दूरी को न्यूनतम करते हैं।
- वह संभाव्यता मॉडल जिसमें एक से अधिक स्वतंत्र चर शामिल होते हैं, बहु प्रतिगमन मॉडल कहलाता है।
- चरणबद्ध रैखिक प्रतिगमन एल्गोरिथ्म का उद्देश्य मॉडल में संभावित उम्मीदवारों को जोड़ना और हटाना तथा उन लोगों को रखना है जिनका आश्रित चर पर महत्वपूर्ण प्रभाव पड़ता है।
- मॉडल को फिट करने में वेरिएबल का चयन एक महत्वपूर्ण हिस्सा है, और स्टेपवाइज रिग्रेशन उस खोज को स्वचालित रूप से करता है।
इस ट्यूटोरियल में उपयोग किए गए सभी फ़ंक्शन नीचे सूचीबद्ध हैं:
| पुस्तकालय | उद्देश्य | समारोह | तर्क |
|---|---|---|---|
| आधार | रैखिक प्रतिगमन की गणना करें | एलएम() | सूत्र, डेटा |
| आधार | मॉडल का सारांश | सारांश() | फिट |
| आधार | Extracटी गुणांक | lm()$गुणांक | |
| आधार | Extracटी अवशिष्ट | lm()$अवशिष्ट | |
| आधार | Extracटी फिटेड मान | lm()$फिटेड.वैल्यूज़ | |
| ओएलएसआरआर | चरणबद्ध प्रतिगमन चलाएँ | ओएलएस_स्टेपवाइज() | फिट, पेन्ट = 0.1, प्रीम = 0.3, विवरण = गलत |
नोटमॉडल को फिट करने से पहले श्रेणीबद्ध चर को कारकों में परिवर्तित करना याद रखें।





