spatstat 中拟合模型参数的约束

Constraints on the parameters of a fitted model in spatstat

Rspatstat 中,我想对适合我的数据的模型的参数施加一些限制。

我的数据是一个多类型 ppp 对象,其类型称为 BRPGluR。如下图所示,点(大致)组织成同心圆。 BRP 个物体位于半径为 128.4 的环上,而 GluR 个物体位于半径为 261.8 的外环上。

使用 ppm 函数,我想拟合一个模型,其中类型 BRP 的强度函数与 ~abs(sqrt(x^2+y^2)-128.4) 成比例,并且类型 [=] 的强度函数16=] 与 ~abs(sqrt(x^2+y^2)-261.8) 成比例。但是,当使用以下趋势公式时:

fit_NMJ <- ppm(NMJ,~marks*(abs(sqrt(x^2+y^2)-128.4)+abs(sqrt(x^2+y^2)-261.8)))

我获得了 GluR~abs(sqrt(x^2+y^2)-radius_BRP ) 之间以及 BRP~abs(sqrt(x^2+y^2)-radius_GluR) 之间的交叉交互(我想避免):

> radius_GluR <- 261.8
> radius_BRP <- 128.4
> fit_NMJ <- ppm(NMJ,~marks*(abs(sqrt(x^2+y^2)-radius_BRP )+abs(sqrt(x^2+y^2)-radius_GluR )))
> fit_NMJ
Nonstationary multitype Poisson process

Possible marks: ‘BRP’ and ‘GluR’

Log intensity:  ~marks * (abs(sqrt(x^2 + y^2) - radius_BRP) + abs(sqrt(x^2 + y^2) - radius_GluR))

Fitted trend coefficients:
                                 (Intercept)                                    marksGluR 
                                -9.850558359                                  0.231315028 
           abs(sqrt(x^2 + y^2) - radius_BRP)           abs(sqrt(x^2 + y^2) - radius_GluR) 
                                -0.044039428                                  0.009055454 
 marksGluR:abs(sqrt(x^2 + y^2) - radius_BRP) marksGluR:abs(sqrt(x^2 + y^2) - radius_GluR) 
                                 0.039652754                                 -0.018198305 

                                                 Estimate       S.E.       CI95.lo      CI95.hi Ztest       Zval
(Intercept)                                  -9.850558359 1.92806275 -13.629491901 -6.071624817   *** -5.1090445
marksGluR                                     0.231315028 2.00684749  -3.702033781  4.164663836        0.1152629
abs(sqrt(x^2 + y^2) - radius_BRP)            -0.044039428 0.01749010  -0.078319402 -0.009759454     * -2.5179626
abs(sqrt(x^2 + y^2) - radius_GluR)            0.009055454 0.01392686  -0.018240694  0.036351602        0.6502150
marksGluR:abs(sqrt(x^2 + y^2) - radius_BRP)   0.039652754 0.01784817   0.004670991  0.074634517     *  2.2216710
marksGluR:abs(sqrt(x^2 + y^2) - radius_GluR) -0.018198305 0.01478904  -0.047184295  0.010787685       -1.2305263

即我想将参数 marksGluR:abs(sqrt(x^2 + y^2) - radius_BRP)marksBRP:abs(sqrt(x^2 + y^2) - radius_GluR) 限制为零。是否可以在趋势公式中指定它?它是否也适用于多个独立数据集(使用 mppm 函数时)?

我也可以选择分别拟合这两种类型,但是当用点相互作用拟合不同的非泊松模型时,我可能会错过一些类型间的相互作用(例如,当拟合 MultiStrauss模型)。

您只需要直接构建规范协变量。

先简写一下

g <- function(x, y, marks, R, type) {
       I(marks == type) * abs(sqrt(x^2+y^2) - R)
     }
gGluR <- function(x, y, marks) {
    g(x, y, marks, radius_GluR, "GluR")
}
gBRP <- function(x, y, marks) {
    g(x, y, marks, radius_BRP, "BRP")
}

然后

ppm(NMJ ~ marks + gGluR + gBRP)