SamRoy
SamRoy

Reputation: 221

Read daily data in R

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

Answers (1)

Rob Hyndman
Rob Hyndman

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

Related Questions