Обратите внимание, что ни один из них не является race
... это может быть потому, что ни race
, ни Veteran
не являются переменными, которые действительно полезны при классификации ваших данных на основе искомого результата (Total.Individual.Income
).
В любом случае, трудно сказать за отсутствием воспроизводимого примера.
Смотрите результаты по этому вопросу:
require(rpart)
m1 <- rpart(mpg ~ ., data = mtcars)
> m1
n= 32
node), split, n, deviance, yval
* denotes terminal node
1) root 32 1126.04700 20.09062
2) cyl>=5 21 198.47240 16.64762
4) hp>=192.5 7 28.82857 13.41429 *
5) hp< 192.5 14 59.87214 18.26429 *
3) cyl< 5 11 203.38550 26.66364 *
Обратите внимание, что только две переменные (cyl
и hp
) показывать как предикторы, хотя есть 10 переменных, которые могут быть предикторами.Тем не менее, если мы исключим cyl
и hp
, мы получим совершенно разные результаты:
m2 <- rpart(mpg ~ ., data = mtcars[,c(1, 3, 5:11)])
, тогда результат изменится:
> m2
n= 32
node), split, n, deviance, yval
* denotes terminal node
1) root 32 1126.04700 20.09062
2) wt>=2.3925 25 320.44640 17.58800
4) disp>=266.9 14 85.20000 15.10000 *
5) disp< 266.9 11 38.28727 20.75455 *
3) wt< 2.3925 7 89.81429 29.02857 *
, показывая нам теперь вес (wt
) и смещение (disp
) в качестве предикторов.
Так что с вашим кодом все в порядке, кажется, все, что вам нужно, это лучше понять, что rpart
делает под капотом.?rpart
может быть хорошим началом.