GAM adaptatif lisse en mgcv

9

Le livre de Simon Wood sur les GAM et son package R associé mgcv sont à la fois très détaillés et informatifs en ce qui concerne la théorie GAM et l'ajustement du modèle aux données réelles et simulées.

Pour les lissages 1D, il n'y a vraiment pas grand-chose à craindre, sauf pour décider d'implémenter des fonctions de base cycliques ou adaptatives, qui peuvent donner des résultats de prédiction très différents par rapport aux lissages cubiques, à plaques minces et à splines P, car, dans le cas adaptatif, plusieurs GAM sont adaptés à différentes régions le long d'une spline. Pour autant que je sache, les bases cycliques sont courantes dans la modélisation des séries chronologiques, alors que les lissages adaptatifs doivent être pris en compte lorsque les données varient beaucoup par rapport à la variable de réponse; cependant, les lissages adaptatifs doivent être utilisés «avec parcimonie et avec soin».

J'étudie les GAM depuis un certain temps maintenant, et compte tenu de ma question de recherche, je me retrouve beaucoup à changer d'avis en ce qui concerne la fluidité de la mise en œuvre. mgcv comprend 17 lissages différents au choix (selon mon compte). J'ai considéré les lissages cubiques et P-spline.

Ma question est maintenant : quand les lissages adaptatifs devraient-ils être envisagés par rapport à leurs homologues non adaptatifs, si l'objectif final est d'utiliser des GAM ajustés à des fins de prédiction? Pour mes besoins, je m'en tiens au critère de lissage GCV par défaut, même s'il a tendance à sous-lisser.

La littérature se développe dans les GAM écologiques appliqués, mais je n'ai pas encore trouvé d'étude qui implémente un lissage adaptatif.

Tout conseil est apprécié.

compbiostats
la source

Réponses:

20

La plupart des lissages supplémentaires dans la boîte à outils mgcv sont vraiment là pour les applications spécialisées - vous pouvez les ignorer en grande partie pour les GAM généraux, en particulier les lissages univariés (vous n'avez pas besoin d'une spline à effet aléatoire, d'une spline sur la sphère, d'un champ aléatoire Markov, ou un film de savon plus lisse si vous avez des données univariées par exemple.)

Si vous pouvez supporter le coût d'installation, utilisez des splines de régression à plaque mince (TPRS).

Ces splines sont optimales dans un sens MSE asymptotique, mais nécessitent une fonction de base par observation. Ce que Simon fait dans mgcv est de générer une version de bas rang du TPRS standard en prenant la base TPRS complète et en la soumettant à une composition par eigend. Cela crée une nouvelle base où la première kfonction de base dans le nouvel espace conserve la plupart du signal dans la base d'origine, mais dans beaucoup moins de fonctions de base. C'est ainsi que mgcv parvient à obtenir un TPRS qui utilise uniquement un nombre spécifié de fonctions de base plutôt qu'une par observation. Cette composition numérique préserve une grande partie de l'optimalité de la base TPRS classique, mais avec un effort de calcul considérable pour les grands ensembles de données.

Si vous ne pouvez pas supporter le coût d'installation de TPRS, utilisez des splines de régression cubiques (CRS)

C'est une base rapide à générer et convient donc aux problèmes avec beaucoup de données. Il est basé sur les nœuds, cependant, dans une certaine mesure, l'utilisateur doit maintenant choisir où ces nœuds doivent être placés. Pour la plupart des problèmes, il y a peu à gagner à aller au-delà du placement par défaut des nœuds (à la limite des données et à un espacement uniforme entre les deux), mais si vous avez un échantillonnage particulièrement inégal sur la plage de la covariable, vous pouvez choisir de placer des nœuds des quantiles d'échantillon régulièrement espacés de la covariable, par exemple.

Chaque autre lissage en mgcv est spécial, utilisé lorsque vous souhaitez des lissages isotropes ou deux covariables ou plus, ou pour le lissage spatial, ou qui implémentent un rétrécissement, ou des effets aléatoires et des splines aléatoires, ou lorsque les covariables sont cycliques, ou que la ondulation varie au cours l'étendue d'une covariable. Vous ne devez vous aventurer loin dans la boîte à outils lisse si vous avez un problème qui nécessite un traitement spécial.

Rétrécissement

Il existe des versions à retrait du TPRS et du CRS en mgcv . Ceux-ci mettent en œuvre une spline où la partie parfaitement lisse de la base est également soumise à la pénalité de douceur. Cela permet au processus de sélection de la fluidité de rétrécir un fond lisse au-delà d'une fonction même linéaire essentiellement à zéro. Cela permet à la pénalité de douceur d'effectuer également la sélection des fonctionnalités.

Splines Duchon, splines P et splines B

Ces splines sont disponibles pour les applications spécialisées où vous devez spécifier séparément l'ordre de base et l'ordre de pénalité. Les splines de Duchon généralisent le TPRS. J'ai l'impression que des splines P ont été ajoutées à mgcv pour permettre la comparaison avec d'autres approches pénalisées basées sur la vraisemblance, et parce que ce sont des splines utilisées par Eilers & Marx dans leur article de 1996 qui a stimulé une grande partie du travail ultérieur dans les GAM. Les splines P sont également utiles comme base pour d'autres splines, comme les splines avec des contraintes de forme et les splines adaptatives.

Les splines B, telles qu'elles sont implémentées dans mgcv, offrent une grande flexibilité dans la configuration de la pénalité et des nœuds pour les splines, ce qui peut permettre une certaine extrapolation au-delà de la plage des données observées.

Splines cycliques

Si la plage de valeurs d'une covariable peut être considérée comme sur un cercle où les points finaux de la plage doivent être équivalents (mois ou jour de l'année, angle de mouvement, aspect, direction du vent), cette contrainte peut être imposée à la base. Si vous avez des covariables comme celle-ci, il est logique d'imposer cette contrainte.

Lissoirs adaptatifs

Plutôt que d'intégrer un GAM séparé dans les sections de la covariable, les splines adaptatives utilisent une matrice de pénalité pondérée, où les poids peuvent varier en douceur sur la plage de la covariable. Pour les splines TPRS et CRS, par exemple, ils supposent le même degré de lissage sur toute la plage de la covariable. Si vous avez une relation où ce n'est pas le cas, vous pouvez finir par utiliser plus de degrés de liberté que prévu pour permettre à la spline de s'adapter aux parties ondulées et non ondulées. Un exemple classique dans la littérature sur le lissage est le

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()

entrez la description de l'image ici

Ces données présentent clairement des périodes de lissage différent - effectivement nul pour la première partie de la série, beaucoup lors de l'impact, diminuant par la suite.

si nous adaptons un GAM standard à ces données,

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

nous obtenons un ajustement raisonnable, mais il y a une certaine ondulation supplémentaire au début et à la fin de la plage timeset de l'ajustement utilisé ~ 14 degrés de liberté

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

entrez la description de l'image ici

Pour s'adapter à la fluctuation variable, une spline adaptative utilise une matrice de pénalité pondérée avec des poids variant en douceur avec la covariable. Ici, je réaménage le modèle d'origine avec la même dimension de base (k = 20) mais nous avons maintenant 5 paramètres de lissage (par défaut m = 5) au lieu du 1 d'origine.

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

Notez que ce modèle utilise beaucoup moins de degrés de liberté (~ 8) et la douceur ajustée est beaucoup moins ondulante aux extrémités, tout en étant capable de s'adapter adéquatement aux grands changements de l'accélération de la tête pendant l'impact.

entrez la description de l'image ici

Ce qui se passe réellement ici, c'est que la spline a une base pour le lissage et une base pour la pénalité (pour permettre aux poids de varier en douceur avec la covariable). Par défaut , ces deux éléments sont splines P, mais vous pouvez également utiliser les types de base de CRS aussi ( bsne peut être l' un 'ps', 'cr', 'cc', 'cs'.)

Comme illustré ici, le choix d'adapter ou non dépend vraiment du problème; si vous avez une relation pour laquelle vous supposez que la forme fonctionnelle est lisse, mais que le degré de lissage varie sur la plage de la covariable dans la relation, alors une spline adaptative peut avoir un sens. Si votre série a connu des périodes de changement rapide et des périodes de changement faible ou plus progressif, cela pourrait indiquer qu'un lissage adaptatif peut être nécessaire.

Gavin Simpson
la source
1
Merci Gavin! C'est vraiment une excellente réponse qui, je pense, aidera également d'autres personnes ayant la même préoccupation.
compbiostats
Pour mon problème, j'ai ajusté une courbe croissante monotone qui a fini par créer des plateaux à une asymptote horizontale. Au début de ma courbe, les données augmentent assez rapidement, avant de finalement ralentir vers une asymptote. Dans certains cas, une extrapolation (proche / éloignée) au-delà de la plage des données observées est nécessaire. Mes modèles sont très simples, mais je me rends compte que les prédictions ici sont au mieux spéculatives.
compbiostats