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

Ich führe eine experimentelle Online-Studie durch und habe einen Soft Launch mit ca. 60 Teilnehmenden abgeschlossen. Aufgrund der Ergebnisse habe ich das Studiendesign angepasst, wobei eine Bedingung entfernt wurde und die Instruktionen überarbeitet wurden. Der Fragebogen wurde zwischen Soft Launch und Full Launch nicht deaktiviert, da ich dachte, dass das so korrekt ist. Ich habe nach den Änderungen mehrere Testdurchläufe gemacht, die nun im Datensatz gespeichert sind.

Problem 1: Memory Warning auf Seite 4
Im Debug-Modus erhalte ich auf Seite 4 folgende Warnung:
„Creating this questionnaire page requires an unusually large amount of memory (39.2 MB), inclusing 38.5 MB for the actual page content. Possible reasons include many variables, large PHP variables, or the use of complex PHP functions. If memory requirements continue to increase, this may lead to interviews aborting."

Auf Seite 3 (die Seite davor) befindet sich ein PHP-Code mit Alters- und Country-Check, Umkodierungen sowie einem Quoten-Check mit mehreren statistic()-Aufrufen:
$casesAge = statistic('count', 'IV01_01', $ageGroup);
$casesGender = statistic('count', 'IV04_01', $genderGroup);
$casesRegion = statistic('count', 'IV05_01', $regionGroup);

$casesTotal = 0;
for ($i = 1; $i <= 5; $i++) {
$casesTotal += statistic('count', 'IV01_01', $i);
}

Auf Seite 4 selbst befindet sich der Zufallsgenerator sowie folgender PHP-Code:
$gruppe = value('EM01');
if($gruppe == 1) {
setPageOrder('predRecall', 'RC', 'timing', 'DV');
} else {
setPageOrder('neutralRecall', 'RCN', 'timing', 'DV');
}

Ich mache mir Sorgen, dass die Warning im Full Launch mit 300+ Teilnehmenden zu Abbrüchen führen könnte. Was verursacht den hohen Speicherbedarf und wie kann ich das beheben?

Problem 2: Gleiche Experimentalbedingung beim Testen
Beim Testen über den grünen Link werde ich immer derselben Experimentalbedingung zugewiesen. Ich habe zunächst vermutet, dass der Duplikat-Check das Problem verursacht und ihn deshalb auskommentiert, das hat aber nichts geändert. Im Debug-Modus (gelber Button) funktioniert die Zufallszuweisung korrekt. Woran liegt das? Könnte das Problem auch weiterhin stattfinden, sodass die Versuchspersonen nur einer Experimentalgruppe zugeordnet werden?

Problem 3: Duplikat-Check und Soft-Launch-Daten
Der Duplikat-Check ist aktuell auskommentiert. Die Soft-Launch-Daten sollen aufgrund der Designänderungen nicht in den finalen Datensatz des Full Launches einfließen. Allerdings benötige ich die gespeicherten Referenz-IDs aus den internen Variablen für Duplikat-Checks und Screenout-Duplikate, da ich sonst keinen funktionierenden Duplikat-Check für den Full Launch durchführen kann.
Wie kann ich vorgehen, sodass die Soft-Launch-Daten nicht in die Hauptanalyse einfließen, die Referenz-IDs aber erhalten bleiben und der Duplikat-Check für den Full Launch korrekt funktioniert?
Idealerweise würde ich die Soft-Launch-Daten aus dem Datensatz löschen, da das Design geändert wurde und diese Daten nicht zur Hauptanalyse beitragen sollen. Allerdings bin ich unsicher ob das möglich ist, ohne gleichzeitig die Referenz-IDs in den internen Variablen zu verlieren, die ich für den Duplikat-Check im Full Launch benötige. Gibt es eine Möglichkeit, die Antwortdaten der Soft-Launch-Teilnehmenden zu löschen oder zu separieren, während die Referenz-IDs für den Duplikat-Check erhalten bleiben?

1 Answer

0 votes
ago by SoSci Survey (372k points)

Problem 1: Memory Warning auf Seite 4

Die statistic()-Funktion muss jedesmal den kompletten Datensatz laden bzw. die relevanten Spalten. Die Lösung ist relativ einfach: Verwenden Sie ein Element "Quotierung". Dieses ersetzt die alte Quotierung mittels statistic() und macht die Quotierung generell viel handlicher.

Problem 2: Gleiche Experimentalbedingung beim Testen

Wenn der Fragebogen bereits im Feld ist, dann zählt der Zufallsgenerator keine Test-Interviews. Das heißt, wenn eine Bedingung weniger Counts hat als die anderen, dann wird beim Testen immer nur noch diese gezogen.

Kontrollieren Sie die Zählung im Zufallsgenerator.

Problem 3: Duplikat-Check und Soft-Launch-Daten

Von dieser Frage kann ich zwei Teile beantworten:

die Soft-Launch-Daten nicht in die Hauptanalyse einfließen

Das können Sie einfach anhand der Fallnummern unter Erhobene Daten -> Auswahlkriterien für gültige Fälle festlegen. Außerdem würden Sie den Quotencheck vor dem eigentlichen Start nochmal zurücksetzen.

die Referenz-IDs aber erhalten bleiben

Sie können die Daten auch jetzt einfach herunterladen und vor dem Start löschen. Aber im Prinzip können Sie die Daten auch in SoSci Survey belassen, je nachdem ...

der Duplikat-Check für den Full Launch korrekt funktioniert

... wie Sie den Duplikats-Check implementiert haben. Möchten Sie das bitte nochmal genauer ausführen?

ago by s358782 (110 points)
Vielen Dank für Ihre ausführliche Antwort!

Zu Problem 1 (Memory Warning): Ich hatte den Quotierungs-Baustein bereits in einer früheren Version eingebaut, musste ihn aber wieder entfernen, weil der automatische Complete-Redirect des Bausteins meinen manuellen PHP-Redirect überschrieben hat. Da ich die Panel-ID über value('REF') mit dem URL-Parameter ?r= auslese und alle Redirects manuell über PHP steuere, war der Baustein nicht kompatibel mit meinem Setup. Mein PHP-Code hatte einwandfrei funktioniert, bis ich jetzt nach dem Soft Launch die Änderungen am Fragebogen durchgeführt hatte. Gibt es eine Möglichkeit, die Memory Warning zu beheben ohne auf den Quotierungs-Baustein umzusteigen und den gesamten PHP Code umschreiben zu müssen?

Zu Problem 2 (Zufallsgenerator): Ich hatte die Zählung im Zufallsgenerator bereits manuell auf 0 zurückgesetzt, aber das Problem blieb bestehen. Im Debug-Modus (gelber Button) funktioniert die Zufallszuweisung korrekt, ich sehe in der Debug-Information, dass EM01 abwechselnd Code 1 und Code 2 zieht und setPageOrder() korrekt ausgeführt wird. Über den grünen Link werde ich jedoch weiterhin derselben Bedingung zugewiesen.

Zu Problem 3 (Duplikat-Check und Soft-Launch-Daten): Ich habe den Duplikat-Check wie folgt implementiert:
$countID = statistic('count', 'IV02_01', $idnr);
if ($countID == 1) {
 redirect('redirectlink&m=%reference%');
}
$countScreenout = statistic('count', 'IV03_01', $idnr);
if ($countScreenout == 1) {
redirect('redirectlink&m=%reference%');
}

Da sich das Studiendesign zwischen Soft Launch und Full Launch geändert hat, möchte ich die Antwortdaten der Soft-Launch-Teilnehmenden nicht in den finalen Datensatz aufnehmen und sie daher löschen. Ich habe die Daten bereits heruntergeladen.
Gehen die in IV02 und IV03 gespeicherten IDs verloren, wenn ich die Antwortdaten der Soft-Launch-Teilnehmenden lösche, da statistic('count') die IDs aus den gespeicherten Fällen ausliest? Und falls ja, gibt es eine Möglichkeit, die Antwortdaten zu löschen und gleichzeitig die Referenz-IDs für den Duplikat-Check zu erhalten?
Außerdem: Da ich mit dem Full Launch neu starte, müsste ich auch die Zähler in den internen Variablen IV01, IV04 und IV05 zurücksetzen, die ich für den Quoten-Check verwende. Wie kann ich den Inhalt dieser Variablen zurücksetzen ohne die eigentlichen Antwortdaten der Soft-Launch-Teilnehmenden zu löschen und ohne dass dabei der Duplikat-Check beeinträchtigt wird?
ago by SoSci Survey (372k points)
> Da ich die Panel-ID über value('REF') mit dem URL-Parameter ?r= auslese und alle Redirects manuell über PHP steuere, war der Baustein nicht kompatibel mit meinem Setup.

Im einfachsten Fall ersetzen Sie das redirect() durch ein setStatus('screenout') o.ä.

Wenn der Parameter "r" heißen soll, dann können Sie bei den Panel-Redirects einfach [r] an die entsprechende Stelle schreiben.

> Gibt es eine Möglichkeit, die Memory Warning zu beheben ohne auf den Quotierungs-Baustein umzusteigen

Nein, die statistic()-Funktion ist schon immer schwierig. SoSci Survey zeigt jetzt nur eine Warnung an, damit Probleme nicht mehr aus heiterem Himmel kommen. Sie können die Warnung natürlich einfach ignorieren - bevor Sie 64 MB erreichen (und dorthin ist noch viel Luft) wird der Fragebogen korrekt funktionieren.

> ... den gesamten PHP Code umschreiben zu müssen?

Vermutlich wären es nur ein paar Stellen, die Sie ändern müssten. Mit der Redirect-Funktion wird vieles deutlich einfacher.

> Über den grünen Link werde ich jedoch weiterhin derselben Bedingung zugewiesen.

Der grüne und gelbe Knopf funktionieren gleich, nur die Anzeige variiert. Nachdem in beiden Fällen nach der Freischaltungs des Fragebogens nicht gezählt wird, würde ich davon ausgehen, dass Sie einfach zufällig mehrfach dieselbe Version bekommen haben.

> Ich habe den Duplikat-Check wie folgt implementiert

Wenn Sie die erhobenen Daten ohnehin löschen möchten, dann findet statistic() keinen entsprechenden Fall und die Prüfung auf Dubletten ist unproblematisch. Falls die Daten nicht gelöscht werden würden, wäre ein statistic('filter', ...) eine Option.

Aber nach Ihrer weiteren Erläuterung verstehe ich es jetzt so, dass Sie zwar die Daten löschen möchten, aber (!) dennoch Personen ausschließen möchten, die bereits im Soft Launch teilgenommen haben? Eigentlich sollte der Panelanbieter dafür sorgen, dass das gar nicht passiert. Aber falls doch: Die einfachste Lösung wäre, die Daten nicht zu löschen. Das kann man vor der Auswertung ja immer noch erledigen.

Eine weitere Möglichkeit wäre eine separate Liste per "Datenbank für Inhalte" oder als Array im PHP-Code, um zusätzliche IDs zu sperren.

if (in_array($idnr, [
  'ABC12345',
  'BCC23456',
  'CDC34567',
  ...
])) {
  redirect('redirectlink&m=%reference%');
}

> Da ich mit dem Full Launch neu starte, müsste ich auch die Zähler in den internen Variablen IV01, IV04 und IV05 zurücksetzen, die ich für den Quoten-Check verwende.

Das würde für eine Löschung sprechen. Habe ich schon die Vorteile der neuen Quoten-Funktion angeprisen? Aber auch hier wäre es möglich, mit statistic('filter', ...) zu arbeiten, sodass statisitc() die Fälle aus dem Soft Launch einfach nicht mitzählt.

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

...