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.
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!
proc hpnlmod data=a out=b;
parms alpha=.45 beta=.05 gamma=-.0025;
x0 = -.5*beta / gamma;
if (x < x0) then
yp = alpha + beta*x + gamma*x*x;
else
yp = alpha + beta*x0 + gamma*x0*x0;
model y ~ residual(yp);
estimate 'join point' -beta/2/gamma;
estimate 'plateau value c' alpha - beta**2/(4*gamma);
predict 'predicted' yp pred=yp;
predict 'response' y pred=y;
predict 'x' x pred=x;
run;
1
PROC HPNLMODDATA=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;
18
RUN;
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.
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
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.