... sind zwei (von den 20 ausgewählten Variablen) stark korreliert und zwei andere sind vollständig korreliert. Ist das normal? Sollte die Boruta-Methode nicht eine der beiden als unwichtig eingestuft haben?
Ja, das ist normal. Boruta neigt dazu, alle Merkmale zu finden, die für die Antwortvariable relevant sind . Streng genommen gilt eine Prädiktorvariable als relevant für wenn und bei einigen anderen Prädiktorvariablen nicht bedingt unabhängig sind (oder wenn nichts gegeben ist, was einfach bedeuten würde, dass und nicht unabhängig sind).x i y x i y x i yyxichyxichyxichy
Betrachten Sie dieses einfache Beispiel:
set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n)
Sie sehen, dass , dann ist für relevant , weil und nicht unabhängig sind. Sie sehen auch, dass und dann nicht unabhängig von . Die einzige Variable, die für nicht relevant ist, ist , weil:x 2 y y x 2 x 2 = x 1 + Rauschen y x 2 y x 3y= x2+ Lärmx2yyx2x2= x1+ Lärmyx2yx3
- x 3y und sind unabhängigx3
- x 3 x 1y und sind bei bedingt unabhängigx3x1
- x 3 ( x 1 , x 2 )y und sind bedingt unabhängig gegebenx3( x1, x2)
Dann findet Boruta das erwartete Ergebnis:
> 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.
Es gibt eine hohe Korrelation zwischen und , aber Boruta macht das nichts aus:x 2x1x2
> cor(x1,x2)
[1] 0.896883