polr 的预测值仅生成一小部分响应值

问题描述

我想为一些有序分类响应数据创建一个模型,其值从 0 到 10,有 3 个预测变量是分类和数字。因此,我正在使用函数 MASS::polr。这是一个虚拟示例:

data <- data.frame(response = factor(sample.int(11,size = 300,replace = TRUE),levels = c("1","2","3","4","5","6","7","8","9","10","11"),ordered = TRUE),gender = rep(0:1,300),pred2 = sample.int(11,age = rpois(300,30))

问题是,当我使用类型为“class”的预测函数并将预测数据与实际结果进行比较时,模型似乎只考虑了响应变量中的一些值,特别是培训中最常见的:

index <- createDataPartition(data$response,p = 0.7,list = FALSE)

dummy_train <- data[index,]
dummy_test <- data[-index,]

> table(dummy_train$response)
  1  2  3  4  5  6  7  8  9 10 11 
 37 31 48 21 66 37 31 35 45 30 42
model_polr <- polr(response ~ gender + pred2 + age,data = dummy_train,Hess = TRUE)
predict_polr <- predict(model_polr,newdata = dummy_test,type = "class")

> summary(predict_polr)
  1   2   3   4   5   6   7   8   9  10  11 
  0   0   0   0 177   0   0   0   0   0   0 

我有点迷茫,因为我看到这些是概率最高的结果,但我没有看到这种类型的预测有任何效用。我在设置预测数据的过程中是否遗漏了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...