Guten Tag SoSciSurvey-Team,
bei einer Umfrage habe ich zwei Quotierungen für die Gesamtanzahl pro Personen mit bestimmten Merkmalen. Außerdem werden bestimmte Personen rausgefiltert, wenn die Teilnahmekriterien nicht erfüllt werden. Im Pre-Test schien dies soweit zu funktionieren. Redirects haben entsprechend der Anweisung gegriffen und wenn ich testweise die Quotenzahl runtergesetzt habe, schien die interne Variable entsprechend zu zählen und der Quotafull-Redirect ab dem richtigen Zeitpunkt eizusetzen.
Nun ist die Studie im Feld und bei der Betrachtung der bereits erhaltenen Datensätze scheint die Zählung der internen Variablen nicht mehr zu stimmen.. Die Fälle (z.B. für weibliche Teilnehmerinnen) sollten ja eigentlich nur +1 zählen, wenn 'weiblich' ausgewählt wird. Beim Blick auf die Daten kann ich aber sehen, dass die interne Variable seltsam zählt -> z.B.: 17, 20, 19, 18, 22, 21 oder auch gar nicht -> obwohl die Frage die zur internen Vaariable eine Pflichtfrage ist.
Ich sollte die Erhebung im Feld wahrscheinlich pausieren und erst wieder starten wenn der Fehler gefunden ist? Kann ich die Studie in SoSciSurvey selbst pausieren, oder muss ich vorher dem Paneldienstleister Bescheid geben? Ich fürchte, den erreiche ich heute leider nicht mehr.
Können Sie eventuell an meinem Code sehen, wo der Fehler liegen könnte? Über Hilfe wäre ich wirklich sehr dankbar!
Hier ist zum einen mein Code von Seite 3 des Fragebogens:
// Quoten für Geschlecht und Home-Office-Häufigkeit definieren:
$quotaGender = [
1 => 514, // weiblich
2 => 585 // männlich
];
$quotaHO_frequency = [
1 => 220, // nie im Home-Office
3 => 880 // mindestens einmal alle 14 Tage
];
// Werte aus den Fragen auslesen:
$gender = value('DE02');
$HO_frequency = value('SC01');
$work_hours = value('SC02');
// Altersüberprüfung und Weiterleitung:
$age = value('DE01_01');
if ($age < 18 || $age > 65) {
redirect('https://PANELANBIETER..com/screenout?p=123129_e81dccff&m=%reference%');
pageStop();
}
// Überprüfung der Antworten auf bestimmte Fragen und Weiterleitung:
if ($HO_frequency == 2 || $work_hours == 1 || in_array($gender, [3, 4, 5, -9])) {
redirect('https://PANELANBIETER..com/screenout?p=123129_e81dccff&m=%reference%');
pageStop();
}
// Zählen der bisherigen Antworten und Überprüfung der Quoten
// Interne Variablen für die Quotenmerkmale definieren
if ($gender == 1) {
$casesGender = statistic('count', 'SC06_01');
} elseif ($gender == 2) {
$casesGender = statistic('count', 'SC06_02');
}
if ($HO_frequency == 1) {
$casesHO_frequency = statistic('count', 'SC08_01');
} elseif ($HO_frequency == 3) {
$casesHO_frequency = statistic('count', 'SC08_02');
}
$maxPerGender = $quotaGender[$gender];
// Überprüfung, ob der Schlüssel im Array existiert
if (array_key_exists($HO_frequency, $quotaHO_frequency)) {
$maxPerHO_frequency = $quotaHO_frequency[$HO_frequency];
} else {
$maxPerHO_frequency = null;
}
if ($maxPerHO_frequency !== null && $casesHO_frequency >= $maxPerHO_frequency) {
redirect('https://PANELANBIETER..com/quotasfull?p=123129_730e7cba&m=%reference%');
pageStop();
}
if ($casesGender >= $maxPerGender) {
redirect('https://PANELANBIETER.com/quotasfull?p=123129_730e7cba&m=%reference%');
pageStop();
}`
und hier der Code von Seite 24 (vorletzte Seite):
`// Werte aus den Fragen auslesen:
$gender = value('DE02');
$hoFreq = value('SC01');
// Interne Variablen aktualisieren:
// Zählen der bisherigen Antworten für Geschlecht und Home-Office-Häufigkeit
$countFemale = statistic('count', 'SC06_01');
$countMale = statistic('count', 'SC06_02');
$countNever = statistic('count', 'SC08_01');
$count14Days = statistic('count', 'SC08_02');
// Aktualisieren der Zählung basierend auf den Antworten
if ($gender == 1) {
$countFemale += 1;
put('SC06_01', $countFemale);
} elseif ($gender == 2) {
$countMale += 1;
put('SC06_02', $countMale);
}
if ($hoFreq == 1) {
$countNever += 1;
put('SC08_01', $countNever);
} elseif ($hoFreq == 3) {
$count14Days += 1;
put('SC08_02', $count14Days);
}
// Abgeschlossene Fragebögen zählen und Teilnehmer als abgeschlossen markieren:
$finished = statistic('count', 'LASTPAGE', 24);
redirect('https://PANELANBIETER.com/complete?p=123129_993e72cb&m=%reference%');`
Falls mehr Infos benötigt würden um mir helfen zu können, geben Sie mir bitte Bescheid. Vielen vielen Dank und freundliche Grüße!