岡本@日本女子大学心理学科です。 Pickleを用いると、Stanを利用するPythonスクリプトの開発向上に 著しい効果があることを実感しました。Pickle利用の簡単な例を http://y-okamoto-psy1949.la.coocan.jp/Python/misc/Pickle_Stan/ に上げておきました。 Pickleを使うようになった、使わざるを得なくなった事情を 一応、説明しておきたいと思います。 Stanを使う切っ掛けは、信号検出理論の評定法データの分析プログラムを 用意することでした。信号検出理論のデータは「Yes/No」の2件法が 標準ですが、これは効率が悪いと思います。評定法を取り入れると データ収集の効率が上がりますが、この分析プログラムをC++で開発した ものは既に http://y-okamoto-psy1949.la.coocan.jp/booksetc/pm2010/SDT/ に公開しております。C++は心理学ではあまり歓迎されないようですので Pythonで開発したものを用意して http://y-okamoto-psy1949.la.coocan.jp/Python/misc/SDT/ に公開した次第です。Stanスクリプトは簡明なものだと思いました。 Psyhophysicsの弁別データの分析もC++で開発したものは http://y-okamoto-psy1949.la.coocan.jp/VCpp/adapupdown/ などに公開しておりますが、Stanで書くと簡単になりました。モデルの 考え方としては、多値項目(polytomous item)の項目反応理論のモデルと 似ているので、多値項目分析のStanスクリプトを書いてみると簡単なものに なりました。2値項目(binary item)の分析プログラムとともにそれぞれ 多値項目 http://y-okamoto-psy1949.la.coocan.jp/Python/misc/IRTpol/ 2値項目 http://y-okamoto-psy1949.la.coocan.jp/Python/misc/IRTbin/ に上げてあります。この項目反応理論のStanスクリプトの実行に意外と 時間が掛かったのでPickleを使ってみた次第です。Stanスクリプトの コンパイル・ビルドに時間が掛かる場合、サンプリングに時間が掛かる 場合には、pickleでモデルあるいはサンプリング結果を保存すると、 Stanスクリプトが一応できた後(Stanスクリプトは簡単に出来上がると 思います)は、Pythonによる分析と分析結果の表示スクリプトの開発 ですので、Stanスクリプトの処理に煩わされずにプログラミングが できます。 横浜市在住 岡本安晴
ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。