रिज और एसएएस में रिज रिग्रेशन कार्यान्वयन के बीच अंतर


10

मैं एप्लाइड रैखिक सांख्यिकीय मॉडल , 5 वें एड अध्याय 11 में रिज रिग्रेशन का वर्णन पढ़ रहा हूं । रिज रिग्रेशन यहां उपलब्ध शरीर के वसा डेटा पर किया जाता है ।

पाठ्यपुस्तक एसएएस में आउटपुट से मेल खाती है, जहां पीछे के रूपांतरित गुणांक फिट किए गए मॉडल में दिए गए हैं:

Y=7.3978+0.5553X1+0.3681X20.1917X3

इसे एसएएस से दिखाया गया है:

proc reg data = ch7tab1a outest = temp outstb noprint;
  model y = x1-x3 / ridge = 0.02;
run;
quit;
proc print data = temp;
  where _ridge_ = 0.02 and y = -1;
  var y intercept x1 x2 x3;
run;
Obs     Y    Intercept       X1         X2         X3

 2     -1     -7.40343    0.55535    0.36814    -0.19163
 3     -1      0.00000    0.54633    0.37740    -0.13687

लेकिन आर बहुत अलग गुणांक देता है:

data <- read.table("http://www.cst.cmich.edu/users/lee1c/spss/V16_materials/DataSets_v16/BodyFat-TxtFormat.txt", 
                   sep=" ", header=FALSE)
data <- data[,c(1,3,5,7)]
colnames(data)<-c("x1","x2","x3","y")
ridge<-lm.ridge(y ~ ., data, lambda=0.02)   
ridge$coef
coef(ridge)

>   ridge$coef
       x1        x2        x3 
10.126984 -4.682273 -3.527010 
>   coef(ridge)
                   x1         x2         x3 
42.2181995  2.0683914 -0.9177207 -0.9921824 
> 

क्या कोई मुझे समझने में मदद कर सकता है क्यों?


मैंने उसी डेटा सेट का उपयोग किया है और SPSS में इसका विश्लेषण किया है। परिणाम एसएएस के समान हैं। हालाँकि, अगर हम डेटा को पुस्तक में मानकीकृत कर सकते हैं, तो c = 0 पर पहला मान R और SPSS (एकाधिक रैखिक प्रतिगमन को चलाने) में समान है। हालाँकि परिणाम काफी भिन्न होते हैं जब हम ऊपर बताए अनुसार आगे बढ़ते हैं। मुझे भी समान डेटा के लिए आउटपुट के बीच अंतर का कोई सुराग नहीं मिला।
असद

जवाबों:


6

λlm.ridge

आप देख सकते हैं कि किस तरह का एल्गोरिथ्म आर के स्रोत को देखकर आर में लगाया गया है lm.ridge। बस lm.ridgeR प्रॉम्प्ट में टाइप करें ।


मुझे यह लिंक यह पता लगाने में मददगार लगा कि कैसे lm.ridge गुणांक की गणना कर रहा है: mail-archive.com/r-help@r-project.org/msg81115.html लेकिन फिर भी हैरान हूं कि मेरे द्वारा संदर्भित पाठ और SAS से परिणाम कितने भिन्न हैं। , यह देखते हुए कि प्रत्येक को मूल पैमाने पर वापस माना जाता है।
B_Miner

@ user2040, जांचें कि एसएएस और आर द्वारा एक ही डेटा का उपयोग किया जाता है। यदि यह समान है, तो एकमात्र निष्कर्ष यह है कि एल्गोरिदम अलग हैं। एसएएस हेल्प पेज क्या कह रहा है?
mpiktas

@ user2040, मैंने आपके डेटा के साथ R पर SAS रिज रिग्रेशन दोहराया है । तो हम यह सुनिश्चित करने के लिए जानते हैं कि एल्गोरिदम अलग हैं।
13

1
तुम बस मुझे हरा दो! :) मैं आपके द्वारा संदर्भित एसएएस सहायता पृष्ठ को देख रहा था। मैंने RMSE (केवल इन-सैंपल डेटा की तुलना की, CV या बूटस्ट्रैप के साथ मान्य नहीं किया) और R परिणाम बेहतर था। तो, क्या आपको लगता है कि रिज प्रतिगमन भविष्यवाणी के लिए सबसे उपयुक्त है और गुणांक की व्याख्या नहीं कर रहा है (क्योंकि परिणाम हो सकता है एल्गोरिथ्म द्वारा अलग हो सकता है)? मैं पहले से ही जानता हूं कि रेगुलर लीनियर मॉडल थ्योरी (CI के कंट्रास्ट आदि) रिज ​​रिग्रेशन के लिए बाहर हैं (बूटस्ट्रैपिंग करीब हो जाती है लेकिन फिर भी पूर्वाग्रह के कारण भ्रामक हो सकती है)।
B_Miner

0

Lm.ridge का उपयोग करना एक स्केलिंग वेक्टर (सभी आउटपुट को देखने के लिए सिर (मॉडल) आज़माता है) का उत्पादन करता है। R में अनुमानित मान प्राप्त करने के लिए जिसे आप एसएएस में देखते हैं, गुणांक लेते हैं और स्केलर वेक्टर द्वारा विभाजित करते हैं।


2
मुझे वह परिणाम नहीं मिला, क्या आप कृपया इसका वर्णन कर सकते हैं?
B_Miner
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.