Как мне закодировать метод сопоставления условий в свою программу?

#javascript #experimental-design #jspsych

Вопрос:

Я новичок в программировании и в настоящее время пытаюсь использовать 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 или какие-либо идеи о том, как это сделать? Если да, не могли бы вы, пожалуйста, поделиться своими идеями здесь? Я знаю, что есть форум на GitHub, посвященный jsPsych, но я решил, что задам свой вопрос и здесь, так как я изо всех сил пытаюсь найти ответ.

Ответ №1:

Я думаю, может быть, вы можете разделить весь свой эксперимент на четыре части: досудебный, не получай удовольствия, нейтральный, наслаждайся.

В предварительном процессе есть только предварительное слушание и функция перехода на страницу в зависимости от ответа, который дают участники.

Последние три части одинаковы, они могут случайным образом распределить участников по условию 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)
    }
});