Избежание предположения сезонности для stl () или декомпозита () в R - PullRequest
1 голос
/ 29 марта 2010

У меня есть данные о ценах на товары высокой частоты, которые мне нужно проанализировать. Моя цель - не принимать какой-либо сезонный компонент, а просто определить тренд. Здесь я сталкиваюсь с проблемами с R. Есть две основные функции, которые я знаю для анализа этого временного ряда: декомпозиция () и stl (). Проблема заключается в том, что они оба принимают тип объекта ts с параметром частоты, большим или равным 2. Есть ли какой-то способ, которым я могу принять частоту 1 в единицу времени и все же анализировать этот временной ряд, используя R? Я боюсь, что если я предположу, что частота больше 1 за единицу времени, а сезонность рассчитывается с использованием параметра частоты, то мои прогнозы будут зависеть от этого предположения.

names(crude.data)=c('Date','Time','Price')
names(crude.data)
freq = 2
win.graph()
plot(crude.data$Time,crude.data$Price, type="l")
crude.data$Price = ts(crude.data$Price,frequency=freq) 

Я хочу, чтобы частота равнялась 1 в единицу времени, но тогда декомпозиция () и stl () не работают!

dim(crude.data$Price)
decom = decompose(crude.data$Price)
win.graph()
plot(decom$random[2:200],type="line")
acf(decom$random[freq:length(decom$random-freq)])

Спасибо.

1 Ответ

13 голосов
/ 29 марта 2010

И stl(), и decompose() предназначены для сезонного разложения, поэтому у вас должен быть сезонный компонент. Если вы просто хотите оценить тренд, тогда подойдет любой непараметрический метод сглаживания. Например:

fit <- loess(crude.data$Price ~ crude.data$Time)
plot(cbind(observed=crude.data$Price,trend=fit$fitted,random=fit$residuals),main="")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...