J'essaie de comprendre comment contrôler les paramètres de lissage dans un modèle mgcv: gam.
J'ai une variable binomiale que j'essaie de modéliser principalement en fonction des coordonnées x et y sur une grille fixe, ainsi que d'autres variables avec des influences plus mineures. Dans le passé, j'ai construit un modèle de régression local relativement bon en utilisant le package locfit et uniquement les valeurs (x, y).
Cependant, je veux essayer d'incorporer les autres variables dans le modèle, et il semblait que les modèles additifs généralisés (GAM) étaient une bonne possibilité. Après avoir examiné les packages gam et mgcv, qui ont tous deux une fonction GAM, j'ai opté pour ce dernier car un certain nombre de commentaires dans les discussions de la liste de diffusion semblent le recommander. Un inconvénient est qu'il ne semble pas soutenir une régression locale plus douce comme le loess ou le locfit.
Pour commencer, je voulais juste essayer de répliquer approximativement le modèle locfit, en utilisant seulement les coordonnées (x, y). J'ai essayé avec des lissages de produits réguliers et tenseurs:
my.gam.te <- gam(z ~ te(x, y), family=binomial(logit), data=my.data, scale = -1)
my.gam.s <- gam(z ~ s(x, y), family=binomial(logit), data=my.data, scale = -1)
Cependant, en traçant les prévisions à partir du modèle, elles sont beaucoup plus lissées que le modèle locfit. J'ai donc essayé de régler le modèle pour ne pas trop lisser autant. J'ai essayé d'ajuster les paramètres sp et k, mais je ne comprends pas comment ils affectent le lissage. Dans locfit, le paramètre nn contrôle l'étendue du voisinage utilisé, avec des valeurs plus petites permettant moins de lissage et plus de «tremblements», ce qui aide à capturer certaines zones de la grille où la probabilité des résultats binomiaux change rapidement. Comment pourrais-je configurer le modèle gam pour lui permettre de se comporter de la même manière?