0 votes
in SoSci Survey (dt.) by s181413 (120 points)

Hallo,

also ich habe verschiedene (fünf) Rubriken in unterschiedlichem Design (jeweils gleiche Fragen aber unterschiedliche Impulse der Antwortmöglichkeiten) erstellt. Mein Ziel ist es, die Befragten zufällig in diese fünf unterschiedliche Gruppen einzuteilen und so jeweils eine der fünf Rubriken zugeordnet zu bekommen.
[Ich habe viel darüber gelesen, wie Fragen zufällig zugeteilt werden, aber keine ganzen Rubriken. Ist das denn möglich? Lässt sich der Befehl "question" einfach durch ein Pendant der "Rubrik" ersetzen?]

Dann weiter: eine Anzahl Befragter befindet sich jetzt in der Gruppe x der Rubrik x. Hier wiederum sollen die Antwortmöglichkeiten der einzelnen Fragen in zufälliger Reihenfolge angezeigt werden, nicht aber innerhalb eines Fragebogens für den Probanden variieren, sondern Probandenübergreifend zufällig angezeigt werden. (also für den Probanden konstant im Fragebogen, aber Fragebogenübergreifend betrachtet zufällig)

ich würde mich sehr freuen, wenn Sie mir helfen könnten!
freundliche Grüße :)

1 Answer

0 votes
by SoSci Survey (306k points)

Lässt sich der Befehl "question" einfach durch ein Pendant der "Rubrik" ersetzen?]

Was Sie machen können ist folgendes: Legen Sie die Rubrik-Kennungen in einen Zufallsgenerator und bauen Sie die Frage-Kennungen dann einfach dynamisch mit id() zusammen. Für die ersten drei Fragen könnte das dann so aussehen:

$rubrik = value('RG01', 'label');
question(id($rubrik, 1));
question(id($rubrik, 2));
question(id($rubrik, 3));

Hier wiederum sollen die Antwortmöglichkeiten der einzelnen Fragen in zufälliger Reihenfolge angezeigt werden

Sind Sie sicher, dass Sie das wollen?
Sinn und Unsinn der Rotation

also für den Probanden konstant im Fragebogen, aber Fragebogenübergreifend betrachtet zufällig

Wenn ja, dann hätte ich hier die passende Anleitung für Sie:
Parallele Rotation von Items in zwei Fragen

Wenn Sie die Reihenfolge noch brauchen, können Sie statt shuffle() wieder einen Zufallsgenerator verwenden.

by s181413 (120 points)
https://www.soscisurvey.de/EmotionsforschungKapp2021/index.php?i=PO6V8VIE89JJ&rnd=GNUP

man sieht, dass die Fragen einmal mit Items in (in der Frage) aufgelisteter Reihenfolge anzeigen
und danach die Fragen mit parallel geshuffelter Itemreihenfolge angezeigt werden. Diese aber eine Fehlermeldung haben weil sie doppelt verwendet wurden.
by SoSci Survey (306k points)
Wenn ich es korrekt sehe, haben Sie ganz viele Fragen und jeweils nur ein Item pro Frage, ist das korrekt?

Dann kann das oben nicht funktionieren, denn der Code ist zum Mischen von Items innerhalb einer Frage - nicht zum Mischen von Fragen.

Weitehrin vermute ich, dass Sie die Fragen doppelt in die Seite einbinden. Einmal per PHP-Code und dann haben Sie die Fragen vermutlich zusätzlich noch in die Seite gezogen?

Damit bin ich aber zurück bei meiner vorigen Frage: Sie schreiben ...

> - der zweite Zufallsgenerator randomisiert die Fragenreihenfolge und steht jeweils auf der zweiten Seite der Fragebögen
> - shuffle() soll die Items zufällig anzeigen lassen (was noch nicht funktioniert) und steht im PHP-Code auf der zweiten Seite

Da Sie offenbar nur ein Item pro Frage haben, macht es nicht viel Sinn, die Items innerhalb der Frage/n zu rotieren. Habe ich den Aufbau Ihres Fragebogens flsch verstanden oder reden wir lediglich aneinander vorbei, weil Sie mit "Item" ein Statement meinen und ich mit "Item" die untergeordnete Einheit einer Frage?
by s181413 (120 points)
:D nein natürlich habe ich nicht nur ein Item (Items sind die Antwortmöglichkeiten, richtig? von denen habe ich sechs plus eine Ausweichantwort)
auch habe ich neben dem PHP-Code keine weiteren Fragen auf die Seite gezogen, was ich aber noch auf der Seite stehen habe ist der Zufallsgenerator - welcher mir die Fragen in zufälliger Reihenfolge anzeigt. Kann es sein, dass das Programm dadurch Fragen doppelt anzeigt? einmal über den Zufallsgenerator und einmal über den PHP-Code, ich schicke nochmal alles hier rein:
(muss ich die beiden Befehle kombinieren und habe das bisher falsch gemacht?)

question('RB01');                               // Randomisierung BS Fragenreihenfolge
$fragen = valueList('RB01', NULL, 'label');
foreach ($fragen as $kennung) {
  question($kennung);
}                                                    //Fragen in beliebige Reihenfolge


if (!isset($itemsBS)) {
  $itemsBS = [1,2,3,4,5,6];
  shuffle($itemsBS);                               //shuffle Items
  $itemsBS[] = -1;

  registerVariable($itemsBS);                   //merk dir die variable

question('BS01', $itemsBS);              //übernimm die reihenfolge für die fragen..
question('BS02', $itemsBS);
...
question('BS48', $itemsBS);
}

debug($itemsBS);
by SoSci Survey (306k points)
> :D nein natürlich habe ich nicht nur ein Item (Items sind die Antwortmöglichkeiten, richtig? von denen habe ich sechs plus eine Ausweichantwort)

Die haben mich ein wenig verwirrt, weil ich auf den ersten Blick dachte, es handle sich um Fragen vom Typ "Skala". Dabei sind es Frgen vom Typ "Auswahl". Da wäre die sachlich korrekte bezeichnung "Antwortoption", aber aus technischer Sicht sind es in SoSci Survey Items. Insofern haben Sie vollkommen Recht :)

> . Kann es sein, dass das Programm dadurch Fragen doppelt anzeigt? einmal über den Zufallsgenerator

Ja und nein. Also: Der Zufallsgenerator selbst zeigt keine Fragen an. Aber Sie haben im PHP-Code doppelt (!) den question()-Befehl. Untern wesentlich häufiger: Ich meine, dass sie einmal im oberen Teil (zum Zufallsgenerator) in einer Schleife question() 48-mal aufrufen und dann haben Sie unten noch 48-mal question() geschrieben.

Die Lösung besteht darin, dass wir den unteren Teil zur Definition der Variable $itemsBS nach oben ziehen. Und darunter kommt dann der Teil, welcher die Fragen in der vom Zufallsgenerator gezogenen Abfolge anzeigt.

// Erstmal die Abfolge der Antwortoptionen mischen
if (!isset($itemsBS)) {
  $itemsBS = [1,2,3,4,5,6];
  shuffle($itemsBS);
  $itemsBS[] = -1;
  registerVariable($itemsBS);
}

// Jetzt die Fragen mit dieser Abfolge von Antwortoptionen anzeigen
// Und zwar in der Reihenfolge lt. Zufallsgenerator
question('RB01');
$fragen = valueList('RB01', NULL, 'label');
foreach ($fragen as $kennung) {
  question($kennung, $itemsBS);
}

Das ist kürzer und ohne die lästige Doppelung.
by s181413 (120 points)
Oh Super! Ja das macht Sinn und es hat geklappt. Ich bin Ihnen wirklich dankbar - und gerade wegen dieser langwierigen Auseinandersetzung
vielen lieben Dank :))

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

...