Ok don Mario! El ejemplo conversado. Cargamos librería party. Prefiero esta antes que rpart por un asunto de que el plot es mejor para visualizar el árbol.

suppressPackageStartupMessages(library(party))
## Warning: package 'party' was built under R version 3.1.2
## Warning: package 'mvtnorm' was built under R version 3.1.2

Cargamos datos de ejemplo. El bien conocido iris:

##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

Un arbolito simple y lo miramos:

tri <- ctree(Species ~ ., data = iris)

plot(tri)

Creamos una data nueva y vemos la prediccion y el nodo al cual pertenece.

niudata <- data.frame(Sepal.Length = 1,
                      Sepal.Width = 2,
                      Petal.Length  = 2,
                      Petal.Width = 1)
str(niudata)
## 'data.frame':    1 obs. of  4 variables:
##  $ Sepal.Length: num 1
##  $ Sepal.Width : num 2
##  $ Petal.Length: num 2
##  $ Petal.Width : num 1
predict(tri, niudata, type ="prob")
## [[1]]
## [1] 0.00000000 0.97826087 0.02173913
where(tri, niudata)
## [1] 5

alt text

chantatachan