Pythonは機械学習周りのパッケージは充実している感じがあるのですが、どうにも統計周りのパッケージが不足している感じがあって、PythonからRを叩くパッケージを試してみることにしました。
PythonからRをつかうパッケージとしてはRPy2が有名っぽいですが、
There is currently no binaries or support for Microsoft Windows (more for lack of ressources than anything else).
とのことで・・・
試しにeasy_installでインストールしてみましたがエラーが出てインストールできなかったので、違う方法を試すことにしました。
PythonからRを使いたい -だがRPy2おめーはダメだ- - 盆栽日記を見てPypeRのほうを試すことにしました。
インストールはいつもどおりeasy_installで簡単にできました。
> easy_install PypeR
RでいうDataFrameと同じようなことができるPandasについてもインストールします。
> easy_install pandas
依存するパッケージも自動的にインストールされます。
この前書いたPythonで回帰分析のスクリプトを少し変えてPypeRを使ったコードにしてみました。
ソースコードは以下に置いてます。
Python + PypeRでPythonからRをつかってみる · GitHub
実行すると以下のような出力とグラフが表示されます。
try({summary(df)}) X Y Min. :157.8 Min. :43.07 1st Qu.:167.6 1st Qu.:56.30 Median :172.0 Median :62.99 Mean :171.8 Mean :62.62 3rd Qu.:175.3 3rd Qu.:68.42 Max. :187.9 Max. :85.74 try({summary(result)}) Call: lm(formula = Y ~ X, data = df) Residuals: Min 1Q Median 3Q Max -9.8270 -2.7967 0.1225 3.0575 11.7299 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -143.70770 9.27459 -15.49 <2e-16 *** X 1.20116 0.05396 22.26 <2e-16 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 4.382 on 198 degrees of freedom Multiple R-squared: 0.7145, Adjusted R-squared: 0.713 F-statistic: 495.5 on 1 and 198 DF, p-value: < 2.2e-16
統計については、Scikit-learnよりもやはりRのほうが出力が詳しくていいです。
PythonからRを使うなら全部Rでいいような気もしますが、単純なスクリプトならともかく、データの加工までをRでやろうとすると結構大変だったりするので、Pythonでその部分を書けるのはありがたいかなと。