0 votes
ago in SoSci Survey (dt.) by s275430 (160 points)

Ich stelle mein Frage hier nochmal als eigenen Post (bereits in einem Kommentar enthalten), damit es nicht untergeht :)
Es um einen Attention Check, meine Vorgabe ist "Data of participants will be excluded if they respond incorrectly to 3 of the 4 attention check items."

Mein Problem ist, dass ich den PhP-Code zum Attention-Check
> // Calculate the number of correct answers to the control items
> $richtig = (value('PM49_01') == 4) + (value('PM50_01') == 3) +
> (value('PM51_01') == 2) + (value('KF_01_01') == 5);
> // Check if the number of correct answers is less than 2 if ($richtig < 2) {
> redirect('LINK'); }

erst hinter dem letzten Kontroll-Item habe, und so TN, bei denen nach dem 3. Kontroll-Item schon klar ist, dass sie rausfliegen würden, den Fragebogen trotzdem bis zum letzten Kontroll-Item weiter durchklicken müssen, bevor sie rausfliegen.

Die Herausforderung dabei ist, dass ich 35 Seiten randomisiert anzeigen lasse, und darunter auch die Kontrollitems 2, 3 und 4 sind.

Gibt es eine Möglichkeit, im PhP-Code anzugeben, dass die Seite mit dem Kontroll-Item 3 und 4 jeweils mit der Seite mit dem PhP-Code, der prüft, wie viele Kontroll-Items falsch beantwortet wurden und gfls. zurück zum Panelanbieter leitet, zu verknüfen? Also dass sie bei der Randomisierung sozusagen als "Pärchen" mit dem Rest durchmischt werden?

Mein bisheriger Randomisierungs-Code sieht so aus:
> question('ZU01'); // Zettel in zufälliger Reihenfolge ziehen
> $pages = valueList('ZU01', NULL, 'label'); // Gezogene Zettel auslesen
> setPageOrder($pages, 'DQ'); // Seiten als Seitenabfolge definieren

und dahinter habe ich einen Zufallsgenerator eingefügt.

Wenn das nicht geht, gibt es vielleicht einen anderen Lösungsansatz?

1 Answer

0 votes
ago by SoSci Survey (345k points)

Na gut, dann poste ich meine Antwort auch nochmal als separate Antwort ;)

Data of participants will be excluded if they respond incorrectly to 3 of the 4 attention check items.

Man braucht also nur einen Zufallstreffer :-))

Gibt es eine Möglichkeit, im PhP-Code anzugeben, dass die Seite mit dem Kontroll-Item 3 und 4 jeweils mit der Seite mit dem PhP-Code, der prüft, wie viele Kontroll-Items falsch beantwortet wurden

Dafür gibt es unten das "Antworten mittels PHP-Code verarbeiten". Dieser Code wird immer direkt nach dem Einlesen der Antworten einer Seite ausgeführt - und damit eben auch bei rotierten Items an der richtigen Stelle.

Die Herausforderung ist hier eher zu prüfen, ob überhaupt schon drei Kontrollitems beantwortet wurden. Ich würde es wie folgt machen:

$incorrect =
  (value('AB01', 'code:ifany') && (value('AB01') =! 2)) +
  (value('AB02', 'code:ifany') && (value('AB02') =! 3)) +
  (value('AB03', 'code:ifany') && (value('AB03') =! 4)) +
  (value('AB04', 'code:ifany') && (value('AB04') =! 5));

Hier würde erstmal nur getestet, ob in der Variable (exemplarisch AB01 bis AB04) schon irgend eine Antwort steht (also nicht der leere String und nicht 0). Und wenn dem so ist (das wird über den UND-Operator && erledigt) dann wird erst geprüft, ob die Antwort von der korrekten Antwort abweicht (hier exemplarisch 2 bis 5).

Beachten Sie, dass ich hier die falschen Antworten zähle und nicht die richtigen. Dieses Maß ist als Kriterium für den Ausschluss invariant dagegen, wie viele Kontrollitems schon abgefragt wurden.

ago by s275430 (160 points)
Cool danke! Das klang erst nach einer super Lösung, leider bekomme ich aber bei der Umsetzung über den Button "Antworten mittels PHP-Code verarbeiten" den Warnhinweis:

"Warnung: Die Funktion redirect() ist nicht für die Verarbeitung der Antworten mittels PHP-Code geeignet oder zugelassen."

Gibt es vielleicht noch eine andere Möglichkeit?
ago by SoSci Survey (345k points)
Es war nicht ganz einfach, aber wir haben redirect() nun auch in der Verarbeitung unten ermöglicht. Die Änderung ist ab sofort auf www.soscisurvey.de verfügbar.

> Gibt es vielleicht noch eine andere Möglichkeit?

Ja, man könnte eine Funktion unter "PHP-Funktionen" einbinden, und die auf jeder Seite oben einbinden, aber das ist deutlich weniger elegant. Deshalb haben wir uns dazu entschieden, den (für uns) etwas aufwändigeren Weg zu gehen.

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

...