Ein wichtiges Element beim Durchführen von Studien ist die Kontrolle der Quotenvorgaben.
Bei Quotenvariablen in Q. handelt es sich um
Interview-übergreifende Zähler mit Sollwerten. Sie
werden implizit beim Erfüllen einer bestimmten
Bedingungen am Ende jedes Interviews oder explizit
hochgezählt. Zu beachten ist, dass die
quotaWriteCondition
(siehe „Skriptparameter“ grundsätzlich regelt, ob
ein Interview überhaupt Einfluss auf die Quotenzählung
haben soll. Auf diese Weise lässt sich beispielweise
der Testmodus oder eine verwendete Teilnehmer-Test-ID
von der Quotenzählung ausschließen.
Eine Quotenvariable besteht aus mehreren Bestandteilen:
Name
Bedingung, ob sie nach Beendigung eines Interviews hochgezählt wird
Ist-Zählerstand
Soll-Zählerstand
Die Syntax zur Definition eine Quotenvariablen im Skript ist:
quotaVar NAME=BEDINGUNG;
quotaVar geschlecht_m = geschl eq 1; quotaVar geschlecht_w = geschl eq 2;
Die Ist- und Soll-Zählerstände sind hier noch nicht
enthalten. Da Quotenstände Interview-übergreifend
sind, werden sie in der Datei
quotavars.lst
gespeichert, die
sich im Studienverzeichnis befinden muss. Dort
aufgeführte Quoten müssen im Skript definiert sein und
umgekehrt. Für das angeführte Beispiel sähe die Datei
z.B. wie folgt aus:
geschlecht_m 0 100 geschlecht_w 31 100
Bei dieser Konstellation wurde die Frauenquote bereits 31 mal gezählt, während die Männerquote bislang unangetastet blieb.
Um im Skript mit den Informationen einer Quotenvariable arbeiten zu können, gibt es 3 verschiedene Selektoren:
QUOTAVAR Ist-Stand der Quote (ohne Berücksichtigung des akt. Interviews) current(QUOTAVAR) Ist-Stand der Quote (mit ... ) target(QUOTAVAR) Soll-Stand der Quote
Die reine Definition der Quote führt lediglich zu einem Zählerverhalten der Quote. Sie würde auch über den Sollwert hinaus immer weiter zählen. Abbrüche oder sonstige Aktionen aufgrund der Quotenstände müssen im Skript explizit definiert werden. Beispielhaft sähe ein quotenbedingter Abbruch des Interviews im Skript folgendermaßen aus:
quotaVar geschlecht_m = geschl eq 1; quotaVar geschlecht_w = geschl eq 2; SingleQ geschl; text="Geschlecht"; labels= 1 "männlich" 2 "weiblich" ; if(geschl eq 1) assert (geschlecht_m lt target(geschlecht_m)) "zu viele M" exit 2; if(geschl eq 2) assert (geschlecht_w lt target(geschlecht_w)) "zu viele W" exit 2;
Für die Bedeutung des assert
sei auf
„Plausibilitätsbedingungen (assert)“ verwiesen.
Wer kein implizites Zählverhalten der Quote nutzen
möchte, kann Quotenvariablen auch mit einer in jedem
Fall ungültigen Bedingung definieren und
mit dem Actionbefehl
incQuota(QUOTAVAR)
manuell hochzählen. Auch wenn es Kapitel 14, Action-Befehle und -Blöcke etwas vorausgreift,
wäre für das o.a. Beispiel gleichbedeutend:
quotaVar geschlecht_m = 1 eq 2; quotaVar geschlecht_w = 1 eq 2; SingleQ geschl; text="Geschlecht"; labels= 1 "männlich" 2 "weiblich" ; if(geschl eq 1) assert (geschlecht_m lt target(geschlecht_m)) "zu viele M" exit 2; if(geschl eq 2) assert (geschlecht_w lt target(geschlecht_w)) "zu viele W" exit 2; cmplActionBlock = { if(_finished eq 1){ if(geschl eq 1){ incQuota(geschlecht_m) }; if(geschl eq 2){ incQuota(geschlecht_w) }; }; };
Mehrere einzelne Quotenvariablen bilden oft logisch zusammenhängende Einheiten (wie in dem Beispiel mit M/W). Deshalb ist es sinnvoll (und in zukünftigen Q.-Versionen auch notwendig), sie zu Gruppen zusammenzufassen. Um mehrere Quotenvariablen zu einer Gruppe zusammenzufassen, muss man vor der Definition der Variablen das Statement
QuotaGroup <name>
angeben, und dahinter
QuotaGroup end;
Eine QuotaGroup kann direkt in einer Bedingung benutzt
werden. Sie liefert den Wert true
,
wenn das aktuelle Interview in die Quotengruppen
»passt«. »Passen« heißt: alle enthaltenen QuotaVars,
deren Bedingungen beim aktuellen Interview zutreffen,
haben einen niedrigeren Ist- als Soll-Zählerstand.
Beispiel:
QuotaGroup qgr_geschl begin; quotaVar geschl_m=geschlecht eq 1; quotaVar geschl_w=geschlecht eq 2; QuotaGroup end; SingleQ geschlecht; text="Geschlecht"; labels= 1 "männlich" 2 "weiblich" ; assert qgr_geschl "Bereits genug Interviews mit diesem Geschlecht!" exit;
Alternativ kann man die einzelnen Variablen auch direkt bei der QuotaGroup-Definition angeben:
QuotaGroup qgr_geschl=(geschl_m geschl_w);
Über die Web-Oberfläche (s. „Quoten“) können Quotenstände kontrolliert und die Vorgaben angepasst werden. Gekoppelt ist der Zugriff auf diesen Menü-Eintrag an Zugriffsrechte und jede einzelne Quote kann für ein Nutzerkonto sichtbar gemacht oder ausgeblendet werden.
Momentan kann die Zuggriffskontrolle durch zwei
verschiedene Mechanismen erreicht werden (in
absehbarer Zeit stehen hier Veränderungen an). Der
jüngere Mechanismus ordnet in einer json-Datei einer
User-ID alle Quoten zu, auf die dieses Konto zugreifen
darf. Damit Q. die Datei berücksichtigt, muss sie
unter dem Namen quotafilter.json
im Studienverzeichnis liegen.
[ { "userid": "user1", "quotavars": [ "gesamt", "q2", "q4" ] }, { "userid": "user2", "quotavars": [ "gesamt" ] } ]
Bei einem älteren Mechanismus wertet Q. eine Datei
namens qsr.lst
im
Studienverzeichnis aus. Die Datei ordnet zeilenweise
jeder Quote durch Leerzeichen getrennte User-IDs zu.
Auf die jeweilige Quote können dann nur die
aufgeführten Nutzer zugreifen, egal welche
Nutzerrechte den Konten zugeordnet wurden.
quote1 user1 user2 user3 user4