開始使用免費開始

預測用電需求

你也可以把每日用電需求建模為溫度的函式。就像你在電費帳單上可能看過的,炎熱天因為冷氣、寒冷天因為暖氣,用電量都會上升。

在這個練習中,你將擬合帶有 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(___, ___, ___))
編輯並執行程式碼