Lmer () peut-il utiliser des splines comme effets aléatoires?

19

Supposons que nous travaillons sur un modèle à effets aléatoires de certaines données de comptage au fil du temps, et que nous voulons contrôler certaines tendances. Normalement, vous feriez quelque chose comme:

lmer(counts ~ dependent_variable + (1+t+I(t^2)|ID), family="poisson")

pour inclure une forme quadratique pour t. Est-il possible d'utiliser des techniques de lissage plus sophistiquées comme un lisseur LOESS ou des splines pour modéliser cette relation?

Fomite
la source

Réponses:

25

Si ce que vous montrez fonctionne pour une lmerformule pour un terme d'effets aléatoires, vous devriez pouvoir utiliser les fonctions du paquet de splines fourni avec R pour configurer les fonctions de base pertinentes.

require("lme4")
require("splines")
lmer(counts ~ dependent_variable + (bs(t) | ID), family="poisson")

Selon ce que vous voulez faire, vous devriez également regarder le paquet gamm4 et le paquet mgcv . Le premier formalise essentiellement le bs()bit dans l' lmer()appel ci-dessus et permet d'effectuer une sélection de lissage dans le cadre de l'analyse. Ce dernier avec fonction gam()permet une certaine flexibilité dans l'ajustement de modèles comme celui-ci (si je comprends ce que vous essayez de faire). Il semble que vous souhaitiez des tendances distinctes à l'intérieur ID? Une approche à effets plus fixes serait quelque chose comme:

gam(counts ~ dependent_variable + ID + s(t, by = ID) , family="poisson")

Des effets aléatoires peuvent être inclus dans les gam()modèles en utilisant les s(foo, bs = "re")termes de type où se footrouverait IDdans votre exemple. Que ce soit logique de combiner l' byidée de terme avec un effet aléatoire est quelque chose à penser et non quelque chose que je suis qualifié pour commenter.

Réintégrer Monica - G. Simpson
la source