0

私の質問は、別の古い質問「R で関数 multinom を使用して作成されたモデルに含まれる観測数を取得する方法は?」に似ています。しかし、私が探したいのは、モデルで分析された観測の数ではなく、正確な観測です。最終的には、元のデータセットを予測 (適合) 確率の新しい列と組み合わせたいと考えています。しかし、私の問題を説明するために例を使用しましょう。

サンプルが 1000 で、一部の変数が NA 値を持ち、R に multinom() を適合させ、fitted() を使用すると、fitted() の長さがわずか 870 であることがわかります。これは、モデルが推定。現在、fitted() は 870*1 (つまり 1 列) の数値 (確率) のみを生成します。各確率数値がどの観測値に対応するかを知る方法はありません。これを解決するには、次の 2 つの方法があると思います。

  1. モデルを推定する前に、除外されている観測値を見つけて生データから削除します。
  2. 130 個の要素が NA である 1000*1 の行列を、fitted() で生成できるようにしてください。

どちらの答えもわかりません。アドバイスをいただければ幸いです。最終的な目標は、当てはめた確率を元のデータセットに (新しい列として) 追加して、推論できるようにすることです。ありがとう。

4

1 に答える 1

0

?multinomnnetから:

   model: logical. If true, the model frame is saved as component
          'model' of the returned object.

を呼び出すmultinom(..., model=TRUE)と、モデル フレームが結果に含まれます。

編集:

の例に従い?multinomます。

options(contrasts = c("contr.treatment", "contr.poly"))
library(MASS)
example(birthwt)
bwt.mu <- multinom(low ~ ., bwt, model=TRUE)

オブジェクト内のモデル フレームの表示:

>     str(bwt.mu$model)
'data.frame':   189 obs. of  9 variables:
 $ low  : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ age  : int  19 33 20 21 18 21 22 17 29 26 ...
 $ lwt  : int  182 155 105 108 107 124 118 103 123 113 ...
 $ race : Factor w/ 3 levels "white","black",..: 2 3 1 1 1 3 1 3 1 1 ...
 $ smoke: logi  FALSE FALSE TRUE TRUE TRUE FALSE ...
 $ ptd  : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ...
 $ ht   : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ ui   : logi  TRUE FALSE FALSE TRUE TRUE FALSE ...
 $ ftv  : Factor w/ 3 levels "0","1","2+": 1 3 2 3 1 1 2 2 2 1 ...
 - attr(*, "terms")=Classes 'terms', 'formula' length 3 low ~ age + lwt + race + smoke + ptd + ht + ui + ftv
  .. ..- attr(*, "variables")= language list(low, age, lwt, race, smoke, ptd, ht, ui, ftv)
  .. ..- attr(*, "factors")= int [1:9, 1:8] 0 1 0 0 0 0 0 0 0 0 ...
  .. .. ..- attr(*, "dimnames")=List of 2
  .. .. .. ..$ : chr [1:9] "low" "age" "lwt" "race" ...
  .. .. .. ..$ : chr [1:8] "age" "lwt" "race" "smoke" ...
  .. ..- attr(*, "term.labels")= chr [1:8] "age" "lwt" "race" "smoke" ...
  .. ..- attr(*, "order")= int [1:8] 1 1 1 1 1 1 1 1
  .. ..- attr(*, "intercept")= int 1
  .. ..- attr(*, "response")= int 1
  .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
  .. ..- attr(*, "predvars")= language list(low, age, lwt, race, smoke, ptd, ht, ui, ftv)
  .. ..- attr(*, "dataClasses")= Named chr [1:9] "factor" "numeric" "numeric" "factor" ...
  .. .. ..- attr(*, "names")= chr [1:9] "low" "age" "lwt" "race" ...
于 2016-01-13T00:08:26.113 に答える