问题描述
我想为一些有序分类响应数据创建一个模型,其值从 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 (将#修改为@)