Pour répondre à une question rapide, la robustesse des arbres dépend de deux choses: du nombre d'observations (plus il y a d'observations, plus les nœuds seront stables), et de l'hétérogénéité entre les classes (plus les classes sont différentes, plus il sera facile de les distinguer). Pour faire simple, considérons un petit modèle binomial à trois classes (avec une unique variable explicative), par exemple si on simule 1000 valeurs,

m=c(.2,.5,.3)
moyenne=function(x){
return(m[1]*(x<3)+m[2]*((x>=3)&(x<=7))+m[3]*(x>7))
}
MY=Vectorize(moyenne)
set.seed(1)
n=1000
U=runif(n)*10
Y=rbinom(n,size=1,prob=MY(U))
plot(U,Y,ylim=c(-.1,1.1))
library(splines)
base=data.frame(Y,U)
reg=glm(Y~bs(U,10),data=base,family=binomial)
u=seq(0,10,by=.01)
y=predict(reg,newdata=data.frame(U=u),type="response")
lines(u,y,lwd=2,col="blue")
lines(u,MY(u),lwd=2,col="red",type="s")

Si on simule quelques milliers d'échantillons, on peut regarder la distribution de mes nœuds (si le découpage par arbre converge), en gardant - au mieux - que deux nœuds,

set.seed(1)
N=matrix(NA,10000,2)
n=1000
for(s in 1:1000){
U=runif(n)*10
Y=rbinom(n,size=1,prob=MY(U))
T=tree(Y~U)
noeud=T$frame$splits[,1]
noeud=noeud[noeud!=""]
NOEUD=as.numeric(substr(noeud,2,nchar(noeud)))
N[s,]=NOEUD[1:2]
}
vn=as.vector(N)
vn=vn[is.na(vn)==FALSE]
plot(density(vn,bw=.2),col="blue",lwd=2,xlim=c(0,10))
abline(v=c(3,7),col="red")

Rappelons que l'on a ici 1000 observations pour faire notre régression, avec trois classes, dont les valeurs moyennes par classe sont respectivement 20%, 50% et 30%. On note que l'on coupe bien entre les deux premières classes, un peu moins bien entre les deux dernières.

Si on suppose que les classes sont moins différentes, par exemple avec des valeurs moyennes à 30%, 50% et 40%, on obtient visuellement la distribution suivante pour les nœuds,

En l’occurrence, on a beaucoup de mal à distinguer entre les deux dernières classes.

Si on change la taille de notre échantillon, en passant de 1000 à 200, on s'aperçoit (en revenant aux valeurs précédentes des taux par classes) que l'on a beaucoup de mal à estimer correctement les nœuds,

De manière assez surprenante, il va prendre des nœuds proches des bords (proches de 0 et de 10).

Moralité, les classes obtenues par arbre ne sont robustes qu'à condition d'avoir suffisamment d'observations, et d'avoir des classes réellement différentes.