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?

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.