0 votes
in SoSci Survey (dt.) by s104128 (275 points)

Hallo zusammen,

ich wollte gerne insgesamt 750 Interviews haben. Dabei sollten bestimmte Altersgruppen vertreten und die Geschlechter in etwa gleich verteilt sein. Dazu habe ich den Quota Befehl verwendet (s.u.). Allerdings hat die Quote bei der Altersgruppe 2 und 4 nicht geklappt. Statt 188 Probanden habe ich nun 196 und 192 Probanden in den Altersgruppen. Dadurch habe ich insgesamt mehr als 750 Interviews. Kann mir jemand sagen, warum die Quote bei den Altersgruppen 2 und 4 nicht geklappt hat?

Vielen lieben Dank

// insgesamt sind es 750 Probanden für die Quote Alter
$quotaAlter = [
    1 => 187, // Altersgruppe 1 (1981-1985)
    2 => 188, // Altersgruppe 2 (1986-1990)
    3 => 187, // Altersgruppe 3 (1991-1995)
    4 => 188 // Altersgruppe 4 (1996-2000)
];    

// bei der Quote Geschlecht ist eine Abweichung von 2,5% möglich, die sich, wie folgt berechnet:
//750 Probanden/2 = 350 je Geschlecht; 350*1,025=394. Somit könnten es am Ende z.B. 
//394 (52,5%) weibliche und 365 (47,5%) männliche Probanden sein.

$quotaGeschlecht = [ 
    1 => 394, // weiblich --> Puffer von 19 Probanden eingebaut um Abweichung von 2,5% zu ermöglichen 
    2 => 394, // 394 männlich --> selber Puffer wie bei weiblich
    3 => 0 // diverse Personen auf 0 gesetzt
];

// Das Alter wird umkodiert
$Alter = value('SD04_01');
if ($Alter < 1986) {
  $Altersgruppe = 1;
} elseif ($Alter < 1991) {
  $Altersgruppe = 2;
} elseif ($Alter < 1996) {
  $Altersgruppe = 3;
} elseif ($Alter <= 2000) {
  $Altersgruppe = 4;
}

// Geschlecht wird direkt ausgelesen
$Geschlecht = value('SD01');

// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesAlter = statistic('count', 'Q001_01', $Altersgruppe);
$casesGeschlecht = statistic('count', 'Q002_01', $Geschlecht);


// Auslesen der Quoten für die angegeben Merkmale
$maxPerAlter = $quotaAlter[$Altersgruppe];
$maxPerGeschlecht = $quotaGeschlecht[$Geschlecht];

// Quotenstopp
if (($casesAlter >= $maxPerAlter) || ($casesGeschlecht >= $maxPerGeschlecht)) {
redirect('https://Beispiel/%reference%/finish/quota_full');
}
by SoSci Survey (328k points)
> Kann mir jemand sagen, warum die Quote bei den Altersgruppen 2 und 4 nicht geklappt hat?

Bitte prüfen Sie einmal, was die Statistik ermittelt, also:

$casesAlter = statistic('count', 'Q001_01', $Altersgruppe);
$casesGeschlecht = statistic('count', 'Q002_01', $Geschlecht);

$maxPerAlter = $quotaAlter[$Altersgruppe];
$maxPerGeschlecht = $quotaGeschlecht[$Geschlecht];

// Ergänzen
debug($Altersgruppe);
debug($maxPerAlter);
debug($casesAlter);


Dann starten Sie den Fragebogen bitte im Debug-Modus, wählen Altersgruppe 2 oder 4 und berichten, was die Statistik so anzeigt.

> Statt 188 Probanden habe ich nun 196 und 192 Probanden in den
Altersgruppen.

Sie haben vor dem Berechnen dieser Statistik gefiltert, sodass Sie nur MODE=inteview und FINISHED=1 betrachten?

Sie haben am Ende des Fragebogens die interne Variable Q001_01 mittels put() gesetzt, und im Datensatz stehen in Q001_01 auch die passenden Altersgruppen?
by s104128 (275 points)
Hallo,

vielen Dank für die schnelle Rückmeldung.
Ich habe bei der Altersgruppe 2 die Quote jetzt auf 200 gesetzt, damit ich mir die debugs anzeigen lassen kann. Ansonsten kommt der Quotafull Link.

Die Debugs für die Altersgruppe 2 sehen wie folgt aus:

Debug-Information für $Altersgruppe:
$Altersgruppe = 2 (integer)

Debug-Information für $maxPerAlter:
$maxPerAlter = 200 (integer) // -->vorher hatte ich die Zahl auf 188 gesetzt

Debug-Information für $casesAlter:
$casesAlter = 196 (integer)

"Sie haben vor dem Berechnen dieser Statistik gefiltert, sodass Sie nur MODE=inteview und FINISHED=1 betrachten?"

--> Ich habe nur den Altersfilter vor der Quotierung:
--> Es sind aber alle 762 Fälle Interviews und Finisher=1

if ((value('SD04_01') < 1981) or (value('SD04_01') > 2000)) {
  redirect('https://Beispiel%reference%/finish/screenout');
buttonHide();
} else {
  goToPage('Quote');
}


"Sie haben am Ende des Fragebogens die interne Variable Q001_01 mittels put() gesetzt, und im Datensatz stehen in Q001_01 auch die passenden Altersgruppen?"

Am Ende des Fragebogens habe ich folgenden Code:
// Das Alter wird umkodiert
$Alter = value('SD04_01');
if ($Alter < 1986) {
  $Altersgruppe = 1;
} elseif ($Alter < 1991) {
  $Altersgruppe = 2;
} elseif ($Alter < 1996) {
  $Altersgruppe = 3;
} elseif ($Alter <= 2000) {
  $Altersgruppe = 4;
}

// Geschlecht wird direkt ausgelesen
$Geschlecht = value('SD01');

put('Q001_01', $Altersgruppe);
put('Q002_01', $Geschlecht);

--> Die Zuordnung zu den Altersgruppen passt auch.

Haben Sie eine Idee, woran es liegen könnte?

Viele Grüße
by SoSci Survey (328k points)
> Ich habe bei der Altersgruppe 2 die Quote jetzt auf 200 gesetzt, damit ich mir die debugs anzeigen lassen kann. Ansonsten kommt der Quotafull Link.

Das heißt aber, dass der Quotenstopp funktioniert. Das ist doch schonmal gut.

> Haben Sie eine Idee, woran es liegen könnte?

Der Quotestopp zählt die Personen, welche den Fragebogen abgeschlossen haben. Wenn viele Personen gleichzeitig mit dem Ausfüllen beginnen, dann kann es sein, dass z.B. 10 Personen starten wenn die Quote noch nicht gefüllt ist (weil noch 1 Person fehlt) - und wenn keiner abbricht, hat man am Ende vielleicht 9 Personen zu viel in der Zelle.

Könnte es daran liegen? Das sollten Sie daran sehen, dass die letzten Fälle der demografischen Zelle innerhalb eines kurzen Zeitraums mit dem Ausfüllen begonnen haben (Variable STARTED).
by s104128 (275 points)
Hallo,

ja, das könnte sein. Die letzten Probanden sind alle relativ gleichzeitig gestartet. Vielen Dank. Dann sollte der Fehler ja nicht in der Programmierung liegen.

Viele Grüße

1 Answer

0 votes
by SoSci Survey (328k points)

Aus den obigen Kommentaren für Nutzer:innen, die eventuell auf dasselbe Problem stoßen:

Der Quotestopp zählt die Personen, welche den Fragebogen abgeschlossen haben. Wenn viele Personen gleichzeitig mit dem Ausfüllen beginnen, dann kann es sein, dass z.B. 10 Personen starten wenn die Quote noch nicht gefüllt ist (weil noch 1 Person fehlt) - und wenn keiner abbricht, hat man am Ende vielleicht 9 Personen zu viel in der Zelle.

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

...