0 votes
in SoSci Survey (dt.) by s068921 (150 points)
closed by SoSci Survey

In meinem Experiment erhebe ich Urteile zu geschriebenen Sätzen.

Die Stimuli liegen in 9 verschiedenen Bedingungen vor. Sie sind auf sechs verschiedene Listen verteilt. In jeder Liste sollten 90 items gezeigt werden, die sich auf die 9 Bedingungen mit jeweils 10 items verteilen.

Im Testlauf hat jeder Proband tatsächlich 90 items gesehen. Aber manchmal sieht er mehr als 10 items pro Bedingung und manchmal weniger - so als würden die items aus einer Urne mit Zurücklegen gezogen. Allerdings werden die items, wenn ich nicht etwas ganz missverstanden habe, ja nicht aus einer Urne geholt, sondern aus einem geshuffleten Array.

Ich wäre sehr dankbar für einen Tip, welcher Fehler hier vorliegt und wie ich ihn beheben könnte. Der Code für die relevante Seite findet sich unter dieser Nachricht. Die Einstellung des Zufallsgenerators, der die Listen auswählt, ist "Gleichverteilung in abgeschlossenen Fragebögen (Ziehen ohne Zurücklegen)".

Vielen Dank im Voraus!

// Seite n-Mal wiederholen (aktuelle seitennummer in $i speichern)

$i = loopPage(90);

// Arrays definieren

if(!isset($liste)){

$liste1 = array(  // Liste der Datenbank-Keys
    'liste1-01', 'liste1-02', 'liste1-03', 'liste1-04', 'liste1-05', 'liste1-06', 
    'liste1-07', 'liste1-08', 'liste1-09', 'liste1-10', 'liste1-11', 'liste1-12', 
    'liste1-13', 'liste1-14', 'liste1-15', 'liste1-16', 'liste1-17', 'liste1-18', 
    'liste1-19', 'liste1-20', 'liste1-21', 'liste1-22', 'liste1-23', 'liste1-24', 
    'liste1-25', 'liste1-26', 'liste1-27', 'liste1-28', 'liste1-29', 'liste1-30', 
    'liste1-31', 'liste1-32', 'liste1-33', 'liste1-34', 'liste1-35', 'liste1-36', 
    'liste1-37', 'liste1-38', 'liste1-39', 'liste1-40', 'liste1-41', 'liste1-42', 
    'liste1-43', 'liste1-44', 'liste1-45', 'liste1-46', 'liste1-47', 'liste1-48', 
    'liste1-49', 'liste1-50', 'liste1-51', 'liste1-52', 'liste1-53', 'liste1-54', 
    'liste1-55', 'liste1-56', 'liste1-57', 'liste1-58', 'liste1-59', 'liste1-60', 
    'liste1-61', 'liste1-62', 'liste1-63', 'liste1-64', 'liste1-65', 'liste1-66', 
    'liste1-67', 'liste1-68', 'liste1-69', 'liste1-70', 'liste1-71', 'liste1-72', 
    'liste1-73', 'liste1-74', 'liste1-75', 'liste1-76', 'liste1-77', 'liste1-78', 
    'liste1-79', 'liste1-80', 'liste1-81', 'liste1-82', 'liste1-83', 'liste1-84',
    'liste1-85', 'liste1-86', 'liste1-87', 'liste1-88', 'liste1-89', 'liste1-90');

$liste2 = array(  // Liste der Datenbank-Keys
    'liste2-01', 'liste2-02', 'liste2-03', 'liste2-04', 'liste2-05', 'liste2-06', 
    'liste2-07', 'liste2-08', 'liste2-09', 'liste2-10', 'liste2-11', 'liste2-12', 
    'liste2-13', 'liste2-14', 'liste2-15', 'liste2-16', 'liste2-17', 'liste2-18', 
    'liste2-19', 'liste2-20', 'liste2-21', 'liste2-22', 'liste2-23', 'liste2-24', 
    'liste2-25', 'liste2-26', 'liste2-27', 'liste2-28', 'liste2-29', 'liste2-30', 
    'liste2-31', 'liste2-32', 'liste2-33', 'liste2-34', 'liste2-35', 'liste2-36', 
    'liste2-37', 'liste2-38', 'liste2-39', 'liste2-40', 'liste2-41', 'liste2-42', 
    'liste2-43', 'liste2-44', 'liste2-45', 'liste2-46', 'liste2-47', 'liste2-48', 
    'liste2-49', 'liste2-50', 'liste2-51', 'liste2-52', 'liste2-53', 'liste2-54', 
    'liste2-55', 'liste2-56', 'liste2-57', 'liste2-58', 'liste2-59', 'liste2-60', 
    'liste2-61', 'liste2-62', 'liste2-63', 'liste2-64', 'liste2-65', 'liste2-66', 
    'liste2-67', 'liste2-68', 'liste2-69', 'liste2-70', 'liste2-71', 'liste2-72', 
    'liste2-73', 'liste2-74', 'liste2-75', 'liste2-76', 'liste2-77', 'liste2-78', 
    'liste2-79', 'liste2-80', 'liste2-81', 'liste2-82', 'liste2-83', 'liste2-84',
    'liste2-85', 'liste2-86', 'liste2-87', 'liste2-88', 'liste2-89', 'liste2-90');


$liste3 = array(  // Liste der Datenbank-Keys
    'liste3-01', 'liste3-02', 'liste3-03', 'liste3-04', 'liste3-05', 'liste3-06', 
    'liste3-07', 'liste3-08', 'liste3-09', 'liste3-10', 'liste3-11', 'liste3-12', 
    'liste3-13', 'liste3-14', 'liste3-15', 'liste3-16', 'liste3-17', 'liste3-18', 
    'liste3-19', 'liste3-20', 'liste3-21', 'liste3-22', 'liste3-23', 'liste3-24', 
    'liste3-25', 'liste3-26', 'liste3-27', 'liste3-28', 'liste3-29', 'liste3-30', 
    'liste3-31', 'liste3-32', 'liste3-33', 'liste3-34', 'liste3-35', 'liste3-36', 
    'liste3-37', 'liste3-38', 'liste3-39', 'liste3-40', 'liste3-41', 'liste3-42', 
    'liste3-43', 'liste3-44', 'liste3-45', 'liste3-46', 'liste3-47', 'liste3-48', 
    'liste3-49', 'liste3-50', 'liste3-51', 'liste3-52', 'liste3-53', 'liste3-54', 
    'liste3-55', 'liste3-56', 'liste3-57', 'liste3-58', 'liste3-59', 'liste3-60', 
    'liste3-61', 'liste3-62', 'liste3-63', 'liste3-64', 'liste3-65', 'liste3-66', 
    'liste3-67', 'liste3-68', 'liste3-69', 'liste3-70', 'liste3-71', 'liste3-72', 
    'liste3-73', 'liste3-74', 'liste3-75', 'liste3-76', 'liste3-77', 'liste3-78', 
    'liste3-79', 'liste3-80', 'liste3-81', 'liste3-82', 'liste3-83', 'liste3-84',
    'liste3-85', 'liste3-86', 'liste3-87', 'liste3-88', 'liste3-89', 'liste3-90');

$liste4 = array(  // Liste der Datenbank-Keys
    'liste4-01', 'liste4-02', 'liste4-03', 'liste4-04', 'liste4-05', 'liste4-06', 
    'liste4-07', 'liste4-08', 'liste4-09', 'liste4-10', 'liste4-11', 'liste4-12', 
    'liste4-13', 'liste4-14', 'liste4-15', 'liste4-16', 'liste4-17', 'liste4-18', 
    'liste4-19', 'liste4-20', 'liste4-21', 'liste4-22', 'liste4-23', 'liste4-24', 
    'liste4-25', 'liste4-26', 'liste4-27', 'liste4-28', 'liste4-29', 'liste4-30', 
    'liste4-31', 'liste4-32', 'liste4-33', 'liste4-34', 'liste4-35', 'liste4-36', 
    'liste4-37', 'liste4-38', 'liste4-39', 'liste4-40', 'liste4-41', 'liste4-42', 
    'liste4-43', 'liste4-44', 'liste4-45', 'liste4-46', 'liste4-47', 'liste4-48', 
    'liste4-49', 'liste4-50', 'liste4-51', 'liste4-52', 'liste4-53', 'liste4-54', 
    'liste4-55', 'liste4-56', 'liste4-57', 'liste4-58', 'liste4-59', 'liste4-60', 
    'liste4-61', 'liste4-62', 'liste4-63', 'liste4-64', 'liste4-65', 'liste4-66', 
    'liste4-67', 'liste4-68', 'liste4-69', 'liste4-70', 'liste4-71', 'liste4-72', 
    'liste4-73', 'liste4-74', 'liste4-75', 'liste4-76', 'liste4-77', 'liste4-78', 
    'liste4-79', 'liste4-80', 'liste4-81', 'liste4-82', 'liste4-83', 'liste4-84',
    'liste4-85', 'liste4-86', 'liste4-87', 'liste4-88', 'liste4-89', 'liste4-90');

$liste5 = array(  // Liste der Datenbank-Keys
    'liste5-01', 'liste5-02', 'liste5-03', 'liste5-04', 'liste5-05', 'liste5-06', 
    'liste5-07', 'liste5-08', 'liste5-09', 'liste5-10', 'liste5-11', 'liste5-12', 
    'liste5-13', 'liste5-14', 'liste5-15', 'liste5-16', 'liste5-17', 'liste5-18', 
    'liste5-19', 'liste5-20', 'liste5-21', 'liste5-22', 'liste5-23', 'liste5-24', 
    'liste5-25', 'liste5-26', 'liste5-27', 'liste5-28', 'liste5-29', 'liste5-30', 
    'liste5-31', 'liste5-32', 'liste5-33', 'liste5-34', 'liste5-35', 'liste5-36', 
    'liste5-37', 'liste5-38', 'liste5-39', 'liste5-40', 'liste5-41', 'liste5-42', 
    'liste5-43', 'liste5-44', 'liste5-45', 'liste5-46', 'liste5-47', 'liste5-48', 
    'liste5-49', 'liste5-50', 'liste5-51', 'liste5-52', 'liste5-53', 'liste5-54', 
    'liste5-55', 'liste5-56', 'liste5-57', 'liste5-58', 'liste5-59', 'liste5-60', 
    'liste5-61', 'liste5-62', 'liste5-63', 'liste5-64', 'liste5-65', 'liste5-66', 
    'liste5-67', 'liste5-68', 'liste5-69', 'liste5-70', 'liste5-71', 'liste5-72', 
    'liste5-73', 'liste5-74', 'liste5-75', 'liste5-76', 'liste5-77', 'liste5-78', 
    'liste5-79', 'liste5-80', 'liste5-81', 'liste5-82', 'liste5-83', 'liste5-84',
    'liste5-85', 'liste5-86', 'liste5-87', 'liste5-88', 'liste5-89', 'liste5-90');


$liste6 = array(  // Liste der Datenbank-Keys
    'liste6-01', 'liste6-02', 'liste6-03', 'liste6-04', 'liste6-05', 'liste6-06', 
    'liste6-07', 'liste6-08', 'liste6-09', 'liste6-10', 'liste6-11', 'liste6-12', 
    'liste6-13', 'liste6-14', 'liste6-15', 'liste6-16', 'liste6-17', 'liste6-18', 
    'liste6-19', 'liste6-20', 'liste6-21', 'liste6-22', 'liste6-23', 'liste6-24', 
    'liste6-25', 'liste6-26', 'liste6-27', 'liste6-28', 'liste6-29', 'liste6-30', 
    'liste6-31', 'liste6-32', 'liste6-33', 'liste6-34', 'liste6-35', 'liste6-36', 
    'liste6-37', 'liste6-38', 'liste6-39', 'liste6-40', 'liste6-41', 'liste6-42', 
    'liste6-43', 'liste6-44', 'liste6-45', 'liste6-46', 'liste6-47', 'liste6-48', 
    'liste6-49', 'liste6-50', 'liste6-51', 'liste6-52', 'liste6-53', 'liste6-54', 
    'liste6-55', 'liste6-56', 'liste6-57', 'liste6-58', 'liste6-59', 'liste6-60', 
    'liste6-61', 'liste6-62', 'liste6-63', 'liste6-64', 'liste6-65', 'liste6-66', 
    'liste6-67', 'liste6-68', 'liste6-69', 'liste6-70', 'liste6-71', 'liste6-72', 
    'liste6-73', 'liste6-74', 'liste6-75', 'liste6-76', 'liste6-77', 'liste6-78', 
    'liste6-79', 'liste6-80', 'liste6-81', 'liste6-82', 'liste6-83', 'liste6-84',
    'liste6-85', 'liste6-86', 'liste6-87', 'liste6-88', 'liste6-89', 'liste6-90');


// Zufallsgenerator wählt eine Stimulusliste aus 
$code =value('ZG01'); 

if($code == 1) {$liste = $liste1;}
elseif($code == 2) {$liste = $liste2;}
elseif($code == 3) {$liste = $liste3;}
elseif($code == 4) {$liste = $liste4;}
elseif($code == 5) {$liste = $liste5;}
elseif($code == 6) {$liste = $liste6;}
;  

// Die ausgewählte Liste zufällig mischen
shuffle($liste);

// Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern
registerVariable($liste);
};


// Seite n-Mal wiederholen (aktuelle seitennummer in $i speichern)
$i = loopPage(90);

// Fortschrittsbalken
option('progress', ($i/90)*100);

// Führende Nullen an einstellige Zahlen anhängen
// das entspricht in etwa der Laufnummer 
// - noetig für die korrekte Darstellung der keys 
// für bis zu 99 fragen: 
$frage_nr = str_pad($i+1, 2, '0', STR_PAD_LEFT);

// aktuellen key aus der geshuffleten liste holen 
$key = $liste[$i]; 

$inhalt = dbGet($key); 

replace('%pred%', $inhalt[5], 'html'); 

// Textbaustein "Prompt" anzeigen (%pred% wird ersetzt)
text('Prompt');
// Frage FR$i anzeigen (%pred% wird ersetzt) - bis 99
question('FT'.$frage_nr.'_01'); 

// ab hier: die Informationen, die ich zusätzlich zu den Urteilsdaten speichern lasse
// (das funktioniert alles gut)

// welche liste- bis 99
put('LS'.$frage_nr.'_01', $inhalt[0]);

// experiment -- hier qdip oder npi 
put('EX'.$frage_nr.'_01', $inhalt[3]);

// itemnummern 
put('IT'.$frage_nr.'_01', $inhalt[2]);

// bedingung
put('BD'.$frage_nr.'_01', $inhalt[4]);


question('ZG01', 'show-title=no');  // listenverteilung
closed with the note: Es liegen keine weiteren Informationen zu dem Problem vor ... vermutlich konnte es anhand der Debug-Informationen oder anderweitig gelöst werden.
by SoSci Survey (304k points)
Wo tauchen denn die 9 Bedingungen in Ihrem Code auf? Die 6 Listen kann ich nachvollziehen, nicht aber die Bedingungen. Ist das ein within-subject-Faktor, der sich in den einzelnen Texten einer (jeder) Liste widerspiegelt?
by SoSci Survey (304k points)
Und gleich noch eine Frage hinterher: Was ist ZG01 und wenn Sie das ganze im Debug-Modus starten und sich mittels

$key = $liste[$i];
debug($key);

die Schlüssel anzeigen lassen, bekommen Sie dann konsistent die richtigen Einträge?

Generell empfehle ich, dass Sie die Frage- und Variablen-Namen nicht selbst zusammenbauen, sondern id() verwenden, also statt

put('LS'.$frage_nr.'_01', $inhalt[0]);

besser

put(id('LS', $i+1, 1), $inhalt[0]);
by s068921 (150 points)
Die Bedingungen sind within-subject. Die Verteilung der Bedingungen auf die Listen findet vorher, außerhalb von Sosci, statt, das sollte problemlos sein.

Ich bin nicht ganz sicher, was mit "die richtigen Einträge" im debug-Modus gemeint ist, und wie weit es sich von dem unterscheiden würde, was ich bereits tue (Testlauf, Daten durchsehen und durchzählen, wie oft welcher Stimulus gezeigt wurde). Ich probiere es aber mal aus, dabei klärt sich möglicherweise etwas.
Danke auch für die Empfehlung zu den Variablennamen! Das werde ich fürs nächste Experiment probieren.
by SoSci Survey (304k points)
Ergänzen Sie unter dem

registerVariable($liste);
};

doch bitte einmal folgende Zeile:

debug($liste);

Damit sollte nachvollziehbar sein, ob die Liste über alle Seiten stabil bleibt. Wenn da alles passt, dann müssten Sie mir bitte mal beschreiben, wie sich in den Testdaten geäußert hatte, dass es manchmal nicht funktionierte. Also konkret welche Liste das gezogen wurde und welche Variablen falsche Inhalt hatten.
by s068921 (150 points)
Vielen Dank für den Tip! Ich werde es ausprobieren, schon um debuggen zu lernen.

Inzwischen hatte ich gesehen, dass sich weiter unten im Code ein relativ banaler Fehler eingeschlichen hatte; damit ließ sich schon einmal ein guter Teil des Problems beheben.
Vielen Dank für die schnelle und gute Beratung!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...