आर

2012-04-20 6 views
6

में वेक्टर पर डेटा फ्रेम में प्रत्येक कॉलम को दोबारा दबाएं, मैं वेक्टर पर डेटा सेट में प्रत्येक कॉलम को regress करना चाहता हूं, फिर कॉलम को उच्चतम आर-स्क्वायर मान प्राप्त करें। जैसे मेरे पास एक वेक्टर हैप्पी < - (3,2,2,3,1,3,1,3) और मेरे पास डेटा सेट है।आर

HEALTH CONINC MARITAL SATJOB1 MARITAL2     HAPPY 
3   441 5  1   2      3 
1   1764 5  1   2      2 
2   3087 5  1   2      2 
3   3087 5  1   2      3 
1   3969 2  1   5      1 
1   3969 5  1   2      3 
2   4852 5  1   2      2 
3   5734 3  1   3      3 

वापसी डेटा बाईं तरफ के सेट में स्तंभों में से प्रत्येक पर "हैप्पी", फिर स्तंभ जो उच्चतम R-squared है लौटने। उदाहरण: एलएम (स्वास्थ्य ~ हैप्पी) अगर स्वास्थ्य में उच्चतम आर-वर्ग मूल्य होता है, तो स्वास्थ्य वापस कर दें।

मैंने आवेदन करने की कोशिश की है, लेकिन यह पता लगाना प्रतीत नहीं होता कि उच्चतम आर-स्क्वायर के साथ रिग्रेशन को वापस कैसे किया जाए। कोई सुझाव?

उत्तर

4

यह आपके data.frame संभालने, तुम क्या चाहते हो जाएगा कहा जाता है 'प'

r2s <- apply(d, 2, function(x) summary(lm(x ~ HAPPY))$r.squared) 
names(d)[which.max(r2s)] 

आप पता लगा सकते हैं कि कैसे मॉडल के घटकों को निकालने के लिए, या इस मामले में, मॉडल का एक सारांश , str() कमांड के साथ। यह आपको एक पढ़ा जाएगा जो आपको किसी भी जटिल वस्तु के घटकों तक पहुंचने में मदद करता है।

5

मैं इस दो चरणों में टूट जाएगा:

1) प्रत्येक मॉडल

2) तय करें कि कौन सबसे अधिक मूल्य

mydf<-data.frame(aa=rpois(8,4),bb=rpois(8,2),cc=rbinom(8,1,.5), 
    happy=c(3,2,2,3,1,3,1,3)) 

myRes<-sapply(mydf[-ncol(mydf)],function(x){ 
    mylm<-lm(x~mydf$happy) 
    theR2<-summary(mylm)$r.squared 
    return(theR2) 
}) 

names(myRes[which(myRes==max(myRes))]) 

यह है कि happy संभालने किया गया है के लिए निर्धारित आर-चौराहों आपके डेटा में है। फ्रेम।

1

यहां प्लीयर पैकेज से colwise() फ़ंक्शन का उपयोग करके एक समाधान है।

library(plyr) 
df = data.frame(a = runif(10), b=runif(10), c=runif(10), d = runif(10)) 

Rsq = function(x) summary(lm(df$a ~ x))$r.squared 

Rsqall = colwise(Rsq)(df[, 2:4]) 
Rsqall 

names(Rsqall)[which.max(Rsqall)] 
+1

मैंने आरसीडीके के साथ दूसरे दिन इस समाधान का उपयोग किया। मैं अपने अणुओं से परख परिणामों के खिलाफ रासायनिक विकास किट लाइब्रेरी में सभी आणविक वर्णनकर्ताओं में उच्चतम r.squared मूल्य खोज रहा था। धन्यवाद। – user1945827