..., duas (das 20 variáveis selecionadas) estão altamente correlacionadas e outras duas estão completamente correlacionadas. Isso é normal? O método Boruta não deveria ter classificado um dos dois como sem importância?
Sim é normal. Boruta tende a encontrar todos os recursos relevantes para a variável de resposta . Rigorosamente falando, uma variável preditora é relevante para se e não forem condicionalmente independentes, dadas algumas outras variáveis preditivas (ou nada, o que significaria simplesmente que e não são independentes).yxEuyxEuyxEuy
Considere este exemplo simples:
set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n)
Você vê que , então é relevante para , porque e não são independentes. Você também vê que e não é independente de . A única variável não relevante para é , porque:y= x2+ ruídox2yyx2x2= x1+ ruídoyx2yx3
- y e são independentesx3
- y e são dadas condicionalmente independentex3x1
- y e são independentemente independentes de condiçãox3( x1, x2)
Então Boruta encontra o 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 uma alta correlação entre e , mas Boruta não se importa com isso:x1x2
> cor(x1,x2)
[1] 0.896883