示例代码的问题是,如果 X 是点模式, envelope(X, .....) 进行测试 完全随机 。
X
envelope(X, .....)
为了在存在空间不均匀性的情况下测试聚类/抑制,零假设应该是非均匀泊松过程。您需要以某种方式估计两种类型点的非均匀强度函数,然后根据这些强度生成模拟点模式。这有两种方式(如果 X 是你的点模式):
核平滑:首先估算原始数据中每种类型点的强度 D <- density(split(X)) 。现在可以通过生成零假设的模拟实现 Y <- rmpoispp(D, types=names(D)) 。我们希望这发生在 envelope 命令,所以就这样做
D <- density(split(X))
Y <- rmpoispp(D, types=names(D))
envelope
envelope(X, Lcross.inhom, simulate=expression(rmpoispp(D, types=names(D)))) 。 争论 simulate 指定应评估此表达式以生成每个模拟点模式。
envelope(X, Lcross.inhom, simulate=expression(rmpoispp(D, types=names(D))))
simulate
使用模型:首先将泊松点过程模型拟合到观测数据,例如: fit <- ppm(X ~ polynom(x,y,3)) 。然后做
fit <- ppm(X ~ polynom(x,y,3))
envelope(fit, Lcross.inhom, lambdaX=fit) 。
envelope(fit, Lcross.inhom, lambdaX=fit)
由于第一个参数是a ppm 对象,这是由处理 envelope.ppm 。这将从拟合的泊松模型生成模拟实现,并将从每个实现计算非均匀L交叉函数。争论 lambdaX 被传递给 Kcross.inhom ;看到 ?Kcross.inhom 解释如何解释这一点。
ppm
envelope.ppm
lambdaX
Kcross.inhom
?Kcross.inhom
有关详细信息,请参阅第10章 spatstat书 。
只是一个简短的答案,因为它在我的时区已经很晚了。
您没有使用非齐次空模型来模拟。你只是模拟两个独立的 的 同质 强> 根据文献记载的泊松过程(一个用于树木,一个用于幼苗) envelope.ppp :
envelope.ppp
如果Y是点模式(类“ppp”的对象)并且模拟= NULL, 然后我们生成完整空间随机性的nsim模拟(即 nsim模拟点模式,每个都是统一的实现 泊松点过程)与模式Y具有相同的强度。(如果是Y. 是一个多点模式,然后模拟模式也是 给出独立的随机标记;的概率分布 随机标记由Y中标记的相对频率决定。)
您可以保存模拟的模式 envelope.ppp 通过添加参数 savepatterns = TRUE 然后你可以通过提取它们
savepatterns = TRUE
pat <- attr(inhom, "simpatterns")
如果你绘制(一些)这些 plot(as.solist(pat[1:9]) 你看他们是同质的,看起来不像你原来的模式,所以它们也会产生很大的不同 Lcross.inhom 功能。解决此问题的一种方法是使用模型拟合数据 ppm 并运行 envelope 在拟合的模型上(派遣到 envelope.ppm )。总共有很少的点,尤其是很少的树,因此树木强度的估计非常不确定,并且可能对所使用的带宽敏感。你真的需要小心你在这里做什么......
plot(as.solist(pat[1:9])
Lcross.inhom