[R] Trees (and Forests) with packages 'party' vs. 'partykit': Different results
Achim Zeileis
Achim.Zeileis at uibk.ac.at
Mon Sep 14 16:52:24 CEST 2015
Christopher,
thanks for you interest.
> I'm currently exploring a dataset with the help of conditional inference
> trees (still very much a beginner with this technique & log. reg.
> methods as a whole t.b.h.), since they explained more variation in my
> dataset than a binary logistic regression with /glm/. I started out with
> the /party /package, but after I while I ran into the 'updated'
> /partykit /package and tried this out, too.
If you want to use individual trees (as opposed to forests), then the
"partykit" package is recommended because it contains much improved
re-implementations of ctree() and mob() as well as the mob() convenience
interfaces lmtree() and glmtree(). For forests see below.
> Now, the strange thing is that both trees look quite different -
> actually even the very first split is different.
This might be due to several partitioning variables being associated with
tiny p-values in the root node. The re-implementation in partykit
internally computes with log-p-values and hence should be numerically more
stable. In the old implementation it could happen that from several highly
significant variables, always the first is chosen because the p-values
were essentially indistinguishable for the computer.
If you think that this is not the problem, then please contact the package
maintainer with a reproducible example.
Except for bug fixes like the one above, the trees grown by
partykit::ctree and party::ctree should be the same.
> So I did some research and came across the 'forest' concept. However, it
> seems that the /varImp /function does not yet work in the /partykit
> /implementation,
Correct. While the ctree() implementation in partykit is better than that
in party, the same is _not_ true for cforest(). The new partykit::cforest
is currently still a basic implementation which doesn't offer as many
features as the party::cforest implementation. More work is needed
especially for variable importance measures and different kinds of
predictions.
> which raises the question for me how I should evaluate the /partykit
> /forest - how can I find out whether the variables are important in the
> forest as in my /partykit /tree? Is there some way to do this or some
> other solution for this problem? I'd prefer to continue the /partykit
> /implementation of ctree, since it allows more settings for the final
> plot, which I'd need to get the final (large) plot into a readable form.
>
> Related to this project, I'd also like to give statistics for the overall
> model, e.g. overall significance, Nagelkerke's R², a C-value. After a
> 'regular' binary log. reg., I would use the lrm function to get these
> values, but I am unsure whether it would be correct to also apply this
> method to my tree data.
Overall significance is difficult because you have done model selection
when growing the tree. As for pseudo R-squared or information criteria
etc., it is relatively easy to compute these "by hand" based on the
observed and fitted responses. An example for this is provided at:
http://stackoverflow.com/questions/29524670/how-to-find-the-the-deviance-of-an-as-party-object-converted-from-rpart-tree-in/29693223#29693223
> Any help would be greatly appreciated!
>
> -- Christopher
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Trees-and-Forests-with-packages-party-vs-partykit-Different-results-tp4712214.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list