在spatstat中如何用拟合的非齐次模型计算包络分析g_inhom?
问题解答
代码选择:优先使用不带lambda=fit的版本
两段代码中,第二段是更合适的选择:
g <- envelope(fit, pcfinhom, correction="isotropic", divisor="d", nsim = 199)
理由很直接:你拟合得到的fit是一个完整的ppm模型对象,里面已经包含了所有关于强度函数(lambda)的估计信息。当把fit传入envelope作为第一个参数时,pcfinhom会自动从这个模型里提取所需的强度数据,完全不需要额外手动指定lambda=fit。手动添加这个参数属于冗余操作,甚至可能引发参数解析的冲突——因为envelope处理ppm对象时,默认就会用模型内置的强度来生成模拟的异质点过程。
关于lambda的对数形式:无需手动转换
你不用纠结模型是对数线性形式的问题。ppm在拟合对数线性泊松模型时,内部会自动完成指数转换,得到对应实际空间强度的lambda值(即lambda = exp(截距 + 系数*elev + 系数*grad))。后续调用pcfinhom或envelope时,函数会直接使用模型中已经计算好的、反映真实强度的lambda表面,不需要你手动对模型的线性预测结果做指数运算。
额外说明
这个分析的核心逻辑是:通过envelope生成基于拟合模型的模拟点过程的g_inhom包络线,把观测数据的g_inhom曲线和包络线对比。如果观测曲线落在包络线范围内,说明你纳入的协变量(高程、坡度)已经解释了观测到的空间异质性,不存在额外的聚集或分散效应;如果落在范围外,则意味着还有未被当前模型捕捉到的空间结构。
内容的提问来源于stack exchange,提问作者Tieygons
相关产品推荐
相关产品推荐

