Ejemplo 17 para PROC MI: Imputación Múltiple con ajuste MNAR

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
Este script crea primero un conjunto de datos sintético llamado 'Mono2' con valores perdidos simulados de manera condicional. Luego utiliza el procedimiento MI (Multiple Imputation) para imputar los datos faltantes. La particularidad de este ejemplo reside en el uso de la instrucción MNAR (Missing Not At Random) combinada con un método logístico monótono (link=glogit) para la variable 'Grade', aplicando un desplazamiento (shift) específico a los valores imputados.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan íntegramente en el script a través de un Data Step utilizando bucles DO y generadores de números aleatorios (ranuni, rannor).

1 Bloque de código
DATA STEP Data
Explicación :
Generación del conjunto de datos 'Mono2' que contiene variables demográficas y de puntuación, con la introducción artificial de valores perdidos para la variable 'Grade' basándose en probabilidades definidas.
¡Copiado!
1DATA Mono2;
2 DO Grd= 6 to 8;
3 DO j=1 to 50;
4 
5 Grade= Grd;
6 IF (Grd=6) THEN DO;
7 IF (ranuni(999) > .80) THEN Grade= .;
8 END;
9 ELSE IF (ranuni(99) > .95) THEN Grade= .;
10 
11 IF (j < 26) THEN Study= 1;
12 ELSE Study= 0;
13 
14 Score0= 70 + 3*rannor(1);
15 IF (Score0 >= 100) THEN Score0= 100 - 10*ranuni(99);
16 
17 Score= Score0 + 2*rannor(99) + 2;
18 IF (Study = 1) THEN DO;
19 Score= Score + 3;
20 IF (Grd = 6) THEN Score= Score + 1;
21 IF (Grd = 8) THEN Score= Score + 3;
22 END;
23 
24 OUTPUT;
25 END; END;
26 drop Grd j;
27RUN;
2 Bloque de código
PROC PRINT
Explicación :
Visualización de las 10 primeras observaciones del conjunto de datos generado para verificación.
¡Copiado!
1PROC PRINT DATA=Mono2(obs=10);
2 var Grade Score0 Score Study;
3 title 'First 10 Obs in the Student Test Data';
4RUN;
3 Bloque de código
PROC MI Data
Explicación :
Ejecución de la imputación múltiple. La opción 'nimpute=20' crea 20 conjuntos de datos imputados. La instrucción 'mnar' ajusta los valores imputados para la variable 'Grade' (cuando el evento es '6') con un desplazamiento de 2, asumiendo un mecanismo de datos faltantes no aleatorio.
¡Copiado!
1PROC MI DATA=Mono2 seed=34857 nimpute=20 out=outex17;
2 class Study Grade;
3 monotone logistic (Grade / link=glogit);
4 mnar adjust( Grade (event='6') /shift=2);
5 var Study Score0 Score Grade;
6RUN;
4 Bloque de código
PROC PRINT
Explicación :
Visualización de los resultados de la imputación (conjunto de datos 'outex17'), mostrando en particular el número de imputación.
¡Copiado!
1PROC PRINT DATA=outex17(obs=10);
2 var _Imputation_ Grade Study Score0 Score;
3 title 'First 10 Observations of the Imputed Student Test Data Set';
4RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : SAS SAMPLE LIBRARY


Documentación relacionada

Aucune documentation spécifique pour cette catégorie.