2016-05-02 3 views
0

Я пытаюсь извлечь отдельные элементы из таблицы случайных эффектов, содержащихся в объекте, созданном сводным вызовом модели смешанных эффектов. В частности, я хочу извлечь каждый из случайных эффектов уровня 2.Извлечение элементов из вывода в модели смешанных эффектов с использованием nlme

Игрушка данных:

set.seed(1234) 
score <- c(rnorm(8, 20, 3), rnorm(8, 35, 5)) 
rep <- rep(c(0,1,2,3), each = 8) 
group <- rep(0:1, times = 16) 
id <- factor(rep(1:8, times = 4)) 

df <- data.frame(id, group, rep, score) 

Теперь создать модель

require(nlme) 

modelLME <- summary(lme(score ~ group*rep, data = df, random = ~ rep|id)) 

modelLME 

Когда мы называем его мы получим вывод

Linear mixed-effects model fit by REML 
Data: df 
     AIC  BIC logLik 
    219.6569 230.3146 -101.8285 

Random effects: 
Formula: ~rep | id 
Structure: General positive-definite, Log-Cholesky parametrization 
      StdDev  Corr 
(Intercept) 2.664083e-04 (Intr) 
rep   2.484345e-05 0  
Residual 7.476621e+00  

Fixed effects: score ~ group * rep 
       Value Std.Error DF t-value p-value 
(Intercept) 22.624455 3.127695 22 7.233587 0.0000 
group  -1.373324 4.423229 6 -0.310480 0.7667 
rep   2.825635 1.671823 22 1.690152 0.1051 
group:rep 0.007129 2.364315 22 0.003015 0.9976 
Correlation: 
      (Intr) group rep 
group  -0.707    
rep  -0.802 0.567  
group:rep 0.567 -0.802 -0.707 

Standardized Within-Group Residuals: 
     Min   Q1   Med   Q3   Max 
-1.86631781 -0.74498367 0.03515508 0.76672652 1.91896578 

Number of Observations: 32 
Number of Groups: 8 

Теперь я могу извлечь остатки от случайных эффектов таблица выше через

modelLME$sigma 

Но я не могу найти значение в (Intercept) и rep строках StdDev столбца таблицы случайных эффектов в этом выводе (2.664083e-04 и 2.484345e-05 соответственно) Он должен быть где-то там, и я смотрел через поиск str(modelLME) но я не может найти его.

+0

Вы правы @beetroot. Спасибо, что помогли мне найти его, он отлично ответил на мой вопрос. – llewmills

ответ

0

Вы хотите что-то вроде этого?

library(nlme) 
library(broom) 

modelLME = lme(score ~ group*rep, data = df, random = ~ rep|id) 
tidy(modelLME) 
+0

Привет, @bramtayl, спасибо за ответ, но ответ, который я искал, был в дублированном вопросе, замеченном @beetroot. Функция 'VarCorr' как в' nlme', так и в 'lme4' дает вам всю таблицу остатков, а затем вы можете использовать' [,] 'subsetter для извлечения нужного элемента. – llewmills

Смежные вопросы