実験パラメータのシャッフル方法

 

心理物理実験を行う際に,試行の順番をランダムにする必要がある場合があります.

しかし同時に,実験パラメータごとに同じ回数試行する必要があるため,下手なやり方をすると,実験終了間際に同じパラメータの試行が連続してしまうことがよくあります.これを被験者が敏感に察してしまうことを防ぐ必要があります.

これには,

1.試行回数分の「カード」を用意して,その「カード」に実験パラメータを書く

2.この「カード」をシャッフルする

という考え方が有効です.

 

ここでは「刺激周波数と刺激の間隔を変えて,仮現運動を生じたかどうかを回答させる」という実験を例にとります.

刺激周波数[Hz]10,30,60,120

刺激の間隔[ms] 100,200,300

各パラメータの組み合わせに対する試行回数:5

 

Excelによる方法

Excelでの方法を述べます. [実際使用ファイル (Excel2007)]

まず,全ての実験パラメータの組み合わせを入力します.この場合は4×3=12通りあります.

 

実験回数分だけコピーします.5回ずつ行いますので12×5=60通りになります.

 

 

右隣のセル(図ではC2)に=rand()と入力します.セルをコピーして,全ての実験の横にランダムな数字が入るようにします.

 

 

ランダムな数値の入った列を隣の列にコピーします.ただしこの際には「形式を選択してコピー」⇒「値をコピー」とします.これはrand関数が操作のたびに新たに数値を再計算するのを防ぐためです.図ではDの列にコピーしています.コピーした瞬間,シート全体で再計算が行われるため,Cの列の数値が変化しています.

 

 

数値としてコピーされたランダムな数のセルを一つ選び,「データの並べ替え」を行います.昇順でも降順でもかまいません.図ではDの列に対して昇順で並べ替えています.Excel2007では「ホーム」⇒「並べ替えとフィルタ」で実行できます.

 

 

これが結果です.Dの列を見ると昇順になっていることがわかります.また刺激のパラメータも一緒に並べ替えられているため,パラメータをランダムに振った実験ができます.

(追記:ソート機能はデフォルトで先頭行を見出しとして扱います.このため一つ目(図では2行目)のデータがソートされずに残る結果になります.これを防ぐにはC1D1の各セルに何か適当な文字列を入力してソートする必要があります)

 

この方法は結果として,はじめに述べた「試行回数分のカードにあらかじめパラメータを書いておいてシャッフルする」のと同じことをやっています.

 

もちろんこの程度の回数ではパラメータの変動にばらつきがありますので,被験者ごとにシャッフルしなおす必要があります.その場合は,再度C列の「値」をD列にコピーして整列させればよいことになります(実はコピーしなくてもC列のデータをもとに整列させればよい).多くの実験は実験者がその場でExcelに入力していきますから,シートをコピーしていくことになるでしょう.E列やF列に回答を記入していくことになるでしょう.

 

プログラミングによる方法

もちろん同じことを実験プログラム中で行うことも出来ます.被験者自身にパソコンに入力させ,ログファイルとして実験結果が得られるようにしたいときに有効です(というよりその場合の方が多いでしょう).

 

今度は3つのパラメータの場合を考えましょう(パラメータが3つもあるというのは実験計画としてそもそも無駄が多いということですが).「刺激周波数と刺激の時間間隔と刺激間距離を変えて,仮現運動を生じたかどうかを回答させる」という実験を例にとります.

刺激周波数[Hz]10,30,60,120

刺激の時間間隔[ms] 100,200,300

刺激間の距離 [mm] 120,240,360

各パラメータの組み合わせに対する試行回数:5

実験全体の試行回数は,4×3×3×5=180になります.

 

[Cサンプル(Visual Studio 2005)].パラメータ,試行回数を変更しています.