0

R のマルチレベル回帰モデル、特にレベル 2 の「メジャー」に予測変数を追加する方法について質問があります。

次の例を検討してください (これは実際のデータセットではないため、実際には値があまり意味をなさない可能性があります)。

date        id    count    bmi    poll
2012-08-05  1     3        20.5   1500
2012-08-06  1     2        20.5   1400
2012-08-05  2     0        23     1500
2012-08-06  2     3        23     1400

データには次のものが含まれます

  • 別々の人(「id」...つまり2人です)
  • 各人の体格指数 (「bmi」なので、id 内で変化しません)
  • 各人が特定の日に抱えている心臓の問題の数 (「カウント」)。したがって、人 1 は 8 月 5 日に 3 つの問題がありましたが、人 2 はその日に問題/問題がありませんでした。
  • その日に測定された汚染物質(オゾンや二酸化硫黄など)の量

私の一般的な研究課題は、汚染物質の量が人口の心臓病の数に影響を与えるかどうかです. 最初のステップでは、これは単純な線形回帰である可能性があります: lm(count ~ poll)

しかし、毎日の私のデータは、いわば人の中でクラスター化されています。私は人 1 から 2 つのメジャーと人 2 から 2 つのメジャーを持っています。

したがって、私の基本的なアイデアは、レベル 2 変数として人 (id) を使用してマルチレベル モデルを設定することでした。

この分析には nlme パッケージを使用しました。

lme(fixed=count ~ poll, random = ~poll|id, ...)

これまでのところ問題はありません。

しかし、レベル 2 への真の影響は、私にはさまざまな人物がいるという事実からだけではないかもしれません。むしろ、個人の体内での効果は、その人の bmi (および年齢、喫煙量など、個人に関連する他の多くの変数) からもたらされる可能性がはるかに高くなります。

長い話を短くします:

lme 関数でそのようなレベル 2 予測子を指定するにはどうすればよいですか?

言い換えれば、心臓の問題と汚染との関係が人の体格指数によって異なる/クラスター化/緩和されるモデルをどのように設定できますか (そして、私が言ったように、この人の喫煙量または年齢によっても追加される可能性があります)

残念ながら、私が欲しいものをRに伝える方法についての手がかりがありません。私が望むことを実行できる他のソフトウェア(そのうちの1つはHLMと呼ばれる)を知っていますが、Rでもこれができると確信しています...

だから、助けてくれてありがとう!

デシェン

4

1 に答える 1

1

簡単な答え: ランダム効果を正しく指定する限り、その必要はありません。関数は、lmeどの変数がレベル 1 または 2 であるかを自動的に検出します。Oxboys各被験者が 9 回測定された場所を使用したこの例を考えてみましょう。とりあえず、パッケージで使わせてlmerくださいlme4

library(nlme)
library(dplyr)
library(lme4)
library(lmerTest)

Oxboys %>%                                                #1
  filter(as.numeric(Subject)<25) %>%                      #2
  mutate(Group=rep(LETTERS[1:3], each=72)) %>%            #3
  lmer(height ~ Occasion*Group + (1|Subject), data=.) %>% #4     
  anova()                                                 #5  

ここでは、24 人の被験者 (#2) を選び、それらを 3 つのグループ (#3) に配置して、このデータのバランスをとっています。現在、この研究の計画は、q=9 レベルの反復測定因子 (機会) と p=3 レベルの被験者間因子 (グループ) を使用した分割プロット計画です。各グループには n=8 人の被験者がいます。機会はレベル 1 の変数ですが、グループはレベル 2 です。

#4 では、どの変数がレベル 1 か 2 かを指定しませんでしたが、lmer正しい出力が得られます。それが正しいことをどうやって知ることができますか? 固定効果に対するマルチレベル モデルの自由度を確認してみましょう。データのバランスがとれている場合、で使用される Kenward-Roger 近似により、この記事に従ってlmerTest正確な dfs と F/t 比が得られます。つまり、この例では、グループ、機会、およびそれらの相互作用のテストの dfs は、それぞれ p-1=2、q-1=8、および (p-1)*(q-1)=16 である必要があります。Subject エラー項の df は (n-1)p = 21 で、Subject:Occasion エラー項の df は p(n-1)(q-1)=168 です。実際、これらは出力から取得した「正確な」値です (#5)。anova

lmedfs を近似するためにどのアルゴリズムを使用するかはわかりませんlmeが、同じ dfs が得られます。だから私はそれが正確であると仮定しています。

于 2014-08-06T15:19:10.793 に答える