多项回归中的错误:“订阅分配中不允许使用NA”

时间:2014-05-24 14:55:21

标签: r regression na

我在this site的帮助下进行多项式回归。

我在做的时候出错了:

    > 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,但又遇到了同样的错误。

1 个答案:

答案 0 :(得分: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)
)

并且这些名称应与公式中的名称相匹配,因此您应该全部设置。