You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kcross.inhom与lohboot计算iso值不一致问题求助

非齐次交叉K函数与lohboot Bootstrap置信区间结果不一致的排查方案

以下是针对你遇到的Kcross.inhom直接计算结果与lohboot生成的bootstrap置信区间对应iso值不一致问题的排查和解决步骤:

1. 强制对齐r值序列

即使手动设置了r参数,仍需确保两个函数使用完全相同的r值数组:

  • 先提取Kcross.inhom生成的r值:
    ck = Kcross.inhom(temp, i = 'crime', j = 'center', lambdaI = model.crime)
    r_exact = ck$r
    
  • 再将该r值数组传入lohboot:
    ckenv = lohboot(temp, fun='Kcross.inhom', i='crime', j='center', 
                   lambdaI=model.crime, r=r_exact)
    
  • 验证两者的r值是否完全一致:
    all.equal(ck$r, ckenv$r)
    

2. 固定强度模型的使用逻辑

lohboot默认可能在每次bootstrap迭代中重新拟合强度模型,这会导致与原Kcross.inhom使用固定模型的结果差异。需强制使用预拟合的model.crime来预测强度,而非重新拟合:

# 用预拟合模型生成强度预测函数
lambda_fixed = function(locs) predict(model.crime, locations=locs, type="lambda")

# 传入lohboot
ckenv = lohboot(temp, fun='Kcross.inhom', i='crime', j='center', 
               lambdaI=lambda_fixed, r=r_exact)

3. 统一边缘校正方法

确认两个函数使用的边缘校正参数一致(Kcross.inhom默认是"border"),避免因校正方法不同导致结果偏差:

ck = Kcross.inhom(temp, i='crime', j='center', lambdaI=model.crime, correction="border")
ckenv = lohboot(temp, fun='Kcross.inhom', i='crime', j='center', 
               lambdaI=lambda_fixed, r=r_exact, correction="border")

4. 消除bootstrap随机波动

26k行数据量较大,默认bootstrap迭代次数(通常100次)可能导致置信区间估计存在随机波动。增加迭代次数降低误差:

ckenv = lohboot(temp, fun='Kcross.inhom', i='crime', j='center', 
               lambdaI=lambda_fixed, r=r_exact, correction="border", nsim=500)

5. 验证数据缩放一致性

检查rescale(temp, 10000)后的缩放是否在两个函数中保持一致:

  • 确认ck和ckenv结果中的r值单位是否统一(比如都是万米)
  • 若lohboot内部对数据做了反向缩放,需手动同步缩放逻辑

内容的提问来源于stack exchange,提问作者palsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:35:21