2014-05-24 160 views
1

我正在使用this site的幫助進行多項式迴歸。多項式迴歸中的錯誤:「下標賦值中不允許使用NAs」

我有錯誤,而這樣做:

> dses1 <- data.frame(ses = c("Cluster1", "Cluster2", "Cluster3"), GDP = mean(data.mod$GDP.z)) 
    > dses1 
      ses   GDP 
    1 Cluster1 -0.03853141 
    2 Cluster2 -0.03853141 
    3 Cluster3 -0.03853141 

    > predict(results, newdata = dses1, "probs") 
    NAs are not allowed in subscripted assignments 

我已經做了迴歸分析如下

results <- multinom(data.mod$baseline~data.mod$cluster+data.mod$GDP.z+data.mod$WGI.z,data=data.mod) 

數據集是這樣的:

> head(data.mod) 
     cluster type  GDP.z  WGI.z baseline 
    1 Cluster3 Type1 -0.15927872 0.0750328 Type1 
    2 Cluster3 Type1 0.18363900 0.1066325 Type1 
    3 Cluster1 Type1 1.58636819 0.0750328 Type1 
    4 Cluster3 Type1 -0.27892696 0.7034406 Type1 
    5 Cluster3 Type1 -0.37910360 0.6864063 Type1 
    6 Cluster2 Type1 -0.09978649 0.0750328 Type1 

我已經選中this stack,但再次得到相同的錯誤。

回答

2

當您使用預測時,需要將列名與coef(results)所示的列名完全匹配。由於您不必要地在所有變量名稱上留下表名前綴,這可能是導致錯誤的原因。嘗試

results <- multinom(baseline~cluster + GDP.z + WGI.z, data=data.mod) 

而且你似乎缺少WGI.z形成你newdata(因爲它是在模型中,它在那裏)。所以,你的newdata應該

dses1 <- data.frame(cluster = c("Cluster1", "Cluster2", "Cluster3"), 
    GDP.z = mean(data.mod$GDP.z), 
    WGI.z = mean(data.mod$WGI.z) 
) 

和這些名字應該在公式中的名稱一致,所以你應該所有設置。

+0

現在它工作! 非常感謝你! – user2978524

+0

@ user2978524如果有效,請考慮點擊此答案的複選標記以接受它。這就是StackOverflow的工作原理。 – MrFlick

+0

好的。謝謝。 我想知道如果你知道一個好方法來顯示結果。 [網頁](http://www.ats.ucla.edu/stat/r/dae/mlogit.htm)不適用於我的案例,因爲有兩個控制變量:GDP和WGI。 – user2978524

相關問題