Разложение временных рядов в R - PullRequest
1 голос
/ 01 апреля 2012

Я недавно начал баловаться с некоторым анализом временных рядов в R, и меня немного смущает вопрос о том, как работает функция фильтра в библиотеке статистики.По сути, я видел, как утверждалось, что для ежедневного временного ряда этот фильтр можно использовать для разложения ряда на годовые, сезонные и еженедельные компоненты, используя что-то вроде следующего:

x.year <- filter(x, rep(1/365, 365))
x.season <- filter(x, rep(1/90, 90))
x.weekly <- filter(x, rep(1/7, 7))

Хотя я могувыясните, что респ (1 / период, период) дает вам компонент периода длины, я не уверен почему , и пытаюсь избежать анализа культа груза.Если обратиться к документации, этот бит, по-видимому, является «вектором коэффициентов фильтра в обратном порядке времени» - просто не уверен, что это значит.

Кто-нибудь хочет указать мне правильное направление?

1 Ответ

3 голосов
/ 01 апреля 2012

Я бы предложил вам сначала взглянуть на то, что такое Свертка .Когда вы хорошо это понимаете, вы должны легко увидеть, что использование filter для вычисления свертки вашего сигнала x с rep(1/period, period) является не чем иным, как вычислением «скользящего среднего» или «скользящего среднего» вашего сигнала, см.себя:

x <- runif(10)
filter(x, rep(1/5, 5))
# Time Series:
# Start = 1 
# End = 10 
# Frequency = 1 
#  [1]        NA        NA 0.4400744 0.3643682 0.2677056 0.3703566 0.3449967
#  [8] 0.4975061        NA        NA

library(zoo)
rollmean(x, 5, na.pad = TRUE)
#  [1]        NA        NA 0.4400744 0.3643682 0.2677056 0.3703566 0.3449967
#  [8] 0.4975061        NA        NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...