R: 多类型点阵 scan.test

R: Multi-type Point Pattern scan.test

是否可以在多类型 ppp 上执行 spatstat::scan.test?我知道,当然,你可以在 2 型标记点模式上做到这一点:

P <- ppp(x=runif(100), y=runif(100), marks=factor(runif(100) >= 0.5))
scan.test(P, method="binomial", alternative="two.sided", nsim=100, r=0.1)

但是,现在,假设我调整 P 使其标记为多种类型:

marks(P) <- factor(round(runif(100, min=0, max=3)))

我现在想 运行 在每个标记组合上 scan.test。有没有办法 不使用嵌套 for 循环 ?

这不受支持,部分原因是从统计角度来看这是有问题的。

首先,您要比较所有可能的类型对 (i, j) 还是将每个类型 i 与 'all other types' (not-i) 进行比较?

从统计的角度来看,这存在“多重测试问题”;由于您正在执行多项假设检验,因此获得虚假 'significant' 结果的可能性要大得多。

从软件的角度来看,这些多重测试的结果应该被 return 编辑为假设检验列表(class htest 的对象列表),这将使其与 scan.test 的其他用途的输出不兼容 return class htest.

的单个对象

如果您确实愿意,可以使用循环进行这些成对测试。

有一个多项式(即二项式泛化到超过 2 种类型)版本的扫描测试。这可能是处理这些数据的“正确”方式。复杂之处在于指定备选假设(例如,您想检测案例模式与基线显着不同的所有实例吗?还是仅检测类型 1 相对于基线明显多于类型 2 和类型 3 的那些实例?等等等等)所以这也没有实现。