Як представити тенденцію з часом?


34

У мене є часовий ряд растрів, де клітини кожного растру представляють певне значення в певний час.

Я хотів би створити карту, яка б підкреслювала величину позитивних чи негативних тенденцій цього значення протягом часу для кожної комірки.

Мій дещо наївніший підхід полягає у встановленні простої лінійної регресії (X = час та Y = значення) до кожної комірки та виведення масиву схилів до растру (як показано на прикладі зображень нижче). Це можна відфільтрувати, лише експортуючи значні результати.

часовий ряд з чотирьох окремих комірок

Нахили від лінійної регресії

Як інакше я можу представляти тенденцію з часом в растрових часових серіях?

Мене цікавлять загальні методи, а не конкретні програмні інструкції.

Відповіді:


15

Графік розрахункових схилів, як і в питанні, - це чудова річ. Замість того, щоб фільтрувати за значимістю, хоча - або спільно з нею - чому б не викласти якийсь показник того, наскільки кожна регресія відповідає даним? Для цього середня квадратична помилка регресії легко інтерпретується та має значення.

Як приклад, наведений Rнижче код генерує часовий ряд з 11 растрових, виконує регресії та відображає результати трьома способами: у нижньому ряду, як окремі сітки оцінених схилів та середніх помилок у квадраті; у верхньому ряду, як накладання цих сіток разом із справжніми основними схилами (яких на практиці у вас ніколи не буде, але це забезпечується комп’ютерним моделюванням для порівняння). Накладення, оскільки він використовує колір для однієї змінної (орієнтовний нахил) та легкість для іншої (MSE), непросто інтерпретувати в цьому конкретному прикладі, але разом з окремими картами в нижньому рядку може бути корисним та цікавим.

Карти

(Будь ласка, проігноруйте перекладені легенди про накладку. Також зауважте, що кольорова схема для карти "Справжні схили" не зовсім така, як для карт передбачуваних схилів: випадкова помилка призводить до того, що деякі з оцінених схилів охоплюють a більш екстремальний діапазон, ніж справжні схили. Це загальне явище, пов'язане з регресією до середнього .)

До речі, це не найефективніший спосіб зробити велику кількість регресій за один і той же набір разів: натомість матрицю проекції можна попередньо обчислити і застосувати до кожного "стека" пікселів швидше, ніж перекомпонувати її для кожної регресії. Але це не має значення для цієї невеликої ілюстрації.


# 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

Що ви описуєте, це "Виявлення змін". Існує багато методик виявлення змін за допомогою растрових. Напевно, найпоширенішим є розрізнення зображення, де ви віднімаєте одне зображення від іншого, щоб отримати третє. Хоча це залежить від типу даних, які ви намагаєтеся порівняти. З вашого зображення, схоже, ви порівнюєте зміни ухилу з часом (якщо ця територія не підлягає великим земляним роботам, це, мабуть, не сильно зміниться). Однак, якщо ви порівнюєте зміни земельних класів у часі, ви можете використовувати інший підхід.

Я натрапив на цю статтю Д. Лу та ін. в якому вони порівнюють різні методи виявлення змін. Ось реферат:

Своєчасне та точне виявлення змін особливостей поверхні Землі надзвичайно важливе для розуміння взаємозв'язків та взаємодій між людськими та природними явищами з метою сприяння кращому прийняттю рішень. Дані дистанційного зондування є первинними джерелами, які широко використовуються для виявлення змін в останні десятиліття. Було розроблено багато методик виявлення змін. У цьому документі узагальнено та розглянуто ці методи. Попередня література показала, що диференціація зображень, аналіз основних компонентів та порівняння після класифікації є найбільш поширеними методами виявлення змін. В останні роки спектральний аналіз сумішей, штучні нейронні мережі та інтеграція географічної інформаційної системи та даних дистанційного зондування стали важливими прийомами для виявлення змін. Різні алгоритми виявлення змін мають свої достоїнства, і жоден єдиний підхід не є оптимальним і застосовним у всіх випадках. На практиці різні алгоритми часто порівнюються з найкращими результатами виявлення змін для конкретної програми. Дослідження методів виявлення змін досі залишається активною темою, і необхідні нові методи для ефективного використання все більш різноманітних і складних дистанційно сприйнятих даних, доступних або прогнозованих, які будуть незабаром доступними за допомогою супутникових та повітряних датчиків. Ця стаття - це всебічне дослідження всіх основних підходів до виявлення змін, що застосовуються, як це знайдено в літературі. різні алгоритми часто порівнюються з найкращими результатами виявлення змін для конкретної програми. Дослідження методів виявлення змін досі залишається активною темою, і необхідні нові методи для ефективного використання все більш різноманітних і складних дистанційно сприйнятих даних, доступних або прогнозованих, які будуть незабаром доступними за допомогою супутникових та повітряних датчиків. Ця стаття - це всебічне дослідження всіх основних підходів до виявлення змін, реалізованих, як це знайдено в літературі. різні алгоритми часто порівнюються з найкращими результатами виявлення змін для конкретної програми. Дослідження методів виявлення змін досі залишається активною темою, і необхідні нові методи для ефективного використання все більш різноманітних і складних дистанційно сприйнятих даних, доступних або прогнозованих, які будуть незабаром доступними за допомогою супутникових та повітряних датчиків. Ця стаття - це всебічне дослідження всіх основних підходів до виявлення змін, реалізованих, як це знайдено в літературі.


4

Існує розширення ArcGIS, розроблене Центром наук про навколишнє середовище USGS під назвою Curve Fit: Інструмент регресії растрових рівнів пікселів, який може бути саме тим, що вам потрібно. З документації:

Curve Fit - це розширення до GIS-програми ArcMap, що дозволяє користувачеві проводити регресійний аналіз на ряді растрових наборів даних (геопосиланні зображення). Користувач вводить масив значень для пояснювальної змінної (X). Растровий набір даних, що представляє відповідну змінну відповіді (Y), поєднується з кожним значенням X, введеним користувачем. Тоді Curve Fit використовує або лінійні, або нелінійні методи регресії (залежно від вибору користувача) для обчислення унікальної математичної моделі на кожному пікселі вхідних растрових наборів даних. Curve Fit виводить растрові поверхні оцінки параметрів, помилок та багатомодельного висновку. Curve Fit - це і пояснювальний, і прогнозуючий інструмент, який надає можливість просторовим моделярам виконувати ключові статистичні функції в найтонших масштабах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.