采用 terra 回归方法的 P 值

问题描述 投票:0回答:1

terra::regress
采用具有多个层的 SpatRaster 并返回一个包含每个像元的迭代和斜率的栅格。我使用这种方法来估计气候时间序列表面的趋势。

是否还可以额外获取每个单元格的斜率 P 值?这是否可以扩展到其他非参数指标,例如 Theil-sen 和 Mann-kendall?

r p-value terra
1个回答
0
投票

这是一个最小的、独立的、可重现的示例(请始终包含一个)。

library(terra)
r <- rast(system.file("ex/logo.tif", package="terra"))   
x <- regress(r, 1:nlyr(r))

正如您所指出的,这不会返回 p 值。要获得 p 值,您需要编写自己的函数。像这样的东西:

f <- function(Y, X) {
    apply(Y, 1, function(y) {
        m <- lm(y ~ X)
        s <- summary(m)
        as.vector(coefficients(s)[2, c(1,4)])
    })
}

out <- app(r, fun=f, X=1:3, wopt=list(names=c("slope", "pvalue")))

但这要慢得多。我可能可以在

regress
中实现它,但我不确定这会有多大用处。毕竟,这不是假设检验。斜率可能提供足够的信息吗?

© www.soinside.com 2019 - 2024. All rights reserved.