आर में वेरिएंस इन्फ्लेशन फैक्टर (वीआईएफ) की गणना कैसे करें


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

यदि चर के बीच सहसंबंध की डिग्री काफी अधिक है, तो यह प्रतिगमन मॉडल को फिट करने और व्याख्या करने में समस्याएं पैदा कर सकता है।

बहुसंरेखता का पता लगाने का सबसे आम तरीका विचरण मुद्रास्फीति कारक (वीआईएफ) का उपयोग करना है, जो एक प्रतिगमन मॉडल में भविष्यवक्ता चर के बीच सहसंबंध और सहसंबंध की ताकत को मापता है।

वीआईएफ मान 1 से शुरू होता है और इसकी कोई ऊपरी सीमा नहीं है। वीआईएफ की व्याख्या के लिए एक सामान्य नियम है:

  • 1 का मान इंगित करता है कि किसी दिए गए भविष्यवक्ता चर और मॉडल में किसी अन्य भविष्यवक्ता चर के बीच कोई संबंध नहीं है।
  • 1 और 5 के बीच का मान किसी दिए गए भविष्यवक्ता चर और मॉडल में अन्य भविष्यवक्ता चर के बीच एक मध्यम सहसंबंध को इंगित करता है, लेकिन यह अक्सर इतना गंभीर नहीं होता है कि विशेष ध्यान देने की आवश्यकता हो।
  • 5 से अधिक का मान किसी दिए गए भविष्यवक्ता चर और मॉडल में अन्य भविष्यवक्ता चर के बीच संभावित गंभीर सहसंबंध को इंगित करता है। इस मामले में, प्रतिगमन परिणामों में गुणांक अनुमान और पी-मान अविश्वसनीय होने की संभावना है।

ध्यान दें कि ऐसे कुछ मामले हैं जिनमें उच्च VIF मानों को सुरक्षित रूप से अनदेखा किया जा सकता है

आर में वीआईएफ की गणना कैसे करें

आर में एक प्रतिगमन मॉडल के लिए वीआईएफ की गणना कैसे करें, यह समझाने के लिए, हम अंतर्निहित एमटीकार्स डेटासेट का उपयोग करेंगे:

 #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 , wt और drat का उपयोग करके एक प्रतिगमन मॉडल फिट करेंगे:

 #fit the regression model
model <- lm(mpg ~ disp + hp + wt + drat, data = mtcars)

#view the output of the regression model
summary(model)

#Call:
#lm(formula = mpg ~ disp + hp + wt + drat, data = mtcars)
#
#Residuals:
# Min 1Q Median 3Q Max 
#-3.5077 -1.9052 -0.5057 0.9821 5.6883 
#
#Coefficients:
#Estimate Std. Error t value Pr(>|t|)    
#(Intercept) 29.148738 6.293588 4.631 8.2e-05 ***
#available 0.003815 0.010805 0.353 0.72675    
#hp -0.034784 0.011597 -2.999 0.00576 ** 
#wt -3.479668 1.078371 -3.227 0.00327 ** 
#drat 1.768049 1.319779 1.340 0.19153    
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
#Residual standard error: 2.602 on 27 degrees of freedom
#Multiple R-squared: 0.8376, Adjusted R-squared: 0.8136 
#F-statistic: 34.82 on 4 and 27 DF, p-value: 2.704e-10

हम परिणाम से देख सकते हैं कि मॉडल का आर वर्ग मान 0.8376 है। हम यह भी देख सकते हैं कि समग्र एफ आँकड़ा 34.82 है और संबंधित पी-मान 2.704e-10 है, जो इंगित करता है कि समग्र प्रतिगमन मॉडल महत्वपूर्ण है। इसके अलावा, भविष्यवक्ता चर एचपी और डब्ल्यूटी 0.05 महत्व स्तर पर सांख्यिकीय रूप से महत्वपूर्ण हैं, जबकि डिस्प और ड्रैट नहीं हैं।

इसके बाद, हम मॉडल में प्रत्येक भविष्यवक्ता चर के लिए वीआईएफ की गणना करने के लिए लाइब्रेरी के विवे() फ़ंक्शन का उपयोग करेंगे:

 #load the car library
library(car)

#calculate the VIF for each predictor variable in the model
lively(model)

# disp hp wt drat 
#8.209402 2.894373 5.096601 2.279547 

हम देख सकते हैं कि disp और wt के लिए VIFs 5 से अधिक हैं, जो संभावित रूप से चिंताजनक है।

VIF मान देखना

प्रत्येक भविष्यवक्ता चर के लिए वीआईएफ मानों की कल्पना करने के लिए, हम एक सरल क्षैतिज बार चार्ट बना सकते हैं और 5 पर एक लंबवत रेखा जोड़ सकते हैं ताकि हम स्पष्ट रूप से देख सकें कि कौन से वीआईएफ मान 5 से अधिक हैं:

 #create vector of VIF values
vive_values <- vive(model)

#create horizontal bar chart to display each VIF value
barplot(vif_values, main = "VIF Values", horiz = TRUE, col = "steelblue")

#add vertical line at 5
abline(v = 5, lwd = 3, lty = 2)

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

इस पर निर्भर करते हुए कि आप किस वीआईएफ मान को मॉडल में शामिल करने के लिए बहुत अधिक मानते हैं, आप कुछ भविष्यवक्ता चर को हटाने का विकल्प चुन सकते हैं और देख सकते हैं कि मॉडल का संबंधित आर-वर्ग मान या मानक त्रुटि प्रभावित है या नहीं।

भविष्यवक्ता चर के बीच सहसंबंधों की कल्पना करना

यह बेहतर ढंग से समझने के लिए कि एक भविष्यवक्ता चर का उच्च VIF मान क्यों हो सकता है, हम चर के प्रत्येक जोड़े के बीच रैखिक सहसंबंध गुणांक प्रदर्शित करने के लिए एक सहसंबंध मैट्रिक्स बना सकते हैं:

 #define the variables we want to include in the correlation matrix
data <- mtcars[, c("disp", "hp", "wt", "drat")]

#create correlation matrix
cor(data)

# disp hp wt drat
#available 1.0000000 0.7909486 0.8879799 -0.7102139
#hp 0.7909486 1.0000000 0.6587479 -0.4487591
#wt 0.8879799 0.6587479 1.0000000 -0.7124406
#drat -0.7102139 -0.4487591 -0.7124406 1.0000000

याद रखें कि डिस्प वैरिएबल का वीआईएफ मान 8 से अधिक था, जो मॉडल में सभी भविष्यवक्ता चर के बीच उच्चतम वीआईएफ मान था। सहसंबंध मैट्रिक्स से, हम देख सकते हैं कि डिस्प अन्य तीन भविष्यवक्ता चर के साथ अत्यधिक सहसंबद्ध है, जो बताता है कि इसका वीआईएफ मान इतना अधिक क्यों है।

इस मामले में, आप मॉडल से डिस्प को हटाना चाह सकते हैं क्योंकि इसका वीआईएफ मान अधिक है और यह 0.05 महत्व स्तर पर सांख्यिकीय रूप से महत्वपूर्ण नहीं है।

ध्यान दें कि एक सहसंबंध मैट्रिक्स और एक वीआईएफ आपको समान जानकारी प्रदान करेगा: वे दोनों आपको बताते हैं कि एक प्रतिगमन मॉडल में एक चर एक या अधिक अन्य चर के साथ अत्यधिक सहसंबद्ध होता है।

अग्रिम पठन:
प्रतिगमन में बहुसंरेखता और वीआईएफ के लिए एक गाइड
एक अच्छा आर-वर्ग मान क्या है?

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

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