I don't quite understand how ctree/cforest deal with missing predictors. Can someone please explain this further?
1 Answer
Conditional inference trees (CTree) as implemented in party
and its successor package partykit
allow for so-called surrogate splits when predictors are missing. The idea is that if the original split, say $x_1 > \xi$, should be evaluated but $x_1$ is missing, an alternative split $x_j > \nu$ (with $j \neq 1$) can be used that approximates the original split.
To find this best approximating split a CTree is learned that has the binary response $x_1 > \xi$ and can choose from all remaining $x_j$ as surrogate split variables. This will find the best surrogate split approximating the original split - using the same criterion as the CTree itself employs.
This is briefly described in the original CTree paper in Section 3.3: Torsten Hothorn, Kurt Hornik, Achim Zeileis (2006). "Unbiased Recursive Partitioning: A Conditional Inference Framework." Journal of Computational and Graphical Statistics, 15(3), 651-674. doi:10.1198/106186006X133933 [preprint]
-
$\begingroup$ Thank you for your answer. I have one question, why is ctree default for maxsurrogate=0. What does 0 mean here? $\endgroup$– AshtiJun 25, 2019 at 17:03
-
$\begingroup$ At most 0 surrogate splits are considered, i.e., none. Simply for saving computation time. $\endgroup$ Jun 25, 2019 at 21:16
-
$\begingroup$ So when the default is 0, how does it account for missing values? Do I have to change the default to account for missing values? $\endgroup$– AshtiJun 26, 2019 at 13:24
-
$\begingroup$ If you want surrogate splits, then you need to change the default: yes. If no surrogates are available (or have missing values themselves), then the default is to split the data randomly with the proportions from the learning sample. As yet another alternative the control parameter
majority = TRUE
can be specified which always assigns to the majority if there are missing predictors. $\endgroup$ Jun 27, 2019 at 8:25 -
$\begingroup$ I'm not entirely sure that I understand. So when the default is maxsurrogate=0, it doesn't search for surrogate splits. If no surrogate splits are available, what does it mean " the default is to split the data randomly with the proportions from the learning sample"? is there an example here you can provide? I'm sorry, I'm having a hard time understanding. $\endgroup$– AshtiJun 27, 2019 at 20:54