【问题标题】:Is there an equivalence of "anova" (for lm) to an rpart object?“anova”(对于 lm)是否与 rpart 对象等价?
【发布时间】:2011-01-24 17:41:28
【问题描述】:

当使用 R 的 rpart 函数时,我可以轻松地用它拟合模型。例如:

# Classification Tree with rpart
library(rpart)

# grow tree 
fit <- rpart(Kyphosis ~ Age + Number + Start,
     method="class", data=kyphosis)

printcp(fit) # display the results 
plotcp(fit) 
summary(fit) # detailed summary of splits

# plot tree 
plot(fit, uniform=TRUE, 
     main="Classification Tree for Kyphosis")
text(fit, use.n=TRUE, all=TRUE, cex=.8)

我的问题是—— 如何衡量我的三个解释变量(年龄、数字、开始)中的每一个对模型的“重要性”?

如果这是一个回归模型,我可以查看来自“anova”F 检验的 p 值(在有和没有变量的 lm 模型之间)。但是在lm 上使用“anova”与rpart 对象有什么等价性?

(我希望我能把我的问题说清楚)

谢谢。

【问题讨论】:

    标签: r tree regression rpart cart-analysis


    【解决方案1】:

    当然 anova 是不可能的,因为 anova 涉及计算响应变量的总变化并将其划分为信息分量(SSA、SSE)。我看不出如何计算像脊柱后凸这样的分类变量的平方和。

    我认为您实际上在谈论的是属性选择(或评估)。例如,我会使用information gain 度量。我认为这是用于在树中的每个节点处选择测试属性的方法,并且选择具有最高信息增益(或最大熵减少)的属性作为当前节点的测试属性。该属性最大限度地减少了对结果分区中的样本进行分类所需的信息。

    我不知道R中是否有根据属性的信息增益对属性进行排名的方法,但我知道WEKA中有并命名为InfoGainAttributeEval它通过测量信息来评估属性的价值阶级的收获。如果您使用Ranker 作为Search Method,属性将按其各自的评估进行排名。

    编辑 我终于找到了一种在 R 中使用 Library CORElearn

    的方法
    estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain")
    print(estInfGain)
    

    【讨论】:

    • 感谢 gd047,这是一个非常有帮助的方向!我期待人们的其他想法。谢谢!塔尔
    • gd047,我只是四处寻找信息增益措施的 R 实现——我似乎找不到任何人在谈论它。也许我会为此将 R 与 wekka 连接起来。再次感谢领导!塔尔
    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 2020-07-27
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多