..., dos (de las 20 variables seleccionadas) están altamente correlacionadas, y otras dos están completamente correlacionadas. ¿Esto es normal? ¿No debería el método Boruta haber clasificado a uno de los dos como sin importancia?
Si es normal. Boruta tiende a encontrar todas las características relevantes para la variable de respuesta . Hablando rigurosamente, se dice que una variable predictora es relevante para si e no son condicionalmente independientes dadas algunas otras variables predictoras (o no se les da nada, lo que simplemente significaría que e no son independientes).yXyoyXyoyXyoy
Considere este simple ejemplo:
set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n)
Usted ve que , entonces es relevante para , porque y no son independientes. También ve que y luego no es independiente de . La única variable que no es relevante para es , porque:y=X2+ ruidoX2yyX2X2=X1+ ruidoyX2yX3
- y y son independientesX3
- y y son condicionalmente independientes dadoX3X1
- y y son independientes de la condición dadax3(x1,x2)
Entonces Boruta encuentra el resultado esperado:
> library(Boruta)
> Boruta(data.frame(x1,x2,x3), y)
Boruta performed 30 iterations in 2.395286 secs.
2 attributes confirmed important: x1, x2.
1 attributes confirmed unimportant: x3.
Existe una alta correlación entre y , pero a Boruta no le importa eso:x1x2
> cor(x1,x2)
[1] 0.896883