En realidad, pensé que había entendido lo que se puede mostrar con un parcial de dependencia de la trama, pero usando un simple ejemplo hipotético, me tiene bastante intrigado. En el siguiente trozo de código que me genera tres variables independientes (un, b, c) y una variable dependiente (y) con c muestran una estrecha relación lineal con y, mientras que un y b son no correlacionados con y. Hago un análisis de regresión con una impulsada árbol de regresión utilizando el paquete R gbm
:
a <- runif(100, 1, 100)
b <- runif(100, 1, 100)
c <- 1:100 + rnorm(100, mean = 0, sd = 5)
y <- 1:100 + rnorm(100, mean = 0, sd = 5)
par(mfrow = c(2,2))
plot(y ~ a); plot(y ~ b); plot(y ~ c)
Data <- data.frame(matrix(c(y, a, b, c), ncol = 4))
names(Data) <- c("y", "a", "b", "c")
library(gbm)
gbm.gaus <- gbm(y ~ a + b + c, data = Data, distribution = "gaussian")
par(mfrow = c(2,2))
plot(gbm.gaus, i.var = 1)
plot(gbm.gaus, i.var = 2)
plot(gbm.gaus, i.var = 3)
No es de extrañar que, para las variables de un y b, la dependencia parcial de las parcelas de rendimiento de líneas horizontales alrededor de la media de una. Lo que me rompecabezas es la representación gráfica para la variable c. Puedo obtener líneas horizontales para los rangos c < 40 y c > 60 y el eje y está restringida a valores cercanos a la media de y. Desde un y b son completamente independientes de y (y por lo tanto de importancia variable en el modelo es el 0), yo esperaba que c mostraría parcial de la dependencia a lo largo de todo su rango en lugar de que la forma sigmoidea de una muy restringido el rango de sus valores. He tratado de encontrar información en Friedman (2001) "Codiciosos aproximación de funciones: un gradiente de impulsar la máquina" y en Hastie et al. (2011) "Elementos de Estadística de Aprendizaje", pero mis habilidades matemáticas son demasiado bajos como para comprender todas las ecuaciones y fórmulas en el mismo. Por lo tanto mi pregunta: ¿Qué determina la forma de la dependencia parcial de la parcela para la variable c? (Por favor explique en palabras comprensibles para un no-matemático!)
AÑADIDO el 17 de abril de 2014:
Mientras se espera una respuesta, he utilizado el mismo ejemplo, los datos para un análisis con R-package randomForest
. El parcial de la dependencia de las parcelas de randomForest se asemejan mucho más a lo que yo esperaba desde el gbm parcelas: el parcial de la dependencia de las variables explicativas de un y b varían de forma aleatoria y en torno a 50, mientras que la variable explicativa c muestra parcial de la dependencia en toda su gama (y para casi todo el rango de y). ¿Cuáles podrían ser las razones para estas diferentes formas de la dependencia parcial de las parcelas en gbm
y randomForest
?
Aquí el código modificado que compara las parcelas:
a <- runif(100, 1, 100)
b <- runif(100, 1, 100)
c <- 1:100 + rnorm(100, mean = 0, sd = 5)
y <- 1:100 + rnorm(100, mean = 0, sd = 5)
par(mfrow = c(2,2))
plot(y ~ a); plot(y ~ b); plot(y ~ c)
Data <- data.frame(matrix(c(y, a, b, c), ncol = 4))
names(Data) <- c("y", "a", "b", "c")
library(gbm)
gbm.gaus <- gbm(y ~ a + b + c, data = Data, distribution = "gaussian")
library(randomForest)
rf.model <- randomForest(y ~ a + b + c, data = Data)
x11(height = 8, width = 5)
par(mfrow = c(3,2))
par(oma = c(1,1,4,1))
plot(gbm.gaus, i.var = 1)
partialPlot(rf.model, Data[,2:4], x.var = "a")
plot(gbm.gaus, i.var = 2)
partialPlot(rf.model, Data[,2:4], x.var = "b")
plot(gbm.gaus, i.var = 3)
partialPlot(rf.model, Data[,2:4], x.var = "c")
title(main = "Boosted regression tree", outer = TRUE, adj = 0.15)
title(main = "Random forest", outer = TRUE, adj = 0.85)