0 votes
in SoSci Survey (dt.) by s126979 (140 points)
edited by SoSci Survey

Hallo liebe Community!

Ich habe, aus meiner Sicht, eine etwas kniffelige Sache zu programmieren und hoffe, ihr könnt mir vielleicht helfen. Das wäre super nett!!
Was ich machen möchte:

1) In meinem Fragebogen gibt es drei Konditionen:
6 Gründe für eine Entscheidung,
6 Gründe gegen eine Entscheidung und
6 Gründe für und gegen eine Entscheidung.

Jedem Probanden soll randomisiert eine dieser Konditionen beantworten. Also jeder Proband soll nur 6 Gründe sehen, entweder für, gegen oder für und gegen die Entscheidung.

2) Auf jeden der sechs Gründe folgen 2 Fragen, in denen der Grund bewertet werden soll. Diese möchte ich zufällig rotieren. Ich muss also arrays aus jeweils 3 Elementen (Text + Frage1 + Frage 2= 1 Block) bilden und diese arrays dann rotieren lassen. Diese 6 Gründe mit jeweils 2 Fragen sollen alle auf der selben Seite abgefragt werden.

Was ich bis jetzt habe:

if (!isset($blocks)) {
  $blocks = array(
    array('G105', 'G102', 'G101'),
    array('G106', 'G115', 'G103'),
    array('G107', 'G116', 'G111'),
    array('G108', 'G117', 'G112'),
    array('G109', 'G118', 'G113'),
    array('G110', 'G119', 'G114')
    );
 
  //Die Liste zufällig mischen
  shuffle($blocks);
    //Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern
    registerVariable($blocks);
}

****//Anzeigen der Blöcke
$i = loopPage($blocks);****

//Frage anzeigen
question($blocks[$i][0]);
question($blocks[$i][1]);
question($blocks[$i][2]);

Allerdings werden durch das loopPage jeder Grund und die 2 Fragen auf einer neuen Seite abgefragt. Wie kann ich das lösen?

Der Code hier ist für "Gründe für eine Entscheidung". Den Code würde ich dann für die anderen beiden Szenarien kopieren und anpassen.
Wie sage ich dem System dann, dass jeder Proband nur eine der drei Szenarien beantworten soll? Habt ihr da hilfreicehe links? Und wo füge ich den Code dann ein? Ganz am Anfang?

Vielen Dank und liebe Grüße

1 Answer

0 votes
by SoSci Survey (305k points)

jeder Proband soll nur 6 Gründe sehen, entweder für, gegen oder für und gegen die Entscheidung.

Das klingt zunächst nach einem einfachen einfaktoriellen Experimentaldesign mit 3 Gruppen.

Allerdings werden durch das loopPage jeder Grund und die 2 Fragen auf einer neuen Seite abgefragt.

Viele Projektleiter:innen wünschen sich genau das :D

Aber wenn Sie alles lieber auf einer Seite haben möchten, ersetzen Sie das loopPage() einfach durch eine FOR-Schleife:

for ($i=0; $i<6; $i++) {
  // Fragen anzeigen
  question($blocks[$i][0]);
  question($blocks[$i][1]);
  question($blocks[$i][2]);
}

Wie man das jetzt noch mit der Randomisierung kombiniert? Es kommt einwenig darauf an, welche Datenstruktur man am Ende für die Auswertung benötigt. Aber im einfachsten Fall gibt es nicht nur eine Rubrik G1, sondern auch noch G2 und G3. Und dann definieren Sie das Array $blocks abhängig von einer mittels Zufallsgenerator gezogenen Zufallszahl.

Etwas eleganter: Sie könnten in das $blocks-Array auch nur die Zahlen der Frage schreiben, also z.B. 5 statt 'G105'. Und dann weiter unten die Ziehung verwenden.

$rubrik = value('RG01', 'label');
for ($i=0; $i<6; $i++) {
  // Fragen anzeigen
  question(id($rubrik, $blocks[$i][0]));
  question(id($rubrik, $blocks[$i][1]));
  question(id($rubrik, $blocks[$i][2]));
}

Im Zufallsgenerator RG01 müsste dafür G1, G2 und G3 stehen.

asked Apr 5, 2021 in SoSci Survey (dt.) by s126979 (140 points)
edited Apr 5, 2021 by SoSci Survey
Randomisieren von Seiten und Fehlermeldung

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

...