0 votes
in SoSci Survey (dt.) by s097933 (130 points)

Liebes SoSci-Team

wir erheben ab Montag gemeinsam mit einem Panelanbieter. Die Quotierung ist nach Alter, Geschlecht und Bildung und funktioniert erstmal so einwandfrei. Sind die Quoten voll, werden Befragte entsprechend als Quota Fulls zurückgewiesen und nehmen nicht weiter an der Befragung teil. Wir möchten zusätzlich gerne einen Qualityfail für Befragte einbauen, die unter einer bestimmten Zeit für das Ausfüllen des Fragebogens brauchen und somit auch als Qualityfails (und nicht als Completes) an den Panelanbieter zurückgeleitet werden. Aus vorherigen Studien wissen wir noch, dass SoSci uns im Datensatz diese Speeder trotzdem in der Statistik als vollständig ausgefüllte Fragebögen anzeigt und auch in die Quotenzählung eingehen - was letztendlich dazu geführt hat, dass neue Befragte als Quota Full zurückgewiesen werden, obwohl die Quoten noch gar nicht voll sind, wenn wir die Speeder manuell rausrechnen würden. Wie kann ich hier vorgehen, damit die Speeder auch in SoSci nicht als Completes gelten und vor allem nicht in die Quotierung einzahlen? Kann man das elegant lösen?

Wir freuen uns über Rückmeldung und und danke im Voraus!

Beste Grüße

1 Answer

0 votes
by SoSci Survey (331k points)

Es kommt ein wenig darauf an, wie Sie die Quotierung genau umgesetzt haben.

Wenn Sie eine Variable zum Zählen (verbundener) Quoten setzen, dann können Sie das einfach nur für jene machen, die den Fragebogen in einer realistischen Zeit ausgefüllt haben.

Dasselbe Prinzip können Sie auch für unverbundene Quoten anwenden: Setzen Sie die Zählvariable (eine interne Variable) mittels put() nur für gültige Teilnehmer.

by s097933 (130 points)
Danke für die Info! Wir haben unverbundene Quoten direkt zu Beginn des Fragebogens und den Speeder-Qualityfail auf der vorletzten Seite eingefügt:

if ((value('MISSING') > 20) || (caseTime('begin') < 300)) {
  redirect('https://mingle.respondi.com/s/1477421/ospe.php3?c_0002=3&return_tic=%reference%', true');
}

Muss dann auf die gleiche Seite dahinter der put-Befehl mit der internen Variable?
$demGroup = $ageGroup.'-'.$gender; ###Oder wie funktioniert das mit unverbundenen Stichproben?
put('IV04_01', $demGroup)

Und am Ende der Complete-Redirect?
redirect('https://mingle.respondi.com/s/1477421/ospe.php3?c_0002=1&return_tic=%reference%');
by SoSci Survey (331k points)
Genau. Sie müssen nur sicherstellen, dass Sie die Variable $ageGroup an dieser Stelle auch definiert haben - entweder weil Sie da schon mit einem put() arbeiten oder indem Sie den entsprechenden Code von der Quotenstop-Seite vorne kopieren.
by s097933 (130 points)
Super, herzlichen Dank!!
by SoSci Survey (331k points)
Tipp: Ergänzen Sie an der ein oder anderen Stelle ein debug(), dann können Sie kut verfolgen, ob die Quoten richtig zählen, also z.B. vor de Quotencheck:

debug($demGroup);
debug($cases);
debug($maxPerGroup);
// Quotenstopp
if ($cases >= $maxPerGroup) {
  redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}

Wenn Sie den Fragebogen nach Start der Erhebung im Debug-Modus (gelber Pfeil) starten, zählt das nicht in Ihre reguläre Quote hinein. Das zählt dann nur im Debug-Modus.
by s097933 (130 points)
Nochmal danke für den tollen Support! Ich habe jetzt Folgendes für die vorletzte Seite programmiert:

$gender = value('SD02');

$age = value('SD01_01');                             
if ($age < 18) {            
  $agegrp = 1;
} elseif ($age <= 29) {          
  $agegrp = 2;
} elseif ($age <= 39) {        
  $agegrp = 3;
} elseif ($age <= 49) {        
  $agegrp = 4;   
} elseif ($age <= 59) {        
  $agegrp = 5;
} elseif ($age <= 69) {
  $agegrp = 6;
} else {   
  $agegrp = 7;               
}

$edu = value('SD03');                             
if ($edu <= 3) {       
  $edugroup = 1;        
} elseif ($edu == 4) {  
  $edugroup = 2;
} else {                
  $edugroup = 3;
}


$demGroup = $agegrp.'-'.$gender.'-'. $edu;
put('IV04_01', $demGroup)

if ((value('MISSING') > 20) || (caseTime('begin') < 240)) {
  redirect('https://mingle.respondi.com/s/1477421/ospe.php3?c_0002=3&return_tic=%reference%', true');
}

redirect('https://mingle.respondi.com/s/1477421/ospe.php3?c_0002=1&return_tic=%reference%');

Stimmt das so oder wird das an irgendeiner Stelle Probleme ergeben? Die ersten 100 Fälle wurden in einem Softlaunch schon erhoben, erst danach dürfen wir anhand des Mittelwerts die Zeit für die Speeder berechnen und den Speeder-Qualityfail integrieren. Und wo packe ich jetzt am Besten noch debug() hin?
by SoSci Survey (331k points)
Das put() müsste noch hinter den Quality Fail Redirect. Ansonsten sieht es auf den ersten Blick gut aus. Haben Sie mal in die Variable IV04_01 geschaut, ob das passt?

Beachten Sie bitte, dass verbundene Quoten mit 3 Kriterien u.U. nicht ganz leicht zu erfüllen sind. Da wird aber ur ein Problem aus der Praxis sichtbar, das ist kein technisches Problem.
by s097933 (130 points)
Okay, super! Ich bräuchte die Stichproben auch nicht unbedingt verbunden. Mir geht es nur darum, dass ich hier eine Variable habe, die die Speeder "rauswirft", damit diese nicht in die Quoten eingehen. Sollte ich dann $demGroup = $agegrp.'-'.$gender.'-'. $edu; weglassen? Was würde Alternativ in den put-Befehl kommen? Nur put('IV04_01', $agegrp, $gender, $edu)?
by SoSci Survey (331k points)
Verbundene Quoten sind schon in Ordnung ... ich wollte nur darauf hinweisen, dass man diese bei der Rekrutierung schwieriger erfüllt als unverbundene Quoten.

Wenn Sie unverbundene Quoten verwenden wollten, müssten Sie $agegrp und $edugpr ja ohnehin mittels put() im Datensatz ablegen. Das würden Sie zusätzlich noch mit $gender machen.

Und diese drei put() würden Sie auch alle hinter den Speeder-Redirect setzen. Sodass eben nur gültige Fälle (in diesen Variablen) gezählt werden. Die statistic()-Befehle vorne beim Quotencheck lassen Sie dann natürlich jeweils auf die internen Variable(n) laufen.
by s097933 (130 points)
Wir sind uns nach wie vor unsicher und haben nach dem letzten Tipp Folgendes auf der vorletzten Seite stehen:

$gender = value('SD02');
$agegrp = value('IV03_01');                             
$edugroup = value('IV02_01');                     

if ((value('MISSING') > 20) || (caseTime('begin') < 210)) {
  redirect('https://mingle.respondi.com/s/1477421/ospe.php3?c_0002=3&return_tic=%reference%', true);
}

put('IV03_01', $agegrp);
put('IV02_01', $edugroup);
put('SD02', $gender);

redirect('https://mingle.respondi.com/s/1477421/ospe.php3?c_0002=1&return_tic=%reference%');

Passt das so für eine unverbundene Quotierung? Die put-Befehle stehen jeweils auch vorne im Fragebogen bei der Quotierung für Alter und Bildung. Werden die Werte dann am Ende überschrieben oder sorgt das für andere Probleme? Sorry für die vielen Nachfragen und danke für die Hilfe!
by SoSci Survey (331k points)
> Die put-Befehle stehen jeweils auch vorne im Fragebogen

Dort müssen sie noch entfernt werden.

Die Idee ist: Nur ein gültiger Fall hat einen Wert in diesen Variablen stehen. Und diese Variablen werden für die Quotierung gezählt.

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

...