web-dev-qa-db-ja.com

Rの多項ロジスティック多レベルモデル

問題:多項ロジスティック多レベルモデルのセットを推定する必要があり、適切なRパッケージを見つけることができません。そのようなモデルを推定するのに最適なRパッケージは何ですか? STATA 13は最近、この機能をマルチレベル混合効果モデルに追加しました。そのため、そのようなモデルを推定するテクノロジーが利用できるようです。

詳細:多くの研究課題では、結果変数がカテゴリカルである多項ロジスティック回帰モデルの推定が必要です。たとえば、生物学者は、酸性雨の影響を最も強く受けるのは、どの種類の木(松、カエデの木、オークの木など)かを調査することです。市場調査者は、顧客の年齢とターゲット、セーフウェイ、またはウォルマートでの買い物の頻度の間に関係があるかどうかに関心があるかもしれません。これらのケースは、結果変数がカテゴリカル(順序付けられていない)であり、多項ロジスティック回帰が推奨される推定方法であるという共通点があります。私の場合、人間の移動のタイプの違いを調査しています。結果変数(mig)は0 =移行されていません、1 =内部移行、2 =国際移行です。これが私のデータセットの簡略版です:

migDat=data.frame(hhID=1:21,mig=rep(0:2,times=7),age=ceiling(runif(21,15,90)),stateID=rep(letters[1:3],each=7),pollution=rep(c("high","low","moderate"),each=7),stringsAsFactors=F)

   hhID mig age stateID pollution
1     1   0  47       a      high
2     2   1  53       a      high
3     3   2  17       a      high
4     4   0  73       a      high
5     5   1  24       a      high
6     6   2  80       a      high
7     7   0  18       a      high
8     8   1  33       b       low
9     9   2  90       b       low
10   10   0  49       b       low
11   11   1  42       b       low
12   12   2  44       b       low
13   13   0  82       b       low
14   14   1  70       b       low
15   15   2  71       c  moderate
16   16   0  18       c  moderate
17   17   1  18       c  moderate
18   18   2  39       c  moderate
19   19   0  35       c  moderate
20   20   1  74       c  moderate
21   21   2  86       c  moderate

私の目標は、(1)内部移行と非移行、(2)国際移行と非移行、(3)内部移行と国際移行の確率に対する年齢(独立変数)の影響を推定することです。さらに複雑なのは、私のデータがさまざまな集計レベルで動作することです(たとえば、汚染は州レベルで動作します)。また、特定の種類の動きに乗り出す確率に対する大気汚染(汚染)の影響を予測することにも興味があります。

不格好なソリューション:各モデルのデータセットを2つの移行タイプのみに減らすことで、一連の個別のロジスティック回帰モデルを推定できます(たとえば、モデル1:mig = 0とmig = 1とコーディングされたケースのみ;モデル2:mig = 0およびmig = 2をコーディングしたケースのみ;モデル3:mig = 1およびmig = 2をコーディングしたケースのみ)。このような単純なマルチレベルロジスティック回帰モデルはlme4で推定できますが、このアプローチは、省略されたケースの影響を適切に考慮しないため、あまり理想的ではありません。 2番目の解決策は、R2MLwiNパッケージを使用して、Rを介してMLWiNで多項ロジスティックマルチレベルモデルを実行することです。しかし、MLWiNはオープンソースではなく、生成されたオブジェクトは使いにくいため、このオプションは避けたいと思います。包括的なインターネット検索に基づいて、そのようなモデルに対する需要があるようですが、私は良いRパッケージを知りません。したがって、そのようなモデルを実行した専門家が推奨を提供でき、複数のパッケージがある場合は、いくつかの利点/欠点を示すことができればすばらしいでしょう。このような情報は、複数のRユーザーにとって非常に役立つリソースであると確信しています。ありがとう!!

ベスト、ラファエル

28
Raphael

一般に、カテゴリ変数の多項モデルをJグループで近似する方法は2つあります。(1) J-1コントラストを同時に推定する。 (2)コントラストごとに個別のロジットモデルを推定します。

これら2つの方法で同じ結果を生成しますか?いいえ、ただし結果はよく似ています

どちらの方法が優れていますか?同時フィッティングの方が正確です(理由については以下を参照してください)

なぜ別のロジットモデルを使用するのですか?(1)lme4パッケージには、多項式モデルを同時にフィッティングするルーチンはなく、これを実行できる他のマルチレベルRパッケージはありません。したがって、誰かがRでマルチレベル多項モデルを推定したい場合は、現在、個別のロジットモデルが唯一の実用的なソリューションです。モデルは、各コントラストのモデル方程式を独立して指定できるため、はるかに柔軟です。

別々のロジットモデルを使用することは正当ですか?はい、いくつかの免責事項があります。この方法は「Begg and Gray近似」と呼ばれます。 Begg and Gray(1984、p。16)は、この「個別化された方法は非常に効率的」であることを示しました。ただし、効率がいくらか低下し、BeggとGrayの近似ではより大きな標準誤差が生成されます(Agresti 2002、p。274)。そのため、この方法で重要な結果を得るのはより困難であり、結果は保守的であると見なすことができます。この効率の損失は、参照カテゴリーが大きい場合に最小になります(Begg and Gray、1984; Agresti 2002)。 BeggとGrayの近似(マルチレベルではない)を使用するRパッケージには、mlogitBMAが含まれます(Sevcikova and Raftery、2012)。


なぜ一連の個々のロジットモデルが不正確なのですか?最初の例では変数(migration )3つの値A(移行なし)、B(内部移行)、C(国際移行)を持つことができます。予測変数x(年齢)が1つだけの場合、多項モデルは次のように一連の二項対比としてパラメーター化されます(Long and Cheng、2004年277ページ)。

Eq. 1:  Ln(Pr(B|x)/Pr(A|x)) = b0,B|A + b1,B|A (x) 
Eq. 2:  Ln(Pr(C|x)/Pr(A|x)) = b0,C|A + b1,C|A (x)
Eq. 3:  Ln(Pr(B|x)/Pr(C|x)) = b0,B|C + b1,B|C (x)

これらの対比では、次の方程式が成り立つ必要があります。

Eq. 4: Ln(Pr(B|x)/Pr(A|x)) + Ln(Pr(C|x)/Pr(A|x)) = Ln(Pr(B|x)/Pr(C|x))
Eq. 5: b0,B|A + b0,C|A = b0,B|C
Eq. 6: b1,B|A + b1,C|A = b1,B|C

問題は、これらの方程式(式4-6)が実際には正確に成立しないことです。係数はわずかに異なるサンプルに基づいて推定されるためです。多項式の対比を同時に推定するプログラムは、式(1)を確認します。 4-6ホールド(Long and Cheng、2004 p。277)。この「同時」モデル解決がどのように機能するか正確にはわかりません。誰かが説明を提供できるでしょうか?マルチレベル多項モデルの同時フィッティングを行うソフトウェアには、MLwiN(Steele 2013、p。4)とSTATA(xlmlogitコマンド、Pope、2014)があります。


参考文献:

Agresti、A.(2002)。カテゴリー・データ分析(第2版)。ニュージャージー州ホーボーケン:John Wiley&Sons。

アリソン、P。D.(1984)。イベント履歴分析。カリフォルニア州サウザンドオークス:Sage Publications。

Begg、C. B.&&Gray、R.(1984)。個別化された回帰を使用した多項ロジスティック回帰パラメーターの計算。 Biometrika、71(1)、11-18。

Long、S. J.&Cheng、S.(2004)。カテゴリー結果の回帰モデル。 M. Hardy&A. Bryman(編)、データ分析ハンドブック(p。258-285)。ロンドン:SAGE Publications、Ltd.

教皇、R。(2014)。スポットライト:Stataの新しいxlmlogitコマンドに出会う。スタタニュース、29(2)、2-3。

Sevcikova、H.、およびRaftery、A.(2012)。 Begg&Gray近似を使用した多項ロジットモデルの推定。

スティール、F(2013)。モジュール10:名目応答概念の単一レベルモデルとマルチレベルモデル。イギリスのブリストル:Center for Multilevel Modelling。

27
Raphael

古い質問ですが、実行可能なオプションが最近出現したと思います。brmsは、ベイジアンStanプログラムを使用して実際にモデルを実行します。たとえば、多項ロジスティック回帰を実行したい場合irisデータ:

b1 <- brm (Species ~ Petal.Length + Petal.Width + Sepal.Length + Sepal.Width,
           data=iris, family="categorical",
           prior=c(set_prior ("normal (0, 8)")))

そして、序数回帰を取得するには-もちろんirisには適切ではありません-family="categorical"family="acat"(またはcratioまたはsratio、必要な順序回帰のタイプに応じて)、依存変数がorderedであることを確認します。

ラファエルのコメントによる説明:このbrm呼び出しは、式と引数を Stan コードにコンパイルします。 StanはそれをC++にコンパイルし、システムのC++コンパイラを使用します。これは必須です。たとえばMacでは、C++を入手するために無料の開発者ツールをインストールする必要がある場合があります。 Windowsについてはわかりません。 LinuxにはデフォルトでC++がインストールされているはずです。)

Qaswedのコメントによる明確化:brmsは、R数式(1 | groupvar)を使用してマルチレベルモデルを簡単に処理し、グループにグループ(ランダム)インターセプトを追加し、(1 + foo | groupvar)を使用してランダムインターセプトと勾配を追加します。 、など.

12
Wayne

この手法は「標準」および「同等」と表現されているのではないかと戸惑っていますが、実用的な解決策になると思います。 (私はAllisonとDobson&Barnettのリファレンスをチェックしたほうがいいと思います)。単純な多項式のケース(クラスターなし、反復測定など)の場合、Begg and Gray(1984)は、多くの場合、完全な多項式ロジットへの近似として(良いものですが)参照カテゴリーに対してk-1二項ロジットを使用することを提案しています。単一の高頻度ベースラインカテゴリが参照として使用されている場合はわずかですが、単一の参照カテゴリを使用すると効率がいくらか失われることを示しています。 Agresti(2002:p。274)は、5つのカテゴリの例で、ベースラインカテゴリが219ケースの70%を超える場合でも、標準誤差がわずかに増加する例を示しています。

多分それは大したことではないかもしれませんが、ランダム性の2番目の層を追加することで、近似がどのように改善されるかはわかりません。

参考資料
Agresti、A.(2002)。カテゴリーデータ分析。ホーボーケンNJ:ワイリー。

Begg、C. B.&&Gray、R.(1984)。個別化された回帰を使用した多項ロジスティック回帰パラメーターの計算。 Biometrika、71(1)、11–18。

2
tmn

「mlogit」パッケージの使用をお勧めします

1
Anom

私は同じ問題を扱っており、私が見つけた1つの可能な解決策は、この mailinglist 、これらの 素敵なスライド またはAgresti(2013:353-356)。したがって、パッケージからglmer(... family=poisson)関数を使用できるようにする必要がありますlme4データの一部の集計を使用します。

参考:
Agresti、A.(2013)カテゴリカルデータ分析。ニュージャージー州ホーボーケン:ワイリー。

ここに実装があります(自分のものではありません)。私はこのコードをそのまま使用します。さらに、これにより、内部で何が行われているのかを本当に理解できます。

http://www.nhsilbert.net/docs/rcode/multilevel_multinomial_logistic_regression.R