Publicado el :
Modelado Estadístico CREATION_INTERNE

Ejemplo de documentación para PROC HPNLMOD

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza con la creación de un conjunto de datos 'a' usando datos en línea (datalines). Este conjunto de datos contiene las variables 'y' (respuesta) y 'x' (predictor). Luego, se utiliza el procedimiento HPNLMOD para ajustar un modelo no lineal segmentado a los datos de 'a', produciendo un conjunto de datos de salida 'b' que contiene las predicciones. El modelo define un punto de unión 'x0' y aplica una lógica condicional para calcular el valor predicho 'yp' antes y después de este punto de unión, asegurando la continuidad. También se calculan estimaciones para el punto de unión y el valor de meseta. Finalmente, se utiliza PROC SGPLOT para visualizar los datos observados y los valores predichos, incluyendo líneas de referencia para la meseta y el punto de unión para facilitar la interpretación del modelo.
Análisis de datos

Type : CREATION_INTERNE


Todos los datos utilizados en este script se crean internamente a través de un paso DATA con 'datalines'.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea un conjunto de datos temporal llamado 'a'. Las variables 'y' y 'x' se leen de las líneas de datos proporcionadas (datalines). Estos datos constituyen el conjunto de observaciones sobre las cuales se ajustará el modelo.
¡Copiado!
1DATA a;
2 INPUT y x;
3 DATALINES;
4.46 1 .47 2 .57 3 .61 4 .62 5 .68 6 .69 7
5.78 8 .70 9 .74 10 .77 11 .78 12 .74 13 .80 13
6.80 15 .78 16
7 ;
2 Bloque de código
PROC HPNLMOD Data
Explicación :
Este procedimiento ajusta un modelo no lineal segmentado a los datos del conjunto de datos 'a'. Inicializa los parámetros 'alpha', 'beta' y 'gamma'. Se calcula un punto de unión 'x0'. La variable predicha 'yp' se determina mediante una función cuadrática antes de 'x0' y por una constante después de 'x0' (valor de meseta), asegurando la continuidad. Se utilizan declaraciones 'estimate' para obtener las estimaciones del 'join point' y del 'plateau value'. Las declaraciones 'predict' guardan los valores predichos 'yp' así como los valores observados 'y' y 'x' en el conjunto de datos de salida 'b'.
¡Copiado!
1PROC HPNLMOD DATA=a out=b;
2 parms alpha=.45 beta=.05 gamma=-.0025;
3 
4 x0 = -.5*beta / gamma;
5 
6 IF (x < x0) THEN
7 yp = alpha + beta*x + gamma*x*x;
8 ELSE
9 yp = alpha + beta*x0 + gamma*x0*x0;
10 
11 model y ~ residual(yp);
12 
13 estimate 'join point' -beta/2/gamma;
14 estimate 'plateau value c' alpha - beta**2/(4*gamma);
15 predict 'predicted' yp pred=yp;
16 predict 'response' y pred=y;
17 predict 'x' x pred=x;
18RUN;
3 Bloque de código
PROC SGPLOT
Explicación :
Este procedimiento genera un gráfico de alta calidad para visualizar los resultados del modelo. Utiliza el conjunto de datos 'b' (producido por PROC HPNLMOD). El eje Y está etiquetado como 'Observed or Predicted'. Se añaden dos líneas de referencia: una horizontal para la 'Meseta' (valor y=0.7775) y una vertical para el 'Punto de unión' (valor x=12.7477). Un diagrama de dispersión ('scatter') muestra los datos observados ('y' vs 'x'), y una serie de líneas ('series') representa los valores predichos ('yp' vs 'x'), permitiendo una comparación visual entre las observaciones y el ajuste del modelo segmentado.
¡Copiado!
1PROC SGPLOT DATA=b noautolegend;
2 yaxis label='Observed or Predicted';
3 refline 0.7775 / axis=y label="Plateau" labelpos=min;
4 refline 12.7477 / axis=x label="Join point" labelpos=min;
5 scatter y=y x=x;
6 series y=yp x=x;
7RUN;
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 : S A S S A M P L E L I B R A R Y