最初のレベルでは、人口値への縮小を無視していると思います。" 混合効果モデルからの被験者ごとの勾配と切片は、被験者内最小二乗推定よりも母集団推定に近くなっています。 " [参照。1]。次のリンクも役立つでしょう(私の混合モデルを調べるための適切な説明は何ですか?)、Mike Lawrenceの回答を参照してください)。
さらに、完全にバランスの取れた設計になっているため、欠損値がない場合でもまったく同じ見積もりが得られるため、おもちゃの例では少し不運だと思います。
同じプロセスで、欠損値のない次のコードを試してください。
cat <- as.factor(sample(1:5, n*k, replace=T) ) #This should be a bit unbalanced.
cat_i <- 1:k # intercept per kategorie
x <- rep(1:n, k)
sigma <- 0.2
alpha <- 0.001
y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
m1 <- lm(y ~ x)
m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
round(digits= 7,fixef(m3)) == round(digits=7, coef(m1)) #Not this time lad.
#(Intercept) x
# FALSE FALSE
ここで、設計が完全にバランスしていないため、同じ係数推定はありません。
実際に、抜けている値のパターンと愚かな方法で(たとえば:)遊んだ場合y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA
、デザインがまだ完全にバランスが取れていて、同じ係数が再び得られます。
require(nlme)
set.seed(128)
n <- 100
k <- 5
cat <- as.factor(rep(1:k, each = n))
cat_i <- 1:k # intercept per kategorie
x <- rep(1:n, k)
sigma <- 0.2
alpha <- 0.001
y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
plot(x, y)
# simulate missing data in a perfectly balanced way
y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA
m1 <- lm(y ~ x)
m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
round(digits=7,fixef(m3)) == round(digits=7, coef(m1)) #Look what happend now...
#(Intercept) x
# TRUE TRUE
元の実験の完璧なデザインに少し見当違いです。NAをバランスのとれていない場所に挿入すると、個々の被験者が互いに借用できる「強さ」のパターンが変わりました。
つまり、表示される違いは収縮効果によるものであり、具体的には、完全にバランスされていない欠損値で元の完全にバランスの取れた設計を歪めたためです。
参照1:Douglas Bates lme4:Rによる混合効果モデリング、71〜72ページ
m3
からは0.0011713です」の代わりにと言いたいと思いますm2
。