背景
gbm package的参考手册说明了interact.gbm函数计算了Friedman的H-统计量来评估变量相互作用的强度。H-统计量为0-1.
dismo package的参考手册没有引用任何关于gbm.interactions函数如何检测和建模交互的文献。相反,它给出了用于检测和建模交互的一般过程的列表。dismo vignette“促进了回归树的生态建模”指出,dismo包扩展了gbm包中的功能。
问题
dismo::gbm.interactions实际上是如何检测和建模交互的?
为什么
我之所以问这个问题,是因为gbm.interactions在dismo package中产生的结果大于1,gbm package参考手册说这是不可能的。
我检查了每个包的tar.gz,以查看源代码是否类似。这是非常不同的,我无法确定这两个包是否使用相同的方法来检测和建模交互。
发布于 2015-09-24 13:31:14
总之,这两种方法的区别归结为如何估计两个预测因子的“部分依赖函数”。
dismo包基于最初在Elith等人,2008年中给出的代码,您可以在补充材料中找到原始源代码。本文非常简要地描述了这一过程。基本上,模型预测是在一个由两个预测器组成的网格上得到的,它将所有其他的预测器设置在它们的平均水平上。然后将模型预测回归到网格上。然后,该模型的均方误差乘以1000。这一统计数据表明模型预测与预测因子的线性组合发生了偏离,表明了可能的交互作用。
从dismo包中,我们还可以获得gbm.interactions的相关源代码。交互测试归结为以下命令(直接从源复制):
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之间。
https://stackoverflow.com/questions/29998014
复制相似问题