Publicado el :
Estadística CREACIÓN_INTERNA

Documentation Example 16 for PROC MI

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script ilustra cómo realizar una imputación múltiple cuando se supone que los datos faltantes no son aleatorios (MNAR). Comienza creando un conjunto de datos sintético ('Fcs1') con valores faltantes simulados. Luego, utiliza `PROC MI` con la opción `FCS` (Fully Conditional Specification) y la instrucción `MNAR` para ajustar los valores imputados de las variables `y1` e `y2` específicamente para el grupo de tratamiento `Trt='1'`, aplicando desplazamientos (shift).
Análisis de datos

Type : CREACIÓN_INTERNA


Los datos se generan artificialmente en el paso DATA `Fcs1` utilizando bucles y funciones de generación de números aleatorios (`rannor`, `ranuni`) para simular datos de ensayos clínicos.

1 Bloque de código
DATA STEP Data
Explicación :
Creación del conjunto de datos `Fcs1`. Genera variables `y0`, `y1`, `y2` basadas en una distribución normal e introduce aleatoriamente valores faltantes (`.`) para `y1` o `y2`.
¡Copiado!
1DATA Fcs1;
2 DO Trt=0 to 1;
3 DO j=1 to 5;
4 y0=10 + rannor(99);
5 y1= y0 + 0.9*Trt + rannor(99);
6 y2= y0 + 0.9*Trt + rannor(99);
7 IF (ranuni(99) < 0.3) THEN y1=.;
8 ELSE IF (ranuni(99) < 0.3) THEN y2=.;
9 OUTPUT;
10 END; END;
11 DO Trt=0 to 1;
12 DO j=1 to 45;
13 y0=10 + rannor(99);
14 y1= y0 + 0.9*Trt + rannor(99);
15 y2= y0 + 0.9*Trt + rannor(99);
16 IF (ranuni(99) < 0.3) THEN y1=.;
17 ELSE IF (ranuni(99) < 0.3) THEN y2=.;
18 OUTPUT;
19 END; END;
20 drop j;
21RUN;
2 Bloque de código
PROC PRINT
Explicación :
Muestra las primeras 10 observaciones del conjunto de datos generado para verificación.
¡Copiado!
1PROC PRINT DATA=Fcs1(obs=10);
2 var Trt Y0 Y1 Y2;
3 title 'First 10 Obs in the Trial Data';
4RUN;
3 Bloque de código
PROC MI Data
Explicación :
Ejecuta la imputación múltiple. Utiliza el método `FCS` con 25 iteraciones. La instrucción `MNAR` aplica un ajuste (desplazamiento de -0.4 para `y1` y -0.5 para `y2`) únicamente para las observaciones donde `Trt='1'`, simulando un sesgo para los datos faltantes.
¡Copiado!
1PROC MI DATA=Fcs1 seed=52387 out=outex16;
2 class Trt;
3 fcs nbiter=25 reg( /details);
4 mnar adjust( y1 /shift=-0.4 adjustobs=(Trt='1'))
5 adjust( y2 /shift=-0.5 adjustobs=(Trt='1'));
6 var Trt y0 y1 y2;
7RUN;
4 Bloque de código
PROC PRINT
Explicación :
Muestra las primeras 10 observaciones del conjunto de datos de salida `outex16`, que contiene los datos imputados.
¡Copiado!
1PROC PRINT DATA=outex16(obs=10);
2 var _Imputation_ Trt y0 y1 y2;
3 title 'First 10 Observations of the Imputed 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, NAME: MIEX16, PRODUCT: STAT