PROC RANK

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

PROC RANK ist eine im Modul Base SAS enthaltene SAS-Prozedur. Mit ihr können die Ränge von Werten einer (odere mehrerer) numerischen Variablen berechnet werden. Hierbei wird eine neue SAS-Datei erzeugt, die die Ränge in Form einer numerischen Variablen enthält. Die Prozedur RANK erzeugt selbst kein output. Die Ränge werden in unsortierter Reihenfolge widergegeben.

Die Prozedur RANK

Anwendungen

Das Einteilen von numerischen Werten in Ränge hat zum einen leicht erkennbare, praktische Anwendungen, wenn es um das Erstellen von Ranglisten geht. Konkrete Beispiele sind Wahlergebnisse, Stoppzeiten bei Wettläufen, Punktlisten bei Wettbewerben und viele mehr.

Zum Anderen ist das Einteilen in Ränge im Bereich der Test-Statistik von hoher Bedeutung. In zahlreichen Tests werden Ergebnisse anhand von Rängen ermittelt (Wilcoxon-Vorzeichen-Rang-Test, Friedman-Test_(Statistik), Conover-Iman).

Syntax

Die allgemeine Syntax der RANK Prozedur ist:

   PROC RANK data=SAS_Datei <optionen>;
   < BY <optionen> variablenliste >;
   < VAR variablenliste >;
   < RANKS variablenliste >;
   < WHERE where-ausdruck >;
   < FORMAT format-ausdruck >;
   RUN;

Hinweis: Hinter der Option DATA= steht der Name der SAS-Datei auf die die RANK-Prozedur zugreifen soll.


Optionen des PROC RANK Statements

out=Datei_A Es wird eine neue SAS-Datei mit dem Namen DATEI_A erzeugt. In ihr stehen die berechneten Ränge. Wird diese Option nicht verwendet erstellt SAS die Datei WORK.DATEI1, welche die komplette Ursprungsdatei sammt den berechneten Rängen enthält.
descending Die Rangfolge erfolgt nach absteigenden Werten. Höchster Wert bedeutet Rang 1. (Defaulteinstellung: Rangfolge erfolgt nach aufsteigenden Werten)
ties= Gibt das Vorgehen bei gleichen Werten an. Mögliche Optionswerte sind LOW, HIGH, DENSE und MEANS (Defaulteinstellung). Siehe auch Kapitel ties= Option.
groups=n Ranking Method. n muss eine natürliche Zahl sein. Es werden Gruppenränge von Rang 0 bis Rang n-1 mit folgernder Formel vergeben:
<math> \mathrm{floor} \left ( rank \cdot n/(N+1) \right )</math>

N ist die Anzahl aller nicht fehlenden Werte.

percent Ranking Method. Die Ränge werden als Prozent widergegeben. Dies erfolgt (fast) nach derselben Formel wie bei GROUPS=100, allerdings wird nicht durch N+1 sondern durch N geteilt.
nplus1 Ranking Method. Für weitere Informationen siehe PROC RANK Statement
normal= Ranking Method. Für weitere Informationen siehe PROC RANK Statement
fraction Ranking Method. Für weitere Informationen siehe PROC RANK Statement
savage Ranking Method. Für weitere Informationen siehe PROC RANK Statement

Hinweis: Es kann pro PROC RANK Schritt nur eine Ranking Method verwendet werden.


ties= Option

Mit der ties= Option lässt sich die Rangvergabe bei gleichen Werten bestimmen. Die vier möglichen Optionswerte sind:

  • LOW : Es werden so viele Ränge vergeben wie es Werte gibt. Gleiche Werte bekommen den 'niedrigsten', möglichen Rang. Eventuell werden Ränge ausgelassen.
  • HIGH : Es werden so viele Ränge vergeben wie es Werte gibt. Gleiche Werte bekommen den 'höchsten', möglichen Rang. Eventuell werden Ränge ausgelassen.
  • DENSE : Es werden so viele Ränge vergeben wie es 'verschiedene' Werte gibt. Kein Rang wird ausgelassen.
  • MEANS : Es werden so viele Ränge vergeben wie es Werte gibt. Gleiche Werte bekommen ihren 'durchschnittlichen' Rang. Eventuell werden Ränge ausgelassen. Vor allem bei statistischen Tests ist diese Optione wichtig, da die Gesamtsumme aller Ränge nicht verfälscht wird.


Beispiel
Wert Rang mit ties=low Rang mit ties=high Rang mit ties=dense Rang mit ties=means
850 2 3 2 2.5
800 1 1 1 1
912 4 4 3 4
850 2 3 2 2.5
999 5 5 4 5


Die Statements der RANK Prozedur

Statement Auswirkung
VAR Die Ränge der aufgelisteten, numerischen Variablen werden bestimmt. Ohne VAR Statement werden die Ränge aller vorhandenen, numerischen Variablen bestimmt.
RANKS Erzeugt numerische Variablen, die die berechneten Ränge enthalten. Die ursprünglichen Werte der beim VAR Statement aufgelisteten Variablen werden weiterhin angezeigt und nicht durch ihre jeweiligen Ränge ersetzt.

Die Anzahl der aufgelisteten Variablen muss der Anzahl der beim VAR Statement aufgelisteten Variablen entsprechen. Die n-te, aufgelistete Variable des RANK Statements enthält die Ränge der n-ten, aufgelisteten Variable des VAR Statements.

BY Die aufgelisteten Variablen müssen aufsteigend sortiert sein. Andernfalls können die Optionen DESCENDING oder NOTSORTED vor die Variable geschrieben werden. Pro Wert der aufgelisteten Variable wird eine separate Rangfolge erstellt.

Vorsicht: Die Option NOTSORTED sortiert nicht die Werte der nachgestellten Variablen (siehe unten).

FORMAT Hat dieselbe Funktion wie in anderen Prozeduren.
WHERE Hat dieselbe Funktion wie in anderen Prozeduren.


Beispiel (allgemein)

Die Wahlergebnisse zweier Stadtbezirke sollen analysiert werden. Pro Stadtbezirk soll der Kandidat mit den meisten Wählerstimmen den Rang 1 zugewiesen bekommen. Wegen der Zuordnung höchster Wert gleich Rang 1 und der Aufgabe die Ränge für jeden Stadtbezirk separat zu bestimmen, muss die Option DESCENDING sowie das BY Statement verwendet werden. Die Wahlergebnisse sind in der Datei work.ergebnisse gespeichert:


work.ergebnisse

Kandidat Bezirk Stimmen
Müller 2 345
Schulze 2 430
Meier 2 170
Kohl 1 200
Schweizer 1 890
Schröder 1 315
Merkel 1 189

Syntax mit PROC PRINT zur Ausgabe der Ergebnisse:

   PROC RANK data=work.ergebnisse out=ergebnisse_geranked descending;
     BY descending Bezirk;
     VAR Stimmen;
     RANKS Stimmen_Rang;
   RUN;
  PROC PRINT data=work.ergebnisse_geranked;
  RUN;

Ergebnis:

work.ergebnisse_geranked

Kandidat Bezirk Stimmen Stimmen_Rang
Müller 2 345 2
Schulze 2 430 1
Meier 2 170 3
Kohl 1 200 3
Schweizer 1 890 1
Schröder 1 315 2
Merkel 1 189 4

Beispiel (NOTSORTED)

Die Option NOTSORTED gibt lediglich an, dass die Variable nicht sortiert ist. Es wird keine Sortierung von SAS vorgenommen.


work.ergebnisse_notsorted

Kandidat Bezirk Stimmen
Müller 2 345
Schulze 2 430
Kohl 1 200
Meier 2 170
Schweizer 1 890
Schröder 1 315
Merkel 1 189


Da die Variable Bezirk nicht sortiert ist, muss nun die Option NOTSORTED verwendet werden.

Syntax mit PROC PRINT zur Ausgabe der Ergebnisse:

   PROC RANK data=work.ergebnisse_notsorted out=notsorted_geranked descending;
     BY notsorted Bezirk;
     VAR Stimmen;
     RANKS Stimmen_Rang;
   RUN;
  PROC PRINT data=work.notsorted_geranked;
  RUN;

Ergebnis:

work.notsorted_geranked

Kandidat Bezirk Stimmen Stimmen_Rang
Müller 2 345 2
Schulze 2 430 1
Kohl 1 200 1
Meier 2 170 1
Schweizer 1 890 1
Schröder 1 315 2
Merkel 1 189 3


Weblinks