模型算法 |
描述 |
平滑法 |
常用於趨勢分析和預測,利用修勻技術,削弱短期隨機波動對序列的影響,使序列平滑化。可具體分爲移動平均和指數平均 |
趨勢擬合法 |
時間作爲自變量,相應的序列觀察值作爲因變量,建立迴歸模型。根據序列的特徵,可具體分爲線性擬合和曲線擬合 |
組合模型 |
時間序列的變化主要受到長期趨勢、季節變動、週期變動和不規則變動這四個因素的影響。可構建加法模型和乘法模型 |
AR模型 |
以前p期的序列值爲自變量、隨機變量的取值爲因變量建立線性迴歸模型 |
MA模型 |
隨機變量的取值與以前各期的序列值無關,建立與前期的隨機擾動的線性迴歸模型 |
ARMA模型 |
隨機變量的取值不僅與以前p期的序列值有關,還與前q期的隨機擾動有關 |
ARIMA模型 |
差分平穩序列 |
ARCH模型 |
適用於序列具有異方差且異方差函數短期自相關 |
GARCH模型 |
廣義ARCH模型 |
Data <- read.csv("./data/arima_data.csv", header = TRUE)[, 2]
sales <- ts(Data)
plot.ts(sales, xlab = "時間", ylab = "銷量 / 元")
# 單位根檢驗
unitrootTest(sales)
# 自相關圖
acf(sales)
# 一階差分
difsales <- diff(sales)
plot.ts(difsales, xlab = "時間", ylab = "銷量殘差 / 元")
# 自相關圖
acf(difsales)
# 單位根檢驗
unitrootTest(difsales)
# 白噪聲檢驗
Box.test(difsales, type="Ljung-Box")
# 偏自相關圖
pacf(difsales)
# ARIMA(1,1,0)模型
arima <- arima(sales, order = c(1, 1, 0))
arima
forecast <- forecast.Arima(arima, h = 5, level = c(99.5))
forecast
函數名 |
功能 |
acf() |
計算自相關係數 |
pacf() |
偏相關係數 |
unitrootTest() |
對觀測值序列進行單位根檢驗 |
diff() |
對觀察值序列進行差分計算 |
armasubsets() |
模型定階,確定時序模型的建模參數 |
arima() |
設置時序模型的建模參數,創建ARIMA模型 |
Box.test() |
檢測ARIMA模型是否符合白噪聲檢驗 |
forecast() |
應用構建的時序模型進行預測 |