Online Psychological Experiment Advent Calendar 2020

23日目

 Online Psychological Experiment Advent Calendar 2020 の23日目の記事です。PsychoPyを使ってオンライン実験を作成したときに、どのようにPavloviaと連携するのか、またSonaシステムとどう連携するのかについて簡単にまとめたいと思います。デモなど準備したかったのですが、リンク集のようになってしまいました…。GUIで作るPsychoPyオンライン実験のデモなどは、機会があればまとめたいと思っています。

はじめに

 オンライン実験の利点は、黒木(2020)によると以下の3点です。

  1. 多種多様な実験参加者を大量に効率よく集められる

  2. 実験者と参加者が顔を合わせなくて良い

  3. 実験による時間的な拘束が少ない

 昨今の社会情勢により、オンライン実験の重要性が再確認されたように思います。それに伴って各研究者がインフラを整備することが求められました。ここでの内容が参考になりましたら幸いです。

PsychoPy

 オンライン実験を作成する方法はいくつかありますが、ここではPsychoPy(https://www.psychopy.org/)を扱います。PsychoPyは実験作成のフリーソフトです。使い方については以下が参考になります。

 PsychoPyで作成した実験は、javascriptで動かせるように変換が必要です。したがってpythonのコードを一部javascriptで記述し直す必要があります。この点については以下が参考になります。

Pavlovia

 続いてサーバです。Grootswagers(2020)のFigure 1(ここからも見れます)にあるように、オンライン実験では実験を実行するサーバが必要です。ここではPavlovia(https://pavlovia.org/)を扱います。

 PavloviaはPsychoPS、jsPsych、lab.jsなどのJavaScriptで書かれた実験を実行するサーバです。Gitを使ってバージョンの管理を行います。プロジェクトの共有や公開などの設定も可能です。参加者が行った実験の結果はサーバに保管され、手元にダウンロードすることができます。

 PsychoPyで作った実験をPavloviaにアップロードする方法は、以下が参考になります。

 後者のガイドが親切だと思います。日本語の資料はあまりないようなので、いつか作りたいと思います。

 なお、本記事でおそらく以下のページが一番参考になると思うのですが、Pavloviaでデモが公開されています。

 ここから実験をダウンロードしてコードを見れば、どのようにPythonからJavaScriptに変換する必要があるのかなど実践的な情報を得ることができます。例えば以下のtextiInputデモでは、どのようにキー入力が画面に表示されるようにするのか、どう保存するのかがデモとして公開されています。参加者の年齢や利き手を入力してもらいたいときに便利です。

Sonaシステム

 次にSonaシステムとの連携です。サーバに個人情報を置くことは避けたいので、クラウドソーシングを使うのでなければ、オンラインで実験参加してくれた個人を別の方法で特定する必要が出てくることがあります(謝金支払いなど)。Sonaシステムは各個人にID番号を割り当てます。そのID番号をPavloviaサーバ上でデータとして保存すれば、どの参加者が実験を完遂してくれたかがわかります(途中でやめた場合は実験完了表示にならないので、それもわかります)。

 Sonaシステムについては、「Sonaシステム」とGoogle検索すれば、各大学・研究室のマニュアルが出てくるので、それが参考になります(ここでは直接リンクを貼りません)。

 Sonaシステムを介さない場合は、別の方法で個人に特有のID番号を発行する必要があるかもしれません。

 SonaシステムとPavloviaの連携については、以下が参考になります。

その他

 オンライン実験では視距離の測定が難しいという難点があります。最近、オンライン実験環境で参加者の視距離を測定する手法が開発されました。Li et al.(2020)では、盲点の情報を使うことによって参加者の視距離を推定できる方法が紹介されています。GitHubに公開されています。

 このような環境整備も進んできているようです。19日目の記事でも紹介されていましたように、反応時間についての信頼性の議論も展開されています。今後一層オンライン実験は強力な手法となっていくのでしょう。

最後に

 筆者がオンライン実験をして気づいた点を少し述べて終わりにします。

  • 多くの参加者はノートパソコンを使うと想定されますが、明かりが画面に反射しないようにお願いするなど実験環境の整備に最大のお願いをしなければなりません

  • キーボードを押す実験では、指先に怪我をしていない人が対象であることを明記するなど、とにかく想定される全てのシナリオに対処できる募集文章にしなければなりません(まだ見落としていることがありそうです:実験参加者募集文などが公開されているといいのですが、前に検索した時はヒットしませんでした)

  • 日中眠気のないときに実験をするようお願いしても、夜中にする人は少なからずいます(実験可能な時間帯を設定した方が良いのですが、少なくともSonaシステムからは時間は設定できないと思います)

  • 視距離を測る盲点課題(上記)などでは、参加者が課題内容を理解し実施できるようになるまで練習の機会を設けるべきです:理解度の確認を口頭でできないことが結構大変です

  • 反応時間の試行ごとのバラツキは実験室実験に比べて大きいと思います(反応時間を平均して代表値としてしまうのではなく、試行間のバラツキの情報を使う統計モデリングが適切なように感じます:「たのしいベイズモデリング 事例で拓く研究のフロンティア」第15章、Stan Advent Calender 2020 24日目など)

  • 実験室実験をオンライン環境で再現できなかったとき、その解釈に困ります(オンライン実験だから精度が低かったか、など、オンラインであることが原因なのか、それともその現象に原因があるのか:オンライン実験を、実験室環境 vs. オンライン環境で比較検討したいと思っています)

 以上です。ありがとうございました。誤りなどあればご指摘いただけましたら幸いです。