時間をかけてトレンドを表現するには?


34

時系列のラスターがあり、各ラスターのセルが特定の時間に値を表します。

各セルの経時的なこの値の正または負の傾向の大きさを強調するマップを生成したいと思います。

私のやや素朴なアプローチは、単純な線形回帰(X =時間およびY =値)を各セルに適合させ、勾配の配列をラスターに出力することです(下の画像例のように)。これは重大な結果をエクスポートすることによってフィルタリングすることができます。

4個の個々の細胞からの時系列

線形回帰からのスロープ

ラスター時系列で経時的な傾向を他にどのように表すことができますか?

私は一般的な技術ではないソフトウェアの特定の命令に興味があります。

回答:


15

質問のように、推定された勾配をプロットすることは素晴らしいことです。ただし、重要度でフィルタリングするのではなく、またはそれと組み合わせて、各回帰がデータにどの程度適合しているかの尺度をマッピングしないのはなぜですか?このため、回帰の平均二乗誤差は容易に解釈され、意味があります。

例として、R以下のコードは11のラスターの時系列を生成し、回帰を実行し、3つの方法で結果を表示します。下の行に、推定勾配と平均二乗誤差の個別のグリッドとして。一番上の行には、これらのグリッドと実際の基礎となる勾配のオーバーレイがあります(実際には決してありませんが、比較のためのコンピューターシミュレーションによって提供されます)。オーバーレイは、1つの変数に色(推定勾配)と別の変数に明度(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

説明しているのは「変更検出」です。ラスタを使用した変更検出には多くの手法があります。おそらく最も一般的なのは、1つの画像を別の画像から差し引いて3番目の画像を生成する画像差分処理です。ただし、比較しようとしているデータの種類によって異なります。あなたの画像から、時間の経過に伴う傾斜の変化を比較しているように見えます(この地域が主要な土地工事の対象でない限り、これはあまり変わらないでしょう)。ただし、土地のクラスの変化を経時的に比較する場合は、別のアプローチを使用できます。

D. Luらによるこの記事に出会いました変化検出のさまざまな方法を比較します。以下に要約を示します。

地球表面の特徴のタイムリーで正確な変化検出は、より良い意思決定を促進するために、人間と自然現象間の関係と相互作用を理解するために非常に重要です。リモートセンシングデータは、ここ数十年で変化検出に広く使用されている主要なソースです。多くの変化検出技術が開発されました。このホワイトペーパーでは、これらの手法をまとめてレビューします。これまでの文献では、画像の差分、主成分分析、分類後の比較が、変更検出に使用される最も一般的な方法であることが示されています。近年、スペクトル混合分析、人工ニューラルネットワーク、地理情報システムとリモートセンシングデータの統合が、変化検出アプリケーションの重要な手法になりました。さまざまな変化検出アルゴリズムには独自のメリットがあり、すべての場合に最適で適用可能な単一のアプローチはありません。実際には、特定のアプリケーションに最適な変更検出結果を見つけるために、さまざまなアルゴリズムがしばしば比較されます。変化検出技術の研究は依然として活発なトピックであり、衛星および空中センサーから利用可能になるか、まもなく利用可能になると予測される、ますます多様で複雑なリモートセンシングデータを効果的に使用するための新しい技術が必要です。このペーパーは、文献に見られるように実装されたすべての主要な変更検出アプローチの包括的な調査です。特定のアプリケーションに最適な変化検出結果を見つけるために、多くの場合、さまざまなアルゴリズムが比較されます。変化検出技術の研究は依然として活発な話題であり、衛星および空中センサーから利用可能になるか、まもなく利用可能になると予測される、ますます多様で複雑なリモートセンシングデータを効果的に使用するための新しい技術が必要です。このペーパーは、文献に見られるように実装されたすべての主要な変更検出アプローチの包括的な調査です。特定のアプリケーションに最適な変化検出結果を見つけるために、多くの場合、さまざまなアルゴリズムが比較されます。変化検出技術の研究は依然として活発な話題であり、衛星および空中センサーから利用可能になるか、まもなく利用可能になると予測される、ますます多様で複雑なリモートセンシングデータを効果的に使用するための新しい技術が必要です。このペーパーは、文献に見られるように実装されたすべての主要な変更検出アプローチの包括的な調査です。


4

USGS Upper Midwest Environmental Sciences Centerによって開発された、カーブフィット:ピクセルレベルラスター回帰ツールと呼ばれるArcGISアドオンがあります。ドキュメントから:

カーブフィットは、GISアプリケーションArcMapの拡張機能であり、ユーザーは一連のラスターデータセット(地理参照画像)で回帰分析を実行できます。ユーザーは、説明変数(X)の値の配列を入力します。対応する応答変数(Y)を表すラスターデータセットは、ユーザーが入力した各X値とペアになります。次に、Curve Fitは、線形または非線形回帰手法(ユーザーの選択に応じて)を使用して、入力ラスターデータセットの各ピクセルで一意の数学モデルを計算します。カーブフィットは、パラメーター推定、エラー、マルチモデル推論のラスターサーフェスを出力します。カーブフィットは、空間モデラーに主要な統計機能を最高のスケールで実行する機能を提供する、説明と予測の両方のツールです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.