..., deux (parmi les 20 variables sélectionnées) sont fortement corrélées et deux autres sont complètement corrélées. Est-ce normal? La méthode Boruta n'aurait-elle pas dû classer l'un des deux comme sans importance?
Oui c'est normal. Boruta a tendance à trouver toutes les caractéristiques pertinentes pour la variable de réponse . Rigoureusement parlant, une variable prédictive est considérée comme pertinente pour si et ne sont pas conditionnellement indépendants compte tenu de certaines autres variables prédictives (ou étant donné rien, ce qui signifierait simplement que et ne sont pas indépendants).yXjeyXjeyxiy
Considérez cet exemple simple:
set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n)
Vous voyez que , alors est pertinent pour , car et ne sont pas indépendants. Vous voyez également que et alors n'est pas indépendant de . La seule variable non pertinente pour est , car:y=x2+noisex2yyx2x2=x1+noiseyx2yx3
- y et sont indépendantsx3
- y et sont conditionnellement indépendants étant donnéx3x1
- y et sont conditionnellement indépendants étant donnéx3(x1,x2)
Ensuite, Boruta trouve le résultat attendu:
> 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.
Il existe une forte corrélation entre et , mais Boruta n'y voit pas d'inconvénient:x1x2
> cor(x1,x2)
[1] 0.896883