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

0 votes

Ich habe eine Studie mit sechs verschiedenen Stimuluslisten. Die Stimuli sollen gleichmäßig auf die Probanden verteilt werden, das heißt, am Ende sollen gleich viele Probanden jede Liste gesehen haben.
Jede Liste ist als ein Array definiert. Über einen Zufallsgenerator wird zwischen verschiedenen Listen ausgewählt.

Das Problem: Von den ersten sechs Teilnehmern hat einer Liste 1 gesehen und die restlichen fünf haben Liste 2 gesehen. Wenn ich die Urne für die Zufallsziehung anschaue, steht dort allerdings, dass die Werte für jede Liste jeweils 1x gezogen wurden (1x Liste 1, 1x Liste 2, 1x Liste 3 usw.).

Wie kommt diese Angabe zustande, wenn in den Daten nur Liste 1 und Liste 2 auftauchen?
Wie kann ich sicherstellen, dass ich jede der sechs Listen gleich häufig im Datensatz finden werde?

Der Code für den Zufallsgenerator und für die Darstellung der Listen findet sich unter der Frage. Vielen Dank im Voraus für alle Tips!

Zufallsgenerator (Urne für Zufallsziehung, Zettel für Inhalte):

1 = liste1
2 = liste2
3 = liste3
4 = liste4
5 = liste5
6 = liste6 

Bisher gezogen:

1: 1
2: 1
3: 1
4: 1
5: 1
6: 1

Listen:

if(!isset($liste)){ $liste1 = array('keyname 1', 'keyname 2' usw...); $liste2 = array('keyname 1', 'keyname 2' usw...); $liste3 = array('keyname 1', 'keyname 2' usw...); $liste4 = array('keyname 1', 'keyname 2' usw...); $liste5 = array('keyname 1', 'keyname 2' usw...); $liste6 = array('keyname 1', 'keyname 2' usw...);

// 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); };
in SoSci Survey (dt.) by s068921 (150 points)

1 Answer

0 votes

Sie haben da einen Fehler in Ihren IF-Bedingungen. Das fällt nicht auf den ersten Blick auf, weil Sie das alles in eine Zeile gepackt haben.

if($code == '1') {
  $liste = $liste1;
}
elseif ($code = '2') {
  $liste = $liste2;
}

Ab dem zweiten IF haben Sie ein einfaches Gleichheitszeichen verwendet. Dieses vergleicht aber nicht zwei Werte wie ==, sondern es weist einer Variable einen Wert zu.

Wenn also nicht Liste 1 verwendet wurde, dann immer Liste 2. Denn in dieser Klammer kommt immer '2' heraus und das ist nicht 0. Die Anführungszeichen sollten Sie m.E. auch weglassen, aber die verursachen hier keinen Feher.

by SoSci Survey (223k points)
Vielen Dank für die schnelle Antwort!

Das hat funktioniert, beim nächsten Test wurden alle Listen nacheinander angezeigt.

Jetzt ist allerdings das nächste Problem aufgetreten: In jeder Liste sollten 90 items gezeigt werden, die sich auf 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 - 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.

Auch hierbei wäre ich sehr dankbar für einen Tip, wie ich den Fehler beheben könnte.
Bitte posten Sie dafür in einer neuen Frage einmal Ihren kompletten PHP-Code und beschreiben Sie nochmal genauer, was es mit den 9 Bedingungen á 10 Items zu tun hat. Und wie die Bedingungen verankert sind und wie die Aufteilung erfolgt. Ich denke, für die Komentarspalte ist Ihr Setup ein wenig zu anspruchsvoll ;)
Ich habe eine neue Frage gepostet; vielen Dank für die Antworten hier!
...