Inquisitで1つの刺激に対して複数回の反応取得

Inquisitで,1つの刺激に対して複数回の反応を取得したい場合があります。例えば,顔の評価を測定する時に,顔Aについて魅力度,信頼性を測定したいというものです。なお,今回は画面上に「顔A+魅力度測定」を行った後に画面変移をして「顔A+信頼性」という流れを想定しています。「顔A+魅力度+信頼性」を1画面に収めるのであればそんなに複雑ではありません。

今回の条件を達成するために必要な要素は以下のようになります。

  • 同じ刺激を画面を跨いでも利用できるようにする
  • 同じ刺激に対して魅力度→信頼性の順番で評定項目を出す

ここでのポイントはlistの使い方です。listは配列に含まれる項目を1つ取り出す関数ですが,どのように取り出すかを細かく指定することができます。基本的には,取り出す順番(ランダムか順番か)と値をいつ更新するか(listを呼ぶ度に新しい値を取り出すか,同じblockではlistを呼んでも値は常に同じかなど)を決定します。例えば,1から3までの配列を作ったときに以下のようなパターンを作れたりします。

  • 繰り返しなしランダム(2, 1, 3など)
  • 繰り返しありランダム(1, 1, 3など)
  • 同じBlock内では次の項目を呼び出さない(同じBlockではずっと同じ値のまま)
  • 呼び出す度に次の項目を呼ぶ(毎回,値が更新される)

これを踏まえて,以下のようなコードで1つの刺激に対して複数回の反応取得が可能になります。

***
/ selectで/itemから選ぶ刺激番号を指定できるので,後ろで定義する配列変数(order)を指定する
***
<picture stimuliPicture>
/ items = stimuliSet
/ position = (50,35)
/ width = 35%
/ height = 35%
/ select = order
</picture>

***
各刺激
***
<item stimuliSet>
/1 = "1.jpg"
/2 = "2.jpg"
</item>

***
刺激の取得に関する配列を定義
/ items: 配列に含まれる数字を指定
/ selectionmode: 配列からどのように選ぶかを指定
/ selectionrate: 初期化(リストから次の変数を呼び出す)タイミングを指定
/ replace: 選んだものを戻すかを指定(ランダム時に同一のものを繰り返するかを決める)
***
<list order>
/ items = (1-2)
/ selectionmode = random
/ selectionrate = block
/ replace = false
</list>

<likert attractRating>
/ anchors = [
1 = "まったく魅力的でない";
5 = "どちらでもない"; 
9 = "非常に魅力的である"]
/ stimulusframes = [1=stimuliPicture]
/ numpoints = 9
/ anchorwidth = 3%
/ fontstyle = ("Meiryo",1.5%)
/ position = (50,60)
</likert>

<likert trustRating>
/ anchors = [
1 = "まったく信頼できない";
5 = "どちらでもない"; 
9 = "非常に信頼できる"]
/ stimulusframes = [1=stimuliPicture]
/ numpoints = 9
/ anchorwidth = 3%
/ fontstyle = ("Meiryo",1.5%)
/ position = (50,60)
</likert>

<block faceRating>
/trials = [1 = attractRating; 2 = trustRating]
</block>

<expt>
/blocks = [1-2 = faceRating]
</expt>

このコードを動かす際には「1.jpg」と「2.jpg」という画像ファイルがいるので,適当な画像ファイルをこの名前にしてスクリプトと同じフォルダにいれておいてください。コードを動かすと「1つの顔の魅力度を評定した後に,同じ顔の信頼性を評定する」というのが1ブロックの流れになります(block faceRating)。なので,あとは刺激の数だけブロックをexptで構成すれば良いわけです。

やや複雑になりましたが,faceRatingというblockではlistの更新をしない(/ selectionrate = block)ようにし,そのlist(order)を刺激の選択基準に用いることで,block内では同じ刺激を出し続けることができます。今回は評定(質問紙)を例にしましたが,list要素はうまく活用することで,刺激の呈示を制御することができます。