如何从拟合参数构建kppm对象并评估点过程模型性能?
问题解答
核心结论
你完全可以用得到的参数集构建kppm对象来评估模型性能,同时模拟实现与实际数据对比也是重要的验证手段,两者结合使用能更全面地评估模型拟合效果。
构建kppm对象的具体方法
- 使用
spatstat包中的kppm()函数,指定聚类模型类型为"Thomas",并传入你拟合得到的kappa和sigma参数,同时将非均匀强度项mu(像素图像)作为偏移项纳入模型:# 假设merged_pp是合并后的点模式,mu是缩放后的强度图像 my_kppm <- kppm(merged_pp ~ offset(log(mu)), clusters = "Thomas", parameters = list(kappa = your_kappa, sigma = your_sigma)) - 由于你的点模式分布在不同多边形窗口中,若要针对单份窗口数据构建模型,只需将对应窗口的点模式和匹配的
mu图像传入即可,必要时可用solate()函数提取单份复制数据的窗口和点模式。
基于kppm对象的模型评估方式
- 诊断性分析:调用
diagnose.kppm(my_kppm)生成模型诊断图,对比实测与模型预测的K函数、L函数或残差分布,直观判断拟合效果; - 强度预测对比:使用
predict(my_kppm)生成模型的强度预测图像,与从原始数据估计的强度(如density.ppp()结果)做定量对比; - 拟合优度统计:计算模型的离差信息准则(DIC)或其他拟合统计量,衡量模型对数据的解释能力。
模拟对比的必要性
即使构建了kppm对象,模拟验证依然不可缺少:
- 从
kppm模型中模拟多组点模式(需匹配原始数据的多边形窗口),使用simulate(my_kppm, nsim = 10, win = original_windows); - 对比模拟数据的合并
Kinhom函数、强度分布等统计特征与实际数据的差异,验证模型是否能复现原始数据的聚类特性; - 对于多窗口的复制数据,模拟时需保证每个模拟样本的窗口与原始对应窗口一致,避免窗口差异带来的偏差。
关键注意事项
- 务必确认
mu的缩放逻辑正确:kappa * sum(mu * area(mu))需等于总体强度lambda,这是Thomas模型强度公式的核心要求; - 若要评估模型对所有复制点模式的拟合效果,可循环为每个窗口构建对应的
kppm模型,或用合并数据的模型对每个窗口做预测后逐一对比。
内容的提问来源于stack exchange,提问作者SGJ
相关产品推荐
相关产品推荐

