0 votes
in SoSci Survey (dt.) by s154695 (485 points)

Guten Tag,

ich arbeite gerade an einer Quotierung für eine Erhebung. Die Stichprobe soll folgendermaßen quotiert werden:
- Insgesamt 320 Personen
- 224 Personen < 50 Jahre alt (Altersgruppe 1)
- 96 Personen > 50 Jahre alt (Altersgruppe 2)
- Geschlechterverteilung männlich (1) und weiblich (2) etwa gleich (ca. 160 m, 160w), aber die Option "divers" (3) besteht auch - da diese aber wahrscheinlich nur geringfügig genutzt werden wird und eine optimale Aufteilung in 50/50 nicht zentral ist, habe ich für alle Optionen unten die gleichen Werte gesetzt

Den ersten Punkt (320 Personen maximal) habe ich so gelöst:
Auf der ersten Seite findet sich der folgende Code mit der internen Variable Q002_01

// Quotenstopp insgesamt
if (statistic('count', 'Q002_01', 2) > 320) {
  redirect('https://mingle.respondi.com/s/1478041/ospe.php3?c_0002=2&return_tic=%reference%');
}

und auf der vorletzten Fragebogenseite dieser Code:

// Speichern vollständiger Fragebogen in der internen Variable Q002_01 für Quotenstopp insgesamt
put('Q002_01', 2);
 
// Complete-Redirect
redirect('https://mingle.respondi.com/s/1478041/ospe.php3?c_0002=1&return_tic=%reference%');

Um die demografischen Gruppen abzudecken habe ich mich für eine verbundene Quotierung entschieden. Nach den demografischen Fragen (auf Fragebogen Seite 1) habe ich also den folgenden Code platziert:

// Quotenprüfung zu Beginn
$quota = [
  '1-1' => 112, '1-2' => 112, '1-3' => 112,  // 112 Personen pro Geschlecht für die Altersgruppe 1
  '2-1' => 48, '2-2' => 48, '2-3' => 48 // 48 Personen pro Geschlecht für die Altersgruppe 2
];

// Auslesen Geschlecht & Alter
// Geschlecht wird direkt ausgelesen
$gender = value('KO02');

// Das Alter wird umkodiert
$age = value('KO01_01');
if ($age <= 50) {
  $ageGroup = 1;
} elseif ($age > 50) {
  $ageGroup = 2;
}

// Definition einer Variable mit Altersgruppe und Geschlecht
$demGroup = $ageGroup.'-'.$gender;

// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$cases = statistic('count', 'Q001_01', $demGroup);
 
// Auslesen der Quote für die demografische Gruppe
$maxPerGroup = $quota[$demGroup];
 
// Quotenstopp Demografisch
if ($cases >= $maxPerGroup) {
  redirect('https://mingle.respondi.com/s/1478041/ospe.php3?c_0002=2&return_tic=%reference%');
}

und auf der vorletzten Fragebogenseite (vor dem Redirect von oben) diesen Code:

// Auslesen Geschlecht & Alter
// Geschlecht wird direkt ausgelesen
$gender = value('KO02');

// Das Alter wird umkodiert
$age = value('KO01_01');
if ($age <= 50) {
  $ageGroup = 1;
} elseif ($age > 50) {
  $ageGroup = 2;
}
 
// Definition einer Variable mit Altersgruppe und Geschlecht
$demGroup = $ageGroup.'-'.$gender;
 
// Speichern der Gruppenzugehörigkeit in der internen Variable Q001_01
put('Q001_01', $demGroup);

Wenn ich den Debug-Modus richtig deute, funktioniert der gesamt Quoten-Stopp (für die maximale Teilnehmeranzahl) auch.
Beim Testen komme ich allerdings nicht mehr auf die zweite Fragebogenseite, sondern werde direkt auf den Panelanbieter redirected.
Können Sie mir hier weiterhelfen, woran das liegen könnte?

Herzlichen Dank schon im Voraus für die Hilfe!

1 Answer

+1 vote
by SoSci Survey (327k points)
selected by s154695
 
Best answer

Beim Testen komme ich allerdings nicht mehr auf die zweite Fragebogenseite, sondern werde direkt auf den Panelanbieter redirected.

Deaktivieren Sie das redirect() mit ein paar Schrägstrichen (//) und fügen Sie ein paar debug() ein:

if ($cases >= $maxPerGroup) {
  // redirect('https://mingle.respondi.com/s/1478041/ospe.php3?c_0002=2&return_tic=%reference%');
  debug($cases);
  debug($maxPerGroup);
  debug($demGroup);
}

Wenn Sie dann im Debug-Modus starten, sollten Sie in der Debug-Information recht schnell nachvollziehen können, wo es hakt.

by s154695 (485 points)
Perfekt! Das hat geholfen, vielen Dank. Ihnen noch einen schönen Abend :-)

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

...