Hallo!
Ich habe ein paar Fragen zu unverbundener Quotierung.
In meinem Fragebogen habe ich nach der Seite mit den soziodemografischen Merkmalen den Code für die Quotierung mit den drei Variablen Geschlecht, Alter und Bildung eingefügt (siehe unten).
Im Debug-Modus sehe ich, dass sich manche Quoten füllen, aber andere nicht (siehe Screenshot). Woran liegt das?
Wie kann ich testen, ob der Quotafull-Redirect funktioniert? Sieht der Code soweit korrekt aus?
Muss ich die Quoten "zurücksetzen", wenn ich in die Feldphase gehe? Und falls ja, wie geht das?
Vielen Dank für die Hilfe!
Hier der Code für die Quotierung:
$quotaGender = [
1 => 1420, // 1420 Frauen (Code 1)
2 => 1405 // 1405 Männer (Code 2)
];
// Geschlecht wird direkt ausgelesen
$gender = value('SD03');
$quotaAge = [
1 => 548, // 548 Altersgruppe 1 (18-29 Jahre)
2 => 493, // 493 Altersgruppe 2 (30-39 Jahre)
3 => 507, // 507 Altersgruppe 3 (40-49 Jahre)
4 => 631, // 631 Altersgruppe 4 (50-59 Jahre)
5 => 646 // 646 Altersgruppe 5 (60-74 Jahre)
];
// Alter wird umkodiert
$age = value('SD02_01');
if ($age < 18) {
$ageGroup = 0;
} elseif ($age <= 29) {
$ageGroup = 1;
} elseif ($age <= 39) {
$ageGroup = 2;
} elseif ($age <= 49) {
$ageGroup = 3;
} elseif ($age <= 59) {
$ageGroup = 4;
} else {
$ageGroup = 5;
}
$quotaEdu = [
1 => 932, // 932 Bildungsgruppe 1 (niedrig, Code 1)
2 => 904, // 904 Bildungsgruppe 2 (mittel, Code 2)
3 => 989 // 989 Bildungsgruppe 3 (hoch, Code 3)
];
// Bildung wird umkodiert
$edu = value('SD04');
if ($edu <= 2) {
$eduGroup = 1;
} elseif ($edu <= 5) {
$eduGroup = 2;
} else {
$eduGroup = 3;
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesGender = statistic('count', 'IV02_01', $gender);
$casesAge = statistic('count', 'IV03_01', $ageGroup);
$casesEdu = statistic('count', 'IV04_01', $eduGroup);
// Screenout
if (!array_key_exists($gender, $quotaGender) || !array_key_exists($ageGroup, $quotaAge) || !array_key_exists($eduGroup, $quotaEdu)) {
redirect('https://survey.maximiles.com/screenout?p=127759_ce70f388&m=%reference%', true);
}
// Auslesen der Quoten für die angegebenen Merkmale
$maxPerGender = $quotaGender[$gender];
$maxPerAge = $quotaAge[$ageGroup];
$maxPerEdu = $quotaEdu[$eduGroup];
// Zusätzliche Informationen anzeigen
debug($casesAge);
debug($maxPerAge);
debug($ageGroup);
debug($quotaAge);
debug($casesGender);
debug($maxPerGender);
debug($casesEdu);
debug($maxPerEdu);
// Quotenstopp
if (($casesAge >= $maxPerAge) || ($casesGender >= $maxPerGender) || ($casesEdu >= $maxPerEdu)) {
redirect('https://survey.maximiles.com/quotasfull?p=127759_7ee91366&m=%reference%');
}