Lieber SoSciSurvey Support,
ich habe vor einiger Zeit einen Fragebogen mit Quotierung programmiert, der nun diese Woche bei einem Panel-Anbieter gestartet ist. Leider funktioniert die Quotierung nicht wie gewünscht und Teilnehmer werden abgewiesen, obwohl die Quoten nicht erfüllt sind. Ich kann mir nicht erklären woran das liegt. Ich hatte bei der Programmierung vor einigen Monaten an der Anleitung auf SoSciSurvey orientiert und auch die Tipps zur Fehlersuche durchprobiert. Dabei hatte ich keine Fehler gefunden. Aber offensichtlich hatte sich doch nochmal irgendwo etwas neu eingeschlichen oder ich habe etwas übersehen. Können Sie hier helfen?
Noch dazu haben wir den Fragebogen in zwei Sprachen erstellt, (allerdings als unterschiedliche Fragebögen mit zwei unterschiedlichen Links). In beiden Sprachen sollen jeweils diese Quoten erfüllt werden.
Hier die Syntax für den deutschen Fragebogen
//QuotaFull
$quota = [
'1-1' => 30, // 30 Männer 50-59 --> 1. Zahl: Männer (1), Frauen (2), sonstiges (3)
'1-2' => 30, // 30 Männer 60-69 --> 2. Zahl: Altersgruppe 50-59 (1), Altersgruppe 60-69 (2)
'2-1' => 30, // 30 Frauen 50-59
'2-2' => 30, // 30 Frauen 60-69
'3-1' => 10, // 10 sonstige 50-59
'3-2' => 10, // 10 sonstige 60-69
];
//Geschlecht auslesen
$gender = value('SD03');
//Alter wird umkodiert
$age = value('SD01_01');
if ($age <= 59) {
$ageGroup = 1;
} else {
$ageGroup = 2;
}
//Definition einer Variable mit Altersgruppe und Geschlecht
//Aus 3 und 2 wird hier '3-2'
$demGroup = $gender. '-' .$ageGroup;
//Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$cases = statistic('count', 'IV03_01', $demGroup);
//Auslesen der Quote für die demografische Gruppe
$maxPerGroup = $quota[$demGroup];
//Quotenstopp
if($cases >= $maxPerGroup) {
redirect('https://gateway.gapfish.com/routings/%reference%/finish/quota_full');
}
Auf der letzten Seite:
//Complete Redirect Page 22 Bottom
//Geschlecht auslesen
$gender = value('SD03');
//Alter wird umkodiert
$age = value('SD01_01');
if ($age <= 59) {
$ageGroup = 1;
} else {
$ageGroup = 2;
}
//Definition einer Variable mit Altersgruppe und Geschlecht
//Aus 3 und 2 wird hier '3-2'
$demGroup = $gender. '-' .$ageGroup;
//Speichern der Gruppenzugehörigkeit in der internen Variable IV03_01
put('IV03_01', $demGroup);
put('IV03_02', $gender);
put('IV03_03', $ageGroup);
//Complete Redirect
redirect('https://gateway.gapfish.com/routings/%reference%/finish/completed');
Und hier für den englischen:
//QuotaFull
$quota = [
'1-1' => 30, // 30 Männer 50-59 --> 1. Zahl: Männer (1), Frauen (2), sonstiges (3)
'1-2' => 30, // 30 Männer 60-69 --> 2. Zahl: Altersgruppe 50-59 (1), Altersgruppe 60-69 (2)
'2-1' => 30, // 30 Frauen 50-59
'2-2' => 30, // 30 Frauen 60-69
'3-1' => 10, // 10 sonstige 50-59
'3-2' => 10, // 10 sonstige 60-69
];
//Geschlecht auslesen
$gender = value('SD03');
//Alter wird umkodiert
$age = value('SD01_01');
if ($age <= 59) {
$ageGroup = 1;
} else {
$ageGroup = 2;
}
//Definition einer Variable mit Altersgruppe und Geschlecht
//Aus 3 und 2 wird hier '3-2'
$demGroup = $gender. '-' .$ageGroup;
//Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$cases = statistic('count', 'IV03_01', $demGroup);
//Auslesen der Quote für die demografische Gruppe
$maxPerGroup = $quota[$demGroup];
//Quotenstopp
if($cases >= $maxPerGroup) {
redirect('https://gateway.gapfish.com/routings/%reference%/finish/quota_full');
}
Auf der letzten Seite:
//Complete Redirect Page 22 Bottom
//Geschlecht auslesen
$gender = value('SD03');
//Alter wird umkodiert
$age = value('SD01_01');
if ($age <= 59) {
$ageGroup = 1;
} else {
$ageGroup = 2;
}
//Definition einer Variable mit Altersgruppe und Geschlecht
//Aus 3 und 2 wird hier '3-2'
$demGroup = $gender. '-' .$ageGroup;
//Speichern der Gruppenzugehörigkeit in der internen Variable IV03_01
put('IV03_01', $demGroup);
put('IV03_02', $gender);
put('IV03_03', $ageGroup);
//Complete Redirect
redirect('https://gateway.gapfish.com/routings/%reference%/finish/completed');
Ich freue mich über jede Hilfe...