0 votes
in SoSci Survey (dt.) by s299638 (130 points)
edited by s299638

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%');
}

1 Answer

0 votes
by SoSci Survey (327k points)

Im Debug-Modus sehe ich, dass sich manche Quoten füllen, aber andere nicht

Sie sehen bei den Debug-Infos immer nur die Zählung für die demografische Zelle des aktuellen Falls. Außerdem zählt statistic() in der Standard-Einstellung nur abgeschlossene Fälle (FINISHED=1).

Wie kann ich testen, ob der Quotafull-Redirect funktioniert?

Reduzieren Sie die erlaubten Fälle für eine der Ausprägungen auf 1.

Muss ich die Quoten "zurücksetzen", wenn ich in die Feldphase gehe?

Im Debug-Modus zählt statistic() auf Fälle mit MODE=debug und MODE=admin, sonst nur Fälle mit MODE=interview. Je nachdem, welche Testdaten Sie bisher produziert haben, kann es hilfreich sein, die bisher erhobenen Daten zu löschen.

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

...