SAS9

Wie man gewichtete Zählungen mit PROC SUMMARY erhält

Simon 9 Aufrufe

Bei der Analyse von klinischen Daten oder Umfragedaten ist es üblich, Gewichtungsvariablen wie das IPW (Inverse Probability Weighting) zu verwenden, um die Repräsentativität der Stichprobe anzupassen.

Eine häufige Verwirrung entsteht beim Versuch, eine "gewichtete Anzahl von Subjekten" mit der Prozedur PROC SUMMARY zu erhalten. Im Gegensatz zu PROC FREQ ändert die Verwendung der WEIGHT-Anweisung in PROC SUMMARY nicht automatisch die Frequenzzählung (_FREQ_) in der Ausgabetabelle.

Hier wird erklärt, wie man dieses Verhalten versteht und das gewünschte Ergebnis erzielt.

Wie man gewichtete Zählungen mit PROC SUMMARY erhält -

Das Problem: Die WEIGHT-Anweisung ändert den FREQ nicht

Wenn Sie einfach eine WEIGHT-Anweisung zu Ihrer Prozedur hinzufügen, werden Sie feststellen, dass die Variable _FREQ_ in der Ausgabetabelle weiterhin die Anzahl der physischen Beobachtungen (die Zeilen) zählt und nicht die Summe der Gewichte.

Code, der nicht das erwartete Ergebnis liefert:

1PROC SUMMARY DATA=a1 chartype completetypes;
2 class treatment;
3 types treatment;
4 weight IPW; /* Diese Anweisung ändert nicht den ausgegebenen _FREQ_ */
5 OUTPUT out=ae_1;
6QUIT;

In diesem Beispiel verwendet SAS© die Gewichte zwar zur Berechnung von Statistiken wie dem Mittelwert oder der Varianz, aber die reine Zählung bleibt unverändert.

Lösung 1: Summieren der Gewichtungsvariable

Der direkteste und oft klarste Ansatz, um eine "gewichtete Zählung" zu erhalten, besteht darin, Ihre Gewichtungsvariable als Standardanalysevariable zu behandeln und deren Summe anzufordern.

Indem Sie die Gewichte summieren, erhalten Sie das Äquivalent einer gewichteten Zählung der Population.

Empfohlener Code:

1PROC SUMMARY DATA=a1 chartype completetypes;
2 class treatment;
3 types treatment;
4 var IPW; /* Die Gewichtungsvariable wird als Analysevariable deklariert */
5 OUTPUT out=ae_1 sum=sum_weights; /* Die Summe der Gewichte = gewichtete Zählung */
6QUIT;
Diese Methode ist einfach und vermeidet jegliche Verwirrung über die Art der erzeugten Statistiken.

Lösung 2: Verwendung der SUMWGT-Statistik

Wenn Sie darauf bestehen, die WEIGHT-Anweisung zu verwenden (zum Beispiel, wenn Sie gleichzeitig gewichtete Mittelwerte anderer Variablen berechnen), müssen Sie explizit die SUMWGT-Statistik (Summe der Gewichte) in der OUTPUT-Anweisung anfordern.

Alternativer Code:

1PROC SUMMARY DATA=a1 chartype;
2 class treatment;
3 weight IPW;
4 /* Die sumwgt-Statistik wird explizit angefordert */
5 OUTPUT out=ae_1 sumwgt=sum_weights;
6QUIT;

Wichtiger Hinweis: FREQ vs. WEIGHT

Es ist entscheidend, zwischen der FREQ-Anweisung und der WEIGHT-Anweisung zu unterscheiden:

  • FREQ: Wird verwendet, wenn die Variable eine Ganzzahl von Vorkommen darstellt (z.B. "diese Zeile repräsentiert 5 identische Patienten"). Dies ändert die Stichprobengröße ($N$).

  • WEIGHT: Wird für statistische Gewichtungen (oft nicht-ganzzahlig wie IPW) verwendet. Dies beeinflusst die Berechnung von Varianz und Mittelwerten, aber "verdoppelt" die physischen Beobachtungen nicht.

Zusammenfassend lässt sich sagen, um eine gewichtete Summe in PROC SUMMARY zu erhalten, berechnen Sie einfach die Summe Ihrer Gewichtungsvariable.