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.
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:
proc summary data=a1 chartype completetypes;
class treatment;
types treatment;
weight IPW; /* Diese Anweisung ändert nicht den ausgegebenen _FREQ_ */
output out=ae_1;
quit;
1
PROC SUMMARYDATA=a1 chartype completetypes;
2
class treatment;
3
types treatment;
4
weight IPW; /* Diese Anweisung ändert nicht den ausgegebenen _FREQ_ */
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:
proc summary data=a1 chartype completetypes;
class treatment;
types treatment;
var IPW; /* Die Gewichtungsvariable wird als Analysevariable deklariert */
output out=ae_1 sum=sum_weights; /* Die Summe der Gewichte = gewichtete Zählung */
quit;
1
PROC SUMMARYDATA=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 */
6
QUIT;
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:
proc summary data=a1 chartype;
class treatment;
weight IPW;
/* Die sumwgt-Statistik wird explizit angefordert */
output out=ae_1 sumwgt=sum_weights;
quit;
1
PROC SUMMARYDATA=a1 chartype;
2
class treatment;
3
weight IPW;
4
/* Die sumwgt-Statistik wird explizit angefordert */
5
OUTPUT out=ae_1 sumwgt=sum_weights;
6
QUIT;
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.
Important Disclaimer
The codes and examples provided on WeAreCAS.eu are for educational purposes. It is imperative not to blindly copy-paste them into your production environments. The best approach is to understand the logic before applying it. We strongly recommend testing these scripts in a test environment (Sandbox/Dev). WeAreCAS accepts no responsibility for any impact or data loss on your systems.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.