Publicado el :
Estadística CREATION_INTERNE

Ajuste de modelos polinomiales con PROC ORTHOREG y GLM

Este código también está disponible en: Deutsch English Français
En espera de validación
El script primero genera un conjunto de datos 'Polynomial' basado en una función polinomial. Luego, utiliza PROC ORTHOREG para ajustar un modelo polinomial de grado 9. Los resultados del modelo se almacenan y son utilizados por PROC PLM para puntuar los ceros de la función original. Paralelamente, PROC GLM se utiliza para ajustar un modelo similar, y las predicciones también se calculan con PROC PLM. Finalmente, las predicciones de ambos modelos (ORTHOREG y GLM) se fusionan y se muestran para su comparación.
Análisis de datos

Type : CREATION_INTERNE


El script crea dos conjuntos de datos: 'Polynomial' y 'Zeros'. Los datos se generan completamente a través de bucles 'do' en pasos DATA, sin depender de fuentes externas.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque crea la tabla 'Polynomial'. Genera 101 observaciones calculando los valores de 'x' e 'y' según una función polinomial, sin utilizar datos de entrada.
¡Copiado!
1title 'Polynomial Data';
2DATA Polynomial;
3 DO i = 1 to 101;
4 x = (i-1)/(101-1);
5 y = 10**(9/2);
6 DO j = 0 to 8;
7 y = y * (x - j/8);
8 END;
9 OUTPUT;
10 END;
11RUN;
2 Bloque de código
PROC ORTHOREG
Explicación :
Este bloque utiliza el procedimiento ORTHOREG para realizar una regresión polinomial de grado 9 sobre la variable 'y' en función de 'x'. El modelo se almacena en el objeto 'OStore' y se produce un gráfico del modelo ajustado.
¡Copiado!
1ods graphics on;
2 
3PROC ORTHOREG DATA=Polynomial;
4 effect xMod = polynomial(x / degree=9);
5 model y = xMod;
6 effectplot fit / obs;
7 store OStore;
8RUN;
9 
10ods graphics off;
3 Bloque de código
DATA STEP Data
Explicación :
Este bloque crea la tabla 'Zeros' que contiene las raíces (ceros) de la función polinomial utilizada para generar los datos iniciales. Estos valores de 'x' se utilizarán para la predicción.
¡Copiado!
1DATA Zeros(keep=x);
2 DO j = 0 to 8;
3 x = j/8;
4 OUTPUT;
5 END;
6RUN;
4 Bloque de código
PROC PLM
Explicación :
Este procedimiento utiliza el modelo 'OStore' (creado por PROC ORTHOREG) para calcular los valores predichos ('OPred') para cada observación de la tabla 'Zeros'. Los resultados se guardan en la tabla 'OZeros'.
¡Copiado!
1 
2PROC PLM restore=OStore noprint;
3score
4DATA=Zeros out=OZeros pred=OPred;
5RUN;
6 
5 Bloque de código
PROC PRINT
Explicación :
Muestra el contenido de la última tabla creada, que es 'OZeros', mostrando las predicciones del modelo ORTHOREG.
¡Copiado!
1PROC PRINT noobs;
2RUN;
6 Bloque de código
PROC GLM
Explicación :
Este bloque utiliza el procedimiento GLM (General Linear Model) para ajustar un modelo polinomial de grado 9 (especificado por las interacciones sucesivas de 'x'). El modelo se almacena en 'GStore' para su uso posterior.
¡Copiado!
1PROC GLM DATA=Polynomial;
2 model y = x|x|x|x|x|x|x|x|x;
3 store GStore;
4RUN;
7 Bloque de código
PROC PLM
Explicación :
Similar al paso anterior, este procedimiento utiliza el modelo 'GStore' (creado por PROC GLM) para calcular las predicciones ('GPred') sobre la tabla 'Zeros'. Los resultados se almacenan en la tabla 'GZeros'.
¡Copiado!
1 
2PROC PLM restore=GStore noprint;
3score
4DATA=Zeros out=GZeros pred=GPred;
5RUN;
6 
8 Bloque de código
DATA STEP Data
Explicación :
Este bloque fusiona las tablas 'OZeros' y 'GZeros' para crear una nueva tabla 'Zeros' que contiene las predicciones de ambos modelos (ORTHOREG y GLM) lado a lado para facilitar la comparación.
¡Copiado!
1DATA Zeros;
2 MERGE OZeros GZeros;
3RUN;
9 Bloque de código
PROC PRINT
¡Copiado!
1PROC PRINT noobs;
2RUN;
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