inquisitで刺激セットのカウンターバランス

需要があるかわかりませんが,inquisitで参加者IDによって取ってくる刺激セットを変える方法です。 刺激セットが2つあって,参加者IDが奇数の場合はセット1,偶数の場合はセット2にする例です。 偶数か奇数かということは,参加者IDを2で割って,余りが1か0かで場合分けします。1であれば奇数,0であれば偶数ということですね。

まず,set1.txtとset2.txtとして読み込みたいinquisitのスクリプトをファイルとして保存し,メインのスクリプトと同じフォルダに入れておいてください。例えば,以下のような感じです。

set1.txt

セット1
<item studyItems>
/ 1 = "リンゴ"
/ 2 = "ミカン"
</item>

set2.txt

セット2
<item studyItems>
/ 1 = "トマト"
/ 2 = "レタス"
</item>

メインのスクリプトには以下のように記述をしておきます。mod(x, y)はxをyで割った時の余りを計算する関数です。script.subjectidはinquisitで参加者IDを表す表現です。

参加者番号が奇数:セット1
<include>
/ precondition = [mod(script.subjectid, 2) == 1]
/ file = "set1.txt"
</include>

参加者番号が偶数:セット2
<include>
/ precondition = [mod(script.subjectid, 2) == 0]
/ file = "set2.txt"
</include>

刺激セットが4つある場合は,mod(scripit.subjectid, 4)として4つの条件わけをすればOKです。

この方法を使えば,参加者IDによって一部だけ別のスクリプトを走らせられるので,刺激セットのカウンターバランス以外にも利用できるかと思います。