Wie kann man den Trend über die Zeit darstellen?

34

Ich habe eine Zeitreihe von Rastern, in denen die Zellen jedes Rasters einen bestimmten Wert zu einem bestimmten Zeitpunkt darstellen.

Ich möchte eine Karte generieren, die die Größe positiver oder negativer Trends in diesem Wert über die Zeit für jede Zelle hervorhebt.

Mein etwas naiver Ansatz ist es, eine einfache lineare Regression (X = Zeit und Y = Wert) an jede Zelle anzupassen und das Array von Steigungen in einem Raster auszugeben (wie in den folgenden Beispielbildern dargestellt). Dies kann gefiltert werden, indem nur signifikante Ergebnisse exportiert werden.

Zeitreihen aus vier einzelnen Zellen

Steigungen durch lineare Regression

Wie kann ich den zeitlichen Trend in einer Raster-Zeitreihe darstellen?

Ich interessiere mich für allgemeine Techniken und nicht für softwarespezifische Anweisungen.

user2856
quelle

Antworten:

15

Es ist eine großartige Sache, die geschätzten Steigungen wie in der Frage zu zeichnen. Anstatt jedoch nach Signifikanz zu filtern - oder in Verbindung damit - warum nicht ein Maß dafür bestimmen, wie gut jede Regression zu den Daten passt? Dafür ist der mittlere quadratische Fehler der Regression leicht zu interpretieren und aussagekräftig.

Der folgende RCode generiert beispielsweise eine Zeitreihe mit 11 Rastern, führt die Regressionen durch und zeigt die Ergebnisse auf drei Arten an: in der unteren Zeile als separate Raster aus geschätzten Steigungen und mittleren quadratischen Fehlern; in der obersten Reihe als Überlagerung dieser Gitter zusammen mit den wahren darunterliegenden Gefällen (die Sie in der Praxis niemals haben werden, die aber die Computersimulation zum Vergleich bietet). Die Überlagerung ist in diesem Beispiel nicht einfach zu interpretieren, da sie Farbe für eine Variable (geschätzte Neigung) und Helligkeit für eine andere (MSE) verwendet. Sie kann jedoch zusammen mit den separaten Karten in der unteren Reihe nützlich und interessant sein.

Karten

(Bitte ignorieren Sie die überlappenden Legenden auf dem Overlay. Beachten Sie auch, dass das Farbschema für die Karte "Wahre Steigungen" nicht ganz das gleiche ist wie für die Karten der geschätzten Steigungen: Ein zufälliger Fehler führt dazu, dass sich einige der geschätzten Steigungen über a erstrecken Extremer Bereich als die tatsächlichen Steigungen. Dies ist ein allgemeines Phänomen im Zusammenhang mit der Regression zum Mittelwert .)

Übrigens ist dies nicht die effizienteste Methode, um eine große Anzahl von Regressionen für denselben Zeitraum durchzuführen : Stattdessen kann die Projektionsmatrix vorab berechnet und auf jeden "Stapel" von Pixeln angewendet werden, anstatt sie für jede Regression neu zu berechnen. Für diese kleine Illustration spielt das aber keine Rolle.


# 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))
whuber
quelle
4

Was Sie beschreiben, ist "Change Detection". Es gibt viele Techniken zur Änderungserkennung mithilfe von Rastern. Die wahrscheinlich häufigste ist die Bilddifferenzierung, bei der Sie ein Bild vom anderen subtrahieren, um ein drittes zu erhalten. Dies hängt jedoch von der Art der Daten ab, die Sie vergleichen möchten. Auf Ihrem Bild sehen Sie so aus, als würden Sie Änderungen der Neigung im Laufe der Zeit vergleichen (es sei denn, in diesem Gebiet sind größere Landarbeiten erforderlich, und dies wird sich wahrscheinlich nicht wesentlich ändern). Wenn Sie jedoch Landklassenänderungen im Zeitverlauf vergleichen, verwenden Sie möglicherweise einen anderen Ansatz.

Ich bin auf diesen Artikel von D. Lu et al. Dabei vergleichen sie verschiedene Methoden der Änderungserkennung. Hier ist die Zusammenfassung:

Die rechtzeitige und genaue Erkennung von Änderungen der Oberflächenmerkmale der Erde ist äußerst wichtig für das Verständnis der Beziehungen und Wechselwirkungen zwischen menschlichen und natürlichen Phänomenen, um eine bessere Entscheidungsfindung zu fördern. Fernerkundungsdaten sind primäre Quellen, die in den letzten Jahrzehnten in großem Umfang für die Änderungserkennung verwendet wurden. Viele Änderungserfassungstechniken wurden entwickelt. In diesem Artikel werden diese Techniken zusammengefasst und besprochen. Frühere Literatur hat gezeigt, dass Bilddifferenzierung, Hauptkomponentenanalyse und Vergleich nach der Klassifizierung die häufigsten Methoden zur Erkennung von Änderungen sind. In den letzten Jahren sind Spektralmischungsanalysen, künstliche neuronale Netze und die Integration von geografischen Informationssystemen und Fernerkundungsdaten zu wichtigen Techniken für Anwendungen zur Änderungserkennung geworden. Unterschiedliche Änderungserkennungsalgorithmen haben ihre eigenen Vorzüge, und kein einziger Ansatz ist optimal und auf alle Fälle anwendbar. In der Praxis werden häufig verschiedene Algorithmen verglichen, um die besten Änderungserkennungsergebnisse für eine bestimmte Anwendung zu ermitteln. Die Erforschung von Techniken zur Erkennung von Veränderungen ist nach wie vor ein aktives Thema, und es sind neue Techniken erforderlich, um die immer vielfältiger und komplexer werdenden Daten, die über Fernerkundung verfügbar sind oder voraussichtlich in Kürze von Satelliten- und Luftsensoren verfügbar sein werden, effektiv zu nutzen. Dieses Papier ist eine umfassende Untersuchung aller in der Literatur implementierten Hauptmethoden zur Erkennung von Änderungen. Verschiedene Algorithmen werden häufig verglichen, um die besten Änderungserkennungsergebnisse für eine bestimmte Anwendung zu ermitteln. Die Erforschung von Techniken zur Erkennung von Veränderungen ist nach wie vor ein aktives Thema, und es sind neue Techniken erforderlich, um die immer vielfältiger und komplexer werdenden Daten, die über Fernerkundung verfügbar sind oder voraussichtlich in Kürze von Satelliten- und Flugsensoren verfügbar sein werden, effektiv zu nutzen. Dieses Papier ist eine umfassende Untersuchung aller in der Literatur implementierten Hauptmethoden zur Erkennung von Änderungen. Verschiedene Algorithmen werden häufig verglichen, um die besten Änderungserkennungsergebnisse für eine bestimmte Anwendung zu ermitteln. Die Erforschung von Techniken zur Erkennung von Veränderungen ist nach wie vor ein aktives Thema, und es sind neue Techniken erforderlich, um die immer vielfältiger und komplexer werdenden Daten, die über Fernerkundung verfügbar sind oder voraussichtlich in Kürze von Satelliten- und Luftsensoren verfügbar sein werden, effektiv zu nutzen. Dieses Papier ist eine umfassende Untersuchung aller in der Literatur implementierten Hauptmethoden zur Erkennung von Änderungen.

Fezter
quelle
4

Es gibt ein vom USGS Upper Midwest Environmental Sciences Center entwickeltes ArcGIS-Add-On namens Curve Fit: Ein Pixel Level Raster Regression Tool , das genau das ist, wonach Sie suchen. Aus der Dokumentation:

Die Kurvenanpassung ist eine Erweiterung der GIS-Anwendung ArcMap, mit der der Benutzer eine Regressionsanalyse für eine Reihe von Raster-Datasets (georeferenzierte Bilder) ausführen kann. Der Benutzer gibt ein Array von Werten für eine erklärende Variable (X) ein. Ein Raster-Dataset, das die entsprechende Antwortvariable (Y) darstellt, wird mit jedem vom Benutzer eingegebenen X-Wert gepaart. Die Kurvenanpassung verwendet dann entweder lineare oder nichtlineare Regressionstechniken (je nach Benutzerauswahl), um ein eindeutiges mathematisches Modell für jedes Pixel der Eingabe-Raster-Datasets zu berechnen. Die Kurvenanpassung gibt Rasterflächen für Parameterschätzung, Fehler und Inferenz mit mehreren Modellen aus. Die Kurvenanpassung ist sowohl ein erklärendes als auch ein vorhersagendes Werkzeug, mit dem räumliche Modellierer wichtige statistische Funktionen auf kleinstem Raum ausführen können.

Aaron
quelle