Que gagne-t-on si je considère le résultat comme ordinal plutôt que catégorique?

12

Il existe différentes méthodes de prédiction des variables ordinales et catégorielles.

Ce que je ne comprends pas, c'est l'importance de cette distinction. Existe-t-il un exemple simple qui peut expliquer clairement ce qui ne va pas si je laisse tomber la commande? Dans quelles circonstances cela n'a-t-il pas d'importance? Par exemple, si les variables indépendantes sont également toutes catégorielles / ordinales, y aurait-il une différence?

Cette question connexe se concentre sur le type des variables indépendantes. Ici, je pose des questions sur les variables de résultats.

Edit: Je vois l'intérêt d'utiliser la structure de commande pour réduire le nombre de paramètres du modèle, mais je ne suis toujours pas vraiment convaincu.

Voici un exemple (tiré d'une introduction à la régression logistique ordonnée où, autant que je sache, la régression logistique ordinale ne fonctionne pas mieux que la régression logistique multinomiale:

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))

qui montre la distribution du nombre de bonnes suppositions (sur 40) des deux algorithmes.

polr_vs_multinom

Edit2: Lorsque j'utilise comme méthode de notation les éléments suivants

return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))

et pénaliser les prédictions "très fausses", polr a toujours l'air mauvais, c'est-à-dire que l'intrigue ci-dessus ne change pas beaucoup.

Karsten W.
la source
1
Votre exemple utilise une règle de notation incorrecte discontinue, qui n'est généralement pas une bonne base pour comparer des ensembles de prédictions (elle est arbitraire et manque de puissance et de précision).
Frank Harrell
J'ai supposé que vous pourriez avoir à appliquer la variable de sortie à un ordered factor, ce qui améliorerait les résultats: gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)mais cela ne fait aucune différence. Si vous regardez la précision, les deux sont assez similaires. Cependant, la précision n'est pas une bonne mesure sur laquelle s'appuyer uniquement.
Zhubarb

Réponses:

10

Il y a des gains de puissance et de précision importants en traitant Y comme ordinal le cas échéant. Cela découle du nombre beaucoup plus faible de paramètres dans le modèle (d'un facteur k où k est inférieur de un au nombre de catégories de Y). Il existe plusieurs modèles ordinaux. Les modèles logistiques ordinaux sont les cotes proportionnelles et le ratio de continuation les plus couramment utilisés.

Frank Harrell
la source
1
+1 La réduction des paramètres signifie également que les modèles ordinaux peuvent être beaucoup plus faciles à ajuster.
JMS
4

Si vous ignorez la nature ordonnée des variables, les méthodes appropriées fourniront toujours une analyse correcte, mais l'avantage d'utiliser des méthodes pour les données ordonnées est qu'elles fournissent de plus amples informations sur l'ordre et l'ampleur des variables significatives.

Murray
la source
Je ne vois pas quelles informations sur la commande sont fournies.
Karsten W.8
1
Supposons qu'une variable ait trois niveaux, bas, moyen, élevé. Une analyse ordinale ne pourrait suggérer aucune différence entre faible et moyen, mais une signification pour élevé. L'estimation des paramètres pourrait fournir des informations telles que «lorsque la variable X est élevée, l'effet est estimé à 2,5 fois supérieur à faible ou moyen» - d'où la direction et l'ampleur.
Murray
2

Si vous souhaitez modéliser les données et que la variable catégorielle dépendante n'a pas d'ordre (nominal), vous devez utiliser un modèle logit multinomial. Si la variable dépendante a un ordre (ordinal), vous pouvez utiliser un modèle logit cumulatif (modèle de cotes proportionnelles).

Pour moi personnellement, je trouve les résultats beaucoup plus faciles à interpréter pour un modèle de cotes proportionnelles par rapport à un modèle multinomial, en particulier lorsque vous souhaitez signaler les résultats à une personne qui n'est pas statistiquement compétente.

Ce ne sont pas les seuls modèles que vous pouvez utiliser mais ils sont très typiques.

Glen
la source