N-Back-Task mit jsPsych

Template für ein N-Back-Test mit jsPsych

Experiment
JavaScript
Diagnostik
Author

Markus Burkhardt

Published

03.16.2023

\(N\)-Back-Task

Die \(N\)-Back-Aufgabe ist eine kognitive Aufgabe zum Test der Arbeitsgedächtnisleistung. Dabei wird den Teilnehmern wird eine Sequenz von Stimuli, wie beispielsweise Buchstaben, Zahlen oder Formen, präsentiert und die Teilnehmer müssen dann angeben, ob der aktuelle Stimulus mit dem Stimulus übereinstimmt, der \(N\) Positionen zuvor präsentiert wurde. Die Schwierigkeit der Aufgabe wird durch die Größe von \(N\) variiert, wobei größere Werte von \(N\) eine höhere kognitive Belastung erfordern.

\(N\)-Back-Template

Mit der Bibliothek jsPsych von De Leeuw (2015) ist es vergleichsweise einfach eine \(N\)-Back-Auchfgabe mit Feedback zu erstellen:

Die drei wichtigsten Parameter lassen sich zu Beginn im Script-Teil definieren:

/*  Items in der N_Back Aufgabe */
var test_stimuli = [
    '<img src="https://www-user.tu-chemnitz.de/~burma/2023_N_Back/img/1.png">', 
    '<img src="https://www-user.tu-chemnitz.de/~burma/2023_N_Back/img/2.png">',
    '<img src="https://www-user.tu-chemnitz.de/~burma/2023_N_Back/img/3.png">', 
    '<img src="https://www-user.tu-chemnitz.de/~burma/2023_N_Back/img/4.png">', 
    '<img src="https://www-user.tu-chemnitz.de/~burma/2023_N_Back/img/5.png">' 
    ];
    
    /* Wie oft sollen die test Stimuli wiederholte werden?  
    bei rep 2 ergeben sich insgesamt 2*5 Items = 10 Stimuli */
var rep = 2

    // Auf wie viele vorherige Items ist zu reagierne? Minimum = 1
var N_in_nback = 1

Die Anzeigedauer (trial_duration), Tasten (choices), Rückgabewerte (data) etc. können direkt in den Plugin-Definitionen vorgenommen werden.

Parameter Definition des html-Plugin
var trial = {
            type: jsPsychHtmlKeyboardResponse,
            stimulus: nback_seq[i],
            trial_duration: 1000,
            response_ends_trial: false,
            // j = richtig i.S. n_back Wiederholung: Ja
            // f = Falsch i.S. n_back Wiederholung: Nein
            choices: ['f', 'j'],
            data: {
             correct_in_seq: correct_h1[i]
            },
            on_finish: function(data){
                if(jsPsych.pluginAPI.compareKeys(data.response, "f")){
                    data.correct = false;
                } else {
                    data.correct = true; 
                }
            }
        }

Eine Ausgabe im json-Format:

Hier die Ausgabe im json-Format
    {
        "rt": 806,
        "stimulus": "<img src=\"https://www-user.tu-chemnitz.de/~burma/2023_N_Back/img/2.png\">",
        "response": "f",
        "correct_in_seq": false,
        "trial_type": "html-keyboard-response",
        "trial_index": 5,
        "time_elapsed": 32907,
        "internal_node_id": "0.0-5.0",
        "correct": false
    },
    {
        "rt": null,
        "stimulus": "<p>Richtig!</p>",
        "response": null,
        "trial_type": "html-keyboard-response",
        "trial_index": 6,
        "time_elapsed": 33909,
        "internal_node_id": "0.0-6.0"
    }

Die json-Ausgabe enthält die Rückgabewerte Richtig! und Falsch!, die schließlich für die Auswertung genutzt werden können. Ist die Unterscheidung zwischen Verpassern und falschen Alarmen bedeutsam, können auch die Ausgaben von response einbezogen werden.

Literatur

De Leeuw, J. R. (2015). jsPsych: A JavaScript library for creating behavioral experiments in a Web browser. Behavior research methods, 47, 1-12. https://doi.org/10.3758/s13428-014-0458-y