पांडा डेटाफ्रेम का उपयोग करके रैखिक प्रतिगमन करने के लिए अनुशंसित तरीका (यदि कोई है) क्या है? मैं कर सकता हूं, लेकिन मेरी विधि बहुत विस्तृत प्रतीत होती है। क्या मैं चीजों को अनावश्यक रूप से जटिल बना रहा हूं?पांडा डेटा फ्रेम का उपयोग कर rpy2 प्रतिगमन का न्यूनतम उदाहरण
आर कोड, तुलना के लिए:
x <- c(1,2,3,4,5)
y <- c(2,1,3,5,4)
M <- lm(y~x)
summary(M)$coefficients
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.6 1.1489125 0.522233 0.6376181
x 0.8 0.3464102 2.309401 0.1040880
अब, मेरी अजगर (2.7.10), rpy2 (2.6.0), और पांडा (0.16.1) संस्करण:
import pandas
import pandas.rpy.common as common
from rpy2 import robjects
from rpy2.robjects.packages import importr
base = importr('base')
stats = importr('stats')
dataframe = pandas.DataFrame({'x': [1,2,3,4,5],
'y': [2,1,3,5,4]})
robjects.globalenv['dataframe']\
= common.convert_to_r_dataframe(dataframe)
M = stats.lm('y~x', data=base.as_symbol('dataframe'))
print(base.summary(M).rx2('coefficients'))
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.6 1.1489125 0.522233 0.6376181
x 0.8 0.3464102 2.309401 0.1040880
वैसे, मुझे pandas.rpy.common
के आयात पर एक भविष्यवाणियां मिलती हैं। हालांकि, जब मैं pandas2ri.py2ri(dataframe)
की कोशिश की आर (उल्लेख here के रूप में) करने के लिए पांडा से एक dataframe कन्वर्ट करने के लिए, मैं
NotImplementedError: Conversion 'py2ri' not defined for objects of type '<class 'pandas.core.series.Series'>'
'rpy2' किस संस्करण का उपयोग कर रहे हैं? – joris
मैंने इस जानकारी को जोड़ने के लिए अपना प्रश्न अपडेट कर दिया है। – mjandrews
मुझे डेटाफ्रेम रूपांतरण के साथ समान समस्याएं थीं लेकिन मुझे गैर rpy2 फ़ंक्शंस का उपयोग करना पड़ा। 'Pandas2ri.py2ri (डेटाफ्रेम)' – shibumi