IntroToPsyToolkit230224

15.2K Views

February 24, 23

スライド概要

PsyToolkitを使ってオンラインで実施できる心理学実験を作成する方法を解説した資料です。スライド内で作成しているフランカー課題のファイルは以下に置いてあります。2023/02/24に公開しました。
https://drive.google.com/file/d/1KgH9zGM6yAuE55LKdwVD0ZMqkTxMPqoi/view?usp=share_link

profile-image

ヒトを含む動物の認知様式の多様性を系統発生や適応という観点から明らかにすることを目標にしています。これまで鳥類と霊長類を対象に研究してきました。現在、当研究室では、げっ歯類(主にマウス)およびヒト成人を対象にした研究に取り組んでいます。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

PsyToolkitを用いた オンライン心理学実験 後藤和宏(相模女子大学) PsyToolkit version 3.4.2で動作確認 (2023/02/24)

2.

内容 • PsyToolkitとは? • アカウントの作成からログインまで • 実験作成のフロー • 既存の実験をコピーして動かしてみる • 自分で実験を作成してみる • オンラインで実験を公開する

3.

PsyToolkitの特徴 • 心理学実験・調査を作成し、オンラインでの実験・調査が実施 できる(オフラインの実験も実施できる) • 画像、音、ビデオを呈示し、(キーボードとマウスの)反応時 間を記録できる • 実験の作成は超簡単(専用スクリプト言語を使用) • そのまま利用できる実験プログラムが用意されている • ブラウザ上で作業するので、他のソフトウェアは不要である • 実験をホスティングするサーバーも無料で利用できる

4.

アカウント作成から ログインまで

5.

まずはアカウントの作成 • PsyToolkitのページ(https://www.psytoolkit.org/)でアカウントを 作成する

6.

まずはアカウントの作成 • PsyToolkitのページ(https://www.psytoolkit.org/)でアカウントを 作成する

7.

以下の情報を記入する Email 氏名 • どちらかのサーバーを選択 してアカウントを作成する • European server(初期値) • American server 性別 ユーザータイプ(教員、学生など) 国 所属機関(ない場合はNA) 日本で使用する場合はAmerican serverを選択する 記入し終わったら、注意書きを読んでから、ページ 下の”Click here ……”をクリックする

8.

ログインしてみよう 論文やレポートを執筆するときには、PsyToolkitにつ いて報告した2本の論文を引用するようにという注意 が毎回表示されるので、”Okay, I agree”をクリックする

9.

PsyToolkitを使うときに引用しよう • Stoet, G. (2010). PsyToolkit: A software package for programming psychological experiments using Linux. Behavior Research Methods, 42(4), 1096–1104. https://doi.org/10.3758/BRM.42.4.1096 • Stoet, G. (2017). PsyToolkit: A Novel Web-Based Method for Running Online Questionnaires and Reaction-Time Experiments. Teaching of Psychology, 44(1), 24–31. https://doi.org/10.1177/0098628316677643

10.

実験作成のフロー

11.

実験を作成する3つのステップ 1 スクリプトを書く 2 3 コンパイルする 実行する

12.

実験を作成する3つのステップ 1 スクリプトを書く

13.

実験を作成する3つのステップ 2 コンパイルする

14.

実験を作成する3つのステップ 3 実行する

15.

ストループ課題を 実行してみよう

16.

実験を作成する3つのステップ 1 スクリプトを書く 2 3 コンパイルする 実行する • まずは、①の作業をする代わりにPsyToolkitのライブラリからスト ループ課題のスクリプトを探してコピーしてくる

17.

ライブラリから既存の課題を探す • 左のメニューから”Get from library”を選択する • New searchに”stroop”と入力 し、”Search an experiment in the library with all keywords(AND)”を クリックする

18.

ストループ課題を見つける stroop [Official]の”view”をクリックする。 [Official]と書かれているのはPsyToolkitによって提供されたプログラム [User submitted]はユーザーによって提供されたプログラム

19.

ストループ課題の概要を確認する

20.

ストループ課題をコピーする • ”Copy this experiment to your own experiments”のテキストボック スに実験名(任意)を入れてcopyをクリックする “Run experiment”をクリックするとデモプログラムを実行して動作を確認できる stroop

21.

コピーしたストループ課題を確認する 実験プログラムの スクリプト Edit experiments に”stroop”がコピー されている “view files”をク リックすると実験 フォルダの中身が 表示される

22.

ストループ課題をコンパイルする “Compile”をクリック! このメッセージが表示さ れるとコンパイル成功 “Run experiment”をクリッ クすると実行できる

23.

コンパイルした実験はダウンロード可 “Download for running offline”をクリックすると、stroop.htmlがダ ウンロードでき、オフラインで実行することもできる

24.

実験プログラムを実行した様子 • 実験プログラムはブラウザ上で動作する(Firefox, Safari, Edge, Chromeなど最近のものであればよい) 開始画面:”Click to start”をク リックすると開始する プログラムの実行すると教示 文が表示される

25.

フランカー課題を 作成してみよう

26.

フランカー課題とは 一致試行 標的刺激 不一致試行 標的刺激 画面中央の標的刺激に対して方向反応(左 または右)が割り当てられ、その周囲に標 的刺激と同じ周辺刺激、標的刺激とは異な る周辺刺激が配置される • 標的刺激のまわりに呈示された周辺 刺激が、中央の刺激に与える影響を 調べる • Eriksen & Eriksen (1974)が報告したも ので、標的を取り囲むフランカー (周辺)刺激にちなんで命名された • 標的刺激の反応方向とフランカー刺 激の反応方向が一致するときよりも、 不一致のときのほうが反応に時間が かかるというかたちで干渉効果が生 じる

27.

実験手続き • 標的刺激が左向き矢印(<) のとき、Fキーを押す。 • 標的刺激が右向き矢印(>) のとき、Jキーを押す。 試行間間隔500ms 注視点200ms 課題呈示 (最大2000ms) フィード バック500ms 試行の流れ 試行間間隔500ms

28.

フランカー課題の作成 “Create new experiment” を選択する flanker_jp flanker_jpと入力し、Create completely new experimentをクリックする ちなみにMethod 2では他人が作成 したファイルをもらって実験を作 成できる(今は説明を省略)

29.

スクリプトの作成画面 ここにスクリプトを書いて いく スクリプトを書いたら クリックして保存する 実験に使用する画像 や音声ファイルを アップロードする

30.

スクリプトの構造 options Options: 画面の大きさや刺激フォルダなどを指定する bitmaps bitmaps: 実験に使用する画像ファイルを指定する fonts fonts: 実験に使用するフォントを指定する table table: 実験条件を指定する task task: 試行の流れを記述する block block: ブロックの構成を記述する

31.

スクリプトを書く(optionsパート) options fullscreen # 全画面表示 (指定しなくてもよい。初期値は 800 x 600 pixels) bitmapdir stimuli # 刺激フォルダを指定 “#”のあとはコメント

32.

スクリプトを書く(bitmapsパート) bitmaps fixation leftcong leftincong rightcong rightincong correct # 正解のフィードバック wrong # 不正解のフィードバック instruction1 # 課題の教示 instruction2 # 練習試行 instruction3 # 本番試行 thankyou # おしまい プログラム内で使用する画像ファイルをすべて指定する。拡張 子が.pngの場合、拡張子は省略できる (例: fixation.pngの場合、fixationとする) MyBitmap some_image のように定義すれば、スクリプト内ではMyBitmapという名前で some_imageという画像をロードできるようにもなる

33.

刺激の作成 • PsyToolkitのウェブサイトではInkscapeがおすすめされている https://inkscape.org/ja/

34.

フランカー課題で使用する画像

35.

教示文や終了画面も画像として作成する

36.

スクリプトを書く(fontsパート) fonts arial 20 使用するテキストのフォントを指定する

37.

スクリプトを書く(tableパート) # table ----# 試行系列の指定 # 実験条件, 刺激, 正答(1=左, 2=右) table flankers "left congruent 1" leftcong 1 "left incongruent 2" leftincong 1 "right congruent 1" rightcong 2 "right incongruent 2" rightincong 2 人が解読するため 使用する の情報 刺激画像 tableの名前を指定。次のtask内で参照 試行で使用する変数は列に入れておく プログラムは毎試行、テーブルからランダムに 1行選んで使用する 正解の反応

38.

スクリプトを書く(taskパート) taskの名前を指定。次のblock内で参照 task flanker table flankers # tableを指定する keys f j # 課題に使用するキーを割り当てる(fが1, jが2として扱われる) delay 500 # 試行間間隔 show bitmap fixation # 固視点の呈示(stimulus 1) showを使う度に画面が作成される delay 200 # 固視点の呈示時間 showで作成した画面を番号で指定して消す。 clear 1 # 固視点を消す show bitmap @2 # tableの2列目から刺激画像を読み込み呈示する clear -1で最後に表示した画面を消すことも可。 readkey @3 2000 # tableの3列目と比べて正誤判定する(時間制限は2000ms) clear 2 # 刺激を消す(stimulus 2) if STATUS == CORRECT # 正解ならば、”せいかい”と表示する show bitmap correct # stimulus 3 (feedback) fi if STATUS != CORRECT # 不正解ならば、”まちがい”と表示する show bitmap wrong # stimulus3 (feedback) fi delay 500 # 正誤フィードバックの呈示時間 clear 3 # フィードバックを消す (stimulus 3) save BLOCKNAME @1 TABLEROW KEY STATUS RT # データを保存する

39.

スクリプトを書く(taskパート) task flanker table flankers # tableを指定する keys f j # 課題に使用するキーを割り当てる(fが1, jが2として扱われる) delay 500 # 試行間間隔 showを使う度に画面が作成され、画面を指定 show bitmap fixation # 固視点の呈示(stimulus 1) する番号が割り振られる(この画面は1) delay 200 # 固視点の呈示時間 clear 1 # 固視点を消す show bitmap @2 # tableの2列目から刺激画像を読み込み呈示する readkey @3 2000 # tableの3列目と比べて正誤判定する(時間制限は2000ms) clear 2 # 刺激を消す(stimulus 2) if STATUS == CORRECT # 正解ならば、”せいかい”と表示する show bitmap correct # stimulus 3 (feedback) fi if STATUS != CORRECT # 不正解ならば、”まちがい”と表示する show bitmap wrong # stimulus3 (feedback) fi delay 500 # 正誤フィードバックの呈示時間 clear 3 # フィードバックを消す (stimulus 3) save BLOCKNAME @1 TABLEROW KEY STATUS RT # データを保存する

40.

スクリプトを書く(taskパート) task flanker table flankers # tableを指定する keys f j # 課題に使用するキーを割り当てる(fが1, jが2として扱われる) delay 500 # 試行間間隔 show bitmap fixation # 固視点の呈示(stimulus 1) delay 200 # 固視点の呈示時間 showで作成した画面を番号で指定して消す。 clear 1 # 固視点を消す show bitmap @2 # tableの2列目から刺激画像を読み込み呈示する clear -1で最後に表示した画面を消すことも可。 readkey @3 2000 # tableの3列目と比べて正誤判定する(時間制限は2000ms) clear 2 # 刺激を消す(stimulus 2) if STATUS == CORRECT # 正解ならば、”せいかい”と表示する show bitmap correct # stimulus 3 (feedback) fi if STATUS != CORRECT # 不正解ならば、”まちがい”と表示する show bitmap wrong # stimulus3 (feedback) fi delay 500 # 正誤フィードバックの呈示時間 clear 3 # フィードバックを消す (stimulus 3) save BLOCKNAME @1 TABLEROW KEY STATUS RT # データを保存する

41.

スクリプトを書く(taskパート) task flanker table flankers # tableを指定する keys f j # 課題に使用するキーを割り当てる(fが1, jが2として扱われる) delay 500 # 試行間間隔 show bitmap fixation # 固視点の呈示(stimulus 1) delay 200 # 固視点の呈示時間 clear 1 # 固視点を消す show bitmap @2 # tableの2列目から刺激画像を読み込み呈示する readkey @3 2000 # tableの3列目と比べて正誤判定する(時間制限は2000ms) clear 2 # 刺激を消す(stimulus 2) if STATUS == CORRECT # 正解ならば、”せいかい”と表示する テーブルの値に@を使って参照すること show bitmap correct # stimulus 3 (feedback) ができる。たとえば、@2は、その試行で fi プログラムが選択した行の2列目の値を if STATUS != CORRECT # 不正解ならば、”まちがい”と表示する 読み込む show bitmap wrong # stimulus3 (feedback) fi delay 500 # 正誤フィードバックの呈示時間 clear 3 # フィードバックを消す (stimulus 3) save BLOCKNAME @1 TABLEROW KEY STATUS RT # データを保存する

42.

スクリプトを書く(taskパート) task flanker table flankers # tableを指定する keys f j # 課題に使用するキーを割り当てる(fが1, jが2として扱われる) delay 500 # 試行間間隔 show bitmap fixation # 固視点の呈示(stimulus 1) keysは使用するキーを割り当てる(それ 以外のキー入力は無効になる) delay 200 # 固視点の呈示時間 clear 1 # 固視点を消す show bitmap @2 # tableの2列目から刺激画像を読み込み呈示する readkey @3 2000 # tableの3列目と比べて正誤判定する(時間制限は2000ms) clear 2 # 刺激を消す(stimulus 2) if STATUS == CORRECT # 正解ならば、”せいかい”と表示する show bitmap correct # stimulus 3 (feedback) readkeyはテーブルの3列目から正答を読 fi み込み正解かどうかを判定する if STATUS != CORRECT # 不正解ならば、”まちがい”と表示する show bitmap wrong # stimulus3 (feedback) 反応を待つ最大時間を2000msとする fi delay 500 # 正誤フィードバックの呈示時間 STAUSは、readkey反応が正解ならば1を clear 3 # フィードバックを消す (stimulus 3) 不正解ならば2を、タイムアウト(制限 save BLOCKNAME @1 TABLEROW KEY STATUS RT # データを保存する 時間内に反応できない)ならば3を返す

43.

スクリプトを書く(taskパート) task flanker table flankers # tableを指定する keys f j # 課題に使用するキーを割り当てる(fが1, jが2として扱われる) delay 500 # 試行間間隔 show bitmap fixation # 固視点の呈示(stimulus 1) delay 200 # 固視点の呈示時間 clear 1 # 固視点を消す show bitmap @2 # tableの2列目から刺激画像を読み込み呈示する readkey @3 2000 # tableの3列目と比べて正誤判定する(時間制限は2000ms) clear 2 # 刺激を消す(stimulus 2) if STATUS == CORRECT # 正解ならば、”せいかい”と表示する show bitmap correct # stimulus 3 (feedback) fi if STATUS != CORRECT # 不正解ならば、”まちがい”と表示する show bitmap wrong # stimulus3 (feedback) fi saveでデータを保存する delay 500 # 正誤フィードバックの呈示時間 clear 3 # フィードバックを消す (stimulus 3) save BLOCKNAME @1 TABLEROW KEY STATUS RT # データを保存する

44.

スクリプトを書く(blockパート) message instruction1 # 課題の教示文を呈示 message instruction2 # 練習試行の教示文を呈示 block practice tasklist flanker 12 end #練習試行ブロック # 12試行繰り返す message instruction3 # 本番試行の教示文を呈示 block main tasklist flanker 96 end message thankyou #本番試行ブロック # 96試行繰り返す # 終了のメッセージを呈示 messageで画像を呈示すると、スペースキーを 押されるまではその画像が表示され続ける message instruction1 bで、bキーの入力待ちに することもできる

45.

スクリプトを書く(blockパート) message instruction1 # 課題の教示文を呈示 message instruction2 # 練習試行の教示文を呈示 block practice tasklist flanker 12 end #練習試行ブロック # 12試行繰り返す message instruction3 # 本番試行の教示文を呈示 block main tasklist flanker 96 end message thankyou #本番試行ブロック # 96試行繰り返す # 終了のメッセージを呈示 ブロック名を指定する。1つのスクリプト内で は同じブロック名を繰り返し使用することは できないので注意する

46.

スクリプトを書く(blockパート) message instruction1 # 課題の教示文を呈示 message instruction2 # 練習試行の教示文を呈示 block practice tasklist flanker 12 end #練習試行ブロック # 12試行繰り返す flankerという課題を12試行繰り返す message instruction3 # 本番試行の教示文を呈示 block main tasklist flanker 96 end message thankyou #本番試行ブロック # 96試行繰り返す # 終了のメッセージを呈示 flankerという課題を96試行繰り返す

47.

スクリプトを書く(feedbackパート) • なくてもよいが、 blockパートの最後にfeedback部分を書いてお くと、実験終了後に参加者に結果をフィードバックすることも できる feedback text -100 -50 "正解試行でのあなたの反応時間(ms)" set &Congruent mean c8; select c4 == 1 && c7 == 1 set &Incongruent mean c8; select c4 == 2 && c7 == 1 set &FlankerEffect expression &Incongruent - &Congruent text -100 0 &Congruent ; prefix "一致試行: " ; postfix " ms" text -100 50 &Incongruent ; prefix "不一致試行: " ; postfix " ms" text -100 100 "あなたのフランカー効果は不一致試行から" text -100 150 &FlankerEffect ; prefix "一致試行との差です: " ; postfix " ms" text -100 200 "スペースキーを押して下さい" end

48.

オンラインで実験 を公開しよう

49.

オンライン実験を作成する3つのステップ 1 スクリプトを書く 2 3 コンパイルする 公開する

50.

オンライン実験を作成する 左のメニューから”Create new survey”を選択する flanker_survey Setup a completely new surveyに”flanker_survey”と入力 し、”Create completely new online survey”をクリックする

51.

オンライン実験を作成する 先に作成しておいた“flanker_jp”とい う実験を参照し、オンライン調査に 組み込む オンライン実験のために最低限必要 なのはこの部分のみ 編集が終わったら保存する

52.

コンパイルする “Compile”をクリックする うまくいくとこのように表示される

53.

オンライン公開する 調査をオンライン化し、”Change survey status”をクリックし、コンパ イルしなおす うまくいくと、オンライン実験用の URLが生成される

54.

おまけ

55.

フェイスシートと同意書の設定もできる • 調査フォームの設定項目を埋めてい くと、実験開始前にフェイスシート での実験についての簡単な説明を読 んでもらったり同意確認をとったり できる • この画面は省略することもできる

56.

実験だけでなく調査も作成できる

57.

完了確認コードも生成できる 実験終了時に参加者ごとにユニー クな文字列を生成するオプション も用意されている

58.

参考文献 • PsyToolkitのオンラインドキュメント https://us.psytoolkit.org/doc3.4.2/ • PsyToolkitで基本的な2腕バンディット課題を作る https://kkatahira.github.io/cmbd-book/psytoolkit_minimum_2bandit.html