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

Hallo,

Ich habe eine Frage zur implementierung von folgendem Design.

Ich habe in einer Studie insgesamt 175 Single-Choice Items. Diese sind auf 7 Domänen mit je 25 Items verteilt. Jetzt sollen jedem Probanden 105 dieser Items zufällig zugeteilt werden. Um die Domänen gleich stark zu repräsentieren, würde ich gerne 7 mal 15 aus 25 Items ziehen.

Über die ganze Studie hinweg soll jedes der 175 Items ungefähr gleichhäufig gezogen werden.

Wie kann ich das am besten umsetzen?

1 Answer

0 votes
by SoSci Survey (328k points)

Damit das mit der Gleichverteilung der Domänen funktioniert, werden Sie 7 Zufallsgeneratoren benötigen. Sorgen Sie dafür, dass die Items dort eindeutig repräsentiert sind - also z.B. über Frage + Itemnummer

AB01,1
AB01,2
AB01,3
...

Stellen Sie in den Zufallsgeneratoren ein, dass sie jeweils 15 Items ziehen. Dann lassen Sie den Fragebogen aus allen Zufallsgeneratoren ziehen, fügen die Items, die Sie via valueList() bekommen mittels array_merge() zusammen, mischen nochmal mittels shuffle() und müssen die Items dann nur noch ausspielen - so wie bei der Rotation von Items aus mehreren Fragen in der Anleitung erklärt.

by s262215 (150 points)
Vielen Dank! Das ist großartig und hat super funktioniert.

Jetzt wollen wir doffereweise noch Attention Checks mit einbauen. Diese sollen aber ALLE Teilnehmer beantworten und am Besten auch an ungefähr derselben Stelle.

Gibt es eine Möglichkeit, das in den Zufallsgenerator mit einzubauen? Oder ist es dafür am besten, die Zufallsziehung in 1 oder 2 Blöcke aufzuteilen, sodass wir folgende Blockaufteilung hätten:

Block 1: Ziehung von 7 mal 8 Items

Attention Check

Block 2: Ziehung von  mal 7 Items

oder entsprechend das gleiche mit drei Blocks à 7 mal 5 Items und zwei Attention Chekcs.


Wenn wir das blockweise machen würden, brauchen wir da noch einen Zusatz, um zu gewährleisten, dass die Items, die in block 1 gezogen wurden, nicht auch in Block 2 (oder Block 3) präsentiert werden?

Vielen Dank schonmal im Voraus!
by SoSci Survey (328k points)
Die Attention Checks ... inwiefern sind diese mit der Ziehung verbunden? Wenn gar nicht, dann hat das auf Ihren Zufallsgenerator auch keine Auswirkung.

Ich verstehe den Block 2 so, dass Sie dort weitere (?) Items aus denselben Blöcken präsentieren wollen? Das erledigen Sie normalerweise am besten so, dass Sie mit den vorhandenen Zufallsgeneratoren gleich mehr Items ziehen - und diese dann in Block 1 und Block 2 aufteilen. So können Sie Dopplungen zuverlässig ausschließen.

Also: Jeder Zufallsgenerator zieht weiterhin 15 Items. Und entweder halbieren Sie dann mittels array_slice() jede Liste und mischen die Teillisten (dann haben Sie in jedem Block gleich viele Items aus jedem Teilbereich) oder Sie mischen erst, und halbieren dann einfach die Gesamtliste.
by s262215 (150 points)
Vielen herzlichen Dank!
Das mit dem array-slice hat super geklappt.

Wir wollten nun einen Screenout einbauen und alle Teilnehmer ausscreenen, wenn sie den Attention Check falsch beantwortet haben. Momentan steht der Code dafür auf der Seite **nach** der Zufallsziehung. Der Screenout wird allerdings erst ausgelöst, wenn alle Fragen, die auf der Seite mit den Zufallsgeneratoren gezogen werden, beantwortet sind.

Also Ziel wäre:
- Block 1: 7*5 Items
-  Attention Check --> wenn falsch, dann raus, dann raus, sonst weiter zu Block 2
-  Block 2: 7*5 Items
-  Attention Check --> wenn falsch, dann raus, sonst weiter zu Block 3
-  Block 3: 7*5 Items

Gibt es da eine Möglichkeit, das in unseren momentanen Code einzubauen?

Unser Code sieht so aus:
`
$fragen1 = valueList('RD01', NULL, 'label');
$fragen2 = valueList('RD02', NULL, 'label');
$fragen3 = valueList('RD03', NULL, 'label');
$fragen4 = valueList('RD04', NULL, 'label');
$fragen5 = valueList('RD05', NULL, 'label');
$fragen6 = valueList('RD06', NULL, 'label');
$fragen7 = valueList('RD07', NULL, 'label');
$fragen = array_merge($fragen1, $fragen2, $fragen3, $fragen4, $fragen5, $fragen6, $fragen7);
shuffle($fragen);

$slice1 = array_slice($fragen, 0, 35);
$slice2 = array_slice($fragen, 35, 35);
$slice3 = array_slice($fragen, 70, 35);

$array_gesamt = array_merge($slice1, array('AC01'), $slice2, array('AC02'), $slice3);
$kennung = loopPage($array_gesamt);
question($kennung);
`
by SoSci Survey (328k points)
Ich würde folgendes versuchen: In das Array an den entsprechenden Stellen Dummy-Codes einbinden - also im array_merge() - und dann per Filter entweder question($kennung); aufrufen oder einen Screenout-Filter laufen lassen. Hilft das weiter?
by s262215 (150 points)
Kann man den Screenout-Filter denn auch auf diese Seite setzen?
by SoSci Survey (328k points)
Welche Seite meinen Sie mit "diese"?

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

...