Anwendung von Gewichten

<< Click to Display Table of Contents >>

Navigation:  Datenauswertung > Gewichtung >

Anwendung von Gewichten

Weight

Angabe eines existierende Gewichts

a)als Stelle im Datensatz (ASCII-Format)

b)als Variable

Syntax:

WEIGHT = <startcolumn> <width>;
WEIGHT = <variablenname>;

Beispiel für a):

WEIGHT = 62 6;

(Das Gewicht steht in Spalte 62 und hat eine Länge von 6.)

Beispiel für b):

COMPUTE Gewicht = ( a + c ) * 0.1;

WEIGHT = Gewicht;

Hierbei ist zu beachten, dass die WEIGHT-Anweisung erst im RunTime-Modul direkt vor der Einspeisung des Falls in die Tabellen ausgeführt wird, d.h. erst nach Bearbeitung aller COMPUTE-, IF- oder RECODE-Statements. Die Variable, die zur Gewichtung benutzt werden soll, sollte deshalb nach dem WEIGHT-Statement nicht weiter modifiziert werden.


WeightCells

WEIGHTCELLS fordert eine Gewichtung nach der Besetzung der Ausprägungen einer Variable an.

Syntax:

WEIGHTCELLS [ AUTOALIGN ] <varname> = { <code> : <sollwert> % }*n
[ MISSING : <code> : <sollwert> %]
;

Beispiel:

WEIGHTCELLS Geschlecht =

1 : 48%

2 : 52%

MISSING : 12% ;

Die Summe aller Prozentwerte muss 100% ergeben. Die MISSING-Klausel ist optional; fehlt sie, muss für alle empirisch auftretenden Zellen eine Vorgabe existieren. Ist ein Gewicht aus dem Input definiert (siehe WEIGHT), so wird dieses Gewicht als Startgewicht für jeden Fall verwendet.

Wird 0.0 als Prozentwert für MISSING definiert, so wird der empirisch vorgefundene Prozentwert für MISSING eingetragen; d.h. in einem zusätzlichen Zähllauf durch die Daten wird ermittelt, wie viele Fälle es gibt, die nicht den ausgewiesenen Gewichtungszellen entsprechen, und deren prozentualer Anteil wird eingesetzt. Da für die Gewichtung ohnehin eine komprimierte Version der Daten im RAM gehalten wird, fällt diese zusätzliche Zählung kaum ins Gewicht und verschlechtert die Performance nicht spürbar.

Soll nach einer Kombination aus mehreren Variablen gewichtet werden, so ist eine entsprechende Kombinationsvariable zu generieren, Beispiel:

COMPUTE altsex = alter * 10 + sex;

WEIGHTCELLS AltSex =

11 : 25%

12 : 25%

21 : 25%

22 : 25%

;

Anstelle der einfachen Prozentzahl darf auch ein Ausdruck der Form

<constant> / <constant> %

stehen.

Ergibt die Summe der prozentualen Vorgaben nicht 100%, wird der Auswertungslauf mit einer Fehlermeldung abgebrochen. Alternativ kann man mit dem Schlüsselwort AUTOALIGN auch eine proportionale Umrechnung auf 100% anfordern.

Wird gleichzeitig eine SELECT-Anweisung gegeben, werden nur die selektierten Fälle gewichtet, d.h. die Gewichtungsvorgaben werden auch nur auf die selektierte Submenge der Fälle bezogen.

Als Argument sind neben atomaren Variablen (SingleQ, VARIABLE) auch Family-Variablen (MultiQ, VarFamily) erlaubt. In dem Fall wird auf die Summe der Nennungen prozentuiert. Die VarFamily wird im Gewichtungsprozess immer als EvalFamValOnce = NO; ausgewertet, d.h. mehrfache gleiche Codes werden auch mehrfach gezählt.

Bei EvalFamValOnce = YES; besteht kein Bedarf für eine Sonderbehandlung, denn solche MultiQs kann man verlustfrei in mehrere atomare Variablen mit dichotomen Codes überführen, und diese kann man als mehrere Gewichtungsdimensionen in die Gewichtung einführen.

Sobald mindestens ein WEIGHTCELLS-Statement im Quelltext gefunden wird, führt das Programm einen zusätzlichen Leselauf durch die Daten durch, in dem die Gewichtungsfaktoren berechnet werden. Ist mehr als ein WEIGHTCELLS-Statement vorhanden, wird solange iterativ gewichtet, bis alle Gewichtungsvorgaben erfüllt sind. Die gewünschte Genauigkeit kann über die WEIGHTACCURACY-Anweisung gesetzt werden. Ist eine konsistente Gewichtung nicht möglich, wird der Programmlauf abgebrochen (spätestens nach 50 bzw. einer selbst festgelegten Anzahl an Iterationen).

WeightAccuracy

WEIGHTACCURACY definiert die Genauigkeitsschranke, bis zu der iteriert wird.

Syntax:

WEIGHTACCURACY = <number>;

WEIGHTACCURACY ist der natürliche Logarithmus der maximalen Abweichung einer Gewichtszelle von der Vorgabe als Faktor.

Voreinstellung: WEIGHTACCURACY = 0.0001;

MaxWeightIterations

Mit diesem Statement kann man abweichende Maxima für die Anzahl der Iterationen bei der Berechnung von Gewichtungsfaktoren auf der Basis von Randverteilungen vereinbaren.

Syntax:

MAXWEIGHTITERATIONS = <number>;