PsychoPyで調整法による回答 - 井関龍太のページ

ホーム   編集 凍結 差分 バックアップ 添付 コピー 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

PsychoPyで調整法による回答

Last-modified: 2018年11月19日 (月) 20:32:24 (23d)
Top > PsychoPyで調整法による回答

調整法のデータを収集したい

PCを使った実験を行っていると,単純にマウスやキーボードによる反応を取得するだけでなく,よりインタラクティブに行われた反応を捉えたいことがあります。
具体的には,調整法のデータを収集したいときなどです。
たとえば,標準刺激として与えられた円と同じ大きさの円を実験参加者に生成してほしいといったことがあります。
このような場合には,Codeコンポーネントを使って参加者によるキーボード反応を刺激の大きさにフィードバックすることで期待するような動作を実現できます。

サンプルの概要

まず,サンプルのファイルをダウンロードしてください。
下のアイコンを右クリックして「対象をファイルに保存」を選んでください。
または,保存のポップアップから「ファイルを保存する」を選んでください。
プログラムはPsychoPy v.1.90.3(python 3バージョン)で作成しています。

fileAdjustCircle.zip

今回のサンプルは,最初に500 ms注視十字を提示した後,画面の左右に2つの円が現れます。
左の円が標準刺激で,実験参加者はこの円と同じ大きさになるように右の円の大きさを調整することが求められます。
右の円が反応用の比較刺激で,キーボードの上矢印キーを押すと直径が一段階大きくなり,下矢印キーを押すと一段階小さくなります。
Enterキーを押すと試行を終了して,次の試行に進みます(サンプルでは,5試行くり返す設定になっています)。

disp1.png

trialルーチンの先頭にCodeコンポーネントを設置しています。
他には,Polygonコンポーネントを2つ使って,それぞれ画面中央から左側と右側の円を指定しています。
反応用の円を指定するPolygonコンポーネントには特別なしかけはありません。

disp2.png

Codeコンポーネントの「実験開始時」のタブでは,あとで使うrandomとnumpyのモジュールを読み込んでいます。

disp4.png

キーボード反応に伴って刺激の大きさを変化させるために「フレーム毎」タブでキー反応の取得とキーの種類ごとの動作を指定します。
上矢印キーと下矢印キーが押された場合には,それぞれ,0.1ずつ比較刺激の直径を増減させた値をPolygonコンポーネントに設定し直します。
この数値を変更すれば増減の幅を変えることができます。
Enterキーが押された場合には,そのときの比較刺激のサイズをファイルに出力して,試行を終えます。

disp3.png

「Routine開始時」タブでは,反応用の円刺激の大きさの初期値を設定しています。
初期値を設定しなくても動作上は問題ないのですが,その場合,反応用の円の大きさは前の試行を終了したときのままになってしまいます。
毎回同じ初期値からはじめたい場合は固定値でも構いません。
しかし,調整法では,標準刺激よりも大きい比較刺激からはじめる場合と,小さい比較刺激からはじめる場合の両方を実施したいとなるのではないでしょうか。
このサンプルでは,比較刺激の大きさは試行ごとにランダムに変わるようにしています。
np.array([3, 3])が円のx軸方向とy軸方向の大きさを指定しており,(random.random() - 0.5)で,-0.5から0.5までの範囲の乱数を指定しています。
これらの数値を書き換えることで比較刺激のベースの大きさとランダムに変化する幅を調整できます。
なお,numpy配列を使っているのは,Polygonコンポーネントのサイズ情報がもともとnumpy配列形式になっていることにそろえるためです。

カスタマイズの方針

大きさ以外にも,色や画面上での位置など,コンポーネントに設定できるものであればさまざまなパラメータを同様のやり方で参加者の反応に応じて変更することができます。
また,Polygonコンポーネントではなく,Imageコンポーネントを使って画像の大きさや位置を変更する仕様にすることもできるでしょう。

TrackBack(0) | 外部リンク元 | このエントリーをはてなブックマークに追加

添付ファイル: filedisp4.png 6件 [詳細]   filedisp3.png 7件 [詳細]   filedisp2.png 7件 [詳細]   filedisp1.png 6件 [詳細]   fileAdjustCircle.zip 8件 [詳細]