inquisit4でVASの実装

Visual Analogue Scale(VAS)は画像や顔の評定に用いられる測定方法です。アナログ(紙)で実施する場合には10cmの水平線を引いて,両端に測定値を置きます(例えば,嫌い〜好き)。評定対象に対して,最も当てはまる位置で直線にスラッシュを入れてもらいます。実験者は定規でスラッシュの位置を測り,それを点数とします。10cm = 100mmなので,0〜100の得点範囲になります。

実験・調査をする上でLikertではなくVASを使いたいという場合はけっこうでてきます。例えば,プレポストで同一の対象を2回評定する場合,LikertよりVASの方がよいでしょう。Likertでは値を覚えられていたり,わずかな変化を測定しにくいためです。 inquisitでもVASはslider要素を用いることで実装できます。コードの例としては以下です。

スライダーを作成
<slider s1>
/ range = (0,100)
/ required = true
/ caption = ("この画像について評定してください")
/ labels = ("嫌い", "好き")
/ slidersize = (40%, 3%)
/ position = (50%, 50%)
/ showticks = false
/ showtooltips = false
/ size = (60%, 5%)
/ defaultresponse = 0
/ required = false
</slider>

評定する画像
<picture picture1>
/ items = "1.jpg"
/ position = (50,30)
</picture>

スライダーを埋め込んだページを作成
<surveypage ratingPage>
/ questions = [1 = s1]
/ stimulustimes =[1 = picture1]
/ nextlabel = "次へ"
/ finishlabel = "終了"
/ nextbuttonposition = (65,70)
/ showpagenumbers = false
/ showbackbutton = false
</surveypage>

調査にページを入れる
<survey pictureRating>
/ pages = [1 = ratingPage]
/ showbackbutton = false
/ showpagenumbers = false
/ showquestionnumbers = false
/ finishlabel = "終了"
</survey>

slider独自の各要素の簡単な説明は以下の通りです。

  • range = (x, y): xからyまでの得点範囲
  • slidersize = (x, y): スライダーの大きさ
  • caption = (""): テキストでの説明
  • labels = ("x", "y"): 評定の両端のラベル
  • showticks = true/false: 目盛りの有無
  • showtooltips = true/false: カーソルを合わせるとでる説明
  • defalutresponse = x: 初期値をxに設定
  • required = true/false: 回答が必須かどうか

基本的に,VASでは目盛りを出さない方がよいのでshowticksやshowtooltipsはfalseがよいでしょう。なお,ラベルは直線の左右ではなく,両端の上にでます(説明が難しいのですが,いわゆる紙のVASとはレイアウトが異なります)。もし,直線の左右に出したい場合は,別途,textとして表示するしかありません。この場合,textとsliderの表示位置を合わせるが手間となります。

sliderの注意点として,WindowsMacでデザインが異なる点があります。例えば,スライダーのカーソルはMacは丸形(○)ですが,Windowsでは長方形に似た形になっていたりします(inquisit4だけかもしれません)。

ここから,ややこしいのですが,上のコードはsurveyでの利用を想定していますが,実はinquisitではsliderは調査(survey)だけでなく実験(block)でも利用できます。inquisitのreferenceにはsurveyの要素として紹介されているので気がつきにくいのです。

blockで利用する利点として,同じsliderを繰り返し利用できる点にあります。どういうことかというと,調査(survey)でsliderを利用する場合には,基本的には評定対象1つにつきslider1つがセットになります。 例えば,画像A,画像Bがある時には,画像AとsliderA,画像BとsliderBを用意する必要があります。画像Aと画像Bの両方でsliderAを記述すると,最初の答えたスライダー位置が2回目もでてきます。具体的には,最初に画像Aに80と回答した場合には,画像Bの評定画面でスライダーの位置が80になってしまいます。刺激が少ない場合はこれでも良いのですが,例えば,画像100枚の評定を考えてみると,pictureとsliderのペアを100個コピペしなければいけません。手間はもちろんかかりますし,コードミスが生じやすいという危険なプログラミングになってしまいます(そもそもコピペの繰り返しをプログラミングといっていいのか?)。

一方で,blockで利用すれば,同じsliderを繰り返し用いてもdefaultresponseの値に毎回リセットされますので,100回繰り返す場合でも大丈夫です。

スライダーを作成
<slider s1>
/ range = (0,100)
/ required = true
/ caption = ("この画像について評定してください")
/ labels = ("嫌い", "好き")
/ slidersize = (40%, 3%)
/ position = (50%, 50%)
/ showticks = false
/ showtooltips = false
/ size = (60%, 5%)
/ defaultresponse = 0
/ required = false
</slider>

評定する画像
<picture pictures>
/ items =pictureSet
/ position = (50,30)
</picture>

<item pictureSet>
/1 = "1.jpg"
/2 = "2.jpg"
</item>

スライダーを埋め込んだページを作成
<surveypage pictureRatingTrial>
/ questions = [1 = s1]
/ stimulustimes =[1 = pictures]
/ nextlabel = "次へ"
/ finishlabel = "次へ"
/ nextbuttonposition = (65,70)
/ showpagenumbers = false
/ showbackbutton = false
</surveypage>

実験にページを入れる
<block pictureRating>
/ trials = [1-2= pictureRatingTrial]
</block>

この例では,2つの画像(1.jpg, 2.jpg)を用意し,それらをランダムな順番でそれぞれ評定してもらうという実験を想定しています。 参考になれば幸いです。