¿Cómo especificar efectos aleatorios en lme?


8

He buscado esto en línea durante horas, pero ninguna de las publicaciones en línea es lo que estoy buscando. Mi pregunta es muy fácil de implementar en el procedimiento mixto SAS Proc, pero no estoy seguro de cómo hacerlo en los paquetes lme y / o lmer. Supongamos que tengo un modelo, y=μ+α+β+αβ+e, dónde α es fijo pero β y αβson al azar Mi código R es

 f1 = lme(y ~ factor(a), data = mydata,
     random = list(factor(b) = ~ 1, factor(a):factor(b) = ~ 1))

Error: inesperado =en:

 f1 = lme(y ~ factor(a), data = mydata,
          random = list(factor(a) =  

¿Podría alguien decirme cómo especificar estos efectos aleatorios en lme? Muchas gracias de antemano


Ayuda a usar dputpara obtener el código necesario para recrear sus datos. Del comentario que dejaste, el resultado esstructure(list(method = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor"), day = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L), .Label = c("1", "2", "3", "4"), class = "factor"), level = c(142.3, 144, 134.9, 146.3, 148.6, 156.5, 152, 151.4, 142.9, 147.4, 125.9, 127.6, 135.5, 138.9, 142.9, 142.3)), .Names = c("method", "day", "level"), row.names = c(NA, -16L), class = "data.frame")
Aaron dejó Stack Overflow

Respuestas:


12

Pruebe esto, es una forma estándar de hacer un diagrama dividido. La notación /significa que el método está anidado en el día.

lme(level~method, random=~1|day/method, data=d)

Hola Aaron, muchas gracias. Su salida R es exactamente la misma con la salida SAS y el libro de texto. Pero, ¿por qué tenemos que usar "anidado" en la sintaxis R. Porque en el libro de texto, establece claramente queαβes un término de interacción aleatorio y también uso el término de interacción aleatoria en SAS. ¿Podría decirme por qué / cómo especificar un efecto de interacción aleatorio en lme, si es posible? muchas muchas gracias Tu.2
Tu.2

3
Su pregunta no se trata de la sintaxis R, se trata de lo que significa anidar. Anidar B en A (con A / B) crea dos variables, A y la interacción entre A y B, que es exactamente lo que usted describe.
Aaron dejó Stack Overflow

Hola, esta es una gran explicación. Muchas gracias.
Tu.2

2

Sería de gran ayuda si proporcionara un data.frame. Ahora no está claro qué es un factor de agrupación. Juzgo que esβ. Luego, en lmenotación, su modelo debe escribirse de la siguiente manera:

lme(y~a,random=~a|b, data=mydata)

Hola mpiktas, gracias por su respuesta, pero el resultado R es muy diferente del procedimiento mixto de proceso SAS. El resultado de SAS es el mismo con la respuesta en un libro de texto (Kuehk RO. 1999. Diseño de experimentos: principios estadísticos de diseño y análisis de investigación, 2ª edición). El conjunto de datos es el nivel del día del método 1 1 142.3 1 1 144.0 1 2 134.9 1 2 146.3 1 3 148.6 1 3 156.5 1 4 152.0 1 4 151.4 2 1 142.9 2 1 147.4 2 2 125.9 2 2 127.6 2 3 135.5 2 3 138.9 2 4 142.9 2 4
142.3
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.