<< Click to Display Table of Contents >> Navigation: Datenmodifikation > Berechnung > Statistische Funktionen |
In GESStabs können einfache statistische Funktionen unkompliziert vorgenommen werden:
1.Es stehen simple Statements zur fallweisen Berechnung einfacher statistischer Kennwerte aus ausgewählten Variablen zur Verfügung.
2.Das DATA-Statement ist eine umfassende Funktion zur Berechnung statistische Kennwerte über alle Fälle eines Datensatzes. Die Ergebnisse werden zur Weiterverarbeitung in neu gebildeten Variablen abgelegt.
Zur Berechnung einfacher statistischer Kennwerte und deren Ablage in einer bestehenden (oder neuen) Variable gibt es ebenso einfache Keywords:
Mittelwert |
|
---|---|
Summe + Einstellung zur Verarbeitung fehlender Werte mittels SUMMISSING |
|
Minimal-/ Maximalwert + Option zur Angabe der Variable mit Minimal-/Maximalwert mittels MININDEX/ MAXINDEX |
|
Standardabweichung |
|
Varianz |
MEAN erlaubt eine einfache Berechnung des Mittelwerts aus mehreren Variablen innerhalb eines Falles.
Syntax:
MEAN <varname> = <Varlist>;
Ein sinnvolles Beispiel ist die Mittelwerteberechnung aus mehreren Items einer Mehrfachnennungsbatterie:
MEAN faktor = Item1 TO Item13;
In den Mittelwert gehen nur die Variablen ein, die im aktuellen Fall nicht MISSING sind. Sind alle Variablen MISSING, ist auch das Resultat MISSING.
SUM vereinfacht die Berechnung einer Summe von mehreren Variablen innerhalb eines Falles.
Syntax:
SUM <varname> = <Varlist>;
Beispiel:
SUM Summe = Item1 TO Item13;
In Summe gehen nur die Variablen ein, die im aktuellen Fall nicht MISSING sind. Sind alle Variablen MISSING, ist das Resultat 0.
Syntax:
SUMMISSING = [ YES | NO ];
Voreinstellung: NO
In der Voreinstellung ist es so implementiert, dass Variablen mit einem fehlenden Wert, die in eine mittels SUM gebildetet Summe eingehen, keinen Beitrag zur Summe leisten. Im Effekt ergibt also eine Summe, die ausnahmslos aus MISSING-Variablen gebildet wird, den Wert Null.
Soll stattdessen ein MISSING-Resultat erreicht werden, kann SUMMISSING auf YES gesetzt werden.
MIN bzw. MAX ergeben den minimalen bzw. maximalen Wert aus mehreren Variablen innerhalb eines Falles.
Syntax:
MIN <varname> = <Varlist>;
Beispiel:
MIN minimun = Item1 TO Item13;
MAX maximum = Item1 TO Item13;
In MIN und MAX gehen nur die Variablen ein, die im aktuellen Fall nicht MISSING sind. Sind alle Variablen MISSING, ist das Resultat MISSING.
Syntax:
MAXINDEX <resultvar> = <varlist>;
MININDEX <resultvar> = <varlist>;
Mit MIN bzw. MAX bestimmt man den Minimal- bzw. Maximalwert aus einer Reihe von Variablen. Es gibt Situationen, in denen es wichtig ist, welche Variable aus der Liste den Minimal- bzw. Maximalwert enthält. Diese Frage beantwortet MININDEX bzw. MAXINDEX. Wenn die erste der Variablen in der Liste den Minimal- bzw. Maximalwert enthält, wird in "<resultvar>" eine 1 abgelegt, bei der zweiten eine 2 usw. Das heißt, die "<resultvar>" enthält den 1-basierten Index der ersten Variablen in der Liste, die den Minimal- bzw. Maximalwert enthält.
Weitere Vorkommnisse des Minimal-/Maximalwertes beeinflussen das Ergebnis nicht mehr, d.h. es wird stets die zuerst gefundene Variable, die den Minimal-/Maximalwert enthält, angegeben.
STDDEV errechnet die Standardabweichung einer Variable oder Variablenliste über alle Fälle des Datensatzes.
Syntax:
STDDEV <varname> = <varlist>;
VARIANCE errechnet die Varianz einer Variable oder Variablenliste über alle Fälle des Datensatzes.
Syntax:
VARIANCE <varname> = <varlist>;
DATA ist eine kompakte Funktion zur umfassenden Berechnung von Mittelwerten, Summen etc. über alle Fälle eines Datensatzes. Diese können aus eingelesenen oder berechneten atomaren Variablen errechnet und in neuen Variablen abgelegt werden.
Syntax:
DATA [ USEWEIGHT <weightvar> ] <method> <newvar>
= <basevar> [ BY <groupvar> ] ;
Erlaubte Aggregierungsmethoden:
ABSOLUTE |
Zahl der Fälle (Summe der Gewichte) |
---|---|
Zahl der Fälle, für die ein gültiger Wert der '<bestehende_variable>' gefunden wurde |
|
PHYSICALRECORDS |
ungewichtete Zahl der Fälle |
SUM |
Summe |
MEAN |
Mittelwert |
VARIANCE |
Varianz |
STDDEV |
Standardabweichung |
MEDIAN |
Median |
PCNTL1 |
Wert des ersten Percentils (Default: 25%) |
PCNTL2 |
Wert des zweiten Percentils (Default: 75%) |
MIN |
Min-Wert |
MAX |
Max-Wert |
In der einfachsten Form lautet ein DATA-Statement z.B.:
DATA MEAN GlobMeanQ1 = Q1;
Die Variable Q1 in dem Beispiel muss existieren. Als Resultat steht dann im Tabellierungsprozess die neue atomare Variable "GlobMeanQ1" zur Verfügung. Ihr Wert ist der globale Mittelwert von Q1 über alle eingelesenen Fälle. Man kann hiermit Alles treiben, was man mit atomaren Variablen sonst auch kann, sie kann z.B. in arithmetische Berechnung von Indices etc. eingehen.
Das Statement kann um eine BY-Komponente erweitert werden, zum Beispiel:
DATA MEAN BulaMeanQ1 = Q1 BY BundesLand;
Dann wird für jede Ausprägung der Variable BundesLand ein eigener Mittelwert erzeugt. Die Variable BulaMeanQ1 enthält dann in jedem Fall den Mittelwert, der für die Fälle des Bundeslandes ermittelt wurde, das in der Variable BundesLand festgehalten ist. Ist die Größe BundesLand nicht ermittelt (MISSING oder gefiltert), ist auch der globale Mittelwert nicht zuzuordnen. Die Größe BulaMeanQ1 enthält in diesen Fällen den Mittelwert aller Fälle, deren Bundesland unbekannt ist.
Option UseWeight
Hinter dem Schlüsselwort USEWEIGHT kann man den Namen einer Variablen angeben, deren Inhalt für die Gewichtung der Aggregation im DATA-Lauf in <staticvar> verwendet werden soll. Werden mehrere DATA-Statements abgesetzt, können verschiedene Variablen zur Gewichtung in einem Lauf verwendet werden.
Beachte: Sind WEIGHTCELLS-Statements aktiv, wird die USEWEIGHT-Klausel im DATA-Statement ignoriert, und es wird das Ergebnis der iterativen Gewichtung verwendet.
DataNoInterpol
Syntax:
DATANOINTERPOL = [ YES | NO ];
MEDIAN, PCNTL1 und PCNTL2 werden in der Regel bei der Ermittlung interpoliert. Mit YES kann man die Interpolation abschalten. Gilt global für den gesamten Lauf.
Anmerkungen
Verschachtelung von DATA-Berechnungen
Werden in einem GESStabs Script DATA-Statements gefunden, wird ein zusätzlicher Lauf des Einleseprozesses gestartet. Dieser findet immer vor der eigentlichen Datenanalyse statt, gegebenenfalls allerdings nach dem zusätzlichen Lesen der Daten für eine Randgewichtung (WEIGHTCELLS). Die erforderlichen Größen werden berechnet, im Fall des MEAN die Summe und die Zahl der gültigen Fälle, beides gewichtet. Während der anschließenden Analyse ist der Wert von GlobMeanQ1 (siehe erstes Beispiel) dann definiert.
Es ist unmittelbar einleuchtend, dass man die erzeugten Aggregatwerte nicht zum Gegenstand einer solchen Aggregation machen sollte, denn während des Einlesens für die Aggregierung sind die Aggregatvariablen noch nicht definiert. Darüber hinaus wäre z.B. ein Mittelwert über eine Konstante nicht sehr interessant: dieser ist numerisch identisch mit dieser Konstanten.
DATA nicht als Grundlage von DATA
Man kann das Ergebnis einer DATA-Berechnung nicht als Argument eines weiteren DATA-Statements verwenden. Der Grund liegt auf der Hand, z.B.:
DATA MEAN xxmean = xx;
DATA MEAN xxmeanmean = xxmean;
Der Compiler wird eine solche Konstruktion erlauben, denn auch im zweiten DATA-Statement wird eine bekannte Variable (xxmean) angegeben. Nur inhaltlich kann dies nicht klappen: xxmean kann erst nach einem kompletten durchlauf durch alle Fälle des Datensatzes besetzt werden. Während des DATA-Durchlaufs durch die Fälle ist xxmean aber noch undefiniert. xxmeanmean ist deshalb der Mittelwert einer Variablen, die während des DATA-Durchlaufs immer MISSING ist. xxmeanmean bleibt deshalb in diesem Fall immer MISSING.