Árboles de inferencia condicional versus árboles de decisión tradicionales

97

¿Alguien puede explicar las diferencias principales entre los árboles de inferencia condicional ( ctreedel partypaquete en R) en comparación con los algoritmos de árbol de decisión más tradicionales (como rparten R)?

  1. ¿Qué hace que los árboles de CI sean diferentes?
  2. ¿Fortalezas y debilidades?

Actualización: He mirado el artículo de Horthorn et al al que Chi se refiere en los comentarios. No pude seguirlo completamente. ¿Alguien puede explicar cómo se seleccionan las variables usando permutaciones (por ejemplo, qué es una función de influencia)?

¡Gracias!

B_Miner
fuente
1
¿Te refieres a una explicación que va más allá de lo que se describe en el artículo de Hothorn ? Recuerdo algunas bonitas ilustraciones de Carolin Strobl en la conferencia IMPS2009 ; Creo que hay algunos folletos en su sitio web.
chl
Este enlace muestra la comparación entre varias formas de paquetes de árbol de decisiones r-bloggers.com/a-brief-tour-of-the-trees-and-forests
Archpaul

Respuestas:

93

Por lo que vale:

ambos rparty ctreerecursivamente realizan divisiones univariadas de la variable dependiente en función de los valores en un conjunto de covariables. rparty los algoritmos relacionados generalmente emplean medidas de información (como el coeficiente de Gini ) para seleccionar la covariable actual.

ctree, según sus autores (ver los comentarios de chl ) evita el siguiente sesgo de selección de variables rpart(y métodos relacionados): Tienden a seleccionar variables que tienen muchas divisiones posibles o muchos valores faltantes. A diferencia de los demás, ctreeutiliza un procedimiento de prueba de significación para seleccionar variables en lugar de seleccionar la variable que maximiza una medida de información (por ejemplo, el coeficiente de Gini).

La prueba de significación, o mejor: las pruebas de significación múltiple calculadas en cada inicio del algoritmo (seleccionar covariable - elegir división - recurrencia) son pruebas de permutación , es decir, la "distribución del estadístico de prueba bajo la hipótesis nula se obtiene calculando todos los valores posibles del estadístico de prueba bajo reordenamientos de las etiquetas en los puntos de datos observados ". (del artículo de wikipedia).

Ahora para la estadística de prueba: se calcula a partir de las transformaciones (incluida la identidad, es decir, sin transformación) de la variable dependiente y las covariables. Puede elegir cualquiera de varias transformaciones para ambas variables. Para la DV (variable dependiente), la transformación se llama la función de influencia que estaba preguntando.

Ejemplos (tomados del documento ):

  • Si tanto DV como covariables son numéricos, puede seleccionar transformaciones de identidad y calcular correlaciones entre la covariable y todas las permutaciones posibles de los valores de DV. Luego, calcula el valor p de esta prueba de permutación y lo compara con los valores p para otras covariables.
  • Si tanto DV como las covariables son nominales (categóricas no ordenadas), el estadístico de prueba se calcula a partir de una tabla de contingencia.
  • puede crear fácilmente otros tipos de estadísticas de prueba a partir de cualquier tipo de transformaciones (incluida la transformación de identidad) a partir de este esquema general.

Pequeño ejemplo para una prueba de permutación en R:

require(gtools)
dv <- c(1,3,4,5,5); covariate <- c(2,2,5,4,5)
# all possible permutations of dv, length(120):
perms <- permutations(5,5,dv,set=FALSE) 
# now calculate correlations for all perms with covariate:
cors <- apply(perms, 1, function(perms_row) cor(perms_row,covariate)) 
cors <- cors[order(cors)]
# now p-value: compare cor(dv,covariate) with the 
# sorted vector of all permutation correlations
length(cors[cors>=cor(dv,covariate)])/length(cors)
# result: [1] 0.1, i.e. a p-value of .1
# note that this is a one-sided test

Ahora suponga que tiene un conjunto de covariables, no solo uno como el anterior. Luego calcule los valores p para cada una de las covariables, como en el esquema anterior, y seleccione la que tenga el valor p más pequeño . Desea calcular los valores p en lugar de las correlaciones directamente, ya que podría tener covariables de diferentes tipos (por ejemplo, numéricas y categóricas).

Una vez que haya seleccionado una covariable, ahora explore todas las divisiones posibles (o, a menudo, un número restringido de alguna manera de todas las divisiones posibles, por ejemplo, al requerir un número mínimo de elementos del DV antes de dividir) nuevamente evaluando una prueba basada en permutación.

ctreeviene con una serie de posibles transformaciones tanto para DV como para covariables (consulte la ayuda Transformationsen el partypaquete).

así que, en general, la principal diferencia parece ser que ctreeutiliza un esquema de selección covariable que se basa en la teoría estadística (es decir, la selección mediante pruebas de significación basadas en permutación) y, por lo tanto, evita un sesgo potencial rpart, de lo contrario, parecen similares; por ejemplo, los árboles de inferencia condicional se pueden usar como aprendices base para los bosques aleatorios.

Esto es lo más lejos que puedo llegar. Para obtener más información, realmente necesita leer los periódicos. Tenga en cuenta que le recomiendo que sepa realmente lo que está haciendo cuando desea aplicar cualquier tipo de análisis estadístico.

wolf.rauch
fuente
Entonces, sería justo decir lo siguiente: 1. En principio, si las pruebas de significación estuvieran disponibles y fueran fáciles de calcular para Gini, entonces cualquier generador de árbol de decisión actual podría aumentarse con estas; 2. Pero en la práctica no están disponibles (es decir, muy difíciles / ineficientes de calcular) para la mayoría de los casos; 3. Los autores de los árboles de CI eligieron una familia de criterios de división. Esta no es necesariamente la mejor familia para la precisión de la clasificación, pero al menos es fácil de calcular la importancia; 4. Y, por lo tanto, una debilidad de los árboles de CI es que debe usar este criterio específico.
SheldonCooper
1
@SheldonCooper: 1. y 2. pueden estar un poco sobre mi cabeza. Creo que tienes razón acerca de 3. y 4.
wolf.rauch
1
(...) y todas las permutaciones posibles de los valores de DV "¿Todas las permutaciones posibles de los valores de DV? Se necesitan más de 130 segundos para encontrar todas las permutaciones posibles de 10 elementos. Esto haría que los árboles de CI sean inútiles cuando tenga más de 20 observaciones - agregado por un moderador
chl
1
Lo siento, pero ¿qué significa DV?
mythicalprogrammer
1
@mythicalprogrammer variable dependiente, creo
Frikster