Publicado el :
Estadística CREATION_INTERNE

Regresión Normal con Censura por Intervalos

Este código también está disponible en: Deutsch English Français
En espera de validación
El script analiza un conjunto de datos que simula tiempos de eventos potencialmente censurados por intervalos (tl y tr). Presenta dos enfoques para modelar la censura por intervalos con PROC MCMC: un enfoque manual que define una función de verosimilitud personalizada (llike) basada en las funciones logpdf, logsdf y logcdf, y un enfoque más conciso que utiliza la instrucción MODEL con las opciones CLOWER y CUPPER para especificar directamente los límites del intervalo de censura. Ambos enfoques estiman los mismos parámetros mu y sigma.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos 'cosmetic' se crea internamente mediante una instrucción DATALINES. Contiene variables 'tl' (tiempo de evento inferior) y 'tr' (tiempo de evento superior) que definen los intervalos de censura. Un punto ('.') indica un valor faltante para la censura izquierda o derecha. La variable 't' se inicializa como faltante.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA crea el conjunto de datos 'cosmetic' a partir de las líneas de datos proporcionadas (DATALINES). Las variables 'tl' (tiempo inferior) y 'tr' (tiempo superior) se leen. La variable 't' se inicializa como faltante. Las etiquetas se definen para 'tl'. Cabe señalar que la parte ' @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json' de la instrucción INPUT es sintácticamente incorrecta en este contexto y no participa en la lectura de datos, que provienen exclusivamente de DATALINES.
¡Copiado!
1title 'Normal Regression with Interval Censoring';
2DATA cosmetic;
3 t = .;
4 label tl = 'Time to Event (Months)';
5 INPUT tl tr @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
6 DATALINES;
745 . 6 10 . 7 46 . 46 . 7 16 17 . 7 14
837 44 . 8 4 11 15 . 11 15 22 . 46 . 46 .
925 37 46 . 26 40 46 . 27 34 36 44 46 . 36 48
1037 . 40 . 17 25 46 . 11 18 38 . 5 12 37 .
11 . 5 18 . 24 . 36 . 5 11 19 35 17 25 24 .
1232 . 33 . 19 26 37 . 34 . 36 .
13;
14 
2 Bloque de código
PROC MCMC
Explicación :
Este primer bloque PROC MCMC realiza una inferencia bayesiana para un modelo de regresión normal con censura por intervalos. Utiliza una función de verosimilitud personalizada ('llike') para manejar los diferentes tipos de censura (censura a la izquierda, a la derecha, por intervalos y observaciones no censuradas). Los parámetros 'mu' y 'sigma' se definen con priors no informativos. La opción MISSING=AC gestiona los valores faltantes para el análisis de las cadenas. La instrucción ODS SELECT PostSumInt selecciona la tabla de salida que contiene los resúmenes y los intervalos de credibilidad de los parámetros.
¡Copiado!
1PROC MCMC DATA=cosmetic outpost=postout seed=1 nmc=20000 missing=AC;
2 ods select PostSumInt;
3 parms mu 60 sigma 50;
4 
5 prior mu ~ normal(0, sd=1000);
6 prior sigma ~ gamma(shape=0.001,iscale=0.001);
7 
8 IF (tl^=. and tr^=. and tl=tr) THEN
9 llike = logpdf('normal',tr,mu,sigma);
10 ELSE IF (tl^=. and tr=.) THEN
11 llike = logsdf('normal',tl,mu,sigma);
12 ELSE IF (tl=. and tr^=.) THEN
13 llike = logcdf('normal',tr,mu,sigma);
14 ELSE
15 llike = log(sdf('normal',tl,mu,sigma) -
16 sdf('normal',tr,mu,sigma));
17 
18 model general(llike);
19RUN;
3 Bloque de código
PROC MCMC
Explicación :
Este segundo bloque PROC MCMC realiza la misma inferencia bayesiana pero de una manera más simplificada utilizando las opciones CLOWER y CUPPER de la instrucción MODEL. Estas opciones permiten especificar directamente los límites inferior y superior del intervalo de censura para la variable 't', simplificando así la implementación de la verosimilitud en comparación con el enfoque manual del bloque anterior. La opción MISSING=ACMODELY se utiliza para los valores faltantes en el modelo. ODS SELECT NONE suprime todas las salidas de este procedimiento.
¡Copiado!
1PROC MCMC DATA=cosmetic outpost=postout seed=117207154
2 nmc=20000 missing=ACMODELY;
3 ods select none;
4 parms mu 60 sigma 50;
5 
6 prior mu ~ normal(0, sd=1000);
7 prior sigma ~ gamma(shape=0.001,iscale=0.001);
8 
9 model t ~ normal(mu, sd=sigma, clower=tl, cupper=tr);
10RUN;
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