2017-05-13 77 views
1

下午好,我用NNET包進行邏輯迴歸時遇到了輸出問題。我想用HS_TR (Return Period)SLR (Sea Level Rise)預測Category。 稱爲fit的多項模型已使用x.sub子集中的信息進行計算。有4級不同的類別可能1,2,3或4多項式迴歸的概率結果nnet包

x.sub

POINTID HS_TR SLR Category 
     4  10 0.0  3 
     4  10 0.6  4 
     4  50 0.0  3 
     4  50 0.6  4 
     4 100 0.0  4 
     4 100 0.6  4 

當我運行模式>fit <- multinom(Category ~ HS_TR + SLR, x.sub, maxit=3000)我得到的結果:

Coefficients: 
    (Intercept)  HS_TR   SLR 
    -30.5791517 0.4130478 62.0976951 

    Residual Deviance: 0.0001820405 
    AIC: 6.000182 

現在,我有多項式,我想知道SLR和HS_TR的特定場景(d3)的預測類別。我定義D3和應用的預測,我也得到合理的結果:

d3<-data.frame("HS_TR"=c(10),"SLR"=c(0)) 
prediction <-(predict(fit,d3)) 

我得到

> prediction 
[[1]] 
[1] 3 
Level: 3 

然而,當我計算得到的預測prediction <-(predict(fit,d3, type="probs"))的概率,我得到如下:

> prediction 
[[1]] 
1 
0 

這是沒有道理的,因爲它說有可能性0.由於我運行的模型給出了CATEGORY的預測,我不明白nd爲什麼然後,概率是0.有人知道我爲什麼得到它嗎?

如果有人知道我該如何解決問題,以便我可以解決它。先謝謝你。

+0

你能提供一個樣本數據集嗎? – ekstroem

+0

是的,@ekstroem肯定。考慮將x.sub作爲下表(我已經編輯過,可能會更容易閱讀): 'POINTID HS_TR SLR類別 19 4 10 0.0 3 20 4 10 0.6 4 21 4 50 0.0 3 22 4 50 0.6 4 23 4 100 0.0 4 24 4 100 0.6 4' – David

+0

David,David,David。看到一個可能有用的問題很遺憾,因爲沒有閱讀SO幫助頁面並使用[編輯]創建[MCVE],而是在評論中發佈更新。我還看到有147個匹配符合「[nenet預測]」的搜索,如果您不進一步改進問題,我們將試圖降低投票率。 –

回答

1

你有分離/完全分離的問題(谷歌這個詞來獲得更多的信息This page給出了一個很好的介紹含有這句話:

當結果變量分離預測變量的完全分離發生或預測變量的組合完全。

如果你看一下你的數據,例如使用

> xtabs(~ Category + HS_TR + SLR, data=x.sub) 
, , SLR = 0 

     HS_TR 
Category 10 50 100 
     3 1 1 0 
     4 0 0 1 

, , SLR = 0.6 

     HS_TR 
Category 10 50 100 
     3 0 0 0 
     4 1 1 1 

然後您會看到SLRHS_TR的組合完全確定SLR=0.6的結果。您需要指定一個更簡單的模型或獲取更多數據以提供穩定的擬合。

在您的情況下,您的輸出只有兩種可能的類別,因此您應該能夠擬合對數線性模型或邏輯迴歸模型並獲得相同的結果。如果您創建了一個因子爲Category的新變量Cat,則會看到警告,指示您朝着正確的方向行進。

> glm(Cat ~HS_TR + SLR, data=x.sub, family="binomial") 
Warning message: 
glm.fit: fitted probabilities numerically 0 or 1 occurred 

我認爲multinom沒有檢測到數據中的問題。然而,如果你看看你的擬合的summary,那麼你會發現兩個參數估計值的標準誤差非常大。這也表明估計不穩定,分離可能是一個問題。

> summary(fit) 
Call: 
multinom(formula = Category ~ HS_TR + SLR, data = x.sub, maxit = 3000) 

Coefficients: 
       Values Std. Err. 
(Intercept) -30.5791517 356.932851 
HS_TR   0.4130478 5.137396 
SLR   62.0976951 634.584184 

Residual Deviance: 0.0001820405 
AIC: 6.000182 

我認爲在multinom收斂檢查缺乏某種檢查。

+0

非常感謝您的回覆,我相信這是我遇到的問題。將檢查出來。 – David