如何代表一段时间内的趋势?


34

我有一个栅格时间序列,其中每个栅格的像元在特定时间表示某个值。

我想生成一个图表,突出显示每个单元随时间变化的正值或负值趋势的大小。

我有些天真的方法是将简单的线性回归(X =时间和Y =值)拟合到每个像元,并将斜率数组输出到栅格(如下图所示)。只能通过导出重要结果来进行过滤。

来自四个单独单元的时间序列

线性回归的斜率

在栅格时间序列中,我还能如何表示一段时间内的趋势?

我对通用技术感兴趣,而不对软件专用说明感兴趣。

Answers:


15

如问题所在那样,绘制估计的斜率是一件很棒的事情。但是,与其按重要性过滤,或者与其结合使用,为什么不对每个回归拟合数据的程度制定某种度量?为此,回归的均方误差易于解释且有意义。

例如,R下面的代码生成一个包含11个栅格的时间序列,执行回归,并以三种方式显示结果:在底行,分别为估计斜率和均方误差的网格;在最上面一行,作为那些网格的叠加以及真实的基础坡度(实际上您将永远不会拥有,但是由计算机仿真提供以进行比较)。由于该叠加层将颜色用于一个变量(估计的斜率),而将亮度用于另一个变量(MSE),因此在此特定示例中不容易解释,但与底行上的单独映射一起使用可能会很有用且有趣。

地图

(请忽略叠加层上重叠的图例。同样,请注意,“真实坡度”贴图的颜色方案与估算坡度图的颜色方案不太相同:随机误差会导致某些估算坡度跨越比真实的斜率更大的极端范围。这是与均值回归相关的普遍现象。)

顺便说一句,这并不是在同一时间进行大量回归的最有效方法:相反,对每个回归重新计算投影矩阵相比,可以预先计算投影矩阵并将其应用于像素的每个“堆栈”。但这对于这个小例子并不重要。


# Specify the extent in space and time.
#
n.row <- 60; n.col <- 100; n.time <- 11
#
# Generate data.
#
set.seed(17)
sd.err <- outer(1:n.row, 1:n.col, function(x,y) 5 * ((1/2 - y/n.col)^2 + (1/2 - x/n.row)^2))
e <- array(rnorm(n.row * n.col * n.time, sd=sd.err), dim=c(n.row, n.col, n.time))
beta.1 <- outer(1:n.row, 1:n.col, function(x,y) sin((x/n.row)^2 - (y/n.col)^3)*5) / n.time
beta.0 <- outer(1:n.row, 1:n.col, function(x,y) atan2(y, n.col-x))
times <- 1:n.time
y <- array(outer(as.vector(beta.1), times) + as.vector(beta.0), 
       dim=c(n.row, n.col, n.time)) + e
#
# Perform the regressions.
#
regress <- function(y) {
  fit <- lm(y ~ times)
  return(c(fit$coeff[2], summary(fit)$sigma))
}
system.time(b <- apply(y, c(1,2), regress))
#
# Plot the results.
#
library(raster)
plot.raster <- function(x, ...) plot(raster(x, xmx=n.col, ymx=n.row), ...)
par(mfrow=c(2,2))
plot.raster(b[1,,], main="Slopes with errors")
plot.raster(b[2,,], add=TRUE, alpha=.5, col=gray(255:0/256))
plot.raster(beta.1, main="True slopes")
plot.raster(b[1,,], main="Estimated slopes")
plot.raster(b[2,,], main="Mean squared errors", col=gray(255:0/256))

4

您所描述的是“更改检测”。有许多使用栅格进行变化检测的技术。可能最常见的是图像差异,即您从另一图像中减去一个图像以产生第三图像。不过,这取决于您要比较的数据类型。从您的图像看来,您似乎正在比较坡度随时间的变化(除非该区域受主要土地工程的影响,否则变化不会太大)。但是,如果要比较土地类别随时间的变化,则可以使用其他方法。

我碰到了D. Lu等人的这篇文章。他们比较了变化检测的不同方法。这是摘要:

及时准确地检测地球表面特征对于了解人与自然现象之间的关系和相互作用以促进更好的决策至关重要。遥感数据是近几十年来广泛用于变化检测的主要来源。已经开发了许多变化检测技术。本文总结并回顾了这些技术。以前的文献表明,图像差异,主成分分析和分类后比较是用于变化检测的最常用方法。近年来,频谱混合分析,人工神经网络以及地理信息系统和遥感数据的集成已成为变化检测应用程序的重要技术。不同的变化检测算法各有千秋,没有一个单一的方法是最优的并且不能适用于所有情况。在实践中,经常将不同的算法进行比较以找到特定应用的最佳变化检测结果。变更检测技术的研究仍然是一个活跃的主题,需要新的技术来有效地使用越来越多的,越来越复杂的,可以从卫星和机载传感器获得或计划很快获得的遥感数据。本文是对文献中发现的所有主要变更检测方法的全面探讨。通常将不同的算法进行比较以找到特定应用的最佳变化检测结果。变更检测技术的研究仍然是一个活跃的话题,需要新的技术来有效地使用越来越多的,越来越复杂的,可以从卫星和机载传感器获得或计划很快获得的遥感数据。本文是对文献中发现的所有主要变更检测方法的全面探讨。通常将不同的算法进行比较以找到特定应用的最佳变化检测结果。变更检测技术的研究仍然是一个活跃的话题,需要新的技术来有效地使用越来越多的,越来越复杂的,可以从卫星和机载传感器获得或计划很快获得的遥感数据。本文是对文献中发现的所有主要变更检测方法的全面探讨。


4

由USGS中西部地区环境科学中心开发的ArcGIS附加程序名为“ 曲线拟合:像素级栅格回归工具”,可能正是您想要的。从文档中:

曲线拟合是GIS应用程序ArcMap的扩展,允许用户对一系列栅格数据集(地理参考图像)进行回归分析。用户输入解释变量(X)的值数组。代表相应响应变量(Y)的栅格数据集与用户输入的每个X值配对。然后,“曲线拟合”使用线性或非线性回归技术(取决于用户选择)在输入栅格数据集的每个像素处计算唯一的数学模型。曲线拟合输出参数估计,误差和多模型推断的栅格表面。曲线拟合是一种解释性和预测性工具,可为空间建模人员提供以最佳规模执行关键统计功能的能力。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.