*Für die Kooperation mit einem Panel-Anbieter habe ich in meinem Fragebogen verschiedene Quotierungen eingebaut (Geschlecht, Altersgruppen, Bildungsgruppen, Einkommensgruppen und politische Orientierung).
Den Code habe ich analog an anderer Stelle schonmal erfolgreich für eine Quotierung verwendent, daher frage ich mich, ob ich die Variablen nicht korrekt abrufe...
Ich kopiere Ihnen hier erst den Code ein und darunter noch einmal, wie ich auf die Variablenbezeichnungen komme:*
a) Geschlecht
$quotaGender = [
1 => 2,
2 => 2,
3 => 1,
];
$Gender = value('SO_01');
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesGender = statistic('count', 'SC13_01', $Gender);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerGender = $quotaGender[$Gender];
// Quotenstopp
if (($casesGender >= $maxPerGender)) {
redirect('https://survey.maximiles.com/quotasfull?p=123907_2d138370&m=%reference%');
}
b) Altersgruppen (zusammengefasst)
$quotaAge = [
1 => 1,
2 => 1,
3 => 1,
4 => 1,
5 => 1,
];
// Das Alter wird umkodiert
$age = value('SO_03');
if ($age <= 33) {
$ageGroup = 1;
} elseif ($age <= 49) {
$ageGroup = 2;
} elseif ($age <= 64) {
$ageGroup = 3;
} elseif ($age <= 100) {
$ageGroup = 4;
} else {
$ageGroup = 5;
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesAge = statistic('count', 'SC14_02', $ageGroup);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerAge = $quotaAge[$ageGroup];
// Quotenstopp
if (($casesAge >= $maxPerAge)) {
redirect('https://survey.maximiles.com/quotasfull?p=123906_a4ea6ff1&m=%reference%');
}
c) Bildungsgruppen (zusammengefasst)
$quotaEdu = [
1 => 1,
2 => 1,
3 => 1,
];
// Bildungsabschluss wird umkodiert
$edu = value('SO_04');
if ($edu <= 5) {
$eduGroup = 1;
} elseif ($edu <=7) {
$eduGroup = 2;
} else {
$eduGroup = 3;
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesEdu = statistic('count', 'SC15_02', $eduGroup);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerEdu = $quotaEdu[$eduGroup];
// Quotenstopp
if (($casesEdu >= $maxPerEdu)) {
redirect('https://survey.maximiles.com/quotasfull?p=123906_a4ea6ff1&m=%reference%');
}
d) Einkommensgruppen (zusammengefasst)
$quotaIncome = [
1 => 1,
2 => 1,
3 => 1,
4 => 1,
5 => 1,
];
// Einkommen wird umkodiert
$income = value('SO_06');
if ($income <= 3) {
$incomeGroup = 1;
} elseif ($income <=4) {
$incomeGroup = 2;
} elseif ($income <=5) {
$incomeGroup = 3;
} elseif ($income <=8) {
$incomeGroup = 4;
} else {
$incomeGroup = 5;
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesIncome = statistic('count', 'SC16_02', $incomeGroup);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerIncome = $quotaIncome[$incomeGroup];
// Quotenstopp
if (($casesIncome >= $maxPerIncome)) {
redirect('https://survey.maximiles.com/quotasfull?p=123906_a4ea6ff1&m=%reference%');
}
e) polit. Orientierung
$quotaPol = [
1 => 1,
2 => 1,
3 => 1,
4 => 1,
5 => 1,
];
$pol = value('SC02_01');
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesPol = statistic('count', 'SC03_01', $pol);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerPol = $quotaPol[$pol];
// Quotenstopp
if (($casesPol >= $maxPerPol)) {
redirect('https://survey.maximiles.com/quotasfull?p=123906_a4ea6ff1&m=%reference%');
}
**f) sowie auf der letzten Seite der Fragebogens vorm redirect-Link:**
//Kopieren der Quotenmerkmale
$pol = value('SC02_01');
put('SC03_01', $pol);
$Gender = value('SO_01');
put('SC13_01', $gender);
$Age = value('SO_03');
put('SC14_02', $age);
$Edu = value('SO_04');
put('SC15_02', $edu);
$Income = value('SO_06');
put('SC16_02', $income);
redirect('https://survey.maximiles.com/complete?p=123907_32b0ddb4&m=%reference%');
Selbstverständlich bleiben die Quoten nicht dauerhaft so gering, das ist nur zum Testen.
Sind die Variablenbezeichnungen richtig abgeleitet/genutzt:
- normale Variablenbezeichnung in der Klammer hinter value(): hier habe ich nicht im Fragenkatalog auf der linken Seite in der SoSci-Oberfläche, sondern auf der jeweiligen Frage-Seite unter "weitere Einstellungen" durch Klick auf "variablen" die jeweilige Bezeichnung ausgelesen. War das korrekt oder sollte ich die jeweilige Bezeichnung aus dem Fragebogenkatalog nutzen?
- interne Variablenbezeichnung beim Abruf der vorliegenden Fälle: Dazu habe ich jeweils eine interne Variable angelegt und dort ebenfalls unter dem Button "Variablen" rauskopiert, was dort in der ersten Zeilen der Variablen stand. Der Kürzel könnte sich aber ja auch auf die erste der einzelnen angezeigten Antwortmöglichkeiten beziehen. Sollte ich daher z.B. aus 'SC03_01' einfach 'SC03_00' oder aus 'SC15_02' einfach 'SC15_00' machen?