Reputation: 221
I am trying to forecast electricity consumption on daily basis based on historical data for each day from 1st january 2010 to 31st december 2011 i.e. I hve a total of 365*2 = 730 past data points. I am using ts
to read the data. I am defining it as follows:
ts(consumption, start=1, frequency=365)
Is this correct? I am mainly doubtful over the "frequency" : should it be 365? Or should I use
ts(consumption, start=1,frequency=1)
For another approach, if I want to consolidate the data on weekly basis (by summing up every 7 observations) and then want to run forecast model, how should I read the data using ts
? What should be the value of frequency
?
Upvotes: 4
Views: 4993
Reputation: 31820
For daily data with an annual seasonal pattern, use frequency=365
. But if you want to model the weekly pattern, you will need frequency=7
. If you sum every 7 observations to form weekly data, then you need frequency=52
.
Of course, the real seasonal periods are not whole numbers, but most functions that use ts
objects assume that the frequency is integer. You can handle these data more generally using the msts
function from the forecast
package. Then you could specify both weekly and annual seasonality for the daily data using
daily <- msts(consumption, seasonal.periods=c(7,365.25))
and annual seasonality for the weekly data using
weekly <- msts(wconsumption, seasonal=365.25/7)
where wconsumption
contains the sum from each block of 7 consecutive observations.
Forecasts can be obtained using the tbats
function:
fit <- tbats(daily)
fc <- forecast(tbats)
Upvotes: 5