心理学実験プログラム・分析スクリプトをPythonコードから作っていきます.
PythonとPsychoPyの基本的な使い方です.
Stroop課題を作ります.
Stroop課題の結果 (ダミー) を分析します.
**Anaconda**をインストールしておいてください.
Anacondaとは分析環境が全て整ったPythonみたいなものです.
(雑に言えばHAD付きExcelとか,PsychToolBox付きMatlabみたいなもの).
実験作成と分析には,AnacondaについてくるJupyter Notebookという開発環境を使います.
なお,AnacondaはPython2版とPython3版があります.Python2版にしましょう.
(本当はPython3版がおすすめですが,2系でなければPsychoPyが動きません)
チュートリアルでは日本語刺激呈示のためにIPAexフォントを使います.次のようにしてインストールしましょう.
- ページ下段,"IPAexゴシック"のzipファイルをダウンロードしてください.
- 次に,zipを展開し,中の"ipaexg.ttf"にフォントパスを通してください.
- Windows: ファイルを右クリックしたらインストールできます.
- Mac: ファイルを~/Library/Fontsの中にコピペします.
また,このフォントを作図にも使いたい場合,以下のように設定します (分析はRで,という人は読み飛ばしてください).
- 「Anaconda2」があるディレクトリに移動します.
- 「.matplotlib」というディレクトリに移動します (なければ作ってから入ります).
- 「matplotlibrc」というファイルを作成し,「font.family : IPAexGothic」と書き保存します.
Pythonでは分散分析ができません.したがってRを呼び出してANOVA君を使うのが良いと思います.
Jupyter Notebookを起動できるかどうか確認してください.
- Windowsなら,以下の2つのいずれかの方法で起動できます.
- スタートメニューの中の「Jupyter Notebook」をクリックします (環境によっては落ちるかも).
- スタートメニューの中の「Anaconda Navigator」を開き,「Jupyter Notebook」をクリックします.
- Macなら,以下の2つのいずれかの方法で起動できます.
- ターミナルを開き,「jupyter notebook」を入力します (ターミナルが使える人はこっちを使ったほうが絶対楽です).
- 「Anaconda Navigator」を開き,「Jupyter Notebook」をクリックします.
うまく起動すると,ブラウザが立ち上がり,以下のような画面が表示されます.
なお,Jupyter Notebookはウイルスバスターに引っかかって起動しない場合があります.その場合,Anaconda2フォルダを監視の例外設定に追加してください.
WindowsユーザーはAnaconda Promptを起動してください.
Macユーザーはターミナルを起動してください.
その後,以下を入力してください.
python -m ipykernel install --user
pip install pyglet pygame psychopy configobj
- 1行目はとりあえず,jupyter notebookを使えるようにする魔法の呪文ということで.気になる人は調べてみてください.
- pipはPythonのパッケージ管理ツールです.
- PsychoPyと一緒にインストールしたPygletとPygameは,PsychoPyが裏で動かしている描画ライブラリです.
- configobjはPsychoPyの一部のモジュールの使用に必要なので入れています.
- ここらへんのインストール方法は様々です.pipの代わりにcondaを使っても,また併用しても良いと思います.
- もし今後,プログラム実行時に
No module named '◯◯'
が表示された場合,大抵はpip install ◯◯
で解決します.pip install
時の名前とインポート時の名前が異なる場合もありますが,ググればすぐにpip install
すべきパッケージ名が分かるはずです.
せっかくJupyterでRが使えるのでざっくり説明します (参考)
Rを開いて,以下を実行してください.ただし,実行前に後述の注意書きを読んで下さい.
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()
- https://cran.ism.ac.jp/ から「Download R for Windows」を開き,baseとRtoolsをダウンロードしインストールしておいてください.
- Rは管理者権限で開いてください
- https://cran.ism.ac.jp/ から「Download R for Mac」を開き,最新のpkgをダウンロードしインストールしてください.
- Rはターミナルから開いてください,
うまくいけば,Jupyter Notebook右上「New」からRが選択できるようになっているハズです.
- 無視して良いです.ちゃんと刺激は呈示されます.
Excelは何故かShift-JISでファイルを開こうとします.以下のいずれかの方法で対策してください.
- Excelは使わない.
df.to_csv(filename, encoding='Shitf-JIS')
のように,ファイル出力時のエンコーディングを変える.- Excelで分析したいなら一番楽.
- この対策をとった場合,RやPythonでcsvを読む際にエンコーディングを指定する必要がある.
- Excelを開いて,
データ
->外部データの取り込み
->テキストファイル
で,UTF-8を選択して開く.
正確な時間制御が必要な場合,呈示時間ではなく呈示フレーム数で指定すれば良いです.例えば60Hzのディスプレイで,
for i in range(6):
something_to_draw.draw()
win.flip()
は,
win.flip()
core.wait(0.1)
と同じ (しかし正確な) 挙動になります.win.flip()
は「次のフレームで,予め描画しておいた刺激を呈示する」ので,6回実行すると必ず6フレーム (= 100ms) 呈示になります.
単にそのモジュールが入ってないだけです.pip install ◯◯
で大抵解決します
つらい.原因は色々です.よくあるのは,
- ログインユーザー名に全角文字が混じっている.
- ファイルパスに全角文字が混じっている.「
Desktop/experiments/実験1/main.py
」の場合もアウト."実験1"を"exp1"等に修正しましょう. from __future__ import unicode_liserals
してない.