10 votos

Cómo incluir términos de interacción en R/modelo de árbol?

He leído en muchos lugares que el árbol es bueno para el descubrimiento de dependencias complejas entre las variables predictoras. A partir de los modelos de Árboles en R:

La estructura recursiva de modelos de CARRITO, es ideal para descubrir las dependencias complejas entre las variables predictoras. Si el efecto de, por ejemplo, el contenido de humedad del suelo depende en gran medida de la textura del suelo de manera no lineal, modelos de CARRITO de la ocurrencia de las especies tienen una mejor oportunidad en la detección de este de los términos de interacción en GLMs o incluso de GAMs.

Sin embargo el tree() de la función del árbol de paquete no parece aceptar el término de interacción y los informes de error "los árboles no pueden manejar los términos de interacción". Es allí una manera de incluir el término de interacción en el árbol?

> dat = read.csv("~/Downloads/treedata.csv")
> tree(cover~(elev+plotsize+disturb),data=dat)
node), split, n, deviance, yval
      * denotes terminal node

1) root 8971 39740 4.006  
  2) elev < 1157.5 6875 29610 3.868 *
  3) elev > 1157.5 2096  9567 4.460 *
> tree(cover~(elev+plotsize+disturb)^2,data=dat)
Error in tree(cover ~ (elev + plotsize + disturb)^2, data = dat) : 
  trees cannot handle interaction terms

19voto

David J. Sokol Puntos 1730

No agregar a los términos de interacción en el modelo de fórmula, la naturaleza de la estructura de árbol en sí permite interacciones sin especificar una variable que es la interacción.

En R un término de interacción en una fórmula se convierte en una variable en el modelo de la matriz. Por ejemplo, la interacción a:b sería una variable en el modelo de matriz que toma los valores de $ab = a \times b$. R hace esto para usted detrás de las escenas.

En un árbol de interacciones que se forman no por explícito de las operaciones en las variables, pero a través de la estructura de árbol. Considere este ejemplo utilizando el famoso Edgar Anderson Iris conjunto de datos

data(iris)
require(rpart)
mod <- rpart(Species ~ ., data = iris)
plot(mod)
text(mod)

Produce

enter image description here

En este caso simple, la interacción es local; la variable Petal.Width sólo tiene un efecto en el modelo para el subconjunto de datos para que Petal.Length es mayor que o igual a 2.45. En otras palabras, la interacción sólo afecta a las observaciones que se acaban de ir abajo en la mano derecha rama del árbol después de la primera división.

En contraste, las interacciones de la clase especificada son globales; en a:b la interacción tiene un efecto para cualquier valor de a o b. `

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