Comment spécifier des effets aléatoires dans lme?

8

J'ai cherché cela en ligne pendant des heures, mais aucun des messages en ligne n'est ce que je recherche. Ma question est très facile à implémenter dans la procédure mixte SAS Proc mais je ne sais pas comment le faire dans les packages lme et / ou lmer. Supposons que j'ai un modèle, , où est fixe mais et sont aléatoires. Mon code R esty=μ+α+β+αβ+eαβαβ

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

Erreur: inattendue =dans:

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

Quelqu'un pourrait-il me dire comment spécifier ces effets aléatoires dans lme? Merci d'avance

Tu.2
la source
Il aide à dputobtenir le code nécessaire pour recréer vos données. D'après le commentaire que vous avez laissé, le résultat eststructure(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 a quitté Stack Overflow

Réponses:

12

Essayez ceci, c'est une façon standard de faire un tracé divisé. La notation /signifie que la méthode est imbriquée dans day.

lme(level~method, random=~1|day/method, data=d)
Aaron a laissé Stack Overflow
la source
Salut Aaron, Merci beaucoup. Votre sortie R est exactement la même avec la sortie SAS et le manuel. Mais pourquoi nous devons utiliser "imbriqué" dans la syntaxe R. Parce que dans le manuel, il indique clairement que est un terme d'interaction aléatoire et j'utilise également le terme d'interaction aléatoire dans SAS. Pourriez-vous me dire pourquoi / comment spécifier un effet d'interaction aléatoire dans lme, si cela est possible? merci beaucoup Tu.2αβ
Tu.2
3
Votre question n'est pas sur la syntaxe R, mais sur ce que signifie l'imbrication. L'imbrication de B dans A (avec A / B) crée deux variables, A et l'interaction entre A et B, qui est exactement ce que vous décrivez.
Aaron a quitté Stack Overflow
Salut, c'est une excellente explication. Merci beaucoup.
Tu.2
2

Cela aiderait beaucoup si vous fournissiez un data.frame. Maintenant, il n'est pas clair ce qu'est un facteur de regroupement. Je juge que c'est . Ensuite, en notation, votre modèle doit être écrit comme suit:βlme

lme(y~a,random=~a|b, data=mydata)
mpiktas
la source
Bonjour mpiktas, merci pour votre réponse mais le résultat R est très différent de la procédure mixte SAS proc. La sortie SAS est la même avec la réponse dans un manuel (Kuehk RO. 1999. Conception des expériences: principes statistiques de la conception et de l'analyse de la recherche, 2e édition). L'ensemble de données est le niveau jour de la méthode 1 1142,3 1 1144,0 1 2134,9 1 2146,3 1 3148,6 1 3156,5 1 4152,0 1 4151,4 2 1142,9 2 1147,4 2 2125,9 2 2127,6 6 2 3135,5 2 3138,9 2 4 142,9 2 4142,3
Tu.2