R randomForestSRC:如何提取(或计算)解释的方差?

R randomForestSRC: how to extract (or calculate) the variance explained?

假设我有一个来自 rfsrc(..)(randomForestSRC 包)调用的对象“数据库”。 调用 database 给我(在我的特殊情况下)

                         Sample size: 13209
                     Number of trees: 5000
           Forest terminal node size: 5
       Average no. of terminal nodes: 1890.76
No. of variables tried at each split: 20
              Total no. of variables: 58
       Resampling used to grow trees: swor
    Resample size used to grow trees: 8348
                            Analysis: RF-R
                              Family: regr
                      Splitting rule: mse *random*
       Number of random split points: 10
                % variance explained: 40.6
                          Error rate: 43.9

我正在寻找一个将精确的“解释的方差百分比”提取到变量中的命令。类似于(虚构的)varEx <- database$variance[1,2]varEx <- rfsrc.explVar(database)。 目前,capture.output() 是一个快速而肮脏的选择,但我想一定有一个正确的方法。

有什么想法吗?那太好了!

顺便说一句:对于来自 randomForest(..)(randomForest 包)调用的“数据库”,同样有趣(虽然目前并不紧急)。

我在 randomForestSRC::print.rfsrc!

中找到了公式

由于您将“regr”作为系列,解释的方差百分比公式为:

per.var <- round(100 * (1 - err.rate[nrow(err.rate),]/var(x$yvar, na.rm = TRUE)), 2)

希望对你有所帮助。