Hallo liebes SoSci Team,
ich habe eine Umfrage, die mittels drei Kriterien quotiert werden soll. Diese hängen dabei jeweils von einer Variable, die eine Region beschreibt ab.
Der Screenout funktioniert mit dem folgendem Code gut, allerdings ist aufgefallen, dass wenn ich erst einen männlichen Probanden aus der Region 1 ohne Studienabschluss und im Jahr 2002 geboren, und nachfolgend eine weibliche Probandin mit Studienabschluss und 1955 geboren simuliere, die zweite Probandin durch ein Quotafull Redirect die Umfrage verlässt. Allerdings dürfte das meines Verständnisses nach nicht passieren, da die beiden Personen zwar aus der gleichen Regionengruppe stammen, aber sonst überschneidungsfrei in den Merkmalen sind. Momentan weist diese Code jeden ab, der in der gleichen Region wie ein vorheriger Proband ist, ungeachtet dessen, dass bspw. noch eine weibliche Probandin in die Quoten passen würde.
Kann mir jemand dabei helfen?
Das würde mir sehr weiterhelfen, und vielen Dank im Voraus,
$quotaEducationRegion = [
'1-1' => 1, '1-2' => 1, //Personen pro Altersgruppe pro Region 1
'2-1' => 1, '2-2' => 1, //Personen pro Altersgruppe pro Region 2
'3-1' => 1, '3-2' => 1 //Personen pro Altersgruppe pro Region 3
];
$quotaAgeRegion = [
'1-1' => 1, '1-2' => 1, '1-3' => 1, '1-4' => 1, //Personen pro Altersgruppe pro Region 1
'2-1' => 1, '2-2' => 1, '2-3' => 1, '2-4' => 1, //Personen pro Altersgruppe pro Region 2
'3-1' => 1, '3-2' => 1, '3-3' => 1, '3-4' => 1 //Personen pro Altersgruppe pro Region 3
];
$quotaGenderRegion = [
'1-1' => 1, '1-2' => 1, //Personen pro Altersgruppe pro Region 1
'2-1' => 1, '2-2' => 1, //Personen pro Altersgruppe pro Region 2
'3-1' => 1, '3-2' => 1 //Personen pro Altersgruppe pro Region 3
];
//Geschlecht wird direkt ausgelesen
$gender = value('QU03');
//Alter wird kodiert
$age = value('QU02');
if ($age == 'QU02_1' ||
$age == 'QU02_2' ||
$age == 'QU02_3' ||
$age == 'QU02_4' ||
$age == 'QU02_5' ||
$age == 'QU02_6' ||
$age == 'QU02_7' ||
$age == 'QU02_8') {
$ageGroup = 1;
} elseif ($age = 'QU02_9' ||
$age == 'QU02_10' ||
$age == 'QU02_11' ||
$age == 'QU02_12' ||
$age == 'QU02_13'){
$ageGroup = 2;
} elseif ($age = 'QU02_14' ||
$age == 'QU02_15' ||
$age == 'QU02_16' ||
$age == 'QU02_17' ||
$age == 'QU02_18' ||
$age == 'QU02_19' ||
$age == 'QU02_20' ||
$age == 'QU02_21' ||
$age == 'QU02_22' ||
$age == 'QU02_23' ||
$age == 'QU02_24' ||
$age == 'QU02_25' ||
$age == 'QU02_26' ||
$age == 'QU02_27' ||
$age == 'QU02_28' ||
$age == 'QU02_29' ||
$age == 'QU02_30' ||
$age == 'QU02_31' ||
$age == 'QU02_32' ||
$age == 'QU02_33'){
$ageGroup = 3;
} elseif ($age = 'QU02_34' ||
$age == 'QU02_35' ||
$age == 'QU02_36' ||
$age == 'QU02_37' ||
$age == 'QU02_38' ||
$age == 'QU02_39' ||
$age == 'QU02_40' ||
$age == 'QU02_41' ||
$age == 'QU02_42' ||
$age == 'QU02_43' ||
$age == 'QU02_44' ||
$age == 'QU02_45' ||
$age == 'QU02_46' ||
$age == 'QU02_47' ||
$age == 'QU02_48'){
$ageGroup = 4;
}
//Bildung wird umkodiert
$education = value('QU01');
if ($education == 'QU01_1' ||
$education == 'QU01_2' ||
$education == 'QU01_3' ||
$education == 'QU01_4' ||
$education == 'QU01_8') {
$educationGroup = 1;
} else {
$educationGroup = 2;
}
//Gruppen werden kodiert GENDER
$regionGender = value('RI09_01');
if ($regionGender == '20038' ||
$regionGender == '20088' ||
$regionGender == '20095' ||
$regionGender == '20097' ||
$regionGender == '20099' ||
$regionGender == '20144' ||
$regionGender == '20146' ||
$regionGender == '20148' ||
$regionGender == '91475' ||
$regionGender == '91487' ||
$regionGender == '96172' ||
$regionGender == '96193') {
$regionGenderGroupGender = 1;
} elseif ($regionGender == '41812' ||
$regionGender == '41836' ||
$regionGender == '41844' ||
$regionGender == '41849' ||
$regionGender == '78730' ||
$regionGender == '78733' ||
$regionGender == '78736' ||
$regionGender == '78737' ||
$regionGender == '78739' ||
$regionGender == '88529') {
$regionGenderGroupGender = 2;
} elseif ($regionGender == '01945' ||
$regionGender == '01968' ||
$regionGender == '01979' ||
$regionGender == '01983' ||
$regionGender == '01987' ||
$regionGender == '01990' ||
$regionGender == '01993' ||
$regionGender == '96152' ||
$regionGender == '97215' ||
$regionGender == '97258') {
$regionGroupGender = 3;
}
//Gruppen werden kodiert EDUCATION
$regionEducation= value('RI09_01');
if ($regionEducation== '20038' ||
$regionEducation== '20088' ||
$regionEducation== '20095' ||
$regionEducation== '20097' ||
$regionEducation== '96172' ||
$regionEducation== '96193') {
$regionGroupEducation = 1;
} elseif ($regionEducation== '41812' ||
$regionEducation== '41836' ||
$regionEducation== '41844' ||
$regionEducation== '41849' ||
$regionEducation== '52062' ||
$regionEducation== '78736' ||
$regionEducation== '78737' ||
$regionEducation== '78739' ||
$regionEducation== '88529') {
$regionGroupEducation = 2;
} elseif ($regionEducation== '01945' ||
$regionEducation== '01968' ||
$regionEducation== '01979' ||
$regionEducation== '01983' ||
$regionEducation== '01987' ||
$regionEducation== '01990' ||
$regionEducation== '01993' ||
$regionEducation== '01994' ||
$regionEducation== '01996' ||
$regionEducation== '01998' ||
$regionEducation== '03042' ||
$regionEducation== '03044' ||
$regionEducation== '96152' ||
$regionEducation== '97215' ||
$regionEducation== '97258') {
$regionGroupEducation = 3;
}
//Gruppen werden kodiert AGE
$regionAge= value('RI09_01');
if ($regionAge== '20038' ||
$regionAge== '20088' ||
$regionAge== '20095' ||
$regionAge== '20097' ||
$regionAge== '20099' ||
$regionAge== '20144' ||
$regionAge== '20146' ||
$regionAge== '96172' ||
$regionAge== '96193') {
$regionGroupAge = 1;
} elseif ($regionAge== '41812' ||
$regionAge== '41836' ||
$regionAge== '41844' ||
$regionAge== '41849' ||
$regionAge== '52062' ||
$regionAge== '78730' ||
$regionAge== '78733' ||
$regionAge== '78736' ||
$regionAge== '78737' ||
$regionAge== '78739' ||
$regionAge== '88529') {
$regionGroupAge = 2;
} elseif ($regionAge== '01945' ||
$regionAge== '03226' ||
$regionAge== '03229' ||
$regionAge== '03238' ||
$regionAge== '03246' ||
$regionAge== '03249' ||
$regionAge== '03253' ||
$regionAge== '04895' ||
$regionAge== '04910' ||
$regionAge== '97215' ||
$regionAge== '97258') {
$regionGroupAge = 3;
}
// Definition einer Variable mit Region und Geschlecht
$demEducationRegion = $regionGroupEducation.'-'.$educationGroup;
$demAgeRegion = $regionGroupAge.'-'.$ageGroup;
$demGenderRegion = $regionGroupGender.'-'.$gender;
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesEducation = statistic('count', 'IV01_03', $demEducationRegion);
$casesAge = statistic('count', 'IV01_01', $demAgeRegion);
$casesGender = statistic('count', 'IV01_02', $demGenderRegion);
// Screenout
if (!array_key_exists($demEducationRegion, $quotaEducationRegion) || !array_key_exists($demAgeRegion, $quotaAgeRegion) || !array_key_exists($demGenderRegion, $quotaGenderRegion)) {
redirect('https://www.panelanbieter.de/?xyz=screenoutGHIJKI&uid=%reference%');
}
// Auslesen der Quote für die demografische Gruppe
$maxPerGroupEducationRegion = $quotaEducationRegion[$demEducationRegion];
$maxPerGroupAgeRegion = $quotaAgeRegion[$demAgeRegion];
$maxPerGroupGenderRegion = $quotaGenderRegion[$demGenderRegion];
// Quotenstopp
if (($casesEducation >= $maxPerGroupEducationRegion) || ($casesAge >= $maxPerGroupAgeRegion) || ($casesGender >= $maxPerGroupGenderRegion)) {
redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}