Python + PypeRでPythonからRをつかってみる

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でその部分を書けるのはありがたいかなと。

関連エントリ

©2023 みや All rights reserved.