PsychoPyでエラーフィードバック - 井関龍太のページ

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

PsychoPyでエラーフィードバック

Last-modified: 2017年08月10日 (木) 21:52:17 (467d)
Top > PsychoPyでエラーフィードバック

反応の正誤をフィードバックしたい

認知課題を実施するとき,実験参加者の反応の正誤についてのフィードバックを提示したいことがあります。
典型的なのは,反応が誤りであるときにそのことをフィードバックするなどでしょう。

ここでは,Codeコンポーネントを使ってPsychoPyでエラーフィードバックを提示する方法を紹介します。
基本的には,PsychoPyでランダムにイベント挿入を簡略化した内容といえるでしょう。

サンプルの概要

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

fileErrorFeedback.zip

ダウンロード対象はzipフォルダになっていますので,右クリックして「すべて展開」を選び,圧縮フォルダを展開してください。
PsychoPyで作成した実験ファイル(ErrorFeedback.psyexp)のほかに,Excelファイルがひとつ入っています。
これは実験ファイルとリンクさせて使用する条件設定用のファイルです。
条件ファイルは実験ファイルと同じディレクトリ(同じフォルダ)に配置してください。

サンプルの内容は,ランダムな順に提示される数字に対して,偶数か奇数かをキー押しで回答するという課題になっています。
偶数に対しては”z”,奇数に対しては”backslash”を正答として設定しています(この設定はcondition.xlsxファイルで指定しています)。

disp1.png

実験のメインのルーチンは以上の内容を指定した”trial”ルーチンですが,このファイルにはもうひとつのルーチンがあります。

タブを切り替えて,”Feedback”ルーチンを見てみましょう。

disp2.png

このルーチンの内容は,テキストメッセージ(”エラー!!”)が1秒間提示されるというだけのものです。
もちろん,このままこのプログラムを走らせると,実験刺激の後に毎試行エラーのメッセージが表示されることになります。
そこで,このルーチンの実行を上部のCodeコンポーネントで操作することにします。

disp3.png

このコードでは,実験参加者の直前の反応が正答であった場合には,Feedbackルーチンの実行を停止するように指定しています。
”keyresp.corr”のkeyrespの部分は,trialルーチンのkeyboardコンポーネントの名前に一致させる必要があります。
また,keyboardコンポーネントで”正答を記録”のチェックボックスをオンにして,正誤の基準も設定しておいてください。
PsychoPyのこの”正答を記録”する機能では,正答は1,誤答は0として記録されます。
そこで,”keyresp.corr == 1”とは,実験参加者の反応が正答であったことを意味することになります。
二行目の”continueRoutine = False”は,このルーチンを停止させる命令です。

整理すると,このプログラムでは,毎試行,エラーフィードバックを提示するルーチンが働きます。
ただし,直前の反応が正答である場合には,フィードバックのルーチンを即座に停止します。
そこで,結果としては,正答の場合にはフィードバックなし,誤答の場合にはエラーメッセージが現れるプログラムとして機能するわけです。

カスタマイズの方針

if文の構成を変えれば,誤答のときでなく,正答のときだけルーチンを実行するように書き換えることもできるでしょう。
正答のときと誤答のときでそれぞれ別々のメッセージを提示したい場合にはもう少し工夫が必要です。
まず,if~else構文を使って,条件が満たされたときと満たされないとき(正答のときとそうでないときなど)の挙動を決める必要があります。
次に,条件にしたがって実行される内容をルーチンの停止でなく,メッセージの内容の書き換えに変更する必要があります。
サンプルのFeedbackルーチンに即して書くなら”ErrorMessage.setText(u'表示したいメッセージ')”のようになるでしょう。

また,ルーチンの内容を書き換えることによって,テキストメッセージの代わりに音声を提示する,テキストと同時に音声を提示するといったことも可能でしょう。
なお,フィードバックの提示のしかたは,ここで紹介したもの以外にもさまざまなものがあります。
フィードバックの内容や提示のしかたによっては他のやり方のほうが有効な場合もあるかもしれません。
いろいろと試してみてください。

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

添付ファイル: filedisp3.png 135件 [詳細]   filedisp2.png 147件 [詳細]   filedisp1.png 141件 [詳細]   fileErrorFeedback.zip 104件 [詳細]