Jak przedstawić trend w czasie?

34

Mam szereg czasowy rastrów, w których komórki każdego rastra reprezentują pewną wartość w określonym czasie.

Chciałbym wygenerować mapę, która podkreśla wielkość pozytywnych lub negatywnych trendów tej wartości w czasie dla każdej komórki.

Moje nieco naiwne podejście polega na dopasowaniu prostej regresji liniowej (X = czas i Y = wartość) do każdej komórki i wysłaniu tablicy nachyleń do rastra (jak na przykładach obrazów poniżej). Można to przefiltrować, eksportując tylko znaczące wyniki.

szeregi czasowe z czterech pojedynczych komórek

Nachylenia z regresji liniowej

Jak inaczej mogę przedstawiać trendy w czasie w seriach czasowych rastrowych?

Interesują mnie ogólne techniki, a nie instrukcje specyficzne dla oprogramowania.

użytkownik2856
źródło

Odpowiedzi:

15

Wykreślenie szacunkowych stoków, jak w pytaniu, jest świetną rzeczą do zrobienia. Zamiast filtrować według istotności - lub w połączeniu z nim - dlaczego nie zmapować jakiejś miary tego, jak dobrze każda regresja pasuje do danych? W tym celu średni błąd kwadratowy regresji jest łatwo interpretowany i znaczący.

Przykładowo Rponiższy kod generuje szereg czasowy 11 rastrów, wykonuje regresje i wyświetla wyniki na trzy sposoby: w dolnym rzędzie, jako osobne siatki szacowanych nachyleń i średnich błędów kwadratu; w górnym rzędzie, jako nakładka tych siatek wraz z prawdziwymi leżącymi pod nimi zboczami (których w praktyce nigdy nie będziesz mieć, ale dla porównania zapewnia to symulacja komputerowa). Nakładka, ponieważ używa koloru dla jednej zmiennej (szacowane nachylenie) i lekkości dla innej (MSE), nie jest łatwa do interpretacji w tym konkretnym przykładzie, ale wraz z oddzielnymi mapami w dolnym rzędzie może być użyteczna i interesująca.

Mapy

(Proszę zignorować nakładające się legendy na nakładce. Należy również pamiętać, że schemat kolorów mapy „Prawdziwe stoki” nie jest taki sam, jak w przypadku map szacowanych stoków: błąd losowy powoduje, że niektóre szacowane stoki rozciągają się na bardziej ekstremalny zasięg niż prawdziwe zbocza. Jest to ogólne zjawisko związane z regresją w kierunku średniej .)

Przy okazji, nie jest to najskuteczniejszy sposób wykonywania dużej liczby regresji dla tego samego zestawu czasów: zamiast tego macierz projekcji można wstępnie obliczyć i zastosować do każdego „stosu” pikseli szybciej niż ponowne obliczenie dla każdej regresji. Ale to nie ma znaczenia dla tej małej ilustracji.


# 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
źródło
4

Opisujesz „Wykrywanie zmian”. Istnieje wiele technik wykrywania zmian za pomocą rastrów. Prawdopodobnie najczęstszym jest różnicowanie obrazu, w którym odejmuje się jeden obraz od drugiego, aby uzyskać trzeci. Jednak zależy to od rodzaju danych, które próbujesz porównać. Z twojego obrazu wygląda to tak, jakbyś porównywał zmiany nachylenia w czasie (chyba że obszar ten jest przedmiotem poważnych prac ziemnych, prawdopodobnie nie zmieni się on zbytnio). Jeśli jednak porównujesz zmiany klas ziemi w czasie, możesz zastosować inne podejście.

Natknąłem się na ten artykuł D. Lu i in. w których porównują różne metody wykrywania zmian. Oto streszczenie:

Terminowe i dokładne wykrywanie zmian cech powierzchni Ziemi jest niezwykle ważne dla zrozumienia związków i interakcji między zjawiskami ludzkimi i naturalnymi w celu promowania lepszego podejmowania decyzji. Dane z teledetekcji są głównymi źródłami szeroko stosowanymi do wykrywania zmian w ostatnich dziesięcioleciach. Opracowano wiele technik wykrywania zmian. Niniejszy artykuł podsumowuje i dokonuje przeglądu tych technik. Wcześniejsza literatura wykazała, że ​​różnicowanie obrazu, analiza głównych składników i porównanie po klasyfikacji są najczęstszymi metodami stosowanymi do wykrywania zmian. W ostatnich latach analiza mieszanki widmowej, sztuczne sieci neuronowe oraz integracja systemu informacji geograficznej i danych teledetekcji stały się ważnymi technikami w aplikacjach wykrywania zmian. Różne algorytmy wykrywania zmian mają swoje zalety i żadne pojedyncze podejście nie jest optymalne i nie ma zastosowania we wszystkich przypadkach. W praktyce często porównywane są różne algorytmy w celu znalezienia najlepszych wyników wykrywania zmian dla określonej aplikacji. Badania technik wykrywania zmian są nadal aktywnym tematem i potrzebne są nowe techniki, aby skutecznie wykorzystywać coraz bardziej różnorodne i złożone zdalnie wykrywane dane dostępne lub przewidywane, że wkrótce będą dostępne z czujników satelitarnych i powietrznych. Niniejszy artykuł stanowi kompleksowe badanie wszystkich głównych podejść do wykrywania zmian wdrożonych zgodnie z literaturą. różne algorytmy są często porównywane w celu znalezienia najlepszych wyników wykrywania zmian dla określonej aplikacji. Badania technik wykrywania zmian są nadal aktywnym tematem i potrzebne są nowe techniki, aby skutecznie wykorzystywać coraz bardziej różnorodne i złożone zdalnie wykrywane dane dostępne lub przewidywane, że wkrótce będą dostępne z czujników satelitarnych i powietrznych. Niniejszy artykuł stanowi kompleksowe badanie wszystkich głównych podejść do wykrywania zmian wdrożonych zgodnie z literaturą. różne algorytmy są często porównywane w celu znalezienia najlepszych wyników wykrywania zmian dla określonej aplikacji. Badania technik wykrywania zmian są nadal aktywnym tematem i potrzebne są nowe techniki, aby skutecznie wykorzystywać coraz bardziej różnorodne i złożone zdalnie wykrywane dane dostępne lub przewidywane, że wkrótce będą dostępne z czujników satelitarnych i powietrznych. Niniejszy artykuł stanowi kompleksowe badanie wszystkich głównych podejść do wykrywania zmian wdrożonych zgodnie z literaturą.

Fezter
źródło
4

Istnieje dodatek ArcGIS opracowany przez USGS Upper Midwest Environmental Sciences Center o nazwie Curve Fit: narzędzie regresji rastrowej na poziomie pikseli, które może być tym, czego szukasz. Z dokumentacji:

Curve Fit jest rozszerzeniem aplikacji GIS ArcMap, która pozwala użytkownikowi uruchomić analizę regresji na szeregu zestawów danych rastrowych (obrazy z odniesieniami geograficznymi). Użytkownik wprowadza tablicę wartości dla zmiennej objaśniającej (X). Zestaw danych rastrowych reprezentujących odpowiednią zmienną odpowiedzi (Y) jest sparowany z każdą wartością X wprowadzoną przez użytkownika. Curve Fit wykorzystuje następnie techniki regresji liniowej lub nieliniowej (w zależności od wyboru użytkownika) do obliczenia unikalnego modelu matematycznego dla każdego piksela wejściowych zestawów danych rastrowych. Curve Fit wyprowadza powierzchnie rastrowe oszacowania parametru, błędu i wnioskowania z wielu modeli. Curve Fit to zarówno narzędzie wyjaśniające, jak i predykcyjne, które zapewnia modelarzom przestrzennym możliwość wykonywania kluczowych funkcji statystycznych w najlepszej skali.

Aaron
źródło