Liebes SoSci-Team,
über den folgenden Code haben wir eine Quotierung mit Quotenstopp und Redirect-Link am Anfang des Fragebogens implementiert:
$quota = [
'2-1' => 22, '2-2' => 22, // 22 (10%) Personen pro Geschlecht für die Altersgruppe 2
'3-1' => 21, '3-2' => 21, // 21 (9,5%) Personen pro Geschlecht für die Altersgruppe 3
'4-1' => 20, '4-2' => 20, // 20 (9%) Personen pro Geschlecht für die Altersgruppe 4
'5-1' => 27, '5-2' => 27, // 27 (11,5%) Personen pro Geschlecht für die Altersgruppe 5
'6-1' => 22, '6-2' => 22, // 22 (10%) Personen pro Geschlecht für die Altersgruppe 6
];
// Geschlecht wird direkt ausgelesen
$gender = value('DE02');
// Das Alter wird umkodiert
$age = value('DE01_01');
if ($age < 18) {
$ageGroup = 1;
} elseif ($age <= 30) {
$ageGroup = 2;
} elseif ($age <= 40) {
$ageGroup = 3;
} elseif ($age <= 50) {
$ageGroup = 4;
} elseif ($age <= 59) {
$ageGroup = 5;
} elseif ($age <= 69) {
$ageGroup = 6;
} else {
$ageGroup = 7;
}
// Definition einer Variable mit Altersgruppe und Geschlecht
$demGroup = $ageGroup.'-'.$gender;
// Speichern der Gruppenzugehörigkeit in der internen Variable PA01_01
put('PA01_01', $demGroup);
if (($gender != 1) && ($gender != 2)) {
goToPage('ASC');
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$cases = statistic('count', 'PA01_01', $demGroup, 'LASTPAGE', 40);
// Screenout
if (!array_key_exists($demGroup, $quota)) {
redirect('https://survey.maximiles.com/quotasfull?p=143160_68c6f50a&m=%reference%');
}
// Auslesen der Quote für die demografische Gruppe
$maxPerGroup = $quota[$demGroup];
// Quotenstopp
if ($cases >= $maxPerGroup) {
redirect('https://survey.maximiles.com/quotasfull?p=143160_68c6f50a&m=%reference%');
}
__
Dabei habe ich bewusst beim Abruf der Fälle mit der jeweiligen Merkmalsausprägung ($cases) einen Filter eingebaut ('LASTPAGE', 40), damit nur diejenigen Fälle gezählt werden, die auch vollständig ausgefüllt haben. Wir hatten zunächst mehrere Pre-Launches, haben diese Fälle aber nachträglich aus dem Datensatz auf SoSci gelöscht, damit diese Fälle ebenfalls nicht in die Quote einbezogen werden. Aktuell sind unter Interviews also nur die relevanten Datensätze einbezogen. Dennoch werden die Quotenstopps aktuell schon aktiv und filtern Personen heraus, obwohl keine der Quoten bereits voll ist. Wir können uns das überhaupt nicht erklären. Wir haben über die Variable "PA01_01" in Excel genau kontrolliert, wie viele vollständige (und sogar unvollständige) Fälle pro Kategorie derzeit vorliegen. Dabei sollten die Quoten (sogar unter Einbezug der unvollständigen Fälle) noch nicht voll sein. Warum könnte diese Problem auftreten? Und wir können wir das lösen?
Vielen lieben Dank im Voraus!