首页 > 解决方案 > 如何将条件匹配技术编码到我的程序中?

问题描述

我是编程新手,目前正在尝试使用 jsPsych 创建基于浏览器的行为实验。

在我的实验中,参与者首先完成一个“预试验”,他们在其中对各种图片进行评分:

var scale_1 = ["Do not enjoy", "Neutral", "Enjoy"];

var pre_trial = {
    timeline: [{
        type: 'survey-likert',
        preamble: jsPsych.timelineVariable('image'),
        questions: [{labels: scale_1, prompt: "The prompt"}]
    }],
    timeline_variables: [
       {image: 'image address'},
       {image: 'image address'},
       {image: 'image address'}
    ]
};

然后,我使用评级将图像划分为两个条件,A 和 B。这个划分过程使用匹配,最终,获得“不喜欢”评级的图像均匀分布在条件 A 和条件 B 之间,如被评为“中性”的图像和被评为“享受”的图像。

不幸的是,我无法弄清楚如何执行此匹配过程。我尝试了各种 JavaScript 和 jsPsych 功能的许多不同组合,例如pop( )splice( )concat( )jspsych.data.get( ).select('response')等等。然而,他们都失败了。

这里有没有人有在 jsPsych 中匹配条件分配的经验,或者对如何做到这一点有任何想法?如果是这样,你会考虑在这里分享你的想法吗?我知道有一个专门针对 jsPsych 的 GitHub 论坛,但我想我也会在这里问我的问题,因为我很难找到答案。

标签: javascriptexperimental-designjspsych

解决方案


我想也许你可以把你的整个实验分成四个部分:预审、不享受、中立、享受。

在预审中,只有预审和根据参与者给出的答案跳转到页面的功能。

后三部分相同,可以将参与者随机分配到条件 A 或条件 B 中。 (并且取决于您托管的平台,您可以将 url 参数传递给第二部分以链接数据)

// pre_trial is omitted here
jsPsych.init({
    timeline: [pre_trial],
on_finish: function(data) {
        var url;
        if (data.values()[0].response =="Neutral"){
          url = "http://...." // the url of neutral part
        }else if (data.values()[0].response =="Enjoy"){
          url = "http://...." // the url of Enjoy part
        }else if (data.values()[0].response =="Not Enjoy"){
          url = "http://...." // the url of Not Enjoy part
        }
        window.open(url)
    }
});

推荐阅读