20 votos

¿Puede lmer() utilizar splines como efectos aleatorios?

Digamos que estamos trabajando en un modelo de efectos aleatorios de algunos datos de conteo en el tiempo, y queremos controlar algunas tendencias. Normalmente, usted haría algo como:

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

para incluir una forma cuadrática para t . ¿Es posible utilizar algunas técnicas de suavizado más sofisticadas, como un suavizador LOESS o splines, para modelar esa relación?

27voto

David J. Sokol Puntos 1730

Si lo que muestra funciona para un lmer para un término de efectos aleatorios, debería poder utilizar las funciones del splines que viene con R para configurar las funciones base pertinentes.

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

Dependiendo de lo que quieras hacer, también deberías mirar el gamm4 y el paquete mgcv paquete. El primero consiste esencialmente en formalizar el bs() bit en el lmer() y permite la selección de la suavidad como parte del análisis. Esto último con la función gam() permite cierto grado de flexibilidad en el ajuste de modelos como éste (si entiendo lo que está tratando de hacer). Parece que quiere separar las tendencias dentro de ID ? Un enfoque más de efectos fijos sería algo así:

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

Los efectos aleatorios pueden incluirse en gam() modelos utilizando el s(foo, bs = "re") términos de tipo donde foo sería ID en su ejemplo. Si tiene sentido combinar el by La idea del término con un efecto aleatorio es algo que hay que pensar y no estoy cualificado para comentarlo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X