0 votes
in SoSci Survey (dt.) by s152995 (110 points)
edited by SoSci Survey

Hallo!
ich habe ein Problem mit einer PHP-Funktion. Ich stelle zu Beginn des Fragebogens eine Frage, zu den Nutzungshäufigkeit von verschiedenen Medien. Diese soll die Bedingungen für die Folgefrage stellen. Also, wenn jemand bspw. sagt, dass er Twitter nie nutzt, soll er daraufhin keine weitere Frage zu Twitter bekomme. Soweit so gut. Allerdings möchte ich gerne, dass der Teilnehmer daraufhin ENTWEDER eine Frage zu YouTube ODER zu Facebook ODER zu Instagram bekommt. Dafür habe ich einen Zufallsgenerator hinzugefügt und ihn mit der Filterfrage kombiniert. So sieht das ganze bisher aus:

$code = value('QD09');

if (($code == 1) and (value('IQ02_01') >= 2)) {
  question('QD03');
} elseif (($code == 2) and (value('IQ02_03') >= 2)) {
  question('QD04');
} elseif (($code == 3) and (value('IQ02_04') >= 2)) {
  question('QD05');
} elseif (($code == 4) and (value('IQ02_05') >= 2)) {
  question('QD06');
}

Also wenn Code 1 (Twitter) gezogen wird und bei der Mediennutzungs-Frage zu Twitter "selten oder höher" angeklickt wird, dann kriegt der Proband eine Frage zu Twitter. Das Problem, das dabei nun auftritt ist, dass wenn im Zufallsgenerator eine Folgefrage zu Twitter gezogen wird und der Proband in der Frage zur Nutzung bei Twitter "nie" angeklickt hat, wird einfach gar keine Frage angezeigt wird. Stattdessen hätte ich gerne, dass dort dann entweder eine Frage zu YouTube, zu Facebook ODER zu Instagram erscheint.

Ich hoffe ihr könnt mir weiterhelfen, schon mal vielen Dank im voraus!

Liebe Grüße!

1 Answer

0 votes
by SoSci Survey (305k points)

Vorab - Sie haben zwei Möglichkeiten:

(1) Sie können einen Zufallsgenerator verwenden, der nur aus den genutzten Plattformen auswählt - und wenn jemand eine selten-genutzte Plattform nutzt, bekommt er/sie fast zwangsläufig diese Plattform zur Beantwortung. Das hat aber mit Zufallsauswahl im Sinne des statistischen Zufalls dann nicht mehr viel zu tun.

Dafür würden Sie den Befehl show('RG01', ['filter' => $used]); verwenden, wenn Ihr Zufallsgenerator die Kennung RG01 hat. Mehr zu used unten.

(2) Oder Sie können eine uneingeschränkte Zufallsauswahl verwenden, dann werden Ihre Gruppen aber sehr unterschiedlich groß. Ungefähr (aber mit statistischen Abweichungen) entsprechend den Nutzungsanteilen.

Ihr Code wäre dann ein shuffle($used);, verbunden mit $medium = $used[0] und einem put(), um das auch im Datensatz zu speichern.

Wie kommen Sie dazu, was genutzt wird? Voraussichtlich so:

$used = getItems('IQ02', '>=', 2);

Details gerne auf Nachfrage.

by s152995 (110 points)
Vielen Dank für die Antwort!

Ich habe mich für die erste Möglichkeit entschieden. Den Code für die Ziehung aus dem Zufallsgenerator muss aber stehen bleiben richtig? Also dieser Teil:

$code = value('QD09');

if ($code == 1) {
question('QD03');
} elseif ($code == 2) {
question('QD04');
} elseif ($code == 3) {
question('QD05');
} elseif ($code == 4) {
question('QD06');
}

Wie kann ich diesen Teil denn mit "Ihrem" Teil ($used = getItems('IQ02', '>=', 2); show('QD09', ['filter' => $used]);) verbinden?

Wenn ich sie zusammen in einen Code schreibe, wird mir das angezeigt:

[Information] Vom Zufallsgenerator QD09 wurden folgende Codes gezogen: 4
[Information] Der Zufallsgenerator QD09 wurde bereits zu einem früheren Zeitpunkt im Interview verwendet, die gezogenen Codes bleiben unverändert: 4
[Information] value("QD09") = 4

Und er wählt trotzdem eine Plattform aus, bei der bei der Nutzungshäufigkeit "nie" ausgewählt wurde..

Danke!
by SoSci Survey (305k points)
> Wie kann ich diesen Teil denn mit "Ihrem" Teil ($used = getItems('IQ02', '>=', 2); show('QD09', ['filter' => $used]);) verbinden?

Sie müssen die Ziehung ja bereits einchränken, bevor Sie ziehen. Sie erstellen also erstmal die Liste genutzter Dienste ($used) und rufen dann mit show() und "filter" den Zufallsgenerator auf.

Danach bleibt es wie gehabt: Sie verwenden die gezogene Zahl für Ihren Filter, welche Frage angezeigt werden soll.

Achten Sie darauf, dass Sie den Zufallsgenerator nur per show() einbinden und nicht noch zusätzlich in den Fragebogen ziehen (daher die Warnung in der Debug-Information).

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

...