Prédiction de variable de réponse catégorique

8

J'ai le type de données suivant (codé en R):

v.a = c('cat', 'dog', 'dog', 'goat', 'cat', 'goat', 'dog', 'dog')
v.b = c(1, 2, 1, 2, 1, 2, 1, 2)
v.c = c('blue', 'red', 'blue', 'red', 'red', 'blue', 'yellow', 'yellow')
set.seed(12)
v.d = rnorm(8)
aov(v.a ~ v.b + v.c + v.d) # Error

Je voudrais savoir si la valeur de v.bou la valeur de v.ca la capacité de prédire la valeur de v.a. Je voudrais exécuter une ANOVA (comme indiqué ci-dessus) mais je pense que cela n'a aucun sens puisque ma variable de réponse n'est pas ordinale (elle est catégorique). Que devrais-je faire?

Remi.b
la source
5
Découvrez le logit multinomial. Voici deux livres en ligne gratuits de Kenneth Train ( elsa.berkeley.edu/books/choice.html et elsa.berkeley.edu/books/choice2.html ). Je pense que ce sont des livres de niveau supérieur. Ou recherchez simplement "Logit multinomial" sur Google.
Bill
@Bill cela ressemble à un bon début pour une réponse. Veuillez envisager de développer un peu les modèles logit multinomiaux et de les publier comme réponse.
Glen_b -Reinstate Monica

Réponses:

8

Vous pouvez utiliser N'IMPORTE QUEL classificateur. Y compris les discriminants linéaires, le logit multinomial comme l'a souligné Bill, les machines à vecteurs de support, les réseaux neuronaux, le chariot, la forêt aléatoire, les arbres C5, il existe un monde de différents modèles qui peuvent vous aider à prédire utilisant et . Voici un exemple utilisant l'implémentation R d'une forêt aléatoire:v.av.bv.c

# packages
library(randomForest)

#variables
v.a= c('cat','dog','dog','goat','cat','goat','dog','dog')
v.b= c(1,2,1,2,1,2,1,2)
v.c= c('blue', 'red', 'blue', 'red', 'red', 'blue', 'yellow', 'yellow')

# model fit
# note that you must turn the ordinal variables into factor or R wont use
# them properly
model <- randomForest(y=as.factor(v.a),x=cbind(v.b,as.factor(v.c)),ntree=10)

#plot of model accuracy by class
plot(model)

entrez la description de l'image ici

# model confusion matrix
model$confusion

Il est clair que ces variables ne montrent pas de relation forte.

JEquihua
la source
@JEquihua Pourriez-vous s'il vous plaît me dire un peu plus sur ce qu'est un "arbre" et quelle est la signification de la sortie (matrice de confusion et intrigue). Merci beaucoup!
Remi.b
Je vais. Je suis très occupé, donnez-moi un peu de temps. @ Remi.b
JEquihua
3

C'est une réponse pratique plus partielle, mais cela fonctionne pour moi de faire quelques exercices avant d'entrer profondément dans la théorie .

Ce lien ats.ucla.edu est une référence qui pourrait aider à commencer à comprendre la régression logistique multinomiale (comme l'a souligné Bill), d'une manière plus pratique.
Il présente un code reproductible pour comprendre la fonction multinomdu nmetpackage dans Ret donne également un briefing sur l'interprétation des sorties.

Considérez ce code:

va = c('cat','dog','dog','goat','cat','goat','dog','dog') 
     # cat will be the outcome baseline
vb = c(1,2,1,2,1,2,1,2)
vc = c('blue','red','blue','red','red','blue','yellow','yellow') 
     # blue will be the vc predictor baseline
set.seed(12)
vd = round(rnorm(8),2)

data = data.frame(cbind(va,vb,vc,vd))

library(nnet)
fit <- multinom(va ~ as.numeric(vb) + vc + as.numeric(vd), data=data)

# weights:  18 (10 variable)
initial  value 8.788898 
iter  10 value 0.213098
iter  20 value 0.000278
final  value 0.000070 
converged

fit

Call:
multinom(formula = va ~ as.numeric(vb) + vc + as.numeric(vd), 
    data = data)

Coefficients:
     (Intercept) as.numeric(vb)     vcred  vcyellow as.numeric(vd)
dog    -1.044866       120.3495 -6.705314  77.41661      -21.97069
goat   47.493155       126.4840 49.856414 -41.46955      -47.72585

Residual Deviance: 0.0001656705 
AIC: 20.00017 

Voici comment interpréter le modèle logistique multinomial ajusté log-linéaire:

ln(P(va=cat)P(va=dog))=b10+b11vb+b12(vc=red)+b13(vc=yellow)+b14vd ln(P(va=cat)P(va=goat))=b20+b21vb+b22(vc=red)+b23(vc=yellow)+b24vd

Voici un extrait sur la façon dont les paramètres du modèle peuvent être interprétés:

  • Une augmentation d'une unité de la variable vd est associée à la diminution de la probabilité logarithmique d'être "chien" par rapport à "chat" d'un montant de 21,97069 ( ).b14

la même logique pour la deuxième ligne mais, en considérant "chèvre" vs "chat" avec ( = -47.72585). b24

  • Les probabilités de journal d'être "chien" contre "chat" augmenteront de 6,705314 si vous passez de vc = "bleu" à vc = "rouge" ( ). b12

.....

Il y a beaucoup plus dans l'article, mais je pensais que cette partie était le cœur.


Référence:

R Exemples d'analyse de données: régression logistique multinomiale. UCLA: Statistical Consulting Group.
sur http://www.ats.ucla.edu/stat/r/dae/mlogit.htm (consulté le 05 novembre 2013).

Andre Silva
la source