有多种预测序数和分类变量的方法。
我不明白的是这种区别的重要性。是否有一个简单的示例可以弄清楚如果我下订单会出什么问题?在什么情况下没关系?例如,如果自变量也都是分类/有序的,是否会有区别?
这个相关问题集中在自变量的类型上。在这里,我要问结果变量。
编辑: 我知道使用订单结构可以减少模型参数的数量,但是我仍然没有真正确信。
这是一个示例(摘自有序逻辑回归的介绍,据我所知,序数逻辑回归的性能并不比多项式逻辑回归好:
library(nnet)
library(MASS)
gradapply <- read.csv(url("http://www.ats.ucla.edu/stat/r/dae/ologit.csv"), colClasses=c("factor", "factor", "factor", "numeric"))
ordered_result <- function() {
  train_rows <- sample(nrow(gradapply), round(nrow(gradapply)*0.9))
  train_data <- gradapply[train_rows,]
  test_data <- gradapply[setdiff(1:nrow(gradapply), train_rows),]
  m <- polr(apply~pared+gpa, data=train_data)
  pred <- predict(m, test_data)
  return(sum(pred==test_data$apply))
}
multinomial_result <- function() {
  train_rows <- sample(nrow(gradapply), round(nrow(gradapply)*0.9))
  train_data <- gradapply[train_rows,]
  test_data <- gradapply[setdiff(1:nrow(gradapply), train_rows),]
  m <- multinom(apply~pared+gpa, data=train_data)
  pred <- predict(m, test_data)
  return(sum(pred==test_data$apply))
}
n <- 100
polr_res <- replicate(n, ordered_result())
multinom_res <- replicate(n, multinomial_result())
boxplot(data.frame(polr=polr_res, multinom=multinom_res))
该图显示了两种算法的正确猜测数(共40个)的分布。

Edit2:当我使用以下评分方法时
return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))
并惩罚“非常错误”的预测,polr看起来仍然很糟糕,即上面的图变化不大。
                
                1
              
                  您的示例使用了不连续的不正确评分规则,该规则通常不是比较预测集的良好基础(它是任意的,并且缺乏功效和准确性)。
                
                
                  
                    —
                    Frank Harrell 
                    
                  
                
              
                  我假设您可能必须将输出变量强制为
                
                  
                    —
                    朱巴卜'16 
                    
                  
                
              ordered factor,这将改善结果:gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)但这没什么区别。如果您看一下准确性,则两者非常相似。但是,准确度并不是一个单独依靠的好指标。