Sé que la rpart
función de R mantiene los datos que necesitaría para implementar una división multivariada, pero no sé si en realidad está realizando divisiones multivariadas. Intenté investigarlo en línea mirando los rpart
documentos, pero no veo ninguna información de que pueda hacerlo o lo esté haciendo. Alguien sabe a ciencia cierta?
r
multivariate-analysis
cart
chubbsondubs
fuente
fuente
Respuestas:
Rpart solo proporciona divisiones univariadas. Creo, según su pregunta, que no está completamente familiarizado con la diferencia entre un método de partición univariante y un método de partición multivariante. He hecho todo lo posible para explicar esto a continuación, así como proporcionar algunas referencias para futuras investigaciones y sugerir algunos paquetes R para implementar estos métodos.
Rpart es un clasificador basado en árboles que utiliza particiones recursivas. Con los métodos de partición, debe definir los puntos dentro de sus datos en los que se realizará una división. El algoritmo rpart en R hace esto al encontrar la variable y el punto que mejor divide (y por lo tanto reduce) el RSS. Debido a que las divisiones solo ocurren a lo largo de una variable a la vez, estas son divisiones univariadas. Una división multivariada generalmente se define como una partición simultánea a lo largo de múltiples ejes (por lo tanto, multivariada), es decir, el primer nodo rpart podría dividirse a lo largo de Edad> 35, el segundo nodo podría dividirse a lo largo de Ingresos> 25,000, y el tercer nodo podría dividirse a lo largo de Ciudades al oeste de el Mississippi. El segundo y tercer nodos se dividen en subconjuntos más pequeños de los datos generales, por lo que en el segundo nodo el criterio de ingresos divide mejor el RSS solo para aquellas personas que tienen más de 35 años, no se aplica a las observaciones que no se encuentran en este nodo, lo mismo se aplica al criterio de Ciudades. Se podría continuar haciendo esto hasta que haya un nodo para cada observación en su conjunto de datos (rpart utiliza una función de tamaño de depósito mínimo además de un criterio de tamaño de nodo mínimo y un parámetro cp que es el mínimo que debe aumentar el valor de r cuadrado para seguir ajustando).
Un método multivariante, como el Método de inducción de la regla del paciente (el paquete principal en R) se dividiría simultáneamente seleccionando, por ejemplo, Todas las observaciones donde el ingreso era mayor de 22,000, Edad> 32 y Ciudades al oeste de Atlanta. La razón por la cual el ajuste puede ser diferente es porque el cálculo para el ajuste es multivariante en lugar de univariante, el ajuste de estos tres criterios se calcula en función del ajuste simultáneo de las tres variables en todas las observaciones que cumplen estos criterios en lugar de dividirlo iterativamente en función de divisiones univariadas (como con rpart).
Existen diferentes creencias con respecto a la efectividad de los métodos de partición univariados versus multivariados. En general, lo que he visto en la práctica es que la mayoría de las personas prefieren la partición univariada (como rpart) con fines explicativos (solo se usa en la predicción cuando se trata de un problema donde la estructura está muy bien definida y la variación entre las variables es bastante constante, es por eso que a menudo se usan en medicina). Los modelos de árboles univariantes generalmente se combinan con los aprendices de conjunto cuando se usan para la predicción (es decir, un bosque aleatorio). Las personas que usan particionamiento o agrupamiento multivariante (que está muy relacionado con el particionamiento multivariado) a menudo lo hacen por problemas complejos que los métodos univariados encajan muy mal, y lo hacen principalmente para la predicción, o para agrupar las observaciones en categorías.
Recomiendo encarecidamente el libro de Julian Faraway Extender el modelo lineal con R. El capítulo 13 está dedicado por completo al uso de árboles (todos univariados). Si le interesan más los métodos multivariados, Elementos de aprendizaje estadístico de Hastie et. al, proporciona una excelente visión general de muchos métodos multivariados, incluido PRIM (aunque Friedman en Stanford tiene su artículo original sobre el método publicado en su sitio web), así como los métodos de agrupamiento.
En lo que respecta a los paquetes R para utilizar estos métodos, creo que ya está utilizando el paquete rpart, y he mencionado el paquete primario anterior. Hay varias rutinas de agrupamiento integradas, y me gusta mucho el paquete de fiesta mencionado por otra persona en este hilo, debido a su implementación de inferencia condicional en el proceso de construcción del árbol de decisión. El paquete optpart le permite realizar particiones multivariadas, y el paquete mvpart (también mencionado por otra persona) le permite realizar árboles rpart multivariados, sin embargo, personalmente prefiero usar partDSA, que le permite combinar nodos más abajo en su árbol para ayudar a prevenir particiones similares observaciones, si siento que rpart y party no son adecuadas para mis propósitos de modelado.
Nota: en mi ejemplo de un árbol rpart en el párrafo 2, describo cómo funciona la partición con números de nodo, si uno dibujara este árbol, la partición continuaría a la izquierda si la regla para la división fuera cierta, sin embargo, en RI cree que la división en realidad procede a la derecha si la regla es verdadera.
fuente
Tan rápido como lo sé, no lo hace; pero no lo he usado por un tiempo. Si lo entiendo bien, es posible que desee ver el paquete mvpart en su lugar.
fuente
Tu terminología es confusa. ¿Se refiere a divisiones que utilizan más de una variable o un árbol que permite una respuesta multivariada (en lugar de una univariada)? Presumo lo último.
F. Tusell te ha señalado el paquete mvpart, que agrega un criterio multivariado para la impureza del nodo que se evalúa para todas las divisiones posibles en cada etapa de la construcción de árboles.
Una alternativa es el paquete de fiesta , cuya función
ctree()
puede manejar respuestas multivariadas.fuente
rpart
, la división binaria se forma al buscar en todas las variables y en todas las ubicaciones posibles de división dentro de cada variable.rpart
también almacena información sobre divisiones sustitutas que se pueden usar cuando faltan datos en sus variables. ¿Esto ayuda?rpart
no maneja ese caso.Las divisiones multivariadas tal como se definen en el libro CART no se implementan en
rpart
. El paquete de software CART de Salford Systems tiene esta característica, pero AFAIK utiliza un algoritmo patentado con licencia de Breiman, Friedman et al.fuente