0 votes
in SoSci Survey (dt.) by s269409 (160 points)

Am Ende meines Fragebogens werden Teilnehmer über einen Screenout-Link entfernt, die den Fragebogen zu schnell bearbeiten. Da der PHP-Code für die Quotierung allerdings viel weiter vorne liegt, werden solche Teilnehmer in der Quotierung trotzdem berücksichtigt und von statistic gezählt. Wie kann ich das beheben?

Vielen Dank im Voraus!

1 Answer

0 votes
by SoSci Survey (327k points)

Bitte verwenden Sie eine interne Variable, wie in dieser Anleitung beschrieben: Quotierung -> Filterung

Damit können Sie genau steuern, welche Fälle gezählt werden und welche nicht.

by s269409 (160 points)
Eine solche interne Variable nutze ich bereits. Das Problem ist folgendes:
150 Teilnehmer haben den Fragebogen vollständig beantwortet. Nur 90 haben dafür mindestens 10 Minuten gebraucht und sind daher gültig und bekommen eine "2" in die interne Variable geschrieben. Die Programmierung dafür funktioniert einwandfrei.

Allerdings habe ich eine zusätzliche Quotierung für Geschlecht und Alter im Fragebogen. Hier werden allerdings von statistic das Geschlecht und das Alter von allen 150 Teilnehmern erfasst und nicht nur von den gültigen 90. - sodass die Quotenstopps für Alter und Geschlecht viel früher greifen, als sie sollten.
by SoSci Survey (327k points)
edited by SoSci Survey
Im Idealfall würden Sie Alter und Geschlecht nur bei den gültigen Fällen in interne Variablen kopieren, und dann einfach diese zählen.

Sie können aber auch statistic('filter', false, 'IV01 == 2') verwenden, damit die nachfolgenden statistic()-Aufrufe nur noch die gütigen Fälle zählen. Geben Sie statt dem "false" gleich die Variablen für Alter und Geschlecht an, damit es schneller geht. Eine dritte Variante wäre statistic('crosscount').
by s269409 (160 points)
Auf der vorletzten Seite hatte ich folgende PHP-Blöcke stehen:

Block 1:
// Kopieren der Quotenmerkmale

// Merkmale auslesen und umkodieren

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

// Das Alter wird umkodiert.
$age=value('A202_01');
if($age<18){
$ageGroup=1;
}elseif($age<=44){
$ageGroup=2;
}elseif($age<=70){
$ageGroup=3;
}else{
$ageGroup=4;
}

// Die Biokaufhäufigkeit wird umkodiert.
$bio=value('A203');
if($bio<=2){
$bioGroup=1;
}elseif($bio<=4){
$bioGroup=2;
}else{
$bioGroup=3;
}

put('A105_01',$ageGroup);
put('A105_02',$gender);
put('A105_03',$bioGroup);

Block 2:
$time = caseTime('begin');
if ($time >= 600) {//nur Teilnehmer, die mindestens 10 Minuten brauchen, werden gezählt
  put('A106_01', 2);
}
Block 3:
if (caseTime('begin') < 600) {
  redirect('https://....');
}
Block 4:
// PHP-Code für Redirect
redirect('https://...');

Wenn ich die Reihenfolge jetzt folgendermaßen ändere:
Block 2, Block 3, Block 1, Block 4
Würde es dann funktionieren? Da ja die Teilnehmer, die zu schnell sind, über den Screenout-Link rausfliegen würden, bevor das Alter und das Geschlecht in die internen Variablen geschrieben werden.

Wenn nicht, werde ich es über statistic ('crossout') probieren.

Die bis jetzt zu viel gezählten Fälle kann ich wahrscheinlich nicht rückgängig machen und müsste diese dann auf die festgelegten Maxima aufaddieren?
by SoSci Survey (327k points)
> Wenn ich die Reihenfolge jetzt folgendermaßen ändere ...

ja, dann würden die rausgeworfenen Teilnehmer:innen keine Werte mehr in A105* stehen haben, und somit nicht mehr gezählt werden.

Oder Sie verwenden doch statistic('filter', ...), was auch mit den bereits erhobenen Daten zurecht kommt.

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

...