GAM adaptativo suaviza en mgcv

9

El libro de Simon Wood sobre GAM y su mgcv de paquete R asociado son muy detallados e informativos cuando se trata de la teoría GAM y el ajuste del modelo a datos reales y simulados.

Para los suavizados 1D, realmente no hay mucho de qué preocuparse, excepto para decidir si implementar funciones de base cíclicas o adaptativas, que pueden dar resultados de predicción muy diferentes en comparación con los suavizados cúbicos, de placa delgada y P-spline, porque, en el caso adaptativo, múltiples GAM se ajustan a diferentes regiones a lo largo de una spline. Por lo que puedo decir, las bases cíclicas son comunes en el modelado de series de tiempo, mientras que los suavizados adaptativos deben considerarse cuando los datos varían mucho con respecto a la variable de respuesta; sin embargo, los suavizados adaptativos deben usarse "con moderación y con cuidado".

He estado investigando sobre GAM durante algún tiempo y, dada mi pregunta de investigación, me encuentro cambiando mucho de opinión cuando se trata de una implementación sencilla. mgcv incluye 17 suaves diferentes para elegir (según mi recuento). He considerado los suavizados cúbicos y P-spline.

Mi pregunta ahora es : ¿cuándo deberían considerarse los suavizados adaptativos sobre sus contrapartes no adaptativas, si el objetivo final es utilizar GAM ajustados para fines de predicción? Para mis propósitos, me mantengo con el criterio predeterminado de suavidad del GCV, a pesar de que tiende a suavizarse por debajo.

La literatura está creciendo en GAM ecológicos aplicados, pero todavía tengo que encontrar un estudio que implemente una adaptación suave.

Cualquier consejo es apreciado.

compbiostatos
fuente

Respuestas:

20

La mayoría de los suavizados adicionales en la caja de herramientas de mgcv realmente están ahí para aplicaciones especializadas: puede ignorarlos en gran medida para los GAM generales, especialmente los suavizados univariados (no necesita una spline de efecto aleatorio, una spline en la esfera, un campo aleatorio de Markov, o un suavizador de película de jabón si tiene datos univariados, por ejemplo).

Si puede soportar el costo de instalación, use splines de regresión de placa delgada (TPRS).

Estas splines son óptimas en un sentido asintótico MSE, pero requieren una función base por observación. Lo que Simon hace en mgcv es generar una versión de bajo rango del TPRS estándar tomando la base TPRS completa y sometiéndola a una descomposición propia. Esto crea una nueva base donde la kfunción de primera base en el nuevo espacio retiene la mayor parte de la señal en la base original, pero en muchas menos funciones básicas. Así es como mgcv logra obtener un TPRS que usa solo un número específico de funciones básicas en lugar de una por observación. Esta descomposición propia conserva gran parte de la optimización de la base clásica de TPRS, pero a un considerable esfuerzo computacional para grandes conjuntos de datos.

Si no puede soportar el costo de configuración de TPRS, use splines de regresión cúbica (CRS)

Esta es una base rápida para generar y, por lo tanto, es adecuada para problemas con una gran cantidad de datos. Sin embargo, está basado en nudos, por lo que hasta cierto punto el usuario ahora debe elegir dónde deben colocarse esos nudos. Para la mayoría de los problemas, hay poco que ganar al ir más allá de la ubicación predeterminada del nudo (en el límite de los datos y espaciado uniformemente entre ellos), pero si tiene un muestreo particularmente desigual sobre el rango de la covariable, puede elegir colocar nudos Por ejemplo, cuantiles de muestra uniformemente espaciados de la covariable.

Todos los demás suavizados en mgcv son especiales, ya que se usan donde desea suavizados isotrópicos o dos o más covariables, o para suavizado espacial, o que implementan contracción, o efectos aleatorios y splines aleatorios, o donde las covariables son cíclicas, o la ondulación varía El rango de una covariable. Usted solamente tiene que aventurarse tan lejos en la caja de herramientas sin problemas si tiene un problema que requiere un manejo especial.

Contracción

Hay versiones de contracción de TPRS y CRS en mgcv . Estos implementan una ranura donde la parte perfectamente lisa de la base también está sujeta a la penalidad de suavidad. Esto permite que el proceso de selección de suavidad reduzca un retroceso suave incluso más allá de una función lineal esencialmente a cero. Esto permite que la penalización de suavidad también realice la selección de funciones.

Duchon splines, P splines y B splines

Estas splines están disponibles para aplicaciones especializadas en las que necesita especificar el orden base y el orden de penalización por separado. Las estrías de Duchon generalizan el TPRS. Tengo la impresión de que se agregaron splines P a mgcv para permitir la comparación con otros enfoques basados ​​en la probabilidad penalizados, y porque son splines utilizados por Eilers & Marx en su artículo de 1996 que impulsaron gran parte del trabajo posterior en GAM. Las splines P también son útiles como base para otras splines, como splines con restricciones de forma y splines adaptativas.

Las splines B, tal como se implementan en mgcv, permiten una gran flexibilidad al configurar la penalización y los nudos para las splines, lo que puede permitir una extrapolación más allá del rango de los datos observados.

Estrías cíclicas

Si el rango de valores para una covariable puede considerarse como en un círculo donde los puntos finales del rango deberían ser equivalentes (mes o día del año, ángulo de movimiento, aspecto, dirección del viento), esta restricción puede imponerse la base. Si tiene covariables como esta, entonces tiene sentido imponer esta restricción.

Alisadores adaptativos

En lugar de ajustar un GAM separado en secciones de la covariable, las splines adaptativas utilizan una matriz de penalización ponderada, donde se permite que los pesos varíen suavemente en el rango de la covariable. Para las splines TPRS y CRS, por ejemplo, asumen el mismo grado de suavidad en todo el rango de la covariable. Si tiene una relación donde este no es el caso, puede terminar usando más grados de libertad de lo esperado para permitir que la ranura se adapte a las partes onduladas y no onduladas. Un ejemplo clásico en la literatura de suavizado es el

library('ggplot2')
theme_set(theme_bw())
library('mgcv')
data(mcycle, package = 'MASS')
pdata <- with(mcycle,
              data.frame(times = seq(min(times), max(times), length = 500)))

ggplot(mcycle, aes(x = times, y = accel)) + geom_point()

ingrese la descripción de la imagen aquí

Estos datos exhiben claramente períodos de diferente suavidad: efectivamente cero para la primera parte de la serie, lotes durante el impacto, reduciéndose posteriormente.

si ajustamos un GAM estándar a estos datos,

m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')

obtenemos un ajuste razonable pero hay un poco de movimiento adicional al principio y al final del rango timesy el ajuste utilizado ~ 14 grados de libertad

plot(m1, scheme = 1, residuals = TRUE, pch= 16)

ingrese la descripción de la imagen aquí

Para acomodar la variabilidad del wiggliness, una spline adaptativa utiliza una matriz de penalización ponderada con los pesos que varían suavemente con la covariable. Aquí reajusto el modelo original con la misma dimensión base (k = 20) pero ahora tenemos 5 parámetros de suavidad (el valor predeterminado es m = 5) en lugar del 1 original.

m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')

Tenga en cuenta que este modelo usa muchos menos grados de libertad (~ 8) y que la suavidad ajustada es mucho menos ondulante en los extremos, al tiempo que puede adaptarse adecuadamente a los grandes cambios en la aceleración de la cabeza durante el impacto.

ingrese la descripción de la imagen aquí

Lo que realmente sucede aquí es que la spline tiene una base para suavizar y una base para la penalización (para permitir que los pesos varíen suavemente con la covariable). Por defecto ambos son P estrías, pero también se puede utilizar los tipos básicos de CRS también ( bssólo puede ser uno de 'ps', 'cr', 'cc', 'cs'.)

Como se ilustra aquí, la elección de si se adapta o no realmente depende del problema; Si tiene una relación para la cual asume que la forma funcional es suave, pero el grado de suavidad varía en el rango de la covariable en la relación, entonces una spline adaptativa puede tener sentido. Si su serie tuvo períodos de cambio rápido y períodos de cambio bajo o más gradual, eso podría indicar que puede ser necesaria una adaptación suave.

Gavin Simpson
fuente
1
Gracias Gavin! Esta es realmente una excelente respuesta que creo que también ayudará a otros con la misma preocupación.
compbiostatos
Para mi problema, ajusto una curva monotónica creciente que finalmente se estabiliza en una asíntota horizontal. Al comienzo de mi curva, los datos aumentan bastante rápido, antes de reducirse a una asíntota. En algunos casos, es necesaria una extrapolación (cercana / lejana) más allá del rango de datos observados. Mis modelos son muy simples, pero me doy cuenta de que las predicciones aquí son especulativas en el mejor de los casos.
compbiostatos