Análisis de regresión no lineal con modelo de meseta izquierda y visualización

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
El script comienza con la creación de un conjunto de datos llamado 'lizard' a partir de datos brutos integrados (datalines) para las variables 'length' (longitud) y 'mass' (masa). Luego, se utiliza un procedimiento PROC NLIN para ajustar un modelo de regresión no lineal de tipo 'meseta izquierda'. Este modelo estipula que la masa permanece constante (parámetro b0) hasta un cierto umbral de longitud (parámetro tau), después de lo cual aumenta linealmente con la longitud (b0 + b1*(length-tau)). Los parámetros del modelo (b0, b1, tau) se inicializan para facilitar la convergencia. El procedimiento también genera un nuevo conjunto de datos 'a' que contiene los datos originales y los valores de masa predichos por el modelo ('p'). Finalmente, el script utiliza el procedimiento PROC GPLOT (de SAS©/GRAPH) para crear dos visualizaciones. La primera muestra los datos observados de masa en función de la longitud. La segunda superpone los datos observados y la curva del modelo ajustado (valores predichos 'p' vs 'length'), permitiendo una evaluación visual de la adecuación del modelo a los datos. Las opciones gráficas globales (GOPTIONS) y los atributos específicos para los símbolos y los ejes se configuran para mejorar la legibilidad de los gráficos.
Análisis de datos

Type : CREATION_INTERNE


Los datos ('length' y 'mass') utilizados para el análisis se crean directamente dentro del script a través de una instrucción DATA STEP con 'datalines', lo que significa que están integrados en el código fuente y no provienen de una fuente externa.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea un nuevo conjunto de datos temporal llamado 'lizard'. Define dos variables numéricas, 'length' y 'mass', y las llena con los datos brutos proporcionados directamente en el script a través de la instrucción DATALINES. Este conjunto de datos es la fuente de los datos para los análisis estadísticos y las visualizaciones posteriores.
¡Copiado!
1 DATA lizard;
2 INPUT LENGTH mass ;
3 DATALINES;
4 22.87 0.294 23.45 0.302 23.49 0.265 23.65 0.297
5 23.76 0.294 24.36 0.338 24.44 0.295 24.44 0.347
6 24.51 0.338 24.61 0.333 24.91 0.358 24.95 0.350
7 24.95 0.331 25.00 0.327 25.16 0.345 25.26 0.334
8 25.26 0.323 25.36 0.353 25.47 0.354 25.52 0.350
9 25.61 0.361 25.76 0.362 25.82 0.327 25.86 0.354
10 25.91 0.309 25.96 0.361 25.96 0.366 26.15 0.344
11 26.20 0.358 26.27 0.348 27.12 0.371 27.28 0.421
12;
2 Bloque de código
PROC NLIN
Explicación :
Este procedimiento PROC NLIN ajusta un modelo de regresión no lineal a los datos del conjunto de datos 'lizard'. El modelo especificado es un 'modelo de meseta izquierda', donde la variable dependiente 'mass' es constante ('b0') hasta que 'length' alcanza 'tau', luego sigue una relación lineal. Los parámetros 'b0', 'b1' y 'tau' se inicializan para el procedimiento. La opción 'output out=a p=p' crea un nuevo conjunto de datos 'a' que incluye las variables originales de 'lizard', así como la variable 'p', que representa los valores de masa predichos por el modelo.
¡Copiado!
1 PROC NLIN;
2 parameters b0 = 0.2904 b1 = 0.0189 tau = 23.44;
3 IF LENGTH <= tau THEN DO;
4 model mass = b0;
5 END;
6 ELSE DO;
7 model mass = b0 + b1*(LENGTH-tau);
8 END;
9 OUTPUT out=a p=p;
10 RUN;
3 Bloque de código
PROC GPLOT
Explicación :
Este bloque inicializa las opciones gráficas globales (`GOPTIONS`) para definir la apariencia de los gráficos (colores, fuentes, tamaños de texto). También configura un título principal (`title1`), definiciones de símbolos (`symbol1`, `symbol2`) y especificaciones de ejes (`axis1`, `axis2`) que incluyen las etiquetas y los rangos. Luego se utiliza el procedimiento `PROC GPLOT` para generar un diagrama de dispersión simple ('mass' vs 'length') a partir del conjunto de datos 'a', utilizando las definiciones de ejes previamente establecidas.
¡Copiado!
1 goptions reset=global gunit=pct border cback=white
2 colors=(black blue green red)
3 ftitle=swissb ftext=swiss htitle=4 htext=4;
4title1 'Mass vs Length with the fit';
5symbol1 color=red
6 interpol=none
7 value=dot
8 height=3;
9symbol2 color=red
10 interpol=join;
11 axis1 label=('Length (mm)')
12 order=(22 to 28 BY 1)
13 width=3;
14 axis2 label=('Mass (g)')
15 order=(0.25 to .45 BY 0.05)
16 width=3;
17PROC GPLOT DATA=a;
18 plot mass*LENGTH/ haxis=axis1 vaxis=axis2;
19 RUN;
4 Bloque de código
PROC GPLOT
Explicación :
Este último bloque utiliza `PROC GPLOT` para crear un gráfico superpuesto. Traza los datos observados ('mass' vs 'length') y los valores predichos por el modelo ('p' vs 'length') en el mismo gráfico a partir del conjunto de datos 'a'. La opción `overlay` permite visualizar ambas series en el mismo sistema de coordenadas, facilitando la comparación entre las observaciones reales y el ajuste del modelo. Se reutilizan las configuraciones de ejes definidas previamente.
¡Copiado!
1PROC GPLOT DATA=a;
2 plot mass*LENGTH p*LENGTH/ overlay haxis=axis1 vaxis=axis2;
3 RUN;
4QUIT;
5 RUN;
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.

Documentación relacionada

Aucune documentation spécifique pour cette catégorie.