¿Qué significan los parámetros procesados en el modelo aditivo generalizado gam?
1 Introducción
Este artículo analiza por qué se utiliza el modelo aditivo generalizado. es una buena elección. Para hacer esto, primero debemos observar la regresión lineal y ver por qué podría no ser la mejor opción en algunas situaciones.
2 Modelo de regresión
Supongamos que tenemos unos datos con dos atributos y y x. Si estuvieran relacionados linealmente, podrían verse así:
a & lt-ggplot(my_data, aes(x=X, y=Y))+geom_point()+
Para probar esta relación, podemos utilizar un modelo de regresión. La regresión lineal es un método para predecir una variable y utilizando x. Aplicando esto a nuestros datos predice un conjunto de valores como una línea roja:
a+geom_smooth(col="red ", método="lm")+
Esto es "Ecuaciones lineales". A partir de esta ecuación, podemos partir de dónde comienza la línea en el eje Y (la "intersección" o α) y cuánto aumenta cada unidad de X Y (la "pendiente", que llamamos coeficiente de X o β) . Hay una pequeña fluctuación natural, pero si no, todos los puntos son perfectos. Lo llamamos "resto" (?). Matemáticamente:
Como alternativa, si utilizamos números reales, obtenemos los siguientes resultados:
Este artículo resuelve el problema considerando la diferencia entre cada punto de datos y la línea (el " residual ”) para estimar el modelo y luego minimizar la diferencia. Tenemos errores tanto positivos como negativos por encima y por debajo de la línea, por lo que al elevarlos al cuadrado y minimizar la "suma de cuadrados", ambos son positivos para la estimación. Esto se llama "mínimos cuadrados ordinarios" o MCO.
3¿Qué es una relación no lineal?
Entonces, ¿qué debemos hacer si nuestros datos se ven así?
Un supuesto clave del modelo que acabamos de ver es que y y x están linealmente relacionados. Si nuestra y no tiene una distribución normal, ¿utilizamos un modelo lineal generalizado? (Nelder & Wedderburn, 1972), donde y se transforma mediante una función de enlace, pero nuevamente asumiendo que f(y) yx están linealmente relacionados. En caso contrario, la relación varía dentro del rango de x y puede no ser la más adecuada. Tenemos algunas opciones:
Podríamos usar un ajuste lineal, pero si hacemos esto iremos por encima o por debajo de algunas partes de los datos.
Se pueden dividir en varias categorías. Usé tres en la imagen de abajo, que es una opción más razonable. Del mismo modo, es posible que estemos debajo o encima de algunas partes de los datos que parecen ser precisas cerca de los límites entre categorías. Por ejemplo, x = 49, ¿hay una gran diferencia entre y y x = 50?
Podemos utilizar transformaciones como polinomios. A continuación utilicé un polinomio cúbico, por lo que el modelo se ajusta: la combinación de estos da un cambio aproximado suave en la función. Esta es una buena opción, pero puede estar sujeta a fluctuaciones extremas y provocar correlaciones en los datos, degradando así el ajuste.
Haga clic para ingresar una descripción de la imagen.
Haga clic para ingresar una descripción de la imagen.
4-Splines
Un refinamiento adicional de los polinomios es ajustar polinomios "por partes", donde encadenamos los polinomios en el rango de datos para describir la forma. Una spline es un polinomio por partes llamado así por la herramienta que utilizan los dibujantes al dibujar curvas. Una ranura física es una tira flexible que se puede doblar y fijar mediante peso. Al construir splines matemáticos, tenemos funciones polinomiales cuyas segundas derivadas son continuas y fijas en los puntos de unión.
¿El siguiente es un ggplot2? objeto. ¿Objeto? geom_smooth? ¿La fórmula contiene ns? ¿"Spline cúbico natural" en función? . El spline es una curva cúbica y utiliza 10 nudos.
Haga clic para ingresar una descripción de la imagen.
Haga clic para ingresar una descripción de la imagen.
5 Función de suavizado
Las splines pueden ser suaves o "inestables", lo que se puede controlar cambiando el número de nodos (k) o utilizando una penalización de suavizado γ. Si aumenta el número de nudos, será más "tambaleante". Esto puede estar más cerca de los datos y el error será menor, pero comenzamos a "sobreajustar" la relación y ajustar el ruido en nuestros datos. Cuando incorporamos una penalización de suavizado, penalizaremos la complejidad del modelo, lo que ayudará a reducir el sobreajuste.
Haga clic para ingresar una descripción de la imagen.
6 Modelo aditivo generalizado (GAM)
El modelo aditivo generalizado (GAM) (Hastie, 1984) utiliza funciones suaves (como splines) como predictores en modelos de regresión. Estos modelos son estrictamente aditivos, lo que significa que no podemos usar términos de interacción como la regresión normal, pero podemos lograr el mismo efecto reparametrizando como un modelo más suave. Ese no es el caso, pero esencialmente, nos estamos moviendo a un modelo como:
Haga clic para ingresar una descripción de la imagen.
¿Hecho de madera? (2017) ¿Un ejemplo más formal de GAM? Sí:
Haga clic para ingresar una descripción de la imagen.
Incluyendo:
μi≡E(Yi), la expectativa de y
¿Fácil? EF(μi, ?I), Yi es la variable respuesta, según la media μi y el parámetro de forma ? Distribución familiar exponencial.
Ai es una fila de la matriz del modelo para cualquier componente del modelo estrictamente parametrizado, donde θ es el vector de parámetros correspondiente.
Fi es una función suave de covariante xk, donde k es la base de cada función.
Si desea crear un modelo de regresión pero sospecha que un ajuste suave funcionaría mejor, GAM es una buena opción. Son adecuados para datos no lineales o ruidosos.
7 accesorios de juego
Entonces, ¿qué te parece? ¿Creado para los datos en forma de S anteriores? ¿Modo GAM? ¿Aquí solo uso regresión spline cúbica? :
gam(Y ~ s(X, bs="cr ")
La configuración anterior significa:
s() especifica un suavizado. Hay otras opciones, pero s es un buen valor predeterminado.
BS = "Cr " le indica que utilice la función spline de regresión cúbica ('base')
s El número predeterminado de. nudos a usar, pero puedes cambiarlo a k=10, por ejemplo 10 nudos
8 Salida del modelo:
Ver resumen del modelo:
### #Familia: Gaussiana##Función de enlace: Identidad##Coeficiente de parámetro:##Desviación estándar estimada Valor de prueba de error Pr(>|t|)##(intercepción)? ## - ##Bits válidos:? 0 '***' 0.001 '**' 0.01 '*' 0.05 '.'0.1 ' ' 1####Significado aproximado del término suave: ## edf Ref.df. F valor p## s(X) 6.087?7.143 296.3 ?& lt2e-16 ***## - ##Bits válidos:? 0 '***' 0.001 '**' 0.01 '*' 0.05 '. .'0.1 ' ' 1#### R-sq. (adj) = 0.876 ?Desviación explicada = 87.9%## Tamaño estimado = 206.93 n = 300
Muestra los coeficientes del modelo de nuestra intercepción, todos los parámetros no suavizados se mostrará aquí.
El significado general de cada término de suavizado es el siguiente
Esto se basa en los "grados de libertad efectivos". su uso se puede extender a muchos parámetros, pero también los estamos penalizando, reduciendo su impacto.
9 Verifique el modelo:
¿Debería ser gam.check()? se utiliza para observar el gráfico residual, pero también puede probar el más suave para ver si hay suficientes nudos para describir los datos. Pero si el valor p es bajo, se necesitan más nudos p>
Haga clic para ingresar. la descripción de la imagen
####Método: GCV? Optimizador: magic##El gradiente fraccional de RMS GCV en la convergencia es 1.107369e-05 ## Clasificación del modelo =? #Resultado de la verificación del tamaño básico (k) ## significa que k es demasiado bajo, especialmente cuando edf está cerca de k' ####¿Es el valor p del índice edf k# # s(X)9.00 6.09 1.1 0.97
¿10 mejor que el modelo lineal?
Comparemos el modelo de regresión lineal ordinario para los mismos datos:
ANOVA (mi lm, mi gam)
# #Tabla ANOVA####Modelo 1: Y ~ X## Modelo 2: Y ~ s(X, bs = "cr")##? Res.Df? RSS ¿Df suma de cuadrados? PR(>f) # # 1 298,00 88154 # # 2 292,91 60613 5,0873 27540 26,161 <2.2e-16 ***## - ## dígitos válidos. Código:? 0 '***' 0.001 '**' 0.01 '*' 0.05 '.'0.1 ' ' 1
Nuestra función ANOVA realiza la prueba f aquí, y nuestro modelo GAM es significativamente mejor que la regresión lineal .
11 Resumen
Vimos qué es un modelo de regresión y cómo explicamos una variable Y y otra variable x. Uno de los supuestos básicos es una relación lineal, pero no siempre es así. Podemos usar funciones para cambiar esta forma a medida que la relación cambia en el rango de x. Un buen enfoque es unir curvas suaves en puntos de "nudos", que llamamos "splines".
Podemos usar estos splines en regresión regular, pero si estamos en GAM con el uso en segundo plano, también necesitamos estimar el modelo de regresión y cómo hacer que nuestro modelo sea más suave.
El ejemplo anterior muestra un GAM basado en splines, cuyo ajuste es mucho mejor que el modelo de regresión lineal.
12 Referencias:
Nelder, J. A. Wedelbourne, 1972. Modelo lineal generalizado. Revista de la Real Sociedad de Estadística. Serie A (general), 135, 370-384.
Harrell, F. E., JR 2001. Estrategias de modelado de regresión, Nueva York, Springer-Verlag, Nueva York.
Haga clic para ingresar una descripción de la imagen.
El punto de vista más popular
El caso de aplicación de la regresión logística múltiple en 1. lenguaje r
2. Implementación del caso de análisis de regresión de transición suave de panel (PSTR).
3.3. Regresión de mínimos cuadrados parciales (PLSR) y regresión de componentes principales (PCR) en matlab
4 Caso de estudio del modelo de regresión de Poisson en lenguaje R
5. Prueba de bondad de ajuste de Hosmer-Lemeshow en regresión en lenguaje R
6. Implementación en lenguaje R de regresión de lazo, regresión de cresta y modelo de red elástica
7. regresión logística.
8.Python utiliza la regresión lineal para predecir los precios de las acciones.
9. ¿Cómo calcula el lenguaje R los índices IDI y NRI en el análisis de supervivencia y la regresión de Cox?