在使用多线性数据的polr训练后调用预测有问题

时间:2015-08-20 22:17:05

标签: r statistics logistic-regression ordinal s

看看下面的代码。之前已经问过这个问题但是关闭了 - 可能是因为缺少R代码来重现问题。

基本上,当数据中存在多重共线性时,使用Polr训练模型在调用predict()期间会出现问题。我在这里缺少什么?

以下粗体部分是R对我说的。其余的是我的代码。

r = c(2,2,2,3,3,3,1,1,1,1)
r = as.factor(r)
x = c(0,0,0,4,5,6,0,-1,-1,1)
y = c(5,5,2,1,0,3,10,4,3,8)
z = c(0,0,0,4,5,6,0,-1,-1,1)
a = data.frame(r,x,y,z)

library(MASS)
model <- polr(r~x+z, data=a, Hess=TRUE)
  

警告讯息:   在polr中(r~x + z,data = a,Hess = TRUE):     设计似乎是排名不足的,所以放弃一些系数

test = model.frame(r~x+ z, data=a)
predict(model, test, type="class", s=model$lambda.min)
  

X%*%object $ variables中的错误:不一致的参数

test2 = model.frame(r~x, data=a)
predict(model, test2, type="class", s=model$lambda.min)
  

X%*%object $ variables中的错误:不一致的参数

test3 = model.frame(~x, data=a)
predict(model, test2, type="class", s=model$lambda.min)
  

X%*%object $ variables中的错误:不一致的参数

model2 = polr(r~x, data=a, Hess=TRUE)
predict(model2, test, type="class", s=model$lambda.min)
  

[1] 1 1 1 3 3 3 1 1 1 2
      级别:1 2 3

predict(model2, test2, type="class", s=model$lambda.min)
  

[1] 1 1 1 3 3 3 1 1 1 2
      级别:1 2 3

predict(model2, test3, type="class", s=model$lambda.min)
  

[1] 1 1 1 3 3 3 1 1 1 2
      级别:1 2 3

0 个答案:

没有答案