ランダム効果を追加すると係数推定に影響します


10

変量効果は分散(誤差)にのみ影響し、固定効果は平均にのみ影響することを常に教えられてきました。しかし、ランダムな効果が平均にも影響を与える例を見つけました-係数推定:

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
y[c(1:(n/2), (n*k-n/2):(n*k))] <- NA

m1 <- lm(y ~ x)
summary(m1)

m2 <- lm(y ~ cat + x)
summary(m2)

m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
summary(m3)

xモデルからの推定係数m1は-0.013780ですが、モデルからは0.0011713であり、m3どちらもゼロとは大幅に異なります。

行方不明のデータをシミュレートする行を削除すると、結果は同じになることに注意してください(完全な行列です)。

何故ですか?

PS:私はプロの統計家ではないので、たくさんの数学で答えようとしているのであれば、ダミーの簡単な要約も書いてください:-)


「モデルm3からは0.0011713です」の代わりにと言いたいと思いますm2
usεr11852

@ user11852、申し訳ありませんが、正解です。ありがとうございます。(ところで、m2それは有効です(これは別の質問の対象です)
好奇心が強い

回答:


11

「変量効果は分散(誤差)にのみ影響し、固定効果は平均にのみ影響することを常に教えられてきました。」

あなたが発見したように、これは連続的な予測子のないバランスのとれた、完全な(つまり、欠落データがない)データセットにのみ当てはまります。つまり、古典的なANOVAテキストで説明されている種類のデータ/モデルの場合です。これらの理想的な状況下では、固定効果と変量効果は互いに独立して推定できます。

これらの条件が満たされない場合(非常に頻繁に「現実の世界」にはないため)、固定効果とランダム効果は独立していません。興味深いことに、これが「現代の」混合モデルが、古典的な混合ANOVAの場合のように行列代数のビットで正確に解決されるのではなく、反復最適化法を使用して推定される理由です。固定効果を推定するには、変量効果を知っていますが、変量効果を推定するには、固定効果を知る必要があります!これは、現在の質問に関連しており、データが不均衡/不完全である場合、および/またはモデルに連続的な予測子がある場合、混合モデルの変量効果構造を調整すると、モデルの固定部分の推定値が変わる可能性があることも意味します、 およびその逆。

2016-07-05を編集。コメントから:「継続的な予測変数がモデルの固定部分の推定に影響を与える理由を詳しく説明または引用していただけますか?

(ではない場合のみ)場合の分散- 、推定された分散成分である-モデルの固定部分の推定値は、モデルのランダム部分の推定値に依存する予測子のクラスタ間で異なります。いずれかの予測子が連続している場合、これはほぼ確実に真になります(少なくとも「現実の世界」のデータでは-理論的には、たとえば構築されたデータセットでは、これが真ではない可能性があります)。


継続的な予測子がモデルの固定部分の推定に影響を与える理由について詳しく説明または引用していただけますか?
robin.datadrivers 2016年

@ robin.datadrivers OK少し追加しました
Jake Westfall

3

最初のレベルでは、人口値への縮小を無視していると思います。" 混合効果モデルからの被験者ごとの勾配と切片は、被験者内最小二乗推定よりも母集団推定に近くなっています。 " [参照。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ページ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.