0 votes
in SoSci Survey (dt.) by s084509 (155 points)
edited by SoSci Survey

Hallo,

ich habe eine mehrwellige Befragung bei der die Probanden über 12 Tage lang jeden Tag einen von 12 Texten/Videos zusehen bekommen sollen. Dies soll in randomisierter Reihenfolge geschehen, aber so, dass jede Person jeden der 12 Stimuli an einem der Tage sieht.

Ich habe für jeden Tag einen eigenen Fragebogen. Zur randomisierung benutze ich den Zufallsgenerator mit zurücklegen. Ich habe schon versucht habe es so zu programmieren, dass sich der Zufallsgenerator die Werte für jede Person (mithilfe der caseSerial Funktion) merkt, damit keine Person etwas doppelt sieht, allerdings funktioniert das nicht - es wird nur über alle Personen hinweg ohne zurücklegen randomisiert, aber nicht für jede Person einzeln.

Mein php code (für jeden der 12 Fragebögen) sieht so aus - IT01 ist dabei der Zufallsgenerator.

$keyRND = 'RND-'.caseSerial();
$data = dbGet($keyRND);
if ($data) {
  $code = $data[0];
} else {
  text('Fehlermeldung');
 buttonHide();
}

dbSet($keyRND, value('IT01'));


// Auslesen der numerischen Codes (01 bis 12)
$code = value('IT01');

// Textbaustein variieren
if ($code == 01) {
  text('Vid1');
} elseif ($code == 02) {
  text('Vid2');
} elseif ($code == 03) {
  text('Vid3');
} elseif ($code == 04) {
  text('Vid4');
} elseif ($code == 05) {
  text('Txt1');
} elseif ($code == 06) {
  text('Txt2');
} elseif ($code == 07) {
  text('Txt3');
} elseif ($code == 8) {
  text('Txt4');
} elseif ($code == 9) {
  text('KB1');
} elseif ($code == 10) {
  text('KB2');
} elseif ($code == 11) {
  text('KB3');
} elseif ($code == 12) {
  text('KB4');
}

Vielen Dank im Voraus!

1 Answer

0 votes
by SoSci Survey (304k points)

Mit dem Zufallsgenerator kommen Sie hier nicht weiter. Wie Sie selbst schon schreiben: Die Funktion ist darauf ausgelegt between-subject zu randomisieren.

Was Sie aber machen können: Sie können im ersten der 12 Interviews (erster Fragebogen) eine Liste (Array) mit den Zahlen 1 bis 12 erstellen, mischen und mittels dbSet() abspeichern.

$liste = array();
for ($i=1; $i<=12; $i++) {
  $liste[] = $i;
}
shuffle($liste);
$key = 'S'.caseSerial();
dbSet($key, $liste);

Und schon haben Sie in jedem Interview eine der 12 Zahlen für Ihre Rotation.

$key = 'S'.caseSerial();
$liste = dbGet($key);
// Screenout, wenn kein Eintrag für den Teilnehmer vorliegt
if (!$liste) {
  text('error');
  pageStop();
  buttonShide();
}
$stimulus = $liste[1];  // Hier kommt je nach Tag eine andere Nummer in die Klammern

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

...