#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)
}
});