SAS9

¿Cómo obtener recuentos ponderados con PROC SUMMARY?

Simon 6 views

Al analizar datos clínicos o de encuestas, es común usar variables de ponderación, como el IPW (Inverse Probability Weighting), para ajustar la representatividad de la muestra.

Una confusión común surge al intentar obtener un "número de sujetos ponderado" utilizando el procedimiento PROC SUMMARY. A diferencia de PROC FREQ, el uso de la sentencia WEIGHT en PROC SUMMARY no modifica automáticamente el recuento de frecuencias (_FREQ_) en la tabla de salida.

A continuación se explica cómo entender este comportamiento y obtener el resultado deseado.

¿Cómo obtener recuentos ponderados con PROC SUMMARY? -

El problema: La sentencia WEIGHT no cambia el FREQ

Si simplemente añade una sentencia WEIGHT a su procedimiento, notará que la variable _FREQ_ en la tabla de salida sigue contando el número de observaciones físicas (las filas), y no la suma de los pesos.

Código que no produce el resultado esperado:

1PROC SUMMARY DATA=a1 chartype completetypes;
2 class treatment;
3 types treatment;
4 weight IPW; /* Cette instruction n'altère pas le _FREQ_ de sortie */
5 OUTPUT out=ae_1;
6QUIT;

En este ejemplo, SAS© sí utiliza los pesos para calcular estadísticas como la media o la varianza, pero el recuento bruto permanece sin cambios.

Solución 1: Sumar la variable de ponderación

El enfoque más directo y a menudo el más claro para obtener un "recuento ponderado" es tratar su variable de peso como una variable de análisis estándar y solicitar su suma.

Al sumar los pesos, se obtiene el equivalente a un recuento ponderado de la población.

Código recomendado:

1PROC SUMMARY DATA=a1 chartype completetypes;
2 class treatment;
3 types treatment;
4 var IPW; /* On déclare la variable de poids comme variable d'analyse */
5 OUTPUT out=ae_1 sum=sum_weights; /* La somme des poids = comptage pondéré */
6QUIT;
Este método es simple y evita cualquier confusión sobre la naturaleza de las estadísticas producidas.

Solución 2: Utilizar la estadística SUMWGT

Si insiste en utilizar la sentencia WEIGHT (por ejemplo, si está calculando simultáneamente medias ponderadas de otras variables), debe solicitar explícitamente la estadística SUMWGT (Suma de los Pesos) en la sentencia OUTPUT.

Código alternativo:

1PROC SUMMARY DATA=a1 chartype;
2 class treatment;
3 weight IPW;
4 /* On demande spécifiquement la statistique sumwgt */
5 OUTPUT out=ae_1 sumwgt=sum_weights;
6QUIT;

Nota importante: FREQ vs WEIGHT

Es crucial distinguir la sentencia FREQ de la sentencia WEIGHT:

  • FREQ: Se utiliza cuando la variable representa un número entero de ocurrencias (por ejemplo, "esta fila representa 5 pacientes idénticos"). Esto cambia el tamaño de la muestra ($N$).

  • WEIGHT: Se utiliza para ponderaciones estadísticas (a menudo no enteras como el IPW). Esto afecta el cálculo de la varianza y las medias, pero no "duplica" las observaciones físicas.

En resumen, para obtener un total ponderado en PROC SUMMARY, simplemente calcule la suma de su variable de ponderación.