8 votos

Respuesta categórica variable predicción

Tengo los siguientes tipos de datos (codificados 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
 

Me gustaría saber si el valor de v.b o el valor de v.c tiene alguna capacidad para predecir el valor de v.a . Yo ejecutaría un ANOVA (como se muestra arriba) pero creo que no tiene ningún sentido ya que mi variable de respuesta no es ordinal (es categórica). ¿Qué tengo que hacer?

8voto

Grevling Puntos 123

Usted podría utilizar CUALQUIER clasificador. Incluyendo Lineales Discriminantes, modelo logit multinomial como proyecto de Ley señalado, Máquinas de Vectores Soporte, Redes Neuronales, CARRO, bosque aleatorio, C5 árboles, hay un mundo de diferentes modelos que pueden ayudar a predecir $v.a$ uso de $v.b$ e $v.c$. Aquí hay un ejemplo de uso de la R implementación de bosque al azar:

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

enter image description here

# model confusion matrix
model$confusion

Claramente estas variables no muestran una fuerte relación. Al menos en este tamaño de la muestra. Se suele utilizar una mayor cantidad de árboles: 500, 1000, pero aquí después de 10 árboles, los resultados van de mal en peor! Tiene sentido, aunque la muestra es muy pequeña.

3voto

Nick Sergeant Puntos 3792

Este es más un parcial práctico respuesta, pero a mí me funciona para hacer algunos ejercicios antes de entrar profundamente en la teoría.

Este ats.ucla.edu enlace es una referencia que puede ayudar a que comienzo a entender acerca de la regresión logística multinomial (como se ha señalado por la Ley), en una forma más práctica.
Se presenta reproducible código para entender la función multinom de nmet paquete en R y también se da una breve charla sobre las salidas de interpretación.

Considere este código:

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 

Esto es cómo se puede interpretar el log-lineal equipado logística multinomial modelo:

\begin{align} \ln\left(\frac{P(va={\rm cat})}{P(va={\rm dog})}\right) &= b_{10} + b_{11}vb + b_{12}(vc={\rm red}) + b_{13}(vc={\rm yellow}) + b_{14}vd \\ &\ \\ \ln\left(\frac{P(va={\rm cat})}{P(va={\rm goat})}\right) &= b_{20} + b_{21}vb + b_{22}(vc={\rm red}) + b_{23}(vc={\rm yellow}) + b_{24}vd \end{align}

Aquí es un extracto acerca de cómo los parámetros del modelo puede ser interpretado:

  • Una unidad de incremento en la variable vd está asociada con la disminución de las probabilidades de registro de ser "perro" o "gato" en la cantidad de 21.97069 ($b_{14}$).

la misma lógica para la segunda línea, pero, teniendo en cuenta "la cabra" vs "gato" con ($b_{24}$=-47.72585).

  • El registro de probabilidades de ser "perro" o "gato" se incrementará en 6.705314 si el movimiento de la vc="blue" para vc="rojo"($b_{12}$).

.....

Hay mucho más en el artículo, pero creo que esta parte de ser el núcleo.


Referencia:

R Análisis De Datos Ejemplos: La Regresión Logística Multinomial. UCLA: Estadísticos de Grupo de Consultoría.
de http://www.ats.ucla.edu/stat/r/dae/mlogit.htm (consultado el 05 de noviembre de 2013).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X