【发布时间】:2021-11-01 15:04:32
【问题描述】:
在R 包spatstat 中,我想对适合我的数据的模型的参数施加一些限制。
我的数据是一个多类型 ppp 对象,这些类型称为 BRP 和 GluR。如下图所示,点(大致)组织成同心圆。 BRP 对象位于半径为 128.4 的环上,而 GluR 则位于半径为 261.8 的外环上。
使用ppm 函数,我想拟合一个模型,其中BRP 类型的强度函数与~abs(sqrt(x^2+y^2)-128.4) 缩放,GluR 类型的强度函数与~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 模型时)。
【问题讨论】:
标签: r spatstat model-fitting