見出し画像

オンラインの実験がGorilla Experiment Builderで簡単にできるという話

※この記事に書いてあるGorilla Experimental Builderの仕様などの内容は、すぐ変更される可能性があるので、自分で使うときは自分で調べてくださいね!


なんかそういう時代らしい

近年は心理言語学的実験もオンラインでやるのが一般的になってきたようだ。

私が大学院生のときは、HSPで実験をプログラムして、大学生協の前で実験参加者募集のビラを配って人を集め、研究室に来てもらって実験を行うというパターンが多かった(私の周りはみんなそんなことしていた)。ここのところはAmazon Mechanical Turk(MTurk)、MTurkの問題がいろいろ指摘されてからはProlificといったサービスを使って実験参加者を募り、オンラインのブラウザ上で実験をするということがかなり一般的になってきた。事前登録制(プレレジ)やレジスタードレポート(レジレポ)の必要性に関する認識が高まって、それに伴い検定力分析をちゃんとやってサンプルサイズを決定してから実験を行うという流れがかなり一般化してきたので、それに対応しようと思うと、物理的に近くにいる人たちだけを対象にしていると実験が終わらないみたいなところもあり、そういうのと関連する動きなのだと思う。

オンラインだと物理的距離が問題にならないので、例えば英語のネイティブスピーカーからデータを集めたいという時の制約が大きく緩和された。これも私が院生のときは、英語ネイティブが集まっている機関に連絡して、大学院のメンバーを引き連れて複数のスーツケースの中にパソコンを10台くらい詰めてデータを取りに出向いたりした。それでも30人ぐらい集めるのが非常に大変だった。今なんかProlificを使えば100人くらい一瞬で集まるので、ものすごい変化だ。

で、そういった制約は緩和された一方、オンライン上にプログラムを実装しなければいけないので技術的ハードルは上がった。HSPをブラウザ上で起動しようと思うと結構めんどくさいらしく(どれくらいめんどくさいかは、そう聞いて諦めて調べてすらいないのでよく知らない)、心理学者がよく使うというjsPsychでのオンライン実装は友人や先輩後輩たちと勉強会を開いたりとかしてちょこちょこ勉強したのだけど(調べたらこれに関しては結構やり方を紹介するサイトが出てくる)、プログラミング力ったったの5の私では実験プログラムをサーバーに載せたりそこにデータを蓄積したりするハードルがあまりにも高くて涙目になった。でも今後のことを考えるとなんとかできないとマズいしなあ…次はPCIbexのやり方調べてみようかなあ、でももう好きでもないプログラミングの勉強に時間使いたくないよ…とか思っているうちに時間が過ぎていった。

そんな折、ケンブリッジ大学のメンバーとの共同研究で、流れで研究代表者をやることになった。共同研究の相手は心理言語学的アプローチを得意とした第二言語習得研究者のJohn Williamsだったので、「それでもJohn(とかその周りの誰か)なら…John(とかその周りの誰か)ならきっとなんとかしてくれる…!!!」みたいな気持ちでいた。

唐突な「Yes or はい」

で、プロジェクトのミーティングでプログラムの話に差し掛かった時にJohnは言った。「ヘイジュンヤ…私がオンラインでプログラムを組むことは可能だ…でも、君はオンラインで実験を実装できるようになりたいんじゃないか?私が簡易版を作成して君がそれを発展させることでその方法を学ぶことができる…」

これ、「実験実装、できる?」って聞かれたら「できません。勘弁してください。」って返答しているところなんだけど、体育会系の人間というのは「できるようになりたい?」ってインプットされたら「なりたいです!やらせてください!」とアウトプットするように仕上げられているのである。

「お前やる気あるのか!!!」
「(もう嫌だと思っていても)あります!!!」

みたいな高校時代の刷り込みが想起される。

結果、即快諾したのち家に帰って「俺はなんであんなことを…」と何度も後悔することになる。

Gorilla Experiment Builderを触ってみる

実験のプログラミングであれ統計分析であれ、自分にとってプログラミング言語やそれに類するものを触るというのは「できればやりたくないけどやらなきゃいけないから嫌々やる」ことである。特に実験のプログラミングは私にとって統計分析以上に「できればやりたくないこと」である。なので、オンライン実験実装のソフトウェアとしてケンブリッジの人たちが使っているというGorilla Experiment Builder、アカウント登録するまでにも精神的ハードルが高く時間がかかった。

明日やろう、そのうちやろうと思っていたらJohnから簡易版が完成したという連絡がきたので、いよいよ逃げられなくなってようやく中身を覗いてみる。

すると、あれ、なんか思ってたのと違う。とりあえずなんかスクリプトいじらなくていいっぽい。

マニュアルに日本語版がないようなので英語で読む必要はあったけど、けっこう直感的に操作できる。コンフィグを作ってその実行の順番を、刺激の入ったスプレッドシートで指定するだけでタスクが作れるっぽい。で、個々のタスクを矢印で繋いでいけば実験プログラムの全体(project)が完成する。

ランダマイズの指定の仕方も簡単で、カウンターバランスのために作った複数のフォームに実験参与者をランダムに振り分けるといった設定も簡単にできた。ぽちぽちクリックしていくだけだった。

これは違うプロジェクトのタスクフローだけど、だいたいこんな感じ

今回のタスクは結構特殊だったので、叩き台を作ってもらわないとゼロから作るのは大変だっただろうけど、基本的な心理言語学的実験はサンプルタスク集みたいなところから雛形を持ってきて修正すればなんとかなりそう。ためしに、Patson & Warren (2010)Tamura (2023)で使用されたStroop-like number judgment taskを作ってみたら、なんと数時間で完成した(ただしこれはJohnにもらったひな型のプログラムを一通り弄ってやり方を学んでから行ったことであって、初めて作ったタスクにかかった時間ではない)。これは、単なるSelf-paced reading task(SPR)の発展版なのだけど、プログラミング言語でいじったら自分ならしんどすぎて途中で業務委託を考えるであろうもの。プログラミング力たったの5の私でもできちゃった。(ちなみに現在はTask Builder 2というのを使うのが最新だけど、SPRの機能はなぜか旧版のTask Builder 1にしか搭載されてないらしい。そのうち2にも搭載されるかもしれないが。)

良い点と悪い点

しばらく使ってみた感覚として、いい点と悪い点をまとめてみる。

良い点

  • コード書いたりするようなプログラミングの知識が必要ない

  • 良く行われるタイプの実験はサンプルにだいたいあるし、それらの仕組みを知れば全く新しい課題を作るのも簡単

  • スプレッドシート(Excel等)で簡単にマテリアルの入力やランダマイズが可能

  • サポートが丁寧

とにかく、コードが書けなくても簡単にプログラムが作れるというのが最大の利点かと思う。アンケートもこれで作ることができて、しかも分析後のことを考えて出力を工夫するのも簡単。ただコードを書かなくていいというだけで、RPGツクール的レベルでのプログラミング的な考え方をする必要はあるので、まったくプログラミング弄ったことない人にとってどれくらいのハードルなのかは正直よくわかりません。自分は「あーこの指定をこうやって実装してるのか…」みたいなこと考えながらやってるので、その直感がないとどれくらい難しくなるかわからないということです。

あとこれは単に自分がテキストの自動処理とかあんまり得意じゃないことからくることだろうけど、プログラムのコードに刺激文等のマテリアルを入力しようとするとき、タスクによってはちょっと変わった形式での入力が必要になってその形に刺激文を並べたりするのが面倒なことがある。Gorillaはスプレッドシートでマテリアルの指定の仕方がめっちゃ楽だった。画像とかもフォルダに読み込んでその画像ファイルの名前をスプレッドシートで指定するだけなので、とても簡単だった。

そしてGorillaは結構オンラインマニュアル(英語のみ)が充実していて検索もしやすい。またそれを読んでもわからないことがあった時にSupportサービス(英語のみ)を使って無料のメールで質問をしてみると、とてもレスポンスがいい。常駐スタッフみたいな人がいるらしい。これもとてもありがたかった。

悪い点

  • ちょっと重い(特に日本語)

  • 拡張性が限られる(と思うことがある)

  • 出力形式を工夫する必要がある

  • お金がかかる

とりあえず思い浮かぶ悪い点としては、なんか課題が遷移するときに読み込みの時間がかかることがある。読み込んでる間に実験参加者が、実験が終わったと思ってウインドウ閉じてしまうみたいなこともあるかもしれない(Prolificだと最後に表示されるコードを入力しなければいけないので、あんまりないかもしれないけど)。特に日本語の課題を作るとなぜか英語のときよりもだいぶ遅くなる。タスク内でコンフィグを10個ぐらい作るややこしい課題を編集しているときに何度か処理落ちしたこともある。そもそも日本語での使用はあんまり想定されてないのかもしれない。マニュアルも英語しかないし。

拡張性に関しては順次機能が追加されているので今後どんどん改善されていく可能性はあるが、ちょくちょく細かい指定が難しい部分がある(例えばリッチテキストを使えない部分で文字の大きさや書体を指定することができなかったり、特定のページの背景だけ変更できなかったり、表示サイズを変更できない機能があったりする)。またデフォルトの機能をマイナーチェンジして使おうと思うと難しいことがある。この辺りはシンタクスを弄ったら細かい設定は可能だと思うんだけど、それが簡単に出来たらあんまりGorilla使わないかもねえ…というところでもある。ただ、細かい指定が難しいところはあるけど、ソフト面に関しては心理言語学の論文で見るような実験の大まかな枠組みは工夫すればだいたい作れると思う。

あと出力に関しては、基本的には実験中のある画面が表示されてから次に進むボタンを押すまでのすべての反応時間が記録される(これもその気になれば変更できるのかもしれないけど)。そんな仕様なので、もしかしてちょっと変数の出力の仕方を考えないとのちのちの統計処理がめんどくさいアウトプットになってしまうかもしれない。ただどんな変数を出力するかというのもスプレッドシートで簡単に指定できるので、いくらでも工夫の仕方はあると思う。

最後に、Gorillaはサービス料金がかかる。1人あたりに実験を取ろうとすると1.25ドルかかる(Gorillaについて書いたブログとかをみていると1ドルって書いてあるものとかがあったので、もしかして値上がりした?)。そして、トークン購入は20人分だったか30人分だったかからである。つまり、5人とりたいといっても5トークンだけ買うとかできないので、研究費からの購入が難しいケースがある。100人にデータを取ったら125ドル(今日のレートで18,467.88 円)。SupperLabでもライセンス料が10万円くらいからだった気がするので(使ったことないけど)、実験5つくらいやったら同じくらいですかね?これだけの機能を使えて実験謝礼に百数十円くらいの割り増しが伴うくらいの感覚でいたら、そんなに高いとも感じないかなというところです(もちろんプレビューとそれによる出力は何回でもできますし、共同研究者に指定すればその人は同じことができます)。

俺はまだ戦える…ッ!

ということで、だんだん心理実験を続けていくのもしんどいなあ…と思っていた自分も、Gorillaを使って実験をデザインしていくことが可能じゃないかと思えるようになった。Johnに話を振られたときは何でやるって言っちゃったんだろうと思ったものだけど、これをいじる機会を与えてくれたことに今ではとても感謝している(しかも自分がいまやろうとしている実験の実装ということで当事者意識も強く、それに関するサンプルを作ってくれてそれを拡張するためにいろいろ機能をいじって学ぶというのは、最高の学習機会だったと思う。さすが世の中に一流の研究者を排出し続けている人である…)。

心理言語実験をやりたいけど自分には無理かも…って思っている皆さん、Gorillaちょっといじってみませんか。登録してタスク作るだけならタダでできますよ。

この記事が気に入ったらサポートをしてみませんか?