いくら、Pythonに充実した標準ライブラリが備わっているといえども、統計処理をしようと思うと、なかなかすぐにできるものではありません。順位和検定をしたいと思い、Pythonのライブラリを少し探したけど、見つからないのでR(http://www.r-project.org/)との連携を模索したらすぐにいいのが見つかりました。
RPy(http://rpy.sourceforge.net/) 現時点で、RC1が発表されていました。2.4系に対応しています。ちなみに試した環境は、2.4.3 RPyは、rpy-1.0-RC1.win32-py2.4.exeを選択。 インストールは、言われるがままに、 Python for Windows extensions(pywin32-210.win32-py2.4.exe) Numerical Python(Numeric-24.2.win32-py2.4.exe ) をそれぞれ、インストール。R.dllのある場所を、windowsの環境変数PATHに追加。これで、OK!と思いきや、実行すると >>> import rpy RHOME= C:\Program Files\R\R-2.3.1 RVERSION= 2.3.1 RVER= 2031 RUSER= C:\Documents and Settings\tsuji Loading the R DLL C:\Program Files\R\R-2.3.1\bin\R.dll .. Done. Loading Rpy version 2031 .. Traceback (most recent call last): File " import rpy File "C:\Python24\Lib\site-packages\rpy.py", line 112, in -toplevel- exec("import _rpy%s as _rpy" % RVER) File " ImportError: No module named _rpy2031 といったようなメッセージが出る。ここでは、エラーを再現するためにわざとやっているけど、結局、rpyがインストールされたフォルダ(たとえば、C:\Python24\Lib\site-packages)にモジュール(_rpy2031.pyd)がないとダメみたい。今回使ったRC1は、デフォルトでR2.3.1に対応しているので、Rのバージョンをこれにあわせておくと、楽かも。 import rpy wc_result = rpy.r.wilcox_test( data1 , data2, paired = rpy.r.TRUE ); wc_result.get( "p.value" ) で、計算結果のP値を得られる。TRUE,FALSEは、そのまま文字列では書けないので注意。 スポンサーサイト
|
<<networkxとmatplotlib | ホーム |
|
|
| ホーム |
|