Regresión Tweedie No Paramétrica con PROC GAMPL

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
Este script ilustra la capacidad del procedimiento GAMPL para ajustar modelos de regresión Tweedie no paramétricos. Comienza simulando un conjunto de datos (distribución de Poisson compuesta) con relaciones no lineales entre los predictores y la respuesta. Luego compara los resultados de un modelo lineal generalizado estándar (PROC GENMOD) con dos modelos GAMPL: uno utilizando términos lineales paramétricos y el otro utilizando splines de suavizado.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan artificialmente en el paso DATA 'one'. Las variables aleatorias (x1-x4) se transforman mediante funciones no lineales (seno, exponencial, polinomios) para crear una media 'mu', que luego se utiliza para simular una respuesta 'y' siguiendo una distribución Tweedie.

1 Bloque de código
DATA STEP Data
Explicación :
Generación de datos sintéticos. Las macro-variables 'phi' y 'power' controlan la distribución Tweedie. El código simula 1000 observaciones con predictores aleatorios y una variable de respuesta 'y' construida a partir de transformaciones no lineales complejas y un proceso de Poisson compuesto.
¡Copiado!
1title 'Nonparametric Tweedie Model';
2%let phi=0.4;
3%let power=1.5;
4 
5DATA one;
6 DO i=1 to 1000;
7 
8 /* Sample the predictors */
9 x1=ranuni(1);
10 x2=ranuni(1);
11 x3=ranuni(1);
12 x4=ranuni(1);
13 
14 /* Apply nonlinear transformations to predictors */
15 f1=2*sin(3.14159265*x1);
16 f2=exp(2*x2)*0.8;
17 f3=0.2*x3**11*(10*(1-x3))**6+10*(10*x3)**3*(1-x3)**10;
18 xb=f1+f2+f3;
19 xb=xb/20;
20 mu=exp(xb);
21 
22 /* Compute parameters of compound Poisson distribution */
23 lambda=mu**(2-&power)/(&phi*(2-&power));
24 alpha=(2-&power)/(&power-1);
25 gamma=&phi*(&power-1)*(mu**(&power-1));
26 
27 /* Simulate the response */
28 rpoi=ranpoi(1,lambda);
29 IF rpoi=0 THEN y=0;
30 ELSE DO;
31 y=0;
32 DO j=1 to rpoi;
33 y=y+rangam(1,alpha);
34 END;
35 y=y*gamma;
36 END;
37 OUTPUT;
38 END;
39RUN;
2 Bloque de código
PROC GENMOD
Explicación :
Ajuste de un modelo lineal generalizado (GLM) de referencia utilizando la distribución Tweedie. Este modelo supone una relación lineal entre los predictores y la función de enlace de la respuesta, lo que puede ser insuficiente dada la naturaleza no lineal de los datos generados.
¡Copiado!
1 
2PROC GENMOD
3DATA=one;
4model y=x1 x2 x3 x4/dist=tweedie;
5RUN;
6 
3 Bloque de código
PROC GAMPL
Explicación :
Uso de PROC GAMPL para ajustar un modelo similar al GLM (solo términos paramétricos lineales) con la distribución Tweedie. Esto permite comparar el rendimiento básico de GAMPL con GENMOD.
¡Copiado!
1 
2PROC GAMPL
3DATA=one seed=1234;
4model y=param(x1 x2 x3 x4)/dist=tweedie;
5RUN;
6 
4 Bloque de código
PROC GAMPL
Explicación :
Ajuste de un modelo aditivo generalizado (GAM) completo. Los términos 'spline()' permiten modelar las relaciones no lineales para cada predictor. La opción 'plots' genera gráficos para visualizar las splines ajustadas en relación con los datos.
¡Copiado!
1 
2PROC GAMPL
3DATA=one seed=1234 plots;
4model y=spline(x1) spline(x2) spline(x3) spline(x4)/dist=tweedie;
5RUN;
6 
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.