被験者間グループバランスと変数設定
一部の参加者がバージョンXを見て、残りの参加者がバージョンYを見るように設定するにはどうすればよいですか?
被験者間のランダム化を行うための方法はいくつかあります。
一般的には、2つのアプローチ/シナリオがあり、最適な方法は常に詳細や特定の研究デザインによって異なります。
シナリオ1: 独立したタスクとグループ
グループ間の差の度合い: 参加者グループ間に比較的大きな差がある、つまり、差が広範で複数のフレーム、オブジェクト、またはイベントにまたがっている。
推奨設定: 2つの(または必要な数だけの)被験者グループを作成し、異なるタスクを異なるグループに割り当てます。下の画像は、このアイデアを表す簡略化された研究デザインを示しており、グループ1の半分の被験者が
task_1を実行し、グループ2のもう半分がtask_2を実行します。トレードオフ: このアプローチのデメリットは、真に独立したタスクが必要であるため、すべての内容を二重に管理しなければならないことです。つまり、両方のグループに必要な新しい変更は、両方のタスクに別々に実装する必要があります。そのため、差が大きい場合には、この方法が良いオプションとなり、完全に別々の実装を持つことが望ましいです。

シナリオ2: 要因変数
差の度合い: 参加者グループ間の差は比較的小さく、つまり、全体的に類似したタスク構造内のいくつかの「詳細」(例:オブジェクトが表示されるかどうか/どの画像が表示されるか)です。
推奨設定: タスク内にランダムな被験者間の要因変数を作成します。この仕組みは、各被験者がこの要因変数の1つの値にのみ割り当てられ、その値が被験者に渡ってバランスされることを意味します(被験者番号に基づく)。

これにより、この(要因)変数を使用して、イベントとともに、タスク/フレーム内で被験者グループ間のあらゆる変更を行うことができます。
例のシナリオ: あるグループには画像が表示されない
たとえば、トリガーフレーム開始とアクションで画像の可視性プロパティをゼロに設定するイベントを作成できます:
- トリガー:
Trial and Frame Trigger→On Frame Start - アクション:
Control Actions→Requirement Action (If…Then)- 最初の要件を
Variable→Select Variableで呼び出し、リストから作成した要因変数(subjectGroup)を選択します - 方程式の反対側で、特定のレベルを選択して呼び出します:
Constant Value→Stringそしてレベルを指定します:one
- 最初の要件を
次に、この特定のグループに対して何が起こるべきかを指定します。たとえば、オブジェクト(画像など)の Set Object Property: で、プロパティ(可視性など)を変更し、可視性プロパティをゼロに設定します。
その結果、被験者がグループ1にいる場合、画像オブジェクトは表示されず、他のグループでは表示されます。

例のシナリオ: 各グループが異なる画像を表示する
同様に、少しパワフルにして、各グループに異なる画像を表示したい場合、次のようにすることができます。
IF:
subjectGroup== "one"
THEN:
Set Object PropertyAction [image_object] [filedata] = image1 (ファイルまたはデータフレームから読み込むように設定)
ELSE IF:
subjectGroup== "two"
THEN:
Set Object PropertyAction [image_object] [filedata] = image2 (ファイルまたはデータフレームから読み込むように設定)
ELSE IF:
subjectGroup== "three" THEN:Set Object PropertyAction [image_object] [filedata] = image3 (ファイルまたはデータフレームから読み込むように設定)
このようにして、各被験者グループが異なる画像を表示することになります。

例のシナリオ: グループごとに異なるイベントまたはアクション
このユースケースを拡張して、被験者間の要因変数が被験者間でイベントを異なった動作させることができます。
例えば、異なる被験者グループがキープレスと応答の正確さの割り当てについてバランスを取る必要がある場合、次のようなイベントを作成できます。トリガーはキー“A”または“L”の押下で、アクションは応答の正確さを記録します:
IF:
- subjectGroup == "one"
- Id of key == "A"
THEN:
- correctResponse = True

ELSE IF:
- subjectGroup == "two"
- Id of key == "L"
THEN:
- correctResponse = True

ここで、変数 correctResponse を作成し、Boolean値のTrueを記録するように設定しました。