1. snishym

    No comment

    snishym
Changes in body
Source | HTML | Preview
@@ -1,67 +1,67 @@
# 2021/03/15 補足
-2021/03/15 時点での jspsych の最新バージョンは `v6.3.0` です。本チュートリアルのコードは`v6.1.0`が最新だった 2020 年 7 月頃に作成し,それから更新しておりません。チュートリアル内で紹介されているコードの大体は互換性があります(=バージョンに関係なくそのまま利用できる)が,現在のところ,次の 3 点については互換性がないことを把握しております(コード自体は未修正)。
+2021/03/15 時点での jspsych の最新バージョンは `v6.3.0` です。本チュートリアルのコードは`v6.1.0`が最新だった 2020 年 4 月頃に作成し,それから更新しておりません。チュートリアル内で紹介されているコードの大体は互換性があります(=バージョンに関係なくそのまま利用できる)が,現在のところ,次の 3 点については互換性がないことを把握しております(コード自体は未修正)。
1. `v6.3.0`では,`survey-text`など`survey-`系のプラグインで取得したデータを取り出す際に,`JSON.parse`を使う必要がなくなった(第 6 回に関連)。
2. `v6.3.0`では,ある試行で得られた反応を取り出す際に,どのプラグインでも`response`で参照できるようになった(いろんな回に関連)。
3. `v6.3.0`では,関数内で`jsPsych.timelineVariables()`を使用する時に,引数に`true`と指定する必要がなくなった(特に第 4 回)。
2 に関して,例えば,チュートリアルの中で一番よく使っている`html-keyboard-response`で得られたキー反応を参照するために,`v6.2.0`までは`変数名.key_press`で取得していましたが,`v6.3.0`(以降)では`変数名.response`に変わります。
また時間ができたら対応したいと思います。ひとまずアナウンスだけになりますが,ご了承ください。jsPsych の更新履歴は[公式 github のリリース情報](https://github.com/jspsych/jsPsych/releases)から確認できます。
# 2020/12 頃 補足
このチュートリアルのつぎのステップとして読むといいかもしれない記事を zenn というサイトで公開しています([zenn の マイページ](https://zenn.dev/snishiyama))。今後は zenn で記事を公開していくつもりなので,そちらもたまに見に来ていただけると幸いです。
# はじめに
本シリーズは,サイモン課題の作成を通して,jsPsychで心理学実験を行うために最低限必要なスキルを身につけることを目標としています。
具体的には,以下の4つです。
1. 参加者情報の入力([第6回](https://qiita.com/snishym/items/e0f82fa972970cda632c))
2. 課題の教示([第7回](https://qiita.com/snishym/items/2296fc1aff6d711aaa0b))
3. 刺激のランダム提示([第1回](https://qiita.com/snishym/items/45cfd220f7af8c7a13e0),[第2回](https://qiita.com/snishym/items/a121a4d6a02c71b69f3e),[第3回](https://qiita.com/snishym/items/bec56308c67922c3b3df),[第4回](https://qiita.com/snishym/items/ccbf53e64e313584dd48))
4. データの保存([第5回](https://qiita.com/snishym/items/be23aa7cbeeffa49d13a))
想定しているターゲットは,どの言語のプログラミング経験もない人です。javascript(や,HTML, css)の基本を知っている必要はありません。シリーズでは, jsPsychで心理学実験を作成するのに必要なテクニックをjavascriptの基本的な構文も織り交ぜながら順番に説明していきます。もちろん,javascriptは知っているがjsPsychはこれからという人にも有用な資料になっているはずです。
なお,このチュートリアルは私が以前作成した「[PsychoPy Coderによる心理学実験作成チュートリアル](https://qiita.com/snishym/items/8b52db0d901cf5744463)」をjsPsych用に書き換えたものです。
# jsPsychとは
jsPsychは,javascriptというプログラミング言語で書かれた心理学実験・調査作成ツール(ライブラリ・プラグイン)です。そして,javascriptはGoogle ChromeやFirefox, Safariといったウェブブラウザ上で動作するプログラミング言語です。したがって,jsPsychもウェブブラウザ上で動作します。つまり,ウェブブラウザ上で心理学実験を動作させることができます。ウェブブラウザは,インターネットを介して世界の誰かの記事・ブログを読むためのものです。それらウェブページと同様に,jsPsychで作成した実験をウェブ上にアップロードしておけば,世界のどこかの誰かさんがインターネットを介して自分の作成した心理学実験に参加することができます。つまり,「オンライン実験」を実施することができます。もちろん,jsPsychで作成した実験をPCにダウンロードしておけば,インターネットがなくてもそのPC上で実験を動作させることができるので,jsPsychでも実験室実験を実施することができます。
オンライン実験作成がjsPsychの主な特徴になると思うのですが,他にも同様のツールは結構あるようです([Anwyl-Irvineら(2020)](https://link.springer.com/article/10.3758/s13428-019-01237-x)のTable 1)。その中でも私がjsPsychを使おうと思った理由は以下の3つです。
1. 無料で使える[^1]
2. スクリプトを書いて作成する
3. 日本語の資料がある
[^1]: ただし,オンライン実験を実施するためにはアップロードしておくサーバーが必要で,多くの場合,レンタルサーバーを借りることになるので,その実施には謝礼とは別にお金がかかります。
2つ目の点が個人的には結構大事でした。無料で使えて,日本語の資料があるツールとしては,PsychoPy Builderやlab.jsが挙げられます。これらのツールはjsPsychと違って,基本的にGUIでマウスでポチポチ実験を作成することができるツールです。GUIのツールは、最初の垣根は低いのですが、工夫し始めると一気に手順がややこしくなったり、コードを書いたりする必要が出てきたりするという印象があります。コードを書くとなった場合にはツールのベースにあるプログラミング言語(PsychoPyであればpython, lab.jsであればjavascript)について結局勉強する必要があります。
だったら,初めからコードでの実験の作り方を覚えたほうが長期的にはいいんじゃないかと思います。コーディングは最初の垣根がGUIより高いかもしれませんが、慣れてしまえば、GUIよりも楽に自由に実験を組めるようになります。その知識は他のプログラミング言語を勉強するときにも応用できるので、その際の学習コストも低くなります。私の場合は,PsychoPyを使ってコードを書いて心理学実験を作ってきたので,jsPsychにはすぐに慣れることができました。
とはいえ,この辺は作成する予定の実験の複雑さに左右されます。GUIツールでも全然事足りる場合はあるので,全く心理実験を作ったことがないという方は,まずはGUIツールでの作成から始めてみるのがいいと思います。
# 参考資料
本チュートリアルの作成に際し,以下の資料を参考にいたしました。作成者のみなさまには感謝申し上げます。
- [jsPsych公式サイト](https://www.jspsych.org/)
- ダウンロードしたjsPsychに同梱されているサンプルコード(examplesフォルダ内)
- [黒木先生の「ウェブブラウザで心理学実験と調査 jsPsych」](https://sites.google.com/site/webdeshinri/home)
- [高橋先生の「キソジオンライン」](https://github.com/kohske/KisojiOnline)
- [国里先生の「jsPsychを用いた認知課題の作成」](https://kunisatolab.github.io/main/code_tips.html)
- [小林先生の「jsPsychチュートリアル」](https://www.notion.so/jsPsych-73cade0a2e044217aedf01b5845e8d4e)
黒木先生のサイトについては掲載のコードを見る限り,現在のバージョンと互換性がなさそうなので,注意が必要かもしれません。高橋先生のキソジオンラインは,jsPsychの解説資料ではありませんが,jsPsychで作成された心理学実験のコードがたくさんアップされています。jsPsychがある程度読み書きできるようになったら,とても参考になると思います。国里先生のページではRstudioという開発環境上でjsPsychベースの心理実験を作成する方法が紹介されています。Rstudioに馴染みのある方はここから始めてみてもいいかもしれません。小林先生のページにはこれら3つのサイトとは少し種類の違う実験課題のコードが掲載・解説されています。
# おわりに
本記事は,本シリーズのまとめページとして概要を説明しました。正直に言うと,サイモン課題は,GUIツールで簡単に作成できる課題です([PsychoPy Builderでの作成](http://www.s12600.net/psy/python/ppb/html/chapter03.html),[lab.jsでの作成](https://www.notion.so/5-8cad725e57ac4a3382cc0e9d3c82d407))。
それでも,本シリーズが,なにかのきっかけにjsPsychで書きたい・書かないといけないという方のお役に立てれば大変幸いです。