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

0 votes

Guten Abend,

für eine repräsentative Umfrage nach Alter (18-69) und Geschlecht, möchte ich die Quotierung einstellen. Auf Seite 2 werden die entsprechenden demografischen Daten abgefragt, auf S. 3 habe ich dann den php Code für die Quotierung eingefügt, bevor dann auf S. 4 falls die Kriterien erfüllt sind und die Quote noch nicht erreicht ist, die eigentliche Befragung losgeht.

Ich frage mich wie ich nun prüfen kann ob die Quotierung richtig funktioniert?
Ist der folgende php Code korrekt unter der Annahme, dass SD01 = 1 = weiblich, SD01 = 2 = männlich, SD01 = 3 = keine Angabe und SD02 = 1 = unter 18 SD02 = 2 = 18-29 usw bis SD02 = 7 = über 70.?

// Merkmale auslesen
$ageGrp = value('SD02');
$gender = value('SD01');
 
// Evtl. Screenout
if (($ageGrp < 2) or ($ageGrp > 6) or ($gender = 3)) {
  redirect('http://www.anbieter.com/p1234567/screenout.php?id=%panelID%');
}
 
// Kennung für die demografische Zelle erstellen
$demID = $gender.'-'.$ageGrp;
 
// Obergrenzen definieren
$limits = array(
  '1-2' => 101,
  '1-3' => 89,
  '1-4' => 102,
  '1-5' => 116,
  '1-6' => 88,
  '2-2' => 110,
  '2-3' => 93,
  '2-4' => 105,
  '2-5' => 117,
  '2-6' => 83,
);
 
// Abgeschlossene Fragebögen zählen
$n = statistic('crosscount', array('SD02', 'SD01'), array($ageGrp, $gender));
 
// Quoten prüfen
if ($n > $limits[$demID]) {
  redirect('http://www.anbieter.com/p1234567/quotafull.php?id=%panelID%');
}

Vielen Dank im Voraus!

in SoSci Survey (dt.) by s085696 (165 points)
edited by SoSci Survey

1 Answer

0 votes

Der Code sieht auf den ersten Blick korrekt aus - abgesehen von einer Sache: Mit dem redirect() werden auch Screenouts als abgeschlossene Fragebögen gerechnet. Wenn Sie das umgehen möchten, legen Sie eine interne Variable (z.B. QT01_01) an und setzen Sie auf die vorletzte Seite im Fragebogen folgenden PHP-Code:

$ageGrp = value('SD02');
$gender = value('SD01');
$demID = $gender.'-'.$ageGrp;
put('QT01_01', $demID);

Damit wird die Variable QT01_01 nur bei den Fällen gesetzt (und später gezählt), die für Sie auch wirklich relevant sind. Wenn Sie mit einem Panel arbeiten, können Sie direkt darunter das Redirect zum Panel setzen.

Vorne ersetzen Sie das $n = statistic(... wie folgt:

$n = statistic('count', 'QT01_01', $demID);

Zum Testen setzen Sie darunter noch

debug($demID);
debug($n);
debug($limits[$demID]);

Testen Sie dann ein paar mal im Debug-Modus (gelber Pfeil) - dort können Sie nach dem Screenout-Filter ja auch bequem zur vorletzten Seite mit dem put() springen, um nicht den kompletten Fragebogen beantworten zu müssen.

Hinweis: Fragebögen, die im Debug-Modus ausgefüllt wurden, werden von statistic() auch nur im Debug-Modus gezählt.

by SoSci Survey (82k points)
Hallo, vielen Dank für die ausführliche Antwort. Ich habe alles genauso umgesetzt wie beschrieben, aber dennoch werden Screenouts als abgeschlossene Interviews gezählt.
Was kann ich noch tun um das zu verhindern?

Muss dieser php code tatsächlich auf die vorletzte Seite?
$ageGrp = value('SD02');
$gender = value('SD01');
$demID = $gender.'-'.$ageGrp;
put('QT01_01', $demID);
In der Rücklauf-Statistik dürfen die Screenous als "abgeschlossen" auftauchen, aber in der Variable QT01_01 sollte nichts gespeichert sein (s. "Erhobene Daten" -> "Daten ansehen"). Entsprechend dürfte die Funktion statistic('count', 'QT01_01', $demID) sie nicht mitzählen - sie fallen also nicht in die Quotierung.
...