Publicado el :
Estadística CREACION_INTERNA

Regresión no lineal para pronóstico de pacientes

Este código también está disponible en: Deutsch English Français
En espera de validación
El script analiza datos de 15 pacientes para predecir un índice de pronóstico de recuperación (prog) en función del número de días de hospitalización (days). Primero, utiliza un paso DATA para crear la tabla 'patient' a partir de datos integrados (cards). Luego, ajusta un modelo de regresión no lineal exponencial `prog = a0*exp(a1*days)` con PROC NLIN. Genera predicciones, residuos e intervalos de confianza. Se crean gráficos (PROC GPLOT) para visualizar los datos brutos y el ajuste del modelo. En paralelo, se prueba un segundo modelo de regresión lineal sobre el logaritmo de la variable de respuesta (`ln(prog)`) con PROC REG para comparar los enfoques.
Análisis de datos

Type : CREACION_INTERNA


Los datos se crean directamente en el script a través de un paso DATA y la instrucción 'cards', formando la tabla 'patient' con 15 observaciones y 3 variables (prog, days, lnprog).

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque crea la tabla 'patient' en memoria. Lee dos variables, 'prog' (índice de pronóstico) y 'days' (días de hospitalización), a partir de los datos proporcionados a través de la instrucción 'cards'. También calcula 'lnprog', el logaritmo neperiano de 'prog'.
¡Copiado!
1DATA patient;
2INPUT prog days;
3lnprog=log(prog);
4CARDS;
5 54 2
6 50 5
7 45 7
8 37 10
9 35 14
10 25 19
11 20 26
12 16 31
13 18 34
14 13 38
15 8 45
16 11 52
17 8 53
18 4 60
19 6 65
20 ;
21RUN;
2 Bloque de código
PROC NLIN
Explicación :
Este procedimiento ajusta un modelo de regresión no lineal. El modelo es de forma exponencial: `prog = a0*exp(a1*days)`. Se proporcionan valores iniciales para los parámetros `a0` y `a1`. El procedimiento calcula las estimaciones de los parámetros y genera una tabla de salida 'a' que contiene los valores predichos, los residuos y los intervalos de confianza y predicción al 90% (alpha=0.1).
¡Copiado!
1PROC NLIN alpha=0.1;
2parameters a0=10
3 a1=-1;
4 model prog = a0*exp(a1*days);
5 OUTPUT out=a p=p r=resid lcl=lci ucl=uci lclm=l90 uclm=u90;
6RUN;
3 Bloque de código
PROC PRINT
Explicación :
Imprime el contenido de la tabla 'a' generada por PROC NLIN, que contiene los resultados del modelado (valores observados, predichos, residuos, etc.).
¡Copiado!
1PROC PRINT DATA=a;
2RUN;
4 Bloque de código
PROC PLOT
Explicación :
El procedimiento PROC PLOT se utiliza para crear un gráfico de los residuos en función de los valores predichos, con el fin de evaluar gráficamente la idoneidad del modelo no lineal.
¡Copiado!
1PROC PLOT;
2plot resid*p;
3RUN;
5 Bloque de código
PROC GPLOT
Explicación :
Este bloque configura las opciones gráficas (goptions, title, symbol, axis) para generar gráficos. El primer PROC GPLOT crea un diagrama de dispersión de los datos originales. El segundo superpone la curva del modelo ajustado sobre el diagrama de dispersión para visualizar el ajuste.
¡Copiado!
1goptions reset=global gunit=pct border cback=white
2 colors=(black blue green red)
3 ftitle=swissb ftext=swiss htitle=4 htext=4;
4title1 'Prognostic index versus Days';
5symbol1 color=red
6 interpol=none
7 value=dot
8 height=3;
9symbol2 color=red
10 interpol=join;
11 axis1 label=('Days')
12 order=(0 to 70 BY 10)
13 width=3;
14 axis2 label=('Pyrene')
15 order=(0 to 60 BY 10)
16 width=3;
17 
18PROC GPLOT DATA=a;
19 plot prog*days/ haxis=axis1 vaxis=axis2;
20 RUN;
21 
22PROC GPLOT DATA=a;
23 plot prog*days p*days/ overlay haxis=axis1 vaxis=axis2;
24 RUN;
25QUIT;
6 Bloque de código
PROC REG
Explicación :
Para fines de comparación, este procedimiento realiza una regresión lineal simple sobre la variable 'lnprog' (logaritmo del índice de pronóstico) en función de 'days'. Los resultados, incluyendo los valores predichos y los residuos, se almacenan en la tabla 'b'.
¡Copiado!
1PROC REG;
2model lnprog=days;
3 OUTPUT out=b p=pln r=residln;
4RUN;
7 Bloque de código
PROC PLOT
Explicación :
Este bloque utiliza PROC PLOT para mostrar el gráfico de los residuos del modelo lineal en función de los valores predichos. Esto permite verificar la hipótesis de homocedasticidad (varianza constante de los residuos) para el modelo log-lineal.
¡Copiado!
1PROC PLOT;
2plot residln*pln;
3RUN;
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 : Fuente de los datos: Libro de texto 'Applied Linear Statistical Model', Kutner et al. (5th), p.515. Nombre del archivo original: ch13-patient-nonlinear.sas