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 的那些实例?等等等等)所以这也没有实现。
是否可以在多类型 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 的那些实例?等等等等)所以这也没有实现。