3

R でネストされたロジスティック回帰を実行したいのですが、オンラインで見つけた例はあまり役に立ちませんでした。私の問題に似ているこのウェブサイト( Rでネストされたロジスティック回帰を実行する方法に関するステップバイステップの手順)の例を読みましたが、最終的には解決されていないようです(質問者はエラーを報告し、私はしませんでした. t は、より多くの回答を表示します)。

したがって、9 つの予測子 (連続スコア) と 1 つのカテゴリ従属変数 (DV) があります。DV は「効果」と呼ばれ、「ネガティブ(0)」と「ポジティブ(1)」の 2 つに大別できます。単純な 2 値ロジット回帰を実行する方法は知っていますが (一般的なグループ化方法、つまり負 (0) と正 (1) を使用)、これでは十分ではありません。「ポジティブ」は、さらに「フィジカル(1)」と「メンタル(2)」の2種類に分けられます。そこで、この 3 つのカテゴリ (ネガティブ (0)、フィジカル (1)、メンタル (2)) を含む入れ子モデルを実行し、「ポジティブ」に「フィジカル」と「メンタル」がネストされているという性質を反映したモデルを実行したいと考えています。おそらく、R はこれら 2 つのモデル (一般的なモデルと詳細なモデル) を一緒に比較できますか? そこで、2 つの新しい列を作成しました。1 つは「効果全般」と呼ばれるもので、個々のスコアは「ネガティブ (0)」と「ポジティブ (1)」です。もう 1 つは「詳細な効果」と呼ばれ、負 (0)、物理的 (1)、精神的 (2) の 3 つの値が含まれます。「一般的な効果」のみを使用して単純なバイナリ ロジット回帰を実行しましたが、「詳細な効果」のネストされたロジット モデルを実行する方法がわかりません。

私が検索した例や他の資料から、Rパッケージ「mlogit」は正しいように見えますが、自分のデータで機能させる方法に行き詰まっています。R-help の例と、前述のこの Web サイトの例のこの部分 (...shape='long', alt.var='town.list', nests=list(town .list)...) は私を非常に混乱させます: データシェイプが「ワイド」であることはわかりますが、「alt.var」と「ネスト」が何であるかはわかりません...

ネストされたロジット モデル呼び出しの例については、mlogit マニュアルの 19 ページも参照しました。しかし、私はまだオプションに関して何が必要かを決めることができません。( http://cran.r-project.org/web/packages/mlogit/mlogit.pdf )

誰かがそれを行う方法に関する詳細な手順とメモを提供してもらえますか? この例 (十分に議論され解決された場合) は、私や他の人にも大いに役立つと確信しています!

ご協力いただきありがとうございます!!!

4

1 に答える 1

0

mlogit の構造を理解するのに役立ちます。mlogit.data()コマンドを使用するときは、引数とともに指定しますchoice = yourchoicevariable(id.var = respondentidパネル データセットがある場合、つまり、同じ個人から複数の回答がある場合) shape='wide'。作成された新しい data.frame は、ネガティブ、フィジカル、メンタルの選択状況ごとに 1 行の長い形式になります。したがって、ワイド データ形式では 1 行しかなかった 3 行が作成されます。あなたの MN 選択変数が何であれTRUE、回答者が選択した行の論理値の列になります。行名は次の形式になりobservation#.level(choice variable)ます。この場合、データセットの最初の行に否定的な回答があった場合は、次のようになります。

row.name   | choice
1.negative | TRUE
1.physical | FALSE
1.mental   | FALSE

また、各選択肢の実際の因子水準altは mlogit.data.frameのインデックスに格納されてindex(your.data.frame)おり、観測番号 (つまり、ワイド フォーマットの data.frame の行番号) は に格納されていchidます。これは本質的にrow.nameがあなたに言っていることですchid.altalt.varまた、データがワイド フォーマットであるかどうかを指定する必要はなく、ロング フォーマットのみを指定する必要があることに注意してください。先ほど説明したように、mlogit.data関数はそれを行います。unique(choice)基本的に、 choice 変数を指定して を作成するときにかかるalt.varため、データがワイド フォーマットの場合は冗長です。

次に、次のようなネストの名前付きリストをコマンドに追加して、ネストを指定mlogit()します。因子レベルが「0」、「1」、「2」であると仮定します。

mlogit(..., nests = c(negative = c('0'), positive = c('1','2')

または、因子レベルが「負」、「物理的」、「精神的」である場合、次のようになります。

mlogit(..., nests = c(negative = c('negative'), positive = c('physical','mental')

c()また、パッケージのドキュメントに従って、引数を使用して1つのネストを指定する必要があることに注意してください。un.nest.el=T結果のモデルには、引数を指定した場合はネスト間の iv 推定値が含まれ、ケネス トレインの例が役立つun.nest.el=F場合はネスト固有の推定値が含まれ ます。

于 2014-10-22T11:30:48.233 に答える