Logistic
如果我認為結果是有序的而不是分類的,我會得到什麼?
序數和分類變量的預測有不同的方法。
我不明白的是,這種區別有多麼重要。有沒有一個簡單的例子可以說明如果我放棄訂單會出現什麼問題?什麼情況下不重要?例如,如果自變量也是分類/有序的,會有區別嗎?
這個相關問題側重於自變量的類型。在這裡,我問的是結果變量。
編輯: 我看到使用順序結構減少了模型參數的數量這一點,但我仍然不太相信。
這是一個示例(取自有序邏輯回歸的介紹,據我所知,序數邏輯回歸的性能不如多項邏輯回歸:
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 看起來仍然很糟糕,即上面的情節沒有太大變化。
在適當的情況下將 Y 視為序數可以顯著提高功率和精度。這是因為模型中的參數數量要少得多(乘以 k 倍,其中 k 比 Y 的類別數量小一)。有幾種序數模型。最常用的是比例優勢和延續比序數邏輯模型。