預測用電需求
你也可以把每日用電需求建模為溫度的函式。就像你在電費帳單上可能看過的,炎熱天因為冷氣、寒冷天因為暖氣,用電量都會上升。
在這個練習中,你將擬合帶有 ARMA 誤差的二次迴歸模型。1 年的逐日資料已儲存在 elecdaily,其中包含每日總需求、工作日指標變數(工作日以 1 表示,非工作日以 0 表示),以及每日最高氣溫。由於存在每週季節性,frequency 已設定為 7。
先看前三列資料:
> elecdaily[1:3, ]
Demand Temperature Workday
[1,] 174.8963 26.0 0
[2,] 188.5909 23.0 1
[3,] 188.9169 22.2 1
elecdaily 已預先載入到你的工作空間。
本練習屬於課程
R 的時間序列預測
練習說明
- 只對每日需求與最高溫度繪製時間圖,並使用分面(facetting)。
- 建立解釋變數矩陣,依序包含最高溫的
MaxTemp、最高溫平方的MaxTempSq,以及Workday。很明顯,cbind()的第二個引數會需要用到一個簡單的數學運算子。 - 對需求欄位擬合帶有 ARIMA 誤差的動態迴歸模型,並命名為
fit。 - 若隔天為工作日(指標為 1),且最高溫的預測為 20°C,預測的用電需求是多少?請在
forecast()的xreg引數中,用cbind()填入正確的值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Time plots of demand and temperatures
autoplot(elecdaily[, c(___, ___)], facets = ___)
# Matrix of regressors
xreg <- cbind(MaxTemp = elecdaily[, "Temperature"],
MaxTempSq = ___,
Workday = ___)
# Fit model
fit <- auto.arima(___, xreg = xreg)
# Forecast fit one day ahead
forecast(___, xreg = cbind(___, ___, ___))