使用spatstat的rLGCP生成带协变量的LGCP时失败
LGCP模拟报错:"the images ‘e1’ and ‘e2’ were not compatible" 原因与修复
警告信息的根源
- 调用
rLGCP时同时传入了自定义im对象(作为强度均值场)和win参数,两者空间网格定义冲突:im已通过xcol、yrow明确自身网格和窗口范围,额外传入win会触发函数内部兼容性检查,导致无法对齐。 - 使用
'matern'模型生成随机场时,rLGCP会基于im的网格生成对应GMRF,额外的win参数会干扰网格匹配流程,引发兼容性警告。
强度场异常的原因
- 网格兼容性冲突导致
rLGCP无法正确生成对数高斯随机场,存储强度场的Lambda对象因此异常:内部默认生成非预期的562×562分辨率网格,且计算失败后填充了NA值。 - 你设置的
spatstat.options(npixel = npix)全局参数,因im与win的冲突未被正确应用到随机场生成过程。
修复步骤
- 删除
rLGCP中的win参数,直接使用im自带的窗口信息:lg.s.c <- rLGCP('matern', im(beta0 + beta1 * gridcov, xcol = x0, yrow = y0), var = sigma2x, scale = range / sqrt(8), nu = 1) - 验证
im窗口正确性:执行Window(im(beta0 + beta1 * gridcov, xcol = x0, yrow = y0)),确认其与你定义的win范围一致。 - 确认
scale参数:Matern协方差的scale在rLGCP中为相关范围除以sqrt(8nu),你当前nu=1,range / sqrt(8)的设置是正确的,后续调整nu时需同步修改该参数。
内容的提问来源于stack exchange,提问作者kposs77
相关产品推荐
相关产品推荐

