首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gbm::interact.gbm对dismo::gbm.interactions

gbm::interact.gbm对dismo::gbm.interactions
EN

Stack Overflow用户
提问于 2015-04-05 00:58:27
回答 1查看 2.6K关注 0票数 16

背景

gbm package的参考手册说明了interact.gbm函数计算了Friedman的H-统计量来评估变量相互作用的强度。H-统计量为0-1.

dismo package的参考手册没有引用任何关于gbm.interactions函数如何检测和建模交互的文献。相反,它给出了用于检测和建模交互的一般过程的列表。dismo vignette“促进了回归树的生态建模”指出,dismo包扩展了gbm包中的功能。

问题

dismo::gbm.interactions实际上是如何检测和建模交互的?

为什么

我之所以问这个问题,是因为gbm.interactionsdismo package中产生的结果大于1,gbm package参考手册说这是不可能的。

我检查了每个包的tar.gz,以查看源代码是否类似。这是非常不同的,我无法确定这两个包是否使用相同的方法来检测和建模交互。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 13:31:14

总之,这两种方法的区别归结为如何估计两个预测因子的“部分依赖函数”。

dismo包基于最初在Elith等人,2008年中给出的代码,您可以在补充材料中找到原始源代码。本文非常简要地描述了这一过程。基本上,模型预测是在一个由两个预测器组成的网格上得到的,它将所有其他的预测器设置在它们的平均水平上。然后将模型预测回归到网格上。然后,该模型的均方误差乘以1000。这一统计数据表明模型预测与预测因子的线性组合发生了偏离,表明了可能的交互作用。

dismo包中,我们还可以获得gbm.interactions的相关源代码。交互测试归结为以下命令(直接从源复制):

代码语言:javascript
复制
interaction.test.model <- lm(prediction ~ as.factor(pred.frame[,1]) + as.factor(pred.frame[,2]))

interaction.flag <- round(mean(resid(interaction.test.model)^2) * 1000,2)

pred.frame包含两个预测因子的网格,而prediction是原始gbm拟合模型的预测,其中除两个预测因子外,所有正在考虑的预测都是按其均值设定的。

这与弗里德曼的H统计量(Friedman & Popescue,2005年)不同,后者是用公式(44)对任意一对预测因子进行估计的。这实质上是对任何两个预测变量的可加性的偏离,它们对其他变量的值进行平均处理,而不是在它们的均值上设置其他变量。它表示为两个变量(或模型隐含预测)的部分依赖函数的总方差的百分比,所以总是在0-1之间。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29998014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档