6

多項混合ロジットモデルの推定を求めて、多項ロジットモデルのmlogitパッケージ発見しました。優れたビネットを読んだ後、記載されている例のいずれにも自分のデータを適用できないことがわかりました。

私は今、私の問題を解決してくれることを期待して書き、私の状況を説明するための最小限の例を作成しました.

問題は次のとおりです。子音「Q」を含む単語がどこかにあります。現在、これらの単語を聞いて、Q、U、またはその他の子音を聞いたかどうかを言うように割り当てられた人々を対象に実験が行われました。これは、音節の位置や実語/非実語などのいくつかの要因に応じてモデル化する必要があります。

最小限の例では、音節の位置で 4 人とその回答を作成しました。

library(mlogit)
library(nnet)
set.seed(1234)
data <- data.frame(personID = as.factor(sample(1:4, 40, replace=TRUE)),
               decision = as.factor(sample(c("Q","U", "other"), 40, replace=TRUE)),
               syllable = as.factor(sample(1:4, 40, replace=TRUE)))
summary(data)
 personID  decision  syllable
 1:11     other:10   1:18    
 2:10     Q    :18   2: 9    
 3:10     U    :12   3: 5    
 4: 9                4: 8 

私の知る限り、nnetmultinom機能は混合モデルをカバーしていません。

modNnet1 <- multinom(decision ~ syllable, data=data)

最初に、-関数を使用しmlogit.dataてファイルを再形成しました。同僚と話し合った結果、alternative.specific.variable は存在しないという結論に達しました。

 dataMod <- mlogit.data(data, shape="wide", choice="decision", id.var="personID")

 mod1 <- mlogit(formula = decision ~ 0|syllable,
           data = dataMod,
           reflevel="Q", rpar=c(personID="n"), panel=TRUE)
  Error in names(sup.coef) <- names.sup.coef : 
    'names' attribute [1] must be the same length as the vector [0]

 mod2 <- mlogit(formula = decision ~ personID|syllable,
           data = dataMod,
           reflevel="Q", rpar=c(personID="n"), panel=TRUE)
  Error in solve.default(H, g[!fixed]) : 
     Lapack routine dgesv: system is exactly singular: U[3,3] = 0

いいえ、どうすればいいのかわからないので、ここで助けを求めます。しかし、この種の問題は解決できると信じてmlogitいますが、まだ見ていません;)

4

1 に答える 1