我正在用 R.spatstat 上的 kppm 函数拟合对数高斯 cox 点过程以获取点模式。 它应该为我提供潜在非齐次泊松强度的强度系数预测和置信区间,然后是 cox 过程的相互作用系数和新的置信区间(对于相同的系数),其中考虑了互动。
我输入的命令是:
quad_fes <- quadscheme(data = ppp_fes, dummy = test_dummy_points)
kppm_all_fes<-kppm(
X=quad_fes,
trend=~log(daylight_P50sp_im) + log(daylight_Hits_im ) + log(d_fes_im) + SpeedLimit_im + strada_tip_im + log(P1_im) + log(E1_im),
clusters="LGCP", method="mincon")
kppm_all_fes
confint(kppm_all_fes)
协变量是像素图像(未在区域的每个点上定义,但这对于估计来说不是问题??)它们是通过 as.im 进行光栅化获得的。 ppp_fes 是点模式。输入 ppp
R 输出没有给我第二组置信区间(有交互作用) 会是什么呢?它只给出 NA 列
输出为
Inhomogeneous Cox point process model
Fitted to point pattern dataset ‘quad_fes’
Fitted by minimum contrast
Summary statistic: inhomogeneous K-function
Log intensity: ~log(daylight_P50sp_im) + log(daylight_Hits_im) + log(d_fes_im) + SpeedLimit_im +
strada_tip_im + log(P1_im) + log(E1_im)
Fitted trend coefficients:
(Intercept) log(daylight_P50sp_im) log(daylight_Hits_im) log(d_fes_im)
-8.4336803232 -0.7195136965 0.0597531881 -0.1869696161
SpeedLimit_im strada_tip_im log(P1_im) log(E1_im)
-0.0100578297 0.0005152514 0.3538175166 -0.0706547930
Cox model: log-Gaussian Cox process
Covariance model: exponential
Fitted covariance parameters:
var scale
9.505158 6.238008
Fitted mean of log of random intensity: [pixel image]
对于限制,它是
2.5 % 97.5 %
(Intercept) NA NA
log(daylight_P50sp_im) NA NA
log(daylight_Hits_im) NA NA
log(d_fes_im) NA NA
SpeedLimit_im NA NA
strada_tip_im NA NA
log(P1_im) NA NA
log(E1_im) NA NA
我找不到有关如何解决此问题的任何有关 Baddeley(空间点模式,2015)的信息。我知道这是一个不可能实现的目标,但请eeeeeeee帮助我真的很想找到解决方案。
我当时尝试仅使用一个协变量,并检查我的协变量与 Baddeley 书中的示例有何不同,但我找不到解决方案。
编辑 我在使用 kppm 时收到的警告是
警告:协变量“daylight_P50sp_im”、“daylight_Hits_im”、“SpeedLimit_im”、“strada_tip_im”、“P1_im”、“E1_im”的值在 0.57% 的正交点(1236 个中的 7 个)处为 NA 或未定义。执行时发生:ppm.quad(Q = X,趋势=趋势,协变量=协变量,forcefit = TRUE,警告:位于像素图像域之外的2个查询点的值通过投影到最近的像素来估计
var(kppm_all_fes)
返回 var(kppm_all_fes) 中的错误:is.atomic(x) 不为 TRUE
cvar(kppm_all_fes)
返回
(Intercept) log(daylight_P50sp_im) log(daylight_Hits_im) log(d_fes_im) SpeedLimit_im
(Intercept) NA NA NA NA NA
log(daylight_P50sp_im) NA NA NA NA NA
log(daylight_Hits_im) NA NA NA NA NA
log(d_fes_im) NA NA NA NA NA
SpeedLimit_im NA NA NA NA NA
strada_tip_im NA NA NA NA NA
log(P1_im) NA NA NA NA NA
log(E1_im) NA NA NA NA NA
strada_tip_im log(P1_im) log(E1_im)
(Intercept) NA NA NA
log(daylight_P50sp_im) NA NA NA
log(daylight_Hits_im) NA NA NA
log(d_fer_im) NA NA NA
SpeedLimit_im NA NA NA
strada_tip_im NA NA NA
log(P1_im) NA NA NA
log(E1_im) NA NA NA
最佳答案
置信区间基于 (1) 参数估计值和 (2) 这些参数估计值的估计标准误差(方差的平方根)。
在您的示例中,参数估计没问题;它们作为“拟合趋势系数”打印在输出中,并且可以使用 coef(kppm_all_fes)
提取为向量.
在您的示例中,计算出的标准误差似乎不适用。这可能是因为计算出的方差为 NA,或者为负数(因为负数的平方根返回为 NA)。您可以通过键入来检查这一点
vcov(kppm_all_fes)
它应该返回方差的非负有限数的方阵(在您的示例中为 8 x 8)。
执行计算时应该有某种警告消息。这也将提供有关出现问题的信息。
在某些特殊情况下,方差估计可能是无限的或不适用。一种特殊情况是幂律模型,如 Baddeley Rubak and Turner (2015) 的第 9.3.8 节中所述。 。幂律关系由公式 ~ log(Z)
表示哪里Z
是原始协变量。您的示例模型涉及某些变量的幂律关系。所以这可能是解释。
为了彻底解决您的问题,我需要访问您的数据,或者 Minimal Reproducible Example的问题。
编辑:在这种情况下,在访问数据后,我们能够确定问题是 vcov.kppm
中的错误。在处理NA
时协变量中的值。该错误已在 spatstat.model 3.2-8.004
中修复。 。我将保留上面的原始答案,因为它确定了 NA
的“合法”原因。标准误差中的值。
关于r - 在 R 上的 spatstat 上使用 kppm 估计对数高斯 cox 过程的置信区间时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77705226/