0 votes
ago in SoSci Survey (dt.) by s052448 (110 points)
edited ago by SoSci Survey

Ich habe einen Quotenstop programmiert um eine repräsentative Stichprobe zu bekommen. Wie kann ich Personen die als Geschlecht Divers (=3) angeben, und dementsprechend nicht durch Quotenanteile vorgegeben sind, trotzdem den ganzen Fragebogen ausfüllen lassen? Grade bekommen sie den Quotafull redirect link.

Das ist mein Code

// Quoten-Definition, Geschlecht-Alter-Region; 1=M, 2=F; (1=unter 18), 2=18-24, 3=25-34, 4=35-44, 5=45-54, 6=55-64, 7=65-74; 1=Ostösterreich, 2=Südösterreich, 3=Westösterreich (4=Nicht Österreich) 
 
$quota = [ 
    '1-2-1' => 24, //M, 18-24, Ost  
    '1-2-2' => 10, //M, 18-24, Süd 
    '1-2-3' => 19, //M, 18-24, West 
    '1-3-1' => 42, //M, 25-34, Ost 
    '1-3-2' => 18, //M, 25-34, Süd 
    '1-3-3' => 34, //M, 25-34, West 
    '1-4-1' => 42, //M, 35-44, Ost 
    '1-4-2' => 18, //M, 35-44, Süd 
    '1-4-3' => 33, //M, 35-44, West 
    '1-5-1' => 41, //M, 45-54, Ost 
    '1-5-2' => 19, //M, 45-54, Süd 
    '1-5-3' => 34, //M, 45-54, West 
    '1-6-1' =>42, //M, 55-64, Ost 
    '1-6-2' => 21, //M, 55-64, Süd 
    '1-6-3' => 36, //M, 55-64, West 
    '1-7-1' => 27, //M, 65-74, Ost 
    '1-7-2' => 14, //M, 65-74, Süd 
    '1-7-3' => 23, //M, 65-74, West 
 
    '2-2-1' => 23, //F, 18-24, Ost  
    '2-2-2' => 9, //F, 18-24, Süd 
    '2-2-3' => 18, //F, 18-24, West 
    '2-3-1' => 41, //F, 25-34, Ost 
    '2-3-2' => 17, //F, 25-34, Süd 
    '2-3-3' => 32, //F, 25-34, West 
    '2-4-1' => 42, //F, 35-44, Ost 
    '2-4-2' => 18, //F, 35-44, Süd 
    '2-4-3' => 32, //F, 35-44, West 
    '2-5-1' => 43, //F, 45-54, Ost 
    '2-5-2' => 19, //F, 45-54, Süd 
    '2-5-3' => 34, //F, 45-54, West 
    '2-6-1' => 43, //F, 55-64, Ost 
    '2-6-2' => 22, //F, 55-64, Süd 
    '2-6-3' => 37, //F, 55-64, West 
    '2-7-1' => 31, //F, 65-74, Ost 
    '2-7-2' => 16, //F, 65-74, Süd 
    '2-7-3' => 26, //F, 65-74, West 
]; 
 
// Geschlecht auslesen 
$gender = value('DE01'); 
 
// Alter auslesen und in Gruppen kodieren 
$age = value('DE02_01'); 
if ($age < 18) { 
  $ageGroup = 1; 
} elseif ($age <= 24) { 
  $ageGroup = 2; 
} elseif ($age <= 34) { 
  $ageGroup = 3; 
} elseif ($age <= 44) { 
  $ageGroup = 4; 
} elseif ($age <= 54) { 
  $ageGroup = 5; 
} elseif ($age <= 64) { 
  $ageGroup = 6; 
} elseif ($age <= 74) { 
  $ageGroup = 7; 
} else { 
  $ageGroup = 8; //Für Werte über 74 
} 
 
// Region auslesen und in Gruppen kodieren 
$region = value('DE03'); 
if ($region == 1) { 
  $regionGroup = 1; 
} elseif ($region == 2) { 
  $regionGroup = 2; 
} elseif ($region == 3) { 
  $regionGroup = 3; 
} elseif ($region == 4) { 
  $regionGroup = 4; 
} 
 
// Definition einer Variable mit Geschlecht, Altersgruppe und Region 
// Aus 1 und 2 und 1 wird hier '1-2-1' 
$demGroup = $gender.'-'.$ageGroup.'-'.$regionGroup; 
 
 
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung 
$cases = statistic('count', 'XY1_01', $demGroup); 

// Auslesen der Quote für die demografische Gruppe
$maxPerGroup = $quota[$demGroup];
 
// Quotenstopp
if ($cases >= $maxPerGroup) {
redirect('https://survey.maximiles.com/quotasfull?p=98327_21a4610c&m=%SPM_PANELIST _ID%');
}
// Speichern der Gruppenzugehörigkeit in der internen Variable XY1_01
put('XY1_01', $demGroup);

// Fälle für jede einzelne Kategorie berechnen 
$casesAge = statistic('count', 'XY1_01', $gender . '-' . $ageGroup . '-%'); // Fälle für das Alter (geschlechtsübergreifend)
$casesGender = statistic('count', 'XY1_01', $gender . '-%-' . $regionGroup); // Fälle für das Geschlecht (altersübergreifend)
$casesRegion = statistic('count', 'XY1_01', '%-' . $ageGroup . '-' . $regionGroup); // Fälle für die Region (geschlechtsübergreifend)

// Zusätze Informationen anzeigen
debug($casesAge);
debug($casesGender);
debug($casesRegion);

1 Answer

0 votes
ago by SoSci Survey (339k points)

Es gibt zwei Lösungen.

Lösung 1: Tragen Sie für die entsprechenden demografischen Gruppen Quotas ein. Die restliche Quotierung stört das ja nicht.

Lösung 2: Modifizieren Sie den Quotenstopp-Filter. Das könnte dann so aussehen:

if (($cases >= $maxPerGroup) && ($gender != 3)) {
ago by s052448 (110 points)
Vielen Dank für Ihre schnelle Antwort - ich werde mal den zweiten Lösungsvorschlag ausprobieren!

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

...