I don't quite understand how ctree/cforest deal with missing predictors. Can someone please explain this further?


1 Answer 1


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$
    – Ashti
    Jun 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$
    – Ashti
    Jun 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$
    – Ashti
    Jun 27, 2019 at 20:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.