R语言和Jspsych编写本地和在线心理学实验和问卷教程
引 言
在进行心理学研究的时,不可避免的要接触各种各样的行为实验编程软件和编程语言。通常这些实验编程软件(如e-prime)都是独立的应用且拥有自带的用户图形界面(GUI)。用户可以通过拖动相应的模块来构建自己的行为实验或者问卷。此外,一些研究者也选择编程语言中专门的包来构建实验(如python 中的psychopy 以及matlab中的psychtoolbox等)。其中,psychopy提供了独立GUI 的psychopy builder ,它也可以使用拖动模块的方式进行心理学实验编程。上述方式都是进行实验室实验编程的方案。近年来,随着电脑硬件的升级以及互联网的发展,网络版行为实验逐渐兴起,既给传统的心理学实验编程带来新的挑战,又给这些传统的实验编程包和软件带来了新的机遇和发展方向(如 psychopy builder 已经开始整合网络化行为实验的功能)。本期将介绍一个进行本地和网络心理学实验或问卷编程的包jspsych (javascript)以及配合R-markdown 使用的jspschr 包(R package)在R-markdown的环境下编写心理学实验和问卷。如果你主要做网络行为实验或者网络问卷调查,那么jspsych可能是最佳选择。因为它写出的实验或者问卷可以在几乎所有浏览器上运行而不用考虑兼容性问题。最后,本文将简要介绍jspsych本地心理学实验编程或问卷网络化编程的相关要点。
学习成本
使用jspsych在R-markdown中构建心理学实验除了要用到jspschr包之外,还需要使用javascript语言的一个第三方包:jspsych。由于jspsych 是用javascript编写而成,故用户需要对JavaScript和html语言有一些了解。然而,jspsych的官方网站提供了比较亲民的教程。该教程面向没有javascript背景的用户(详情见:https://www.jspsych.org)。另外,jspsych本身也提供了网页端app,该app采用GUI界面,用户只需要填写相应的参数和定义相应的模块即可(当然,如果需要复杂的实验操作,还是需要使用JavaScript代码)。最重要的是,这款网页app同时支持本地实验和网页端挂载实验,不需要安装本地客户端而且完全开源免费(详情见:http://builder.jspsych.org)。当然,如果你是R语言的深度粉丝,想完全依赖R 完成整个实验编程的workflow,可以尝试关注jaysire (https://github.com/djnavarro/jaysire)和xprmtnr(https://github.com/djnavarro
/xprmntr
可靠程度
Jspsych的作者曾将jspsych的反应时测量同matlab psychtoolbox 的反应时测量相比较,发现jspsych的测量平均反应时比psychtoolbox多25ms ,但是反应时变异的分布和测量反应时的敏感度没有差异
尽管已经有相关研究证明了jspsych在测量反应时上的可靠性,但是个人仍然不推荐使用该工具测量网络实验的反应时。反应时是一个相对脆弱的行为指标,受硬件条件和环境的影响较大,即使是实验室实验,实验者也必须小心翼翼的控制许多额外变量。许多心理学效应落实到反应时上都只有几十ms的差异,在网络实验的条件下,硬件和环境因素都无法保障,造成的变异很可能叠加在实验效应里从而增加了实验噪音。
当然,使用jspsych本地实验室实验不存在上述问题
优 势
以问卷研究为例, 有些读者可能会疑惑, 一些如问卷星
实 战!
内附详细步骤
首先打开R-studio 安装jspsychr, 由于这个包并没有发表到cran上
# install
devtools:
可以看到在模板的列表里面有一个jspsychr的选项
然后找到location的位置
其中 experiment文件夹是实验的源文件
打开 experiment 文件夹
现在打开index
添加这一参数的目的是有时候我们需要引用其他文件
接下来就可以开始正式编写实验或者问卷了。
假设我们要编写一个李克特量表。
首先,要使用jspsychr导入相关插件
(注:这里的插件为心理学实验或问卷中特定的模块,比如要编写问卷指导语,可以使用jspsych-instructions 这个插件,所以实验者可以根据自身需要选择预加载的插件,全部插件列表和具体参数可以在jspsych的官网找到,如下图)
可以看到,我们导入了jspsych.js
接下来就可以开始正式编写了,比如我们要先写一个李克特量表:
它的实现非常简单,只需要定义一个scale变量(如下图scale_1)
网页显示结果如下图:
之后,我们可以通过设置jspsych
将编好的问卷或实验网络化
那么怎么把已经编写好的实验或者问卷网络化呢
渠道:1
渠道2
上面两个网站都是由高校支持建立的专业行为实验和问卷发放平台,都支持jspsych 代码编写的实验挂载
渠道3
可能你已经注意到了,上面两个平台都要收费。如果想免费挂载自己的网页端行为实验,需要自建一个后端数据库, psiturk 提供了一个良心的教程手把手教你免费建一个后端
参考文献
Pinet, S., Zielinski, C.
图文排版:秦雅慧
该文章由荷兰心理统计联盟原创,未经授权,不得匿名转载。转载事宜后台联系,或邮件:[email protected]。
往期精选