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

Hallo,

in meinem Fragebogen habe ich auf der ersten Seite einen Quotenstopp eingebaut. Dieser funktioniert auch, aber leider etwas "zu gut".

Da im weiteren Verlauf des Fragebogens noch Screenouts eingebaut sind, soll die Zählung der Quote nur dann greifen, wenn der Fragebogen auch komplett ausgefüllt wurde. Leider zählt der Code für den Quotenstopp im Moment auch die Fragebögen mit, die wegen Screenout nicht vollständig beantwortet wurden.

Ich stehe hier leider auf dem Schlauch, wie kann ich dieses Problem beheben?

closed with the note: Eine neue Anleitung klärt einige offene Fragen: https://www.soscisurvey.de/help/doku.php/de:survey:quota
in Datenauswertung by s090325 (150 points)
closed by SoSci Survey

2 Answers

0 votes

SoSci Survey differenziert in der Variable FINISHED bislang nicht, ob ein Fragebogen abgeschlossen wurde, weil die letzte Seite erreicht wurde oder weil der Teilnehmer mittels redirect() abgewiesen wurde.

Möglichkeit 1: Sie können die Quoten-Variablen auf der vorletzen Seite mittels put() in interne Variablen kopieren und dann die letztgenannten (statt der Original-Variablen) zählen.

Möglichkeit 2: Es gibt für statistic() eine bisher nicht in der Anleitung dokumentierte Filterfunktion. Sie könnten vor Ihre Quotenfolter testweise einmal folgende Zeile setzen:

statistic('filter', false, '(LASTPAGE >= 10)');

Statt der 10 müssten Sie bitte die Seitennummer der vorletzten Seite im Fragebogen angeben.

by SoSci Survey (129k points)
Danke für die schnelle Antwort. Ich habe mich jetzt an Möglichkeit 2 versucht, da mir das einfacher erschien. Ich bekomme aber eine Fehlermeldung (siehe folgende Antwort)
Update: Nun kann statistic('filter', ...) auch korrekt mit FINISHED umgehen.
0 votes

by s090325 (150 points)
Ich habe jetzt auch Möglichkeit 1 umgesetzt und bei unverbundenen Quoten für jede Quote eine interne Variable auf der vorletzten Fragebogenseite abgespeichert. Diese ist vorn auf der zweiten Fragebogenseite (direkt nach Abfrage der Merkmale) auch mit dem statistic Befehl verknüpft.

put('IV05_01', $ageGrp);
put('IV05_02', $sex);
put('IV05_01', $edu);

Mein redirect ist weiterhin vorn, warum siehe oben. Das funktioniert alles wunderbar. Ich danke ganz herzlich für die Hilfe von sosci survey!
Update: Nun kann statistic('filter', ...) auch korrekt mit FINISHED umgehen.
Guten Tag

Ich verstehe noch nicht ganz, wo man welchen Code hinschreiben muss. Ich habe am Anfang des Fragebogens Screeningfragen, um die Leute rauszufiltern, bei denen die Quote schon voll ist. Also auf der ersten Seite wäre dann der Redirect Link für Quotafull. In der Mitte des Fragebogens habe ich einen Quality-Fail Check-Frage, bei denen die Probanden (wenn sie die Frage nicht richtig beantwortet haben auf eine Panelseite weitergeleitet werden)

Bisher sieht mein Code folgendermassen aus (der zählt die Leute, die die Quality-Fail Check Fragen falsch beantwortet haben auch mit, was ich aber verhindern möchte):

$quota = [
  '1-1' => 50, '1-2' => 50,  // 50 Personen pro Geschlecht für die Altersgruppe 1
  '2-1' => 50, '2-2' => 50,  // 50  Personen pro Geschlecht für die Altersgruppe 2
  '3-1' => 50,  '3-2' => 50    //  50 Personen pro Geschlecht für die Altersgruppe 3
];


## Variablen auslesen und umkodieren

$gender = value('SC01');

// Das Alter wird umkodiert
$age = value('SC05_01');
if ($age <= 1969) {
  $ageGroup = 1;
} elseif ($age <= 1985) {
  $ageGroup = 2;
} elseif ($age <= 2002) {
  $ageGroup = 3;
} else {
  $ageGroup = 4;
}

// Definition einer Variable mit Altesgruppe und Geschlecht

$demGroup = $ageGroup.'-'.$gender;

put('RF03_03', $demGroup);


Welchen Code muss ich nun auf die vorletzte Seite verschieben? Wenn ich nur den Teil:

## Variablen auslesen und umkodieren

$gender = value('SC01');

// Das Alter wird umkodiert
$age = value('SC05_01');
if ($age <= 1969) {
  $ageGroup = 1;
} elseif ($age <= 1985) {
  $ageGroup = 2;
} elseif ($age <= 2002) {
  $ageGroup = 3;
} else {
  $ageGroup = 4;
}

// Definition einer Variable mit Altesgruppe und Geschlecht

$demGroup = $ageGroup.'-'.$gender;

put('RF03_03', $demGroup);

...auf die vorletzte Seite des Fragebogens verschiebe, funktioniert es nicht.

Ich glaube, ich kann auch die FINISHED Funktion nicht benutzen, weil die Probanden schon vor der letzten Seite mit einem Complete Redirect Link auf eine Panelseite weitergeleitet werden.

Ich danke Ihnen herzlichst für Ihre Hilfe.
Es ist nur bedingt zweckmäßig, eine neue Frage als Kommentar unter eine 2 Jahre alte Frage zu schreiben. Ich denke, es wäre wesentlich übersichtlicher, eine neue Frage (z.B. oben auch mit "related question") zu stellen. Dort können Sie mit dem Knopf {} auch Code gleich als solchen formatieren. Danke!

Vielleicht auch einen Blick wert, eine relativ neue Anleitung: https://www.soscisurvey.de/help/doku.php/de:survey:quota

> ...auf die vorletzte Seite des Fragebogens verschiebe, funktioniert es nicht.

Bitte prüfen Sie auch gleich noch, ob der in RF03_03 gespeicherte Wert korrekt ist. Danke.
Vielen Dank für den Hinweis. Das Problem hat sich nun gelöst durch Ihre hilfreiche Anleitung.
...