आर में श्रेणीबद्ध चर के साथ रैखिक प्रतिगमन कैसे करें


रैखिक प्रतिगमन एक ऐसी विधि है जिसका उपयोग हम एक या अधिक भविष्यवक्ता चर और एक प्रतिक्रिया चर के बीच संबंध को मापने के लिए कर सकते हैं।

अक्सर, आप भविष्यवक्ता चर के रूप में एक या अधिक श्रेणीगत चर का उपयोग करके एक प्रतिगमन मॉडल को फिट करना चाह सकते हैं।

यह ट्यूटोरियल चरण-दर-चरण उदाहरण प्रदान करता है कि आर में श्रेणीबद्ध चर के साथ रैखिक प्रतिगमन कैसे करें।

उदाहरण: आर में श्रेणीबद्ध चर के साथ रैखिक प्रतिगमन

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

  • अंक अर्जित किये
  • अभ्यास में बिताए घंटे
  • प्रशिक्षण कार्यक्रम का प्रयोग किया गया
 #create data frame
df <- data. frame (points=c(7, 7, 9, 10, 13, 14, 12, 10, 16, 19, 22, 18),
                 hours=c(1, 2, 2, 3, 2, 6, 4, 3, 4, 5, 8, 6),
                 program=c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3))

#view data frame
df

   points hours program
1 7 1 1
2 7 2 1
3 9 2 1
4 10 3 1
5 13 2 2
6 14 6 2
7 12 4 2
8 10 3 2
9 16 4 3
10 19 5 3
11 22 8 3
12 18 6 3

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

अंक = β 0 + β 1 घंटे + β 2 कार्यक्रम

इस उदाहरण में, घंटे एक सतत चर हैं लेकिन प्रोग्राम एक श्रेणीबद्ध चर है जो तीन संभावित श्रेणियां ले सकता है: प्रोग्राम 1, प्रोग्राम 2 या प्रोग्राम 3।

इस प्रतिगमन मॉडल को फिट करने के लिए और आर को यह बताने के लिए कि “प्रोग्राम” वैरिएबल एक श्रेणीगत वैरिएबल है, हमें इसे एक कारक में बदलने के लिए as.factor() का उपयोग करने की आवश्यकता है, फिर मॉडल को फिट करें:

 #convert 'program' to factor
df$program <- as. factor (df$program)

#fit linear regression model
fit <- lm(points ~ hours + program, data = df)

#view model summary
summary(fit)

Call:
lm(formula = points ~ hours + program, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-1.5192 -1.0064 -0.3590 0.8269 2.4551 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 6.3013 0.9462 6.660 0.000159 ***
hours 0.9744 0.3176 3.068 0.015401 *  
program2 2.2949 1.1369 2.019 0.078234 .  
program3 6.8462 1.5499 4.417 0.002235 ** 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.403 on 8 degrees of freedom
Multiple R-squared: 0.9392, Adjusted R-squared: 0.9164 
F-statistic: 41.21 on 3 and 8 DF, p-value: 3.276e-05

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

अंक = 6.3013 + 0.9744 (घंटे) + 2.2949 (कार्यक्रम 2) + 6.8462 (कार्यक्रम 3)

यहां परिणाम में गुणांक मानों की व्याख्या करने का तरीका बताया गया है:

  • घंटे : अभ्यास में बिताए गए प्रत्येक अतिरिक्त घंटे के लिए, अंक में औसतन 0.9744 की वृद्धि होती है, यह मानते हुए कि कार्यक्रम स्थिर रहता है।
    • पी-वैल्यू 0.015 है, जो दर्शाता है कि अभ्यास में बिताए गए घंटे α = 0.05 स्तर पर प्राप्त अंकों का सांख्यिकीय रूप से महत्वपूर्ण भविष्यवक्ता है।
  • शेड्यूल2 : शेड्यूल 2 का उपयोग करने वाले खिलाड़ियों ने शेड्यूल 1 का उपयोग करने वाले खिलाड़ियों की तुलना में औसतन 2.2949 अधिक अंक अर्जित किए, यह मानते हुए कि घंटे स्थिर रहते हैं।
    • पी-वैल्यू 0.078 है, जो इंगित करता है कि प्रोग्राम 2 का उपयोग करने वाले खिलाड़ियों द्वारा प्रोग्राम 1 का उपयोग करने वाले खिलाड़ियों की तुलना में स्तर α = 0.05 पर बनाए गए अंकों में कोई सांख्यिकीय महत्वपूर्ण अंतर नहीं है।
  • शेड्यूल3 : शेड्यूल 3 का उपयोग करने वाले खिलाड़ियों ने शेड्यूल 1 का उपयोग करने वाले खिलाड़ियों की तुलना में औसतन 2.2949 अधिक अंक अर्जित किए, यह मानते हुए कि घंटे स्थिर रहते हैं।
    • पी-वैल्यू 0.002 है, जो दर्शाता है कि शेड्यूल 3 का उपयोग करने वाले खिलाड़ियों द्वारा शेड्यूल 1 का उपयोग करने वाले खिलाड़ियों की तुलना में α = 0.05 स्तर पर बनाए गए अंकों में सांख्यिकीय रूप से महत्वपूर्ण अंतर है।

फिटेड रिग्रेशन मॉडल का उपयोग करके, हम प्रशिक्षण में बिताए गए घंटों की कुल संख्या और उनके द्वारा उपयोग किए गए कार्यक्रम के आधार पर किसी खिलाड़ी द्वारा बनाए गए अंकों की संख्या का अनुमान लगा सकते हैं।

उदाहरण के लिए, हम उस खिलाड़ी द्वारा अर्जित अंकों की भविष्यवाणी करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं जिसने 5 घंटे तक प्रशिक्षण लिया और प्रशिक्षण अनुसूची 3 का उपयोग किया:

 #define new player
new <- data. frame (hours=c(5), program=as. factor (c(3)))

#use the fitted model to predict the points for the new player
predict(fit, newdata=new)

       1 
18.01923 

मॉडल का अनुमान है कि यह नया खिलाड़ी 18.01923 अंक अर्जित करेगा।

हम नए खिलाड़ी के मानों को फिट किए गए प्रतिगमन समीकरण में सम्मिलित करके पुष्टि कर सकते हैं कि यह सही है:

  • अंक = 6.3013 + 0.9744 (घंटे) + 2.2949 (कार्यक्रम 2) + 6.8462 (कार्यक्रम 3)
  • अंक = 6.3013 + 0.9744(5) + 2.2949(0) + 6.8462(1)
  • अंक = 18,019

यह आर में पूर्वानुमान () फ़ंक्शन का उपयोग करके हमारे द्वारा गणना किए गए मान से मेल खाता है।

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

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:

आर में सरल रैखिक प्रतिगमन कैसे करें
आर में मल्टीपल लीनियर रिग्रेशन कैसे करें
आर में अवशिष्ट प्लॉट कैसे बनाएं

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

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