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

Hallo,

ich abeite mit einem externen Panelanbieter zusammen und habe eine maximal Stichprobe von 1.000 Teilnehmern plus 5% Überschuss.

Ich soll nun die Quotafulls programmieren und habe dazu folgende Fragen:

  1. Muss ich auch aus bestimmten Antwortmöglichkeiten in demografischen Fragen, wei z.B. Position oder Branche manuell intere Variablen machen (diese haben ja nicht wie Items in Likert-Skalen automatisch einen internen Variable-Code)?

  2. Kann ich auch Mindestquoten mit:

$quotaD008 = [ 1 =< 83, 2 =< 83, 3 =< 83, 4 =< 650, 5 =< 100 ];

  1. Wie setzte ich die maximale Teilnehmerzahl von 1.050 fest?

  2. Muss ich, wenn ich Mindestquoten für Geschlecht, bestimmte Branchen und Positionen habe, bei jedem php-Block den Quotafull mit redirect setzen?

Vielen Dank für die Antwort

1 Answer

0 votes
by SoSci Survey (306k points)

ad 1) Ja, nehmen Sie hier bitte eine Umkodierung in die Kategorien vor, die Sie quotieren möchten.

ad 2.0) Der Operator => definiert in einem Array ein Schlüssel-Wert-Paar, es bedeutet nicht (!) größer-gleich. Entsprechend ist die Schriebweise =< hier auch nicht zulässig/sinnvoll.

ad 2.1) Sie können mit statistic() auch die Gesamtzahl ermitteln.

ad 2.2.) Den Quotenstop-Redirect setzen Sie überall dort ein, wo die Möglichkeit besteht, dass Sie jemanden aufgrund erfüllter Quoten rauswerfen müssen.

In der Anleitung zur Quotierung bzw. dem dort vorgestellten PHP-Code kommt das redirect() nur einmal vor, weil in einem IF-Filter mehrere Quoten auf einmal überprüft werden. Ob man das so realisiert oder 3-mal einzeln prüft, ist Geschmackssache.

by SoSci Survey (306k points)
> Das verstehe ich nicht. Der php-Code ist nicht auf derselben Seite, wie die Filterfrage D008.

Seite 4 wird auf dem Server erstellt (von oben bis unten) und dann an den Browser des Teilnehmers geschickt. Zu diesem Zeitpunkt hat der Teilnehmer die Frage noch nicht beantwortet. Entsprechend liefert value() zu diesem Zeitpunkt noch die Information, dass die Frage bisher unbeantwortet sei. Für diese Erklärung hatte ich auch in meinem letzten Posting die Anleitung verlinkt.

Mit dieser Information wird dieser Filter aktiv:

if (!array_key_exists($Position, $quotaPosition)) {
  redirect('https://...');
}

Es erfolgt also ein Screenout.

> Auch wenn ich den Code noch weiter im Fragebogen nach hinten verschiebe, bleibt die Fehlermeldung dieselbe

Im oben geposteten PHP-Code wurde die Seite 4 wegen fehlender Antworten erneut angezeigt. Was zeigt denn nun Seite 5, wenn Sie den Code dorthin verschoben haben, in der Debug-Information.
by s143454 (130 points)
Wie gesagt D008 ist auf Seite 3. Demnach müssten die Antworten bei Klick auf Weiter laut Anleitung ja übermittelt worden sein...

Wenn ich den gesamten php-Code auf Seite 05 verschiebe, wird Seite 04 normal angezeigt. Klickt man dort auf weiter um zu Seite 05 zu gelangen, erfolgt dort der Screenout, d.h. dieselbe Fehlermeldung "invalid cid"...auch, wenn ich die Funktion

if (!array_key_exists($Position, $quotaPosition)) {
  redirect('https://...');
}

rausnehme
by SoSci Survey (306k points)
> Wie gesagt D008 ist auf Seite 3.

Ich hatte Ihre vorige Antwort so verstanden, dass Frage und PHP-Code auf Seite 4 stünden.

> dieselbe Fehlermeldung "invalid cid"

Diese Fehlermeldung stammt, wenn ich mich nicht täusche, vom Panel-Betreiber und wird erst nach dem Redirect angezeigt.

Wenn SoSci Survey den Redirect auch im Debug-Modus sofort vornimmt, dann ändern Sie bitte alle redirect()s zum Testen wie folgt:

// redirect('https://...');
debug('redirect');
pageStop();

Die zwei Schrägstriche vor dem redirect() deaktivieren den Befehl. Die beiden zusätzlichen Zeilen sorgen für eine kurze Ausgabe. Wenn Sie das geändert haben und der PHP-Code wieder auf Seite 4 steht, dann posten Sie bitte die Debug-Information von Seite 4.

Wichtig: Bitte posten Sie die Debug-Information direkt nachdem Sie Seite 3 abgeschickt haben. Nicht, wenn Sie auf Seite 4 erneut auf "Weiter" geklickt haben (so m.E. geschehen in der letzten gespoteten Debug-Information).
by s143454 (130 points)
Anbei erhalte ich folgende Informationen:


[Information]    Interview Nummer 93 wird fortgesetzt
[Information]    Der Fragebogen PS im Projekt purpose_studie_2020001386 wird verwendet
[Information]    Die Verweildauer auf Seite 3 betrug zusätzliche 3 Sekunden
[Verarbeitung]    Lese Antworten von Seite 3
[Information]    Antwort auf D008 = 4
[Information]    Bedingung in Filter D008/1 ist nicht erfüllt.
[Information]    ▼ Filter D008/2 wird aktiv (Bedingung erfüllt).
[Information]    Bedingung in Filter D008/3 ist nicht erfüllt.
[Information]    ▼ Filter D008/4 wird aktiv (Bedingung erfüllt).
[Information]    ▼ Filter D008/5 wird aktiv (Bedingung erfüllt).
[Information]    Antwort auf D009 = 14
[Information]    Bedingung in Filter D009/1 ist nicht erfüllt.
[Information]    Ignoriere fehlende Antwort D003 (Nachgehakt)
[Information]    Keine Antwort für D003
[Information]    Ignoriere fehlende Antwort D020 (Nachgehakt)
[Information]    Keine Antwort für D020
[Information]    Ignoriere fehlende Antwort D016 (Nachgehakt)
[Information]    Keine Antwort für D016
[Information]    Fragen bisher zu 25% vollständig beantwortet
[Information]    Entsprechend Filter D008/F5 wird Seite 4 (FI) angezeigt.
[Verarbeitung]    Erstelle Seite 4 in Fragebogen PS
[Information]    value("D008") = 4
[Information]    Statistik: Anzahl Antworten mit Wert auf D008: 0
debug()    Inhalt: 'redirect' = redirect (string)
[Inhalt]    Die Verarbeitung der Seite wurde durch pageStop() beendet


Hinweis:
Hinweis (Seite 4)
Debug-Information für 'redirect':
'redirect' = redirect (string

Fehler:


Fehler im Fragebogen (Seite 4)
Im PHP-Code trat ein Fehler auf.

Fehler im Fragebogen: Die PHP-Variable $Position wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).

PHP-Code

006
007 $position = value('D008');
008
009 $casesPosition = statistic('count', 'D008', $Position);
010
011 if (!array_key_exists($Position, $quotaPosition)) {
012   

Fehler im Fragebogen: Die PHP-Variable $Position wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).

PHP-Code

008
009 $casesPosition = statistic('count', 'D008', $Position);
010
011 if (!array_key_exists($Position, $quotaPosition)) {
012   
013 debug('redirect');
014 pageStop();


Danke!
by SoSci Survey (306k points)
> Fehler im Fragebogen: Die PHP-Variable $Position wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).

Bitte stellen Sie hier eine einheitliche Groß- und Kleinschreibung sicher. Danach sollte hier ein korrekter Wert stehen:

> [Information]    Statistik: Anzahl Antworten mit Wert [HIER FEHLT ETWAS] auf D008: 0

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

...