Inquisitで潜在連合テスト(Implicit Association Test: IAT)を作成する方法

 

前に Inquisit の記事を書きましたが、あちらはInquisitで質問紙作るという到底需要がないであろう内容だったので、自身への備忘録も兼ねて、改めて需要がありそうな記事を書こうと思います。今回は「IATを作る」です。おそらく、Inquisitを使用する人のほとんどがこの目的で使われるかと思います。そもそも、Inquisit自体がIATを実施するプログラムとして開発された経緯があるので、こちらのほうが正統な使い方ではあります。

Inquisitの最大の特徴は、その刺激制御と反応時間測定の正確さにあるとも言えます。実験室での実施では他ソフトでもそこまで問題にならないかもしれませんが、Webで実施する場合はサーバーへの通信遅延などが心配されます。InquisitはWebで実施する場合も、(実験参加者からすれば面倒ですが)専用のアプリケーションを実施する人のPCにインストールしてもらうことによって正確な反応時間が取得できるようになっています(参考)。一方で、過去のバージョンではフレームにずれがあることが入戸野宏先生により報告されていたり(こちらのQ13を参照)、Inquisit公式でもWindowsでの計測についてアナウンスしていたりするので、この辺には注意してください。今回ではWeb版の設定については説明せず、IATを実行できる Inquisit ファイルを作成するということだけ説明していきます。これさえできれば、実験室での実施は可能になります。

さて、いよいよIATを作るということについて述べていきます。IATを作るといっても、一から作る必要は全くありません。Inquisitの開発元である millisecond software社には Millisecond Test Library というものがあり、過去に論文で使用されたプログラムがここにアップロードされています。しかも、millisecond software社の社員が作成・更新してくれています。これもInquisitを使用するメリットの一つだと思います。

まず、Millisecond Test Libraryにアクセスし、Implicit Association Test Template Scripts (IAT) – Greenwald et al. (1998) を開いていください。その中に、「IAT with Word Stimuli – English」 というのがあると思います。それが単語を使ったごく一般的なIATです。Download Test をクリックしてダウンロードしてください。Inquisitのバージョンを選ぶ必要があるかと思いますが、ここでは現時点で最新版である for Inquisit 5 をダウンロードします。もし画像を使ったIATを行いたい場合は、同じページにある 「Picture IAT – English」  を使うかとよいかと思います。User Manualをクリックすると、プログラムの説明が見れますが、スクリプトの中にも書いてあるので気にしなくていいかと思います。

Download Testをクリックすると、iat.iqzip というファイルがダウンロードされるはずです。zipという名の通り、圧縮されていますのでダブルクリックして解凍してください。そうすると、iat というフォルダが作成されるはずです。もし解凍されない場合は、一度拡張子を .zip に変更してから解凍してみてください。

iatフォルダの中には、

iat.iqx : IATのスクリプトファイル
iat.sps: SPSS用のスクリプトファイル(参考)ここでは使いません。
intro_iat.htm: IATの教示用htmlファイル(どの刺激語がどのカテゴリーかを示したもの)

の3つが含まれています。
ここでは、iat.iqx と intro_iat.htm を書き換えていきます。

まず、適当なテキストエディタ(Notepad++ がおすすめ)で iat.iqx を開いてください。中身はテキストファイルなので、読み込めるはずです。Notepad++なら右クリックから Edit with Notepad++ で開けます。 Inquisit でも開くことができますが、日本語があると編集時にバグがでるので推奨しません。iat.iqxの上方にスクリプトの説明が丁寧に書いてあるので、ここをちゃんと読んでいけばわかるようにはなっていますが、ここでは最低限IATを動かすのに必須の要素だけ説明します。

ここから説明することは主に以下の4つです。
1. 刺激の変更
2. データ出力の調整
3. 日本語化
4. 実施時の注意事項
※Notepad++(というか大抵のテキストエディタ) であれば「Ctrl + F」で検索ができるので、該当行を検索すると早いです。
※Inquisit実行中は Ctrl + B でブロック飛ばし、Ctrl + Q で実験終了させることができます。テストするときはこれを使うと便利です。

1. 刺激の変更

刺激内容を制御しているのは以下の行ですのでこれを書き換えていきます。

“Good”, “Bad”, “Flowers”, “Insects” と書かれているのがカテゴリー名 、それぞれのカテゴリーの直下に書かれている単語(例: “Good” だと “Marvelous”, “Superb”…) がそのカテゴリーの刺激語です。これを、使いたいものに書き換えてください。

このとき、attributeA, attiributeB, targetA, targetB と4つの変数があると思いますが、どこに自分の使いたいカテゴリーを書くかによってdスコアの正負が変わってきますので注意してください。dスコアは大文字アルファベット(A または B)が一致するとき、正の値になるように計算されます。例えば、上記の例だと、「”Good (attributeA)” と “Flower (targetA)”」「”Bad(attributeB)” と “Insect (targetB)”」 の連合が強いとき、dスコアは正の値をとるように計算されます。逆に、「”Good (attributeA)” と “Insect (targetB)”」「”Bad(attributeB)” と “Flower (targetA)”」 の連合が強いときは負の値をとるようになります。ここを間違えると、dスコアの解釈が逆転してしまうので注意してください。dスコアの詳しい計算方法は Greenwald et al. (2003) を参照してください。

また、画像を使用する場合は、”image.jpg” のようにファイル名を記載し、このスクリプトと同じ場所に画像ファイルを入れてください。そして、以下の箇所を改良していきます。

この箇所では、IATの実行中に画面中央に現れる刺激の出力を設定しています 。具体的には、 /items で先程の刺激語を呼び出しています。ただし、 <text> </text> で囲うと、刺激がテキストだという命令になっていますので、このままだと”image.jpg”という文字そのものが出力されることになります。それを防ぐためには、<picture> </picture>に書き換えます。例えば、targetA と targetB が画像の場合は、<text targetA> ></text>と <text targetB> </text> の部分を、

と書き換えればOKです。<picture targetA> </picture> と <picture targetB> </picture> のどちらを先に書いても大丈夫です。Inquisitはどのコードをどこに書いても基本的には大丈夫です(が、わかりやすいように書きましょう)。

 

2.データ出力の調整

まず、このIATプログラムはデフォルトで最後に「あなたのdスコアは〇〇でした」という出力をするようになっていますので、これをオフにします。

/showsummaryfeedback = true となっていますので、これを

に書き換えます。ちなみに ISI は少し上に英語で説明が書いてありますが、刺激に反応してから次の刺激が表示されるまでの間隔 (interstimulus interval)です。デフォルトは 250ms になっています。

次に、データの出力方法を設定します。IATの実験終了後は、rawデータとsummaryデータが出力されるようになっています。rawデータはその名の通り、すべての試行の反応時間・正答率などが逐一記録されているデータです。summaryデータはrawデータをもとにdスコアなどを計算させたデータです。分析ではよほどのことがない限り、summaryデータしか触らないでしょう。
デフォルトでは各実験参加者についてセパレートされた結果ファイルが出力されるようになっています。制御は以下の行で行われています。

<summarydata>  </summarydata> の中にある /separatefiles = true を

にしましょう。これで、全参加者のdスコアが1つのファイルに出力されます。<data>  </data> のほうはrawデータの出力設定です。こちらは true でも false でもかまいません。
ちなみに、IATの結果は. iqdat という拡張子のファイルとして出力されますが、中身はただのタブ区切りファイルです。エクセルでも読み込めます。

 

3. 日本語化

ここからは教示などを日本語にしていきます。

3-1. 各ブロック前教示の日本語化

まず、IATの各ブロックの教示の制御は以下で行われています。

ここを日本語にしていきます。 <%    %> という表示は変えないようにしながら変更してください。この表示で、カテゴリー名を他の箇所から取得しているので、変えると問題が起きます。例えば、<%item.attributeAlabel.item(1)%> であれば、

の /1 = “Good” を取り出しているので、ここにはGoodと表示されるといった感じになります。~n は改行コードです。これを入れないと改行されないので注意してください。

英語を直訳するとわかりにくいことが多々あるので、こなれた日本語にするためには少し労力がかかります。私が使っている日本語教示を以下に置いておきますので勝手に書き換えて使ってもらってかまいません。ただし、使用は自己責任でお願いします。右クリックをして、「名前をつけてリンク先を保存」をすればダウンロードできます。

iat_instruction.txt

そして、日本語にするとフォントが大きすぎて画面に入りきらず、切れてしまうことがあります。そのときの制御は以下で行います。直上の <instruct> </instruct> ではないので注意してください。

簡単に説明すると、/items = instructions で先ほどの教示を呼び出して設定をしている形になります。ここに、

という項目を加えてみてください。2.8% がフォントサイズ(画面全体を100%としたときの比率で表す)です。それでも入らない場合は小さくしてみてください。

3-2. IATのカテゴリー説明教示の日本語化

次に、IATを開始したときに一番最初に表示されるカテゴリー説明の教示を設定していきます。この画面のことです。

この画面はhtmlで作成され、Inquisit側でそれを呼び出すという仕様になっています。
まず、ダウンロードの際にあった intro_iat.htm の中身を改変していきます。中身はただのhtmlファイルですので、タイトルや本文を適宜日本語に書き換えていくといいでしょう。

<% %>で囲まれた表示が、Inquisit内のカテゴリー名や刺激語名を参照しています。参照方法は各ブロック前の教示と同じ方法です。デフォルトでは刺激語が8個ずつであるとして作成されているので、もしそれより少なくする場合は、各段落に8個ずつある <%   %> を減らしてください。例えば、attributeAの刺激語を6つとするなら、

のように、 <%item.attributeA.item(7)%>, <%item.attributeA.item(8)%> を削除してください。削除しないと「0」を表示するようになっています。

画像を使用している場合は、少し複雑になります。HTMLの<img>タグの scr の引数として、<%    %> の表現を指定してください(scrの引数として指定するときは” “も必要なので忘れないようにしてください)。例えば、targetAとtargetBが画像なら以下のように記述します。<%    %> の中身が、テキストのときと少し記法が違うので注意してください。

Inquisit内では、以下のコードでこのhtmlファイルを呼び出しています。/file = ”  ” で作成したhtmlのファイル名を指定してください。

こちらに関しても私が使用した日本語版教示をおいておきますので改変して使用してくださってかまいません。ただし、使用は自己責任でお願いします。IATのことは「単語分類課題」と言い換えています。右クリックをして、「名前をつけてリンク先を保存」をすればダウンロードできます。

intro_iat.htm

3-3. その他の微調整

まず、下記の箇所を参照してください。

<text spacebar> </text> はIATの各ブロック開始前に下部に出る “Press the SPACE BAR to begin”という表示の制御です(下の画像1枚目)。これを例えば、”スペースキーで次に進みます” と日本語に変えてあげましょう。

<text errorReminder> </text>は課題実行中に下部に出る “If you make an error, a red X will appear. Press the other key to continue.” という教示の制御です(下の画像の2枚目)。これを例えば、 “もし間違えていれば赤色のバツ印が表示されます。その際は正しいキーを押し直してください” と日本語に変えてあげましょう。

ブロック開始前の画面

課題実行中の画面

最後に、上記の画像で「Good or Flowers」や「Bad or Insects」と表示されている「or」を日本語に変えてあげます。別に変えなくてもいいという場合はそのままでいでしょう。制御は以下の部分です。

<text orleft> </text> が左に表示される “or” の制御、 <text orright> </text> が右に表示される”or” の制御です。ここを ”または” に変えてあげましょう。その際、フォントがそのままだと大きいので、

にすることをお勧めします。

4.実施時の注意事項

これにてIATは完成です。あとは動かせばいいだけなのですが、一つだけ注意点があります。
IATは、ブロックの順序をカウンターバランスを取るようにしているのですが、そのカウンターバランスはsubject ID ではなく、 group number で制御されています。Inquisitを実行すると、以下のようにsubject ID と group number を 入力するように要求されますが、カウンターバランスを取るためにgroup number も変えるのを忘れないでください。

Inquisit 実行時の最初の画面

この実験参加者割り当てを制御しているのは以下の部分です。

上の<expt> </expt> が、「attributeA, targetA」「attributeB, targetB」を最初に行う条件、
下の<expt> </expt> が、「attributeA, targetB」「attributeB, targetA」を最初に行う条件です。
ある実験参加者がどちらの<expt> </expt> に入るかを、

の2つで制御しています。
もし、subject ID で割り当てをしたいのであれば、両方の<expt> </expt>内の / groupassignment を以下のように書き換えてください。

/subjects =  は何番の人をどちらの <expt> </expt> に割り当てるかというもので、
例えば、(1 of 2) と書けば、1, 3, 5, 7, 9,…… の人はその<expt> </expt>に、
(2 of 2)と書けば、 2, 4, 6, 8, 10, ……の人はその<expt> </expt>に割り当てられます。
もし1, 2, 5, 6, 9, 10, ……という風に割り当てたいのであれば、(1,2 of 4) と書けば大丈夫です。

要するに、/subjectsで番号の指定を、 /groupassingment でどの種類の番号(subject ID または group number)を使うかを決定しています。ちなみに、

と書けば、subject ID にも group number にも関係なく完全にランダムに割り当てられます。

 

以上で、とりあえず実験室でのIAT実施は可能かと思います。Inquisit Webでの設定やコード意味のの詳しい説明についてはまた別の記事で触れようと思います。また、これは私自身の備忘録も兼ねているので、随時更新されます。ご了承ください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です