0 votes
in SoSci Survey (dt.) by s005748 (175 points)

Hallo zusammen,

ich habe in einem Fragebogen mit php-Code und Zufallsgeneratoren verschiedene Fragen randomisiert. Als kurzen Überblick: Es gibt 10 Fragen in jeweils zwei verschiedenen Bedingungen (A und B). Ich habe das ganze so eingestellt, dass jeweils 5 Fragen aus Bedingung A und 5 Fragen aus Bedingung B gezogen werden (ohne, dass sich die Paare jeweils überschneiden - wenn also Frage 4A gezogen wird, wird nicht auch 4B gezogen). Entweder werden dann zunächst die 5 Fragen aus Bedingung A gezeigt und dann die 5 aus B oder anders herum.

Ich habe den Code getestet, als die Antwortpflicht bei jeder der Fragen eingestellt war. Da hat alles so funktioniert, wie es sollte. Jetzt haben wir uns umentschieden und wollten die Nachhaken-Option verwenden. Wenn man sich jetzt aber mehrfach hintereinander für die Nachhaken-und-Weiter-Option statt einer Antwort entscheidet, scheint die Randomisierung nicht mehr zu funktionieren. Es werden willkürlich andere Szenarien aus beiden Bedingungen angezeigt und teilweise werden dann auch mehr als 10 Szenarien insgesamt angezeigt. Zusätzlich werden teilweise die Antworten aus vorherigen Fragen übernommen und sind dann quasi schon voreingestellt.

Da der Code funktioniert, wenn man auf jede Frage eine Antwort gibt, verstehe ich nicht, wo genau hier das Problem liegt und wie ich das beheben kann. Vielleicht hat da jemand eine Idee?

Liebe Grüße

by SoSci Survey (371k points)
Posten sie doch bitte mal den PHP-Code, den Sie verwenden. Ihre Beschreibung deutet darauf hin, dass dort außer den Zufallsgeneratoren noch weitere Mechnismen zum Einsatz kommen, die nicht robust ggü. der wiederholten Anzeige einer Fragebogen-Seite sind.
by s005748 (175 points)
Ich habe den Code als Antwort hier auf die Frage hochgeladen.

1 Answer

0 votes
by s005748 (175 points)

Ich habe einen Zufallsgenerator (1 oder 2) für die Seitenabfolge und dazu diesen Code ("Ich" und "Partner" sind die Bedingungen A und B):

$zahl = value('CO02');

if ($zahl == 1) {
setPageOrder('Ich1','Ich2','Ich3','Ich4','Ich5','Partner1','Partner2','Partner3','Partner4','Partner5');
} elseif ($zahl == 2) {
setPageOrder('Partner1','Partner2','Partner3','Partner4','Partner5','Ich1','Ich2','Ich3','Ich4','Ich5');
}

Und dann habe ich einen Zufallsgenerator (CO01) von 1-10 und dazu diesen Code (s.u.) auf jeweils einer einzelnen Seite fortlaufend.
Der value läuft von CO01x01 bis CO01x10
Die Kennung SC steht für die Fragen der Ich-Bedingung (A) und PC für die Fragen aus der Partner-Bedingung (B).

Beispiel für den Code auf Seite "Ich1"

if (value('CO01x01') == 1) {
question('SC01'); question('SC02');
} else if (value('CO01x01') == 2) {
question('SC03'); question('SC04');
} else if (value('CO01x01') == 3) {
question('SC05'); question('SC06');
} else if (value('CO01x01') == 4) {
question('SC07'); question('SC08');
} else if (value('CO01x01') == 5) {
question('SC09'); question('SC10');
} else if (value('CO01x01') == 6) {
question('SC11'); question('SC12');
} else if (value('CO01x01') == 7) {
question('SC13'); question('SC14');
} else if (value('CO01x01') == 8) {
question('SC15'); question('SC16');
} else if (value('CO01x01') == 9) {
question('SC17'); question('SC18');
} else if (value('CO01x01') == 10) {
question('SC19'); question('SC20');
}

Beispiel für Code auf Seite Partner2:

if (value('CO01x07') == 1) {
question('PC01'); question('PC02');
} else if (value('CO01x07') == 2) {
question('PC03'); question('PC04');
} else if (value('CO01x07') == 3) {
question('PC05'); question('PC06');
} else if (value('CO01x07') == 4) {
question('PC07'); question('PC08');
} else if (value('CO01x07') == 5) {
question('PC09'); question('PC10');
} else if (value('CO01x07') == 6) {
question('PC11'); question('PC12');
} else if (value('CO01x07') == 7) {
question('PC13'); question('PC14');
} else if (value('CO01x07') == 8) {
question('PC15'); question('PC16');
} else if (value('CO01x07') == 9) {
question('PC17'); question('PC18');
} else if (value('CO01x07') == 10) {
question('PC19'); question('PC20');
}

by s005748 (175 points)
Das Projekt lautet "Main Study Hypercrisy ws Projektarbeit2526". Ich habe leider nicht alle Freigaben dafür, reicht der Name des Projekts?
by SoSci Survey (371k points)
Ich, das reicht. Sie haben soeben eine E-Mail bekommen, dass ich einen Administrator-Login erstellt habe.

Folgender Fehler, der mir erst auf den dritten Blick auffällt:

if ($zahl == 1) {
setPageOrder('Ich1','Ich2','Ich3','Ich4','Ich5','Partner1','Partner2','Partner3','Partner4','Partner5');
} elseif ($zahl == 2) {
setPageOrder('Partner1','Partner2','Partner3','Partner4','Partner5','Ich1','Ich2','Ich3','Ich4','Ich5');
}

Da muss jeweils noch 'Beziehungszufriedenheit' als letzte Seite ergänzt werden, damit es nach den ersten 10 Seiten an der korrekten Stelle weitergeht.

Das erklärt aber noch nicht das von Ihnen beschrieben Problem, das sehe ich mir gleich weiter an.
by SoSci Survey (371k points)
Das beschrieben Problem konnte ich bei einem Testlauf nicht replizieren. Ich habe auf Seite 3 gestartet, und egal was ich beim nachhaken gemacht habe, es kommt in der Debug-Information immer korrekt

[Information] Entsprechend der vorher festgelegten Seitenabfolge wird Seite ... angezeigt

Sind Sie sicher, dass das Problem nicht erst nach dem Durchklicken von 10 Seiten aufgetreten ist, als das Ende der Seitenabfolge erreicht war, und SoSci Survey im zweiten Fall nach 'Ich5' einfach nicht wusste, wo es weitermachen soll?
by s005748 (175 points)
Ich konnte das Problem zunächst auch nicht replizieren. Aber mehrere Personen, die den Fragebogen getestet haben, berichten dieses Problem. Beim letzten Mal, wo es aufgetreten ist, habe ich erstmal ca. 3 Seiten der Seitenabfolge beantwortet. Daraufhin habe ich immer weiter die Nachhaken-Option verwendet. Dann kommt das Problem meistens (aber meiner Meinung nach auch nicht immer, was ich tatsächlich noch weniger nachvollziehen kann). Ich werde die letzte Seite mit "Beziehungszufriedenheit" jetzt kurz in den Code hinzufügen, damit das Problem schonmal behoben ist, und es dann auch nochmal austesten
by s005748 (175 points)
Ich vermute, das Problem ist somit behoben. Es taucht bei mir zumindest in mehreren Durchgängen nicht mehr auf. Ich werde es noch einmal anderen Personen zum testen geben, sonst melde ich mich ggf. nochmal.

Sie haben vermutlich Recht, dass es an der "Beziehungszufriedenheit" lag. Die Fälle, in denen es problemlos funktioniert hat, waren vermutlich die, wo die erste Seitenabfolge ausgelost wurde und nach den Partner Seiten ohnehin als nächstes die Beziehungszufriedenheit angezeigt wurde. Und Probleme gab es vermutlich immer dann, wenn zuerst die Partner-Seiten angezeigt wurden - wenn die Ich-Seiten dann beantwortet waren, wurden die gleichen Partnerseiten nochmal angezeigt und das würde dann auch die "vorhereingestellten" Antworten erklären.

Haben Sie vielen Dank, das habe ich völlig übersehen, obwohl ich mir sehr lange den Kopf darüber zerbrochen habe!

Warum die Randomisierung dann bei Antwortpflicht aber funktioniert hat, frage ich mich dennoch.

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

...