r - 在 R 上的 spatstat 上使用 kppm 估计对数高斯 cox 过程的置信区间时出现问题

标签 r point confidence-interval spatstat cox

我正在用 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/

相关文章:

c++ - 如何在opencv c++中画两点之间的线

r - 在 R 中使用 plotCI 时更改参数。(向左或向右移动点)

mysql - 将经纬度文本列移动到 'point' 类型的列中

mysql - 如何使用 X-Y 坐标合并簇列和列?

R:避免summary.plm

r - Plotly - 如何更改直方图颜色?

ios - 如何使用 ScrollView 缩放到中心?

r - 如何使用基于 nnet::multinom() 模型的 {ggeffects} 获得预测概率图的置信区间?

r - 使用 dplyr 自举置信区间

r - 顶部位置的图例未显示