2012-11-23 45 views
6

我有長格式的聯合測量數據。前幾行是這樣的:mlogit中的錯誤:solve.default(H,g [!fixed])中的錯誤:系統是計算奇異的:互逆條件數= 3.4767e-18

ID alt choice size tar length brand flavor gender age yr_smoke num_smoke job 
1 1 1  no 1 1  1  1  1  2 35  10  20 1 
2 1 2  no 1 1  1  1  1  2 35  10  20 1 
3 1 3  no 1 1  1  1  1  2 35  10  20 1 
4 1 4  no 1 1  1  1  1  2 35  10  20 1 
5 1 5  no 1 1  1  1  1  2 35  10  20 1 
6 1 6  no 1 1  1  1  1  2 35  10  20 1 

我用mlogit.data爲:

data_mlogit_ct1_test2 <- mlogit.data(data_mlogit_ct1_test1,choice="choice", 
shape="long",alt.var="alt") 

轉換後的數據的前幾排的樣子:

ID alt choice size tar length brand flavor gender age yr_smoke num_smoke job 
    1.1 1 1 FALSE 1 1  1  1  1  2 35  10  20 1 
    1.2 1 2 FALSE 1 1  1  1  1  2 35  10  20 1 
    1.3 1 3 FALSE 1 1  1  1  1  2 35  10  20 1 
    1.4 1 4 FALSE 1 1  1  1  1  2 35  10  20 1 
    1.5 1 5 FALSE 1 1  1  1  1  2 35  10  20 1 
    1.6 1 6 FALSE 1 1  1  1  1  2 35  10  20 1 

現在我試圖將mlogit設置爲:

fit_mlogit_ct11 <- mlogit(choice~size+tar+length+brand+flavor, 
          data_mlogit_ct1_test1,shape="long",chid.var="ID", 
          alt.var="alt",method="bfgs",heterosc=TRUE,tol=10) 

我得到這個錯誤:

錯誤solve.default(crossprod(ATTR(X, 「gradi」),固定的!)): LAPACK日常dgesv:系統正是奇異

然後我做:

fit_mlogit_ct11 <- mlogit(choice~size+tar+length+brand+flavor, data_mlogit_ct1_test2) 

現在,我得到:

錯誤solve.default(H,G [固定!]): 系統在計算上是單數:倒數條件數= 3.4767e-18

有人可以幫我嗎?

+0

重現您的數據嘗試在R 中運行dput(data_mlogit_ct1_test2)並複製輸出 – agstudy

+0

您的數據看起來有點奇怪:所有選項都是相同的。這是故意的嗎? – Andrie

+0

另外,你能否開始接受你以前的問題的答案? – Andrie

回答

7

我認爲這個問題是因爲你沒有定義正確的個人特定變量。根據軟件包手冊,當您使用mlogit函數構建模型時,可以使用:|將具體替代方案與個別特定變量分開。例如:

fit_mlogit_ct11 <- mlogit(choice~1|size+tar+length+brand+flavor, 
          data_mlogit_ct1_test1,shape="long",chid.var="ID", 
          alt.var="alt",method="bfgs",heterosc=TRUE,tol=10) 

這只是說所有的變量都是單獨的具體的,你只需要替代具體的截取。但事實上,正如上面已經提到的那樣,你的數據看起來很奇怪,因爲它們看起來相同,因爲你只有單獨的特定變量。這最終導致奇點(你的變量與1相互關聯)。