gbm::interact.gbm 与 dismo::gbm.interactions
gbm::interact.gbm vs. dismo::gbm.interactions
背景
gbm package
的参考手册指出 interact.gbm
函数计算弗里德曼的 H 统计量以评估变量相互作用的强度。 H 统计量的范围为 [0-1].
dismo package
的参考手册没有引用任何关于 gbm.interactions
函数如何检测和建模交互的文献。相反,它给出了用于检测和建模交互的一般程序列表。 dismo
小插图 "Boosted Regression Trees for ecological modeling" 指出 dismo
包扩展了 gbm
包中的功能。
问题
dismo::gbm.interactions
如何实际检测和建模交互?
为什么
我问这个问题是因为 dismo package
中的 gbm.interactions
产生的结果 >1,gbm package
参考手册说这是不可能的。
我检查了每个包的 tar.gz 以查看源代码是否相似。它差异很大,我无法确定这两个包是否使用相同的方法来检测和建模交互。
总而言之,这两种方法之间的差异归结为如何估计两个预测变量的 "partial dependence function"。
dismo
包基于 Elith et al., 2008 中最初给出的代码,您可以在补充 material 中找到原始来源。该文件非常简要地描述了该过程。基本上,模型预测是在两个预测变量的网格上获得的,将所有其他预测变量设置为均值。然后将模型预测回归到网格上。然后将此模型的均方误差乘以 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
拟合模型的预测,其中除两个正在考虑的预测变量外,其他所有预测变量均设置为方法。
这与 Friedman 的 H 统计量 (Friedman & Popescue, 2005) 不同,后者是通过公式 (44) 对任何预测变量对进行估计的。对于任何两个预测变量 平均 其他变量的值,这基本上偏离了可加性,而不是将其他变量设置为它们的均值。它表示为两个变量(或模型隐含预测)的部分相关函数的总方差的百分比,因此始终介于 0-1 之间。
背景
gbm package
的参考手册指出 interact.gbm
函数计算弗里德曼的 H 统计量以评估变量相互作用的强度。 H 统计量的范围为 [0-1].
dismo package
的参考手册没有引用任何关于 gbm.interactions
函数如何检测和建模交互的文献。相反,它给出了用于检测和建模交互的一般程序列表。 dismo
小插图 "Boosted Regression Trees for ecological modeling" 指出 dismo
包扩展了 gbm
包中的功能。
问题
dismo::gbm.interactions
如何实际检测和建模交互?
为什么
我问这个问题是因为 dismo package
中的 gbm.interactions
产生的结果 >1,gbm package
参考手册说这是不可能的。
我检查了每个包的 tar.gz 以查看源代码是否相似。它差异很大,我无法确定这两个包是否使用相同的方法来检测和建模交互。
总而言之,这两种方法之间的差异归结为如何估计两个预测变量的 "partial dependence function"。
dismo
包基于 Elith et al., 2008 中最初给出的代码,您可以在补充 material 中找到原始来源。该文件非常简要地描述了该过程。基本上,模型预测是在两个预测变量的网格上获得的,将所有其他预测变量设置为均值。然后将模型预测回归到网格上。然后将此模型的均方误差乘以 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
拟合模型的预测,其中除两个正在考虑的预测变量外,其他所有预测变量均设置为方法。
这与 Friedman 的 H 统计量 (Friedman & Popescue, 2005) 不同,后者是通过公式 (44) 对任何预测变量对进行估计的。对于任何两个预测变量 平均 其他变量的值,这基本上偏离了可加性,而不是将其他变量设置为它们的均值。它表示为两个变量(或模型隐含预测)的部分相关函数的总方差的百分比,因此始终介于 0-1 之间。