0

subjectwd、およびgroup変数とvalue応答変数を含むデータ フレームがあります。各被験者は 1 つのグループに割り当てられ、平日に 7 回測定されます。subject各被験者はグループ内で完全に入れ子になっているため、入れ子になったランダム効果モデルをとgroupで使用し、さらに に 3 つ目のランダム効果を追加したいと考えていますwd。現在、私はこれを使用してそうしています:

model = lmer(value ~ 1+ (1|wd) + (1|group) + (1|subject), 
             data = dframe, REML = 0)

このガイドの 40 ページに基づいたコードを見つけました。と の両方を使用REML = TRUEREML = 0ました。ただし、を使用するVarCorr(model)$variancesと、

Groups   Name        Std.Dev.  
subject  (Intercept) 94.9534363
wd       (Intercept) 42.5931401
group    (Intercept)  0.0015608
Residual              0.9589836

この群分散は、36.9、28.78、および -15.269 の群平均を持つデータを生成するために使用したコードと競合します。ranef予測された変量効果 ( を使用) と真の変量効果の「残差」を見ると、それらが属するグループと非常に高い相関を持つ残差が得られます (モデル化しresiduals ~ groupた場合、R 二乗値は 0.9 を超えます)。

Rでネストされたランダム効果モデルを適切に適合させるにはどうすればよいですか? 私は lme4 を使用することを好みますが、どのパッケージでも十分です。

データの生成に使用したコードは次のとおりです。

library(dplyr)
generate_data <- function(n = 10, g = 3, seed = 1, mean.overall = 300,
                          sigma.g = 50, sigma.wd = 50, 
                          sigma.subject = 100, sigma. = 30) {
    set.seed(seed)
    means.wd = rnorm(7) * sigma.wd
    means.g = rnorm(g) * sigma.g
    means.subject = rnorm(n*g) * sigma.subject
    dframe = data.frame(subject = rep(1:(g*n), each = 7),
                        wd = rep(1:7, g*n), 
                        group = rep(1:g, each = (7*n)))
    dframe = mutate(dframe,
       value = mean.overall + means.wd[wd] +    
           means.subject[subject] + means.g[group] + rnorm(7*g*n),
       subject = factor(subject, levels = 1:(n*g)),
       wd = factor(wd), 
       group = factor(group, levels = 1:g))
    dframe$value = round(pmax(5,dframe$value))
    truefx = list(wd = means.wd, group = means.g, 
                  subject = means.subject)
    list(data = dframe, effects = truefx)
}

dframe = generate_data()$data
4

1 に答える 1

0

いくつかのレベルしかないので、固定効果としてグループが必要だと思います。また、件名/平日の組み合わせごとに観測が 1 つしかないため、件名内の平日のネストは不要に感じます。もしそうなら、必要なのは

lmer(value ~ group + (1|subject), data = dframe)

ただし、曜日が実際に件名にネストされているかどうかは明らかではありません。これらがすべての科目ですべて同じ平日である場合は、別のものがより適切である可能性があります。ただし、それは stats.stackexchange.com にとってより良い質問です。

本当にこれらをネストしたい場合は、このようなものがうまくいくかもしれません。

lmer(value ~ (1|group/subject/wd), data = dframe)
于 2015-05-15T17:11:54.030 に答える