时间序列预测之一:指数平滑法(二)R语言——代码实现
? 參考:https://www.cnblogs.com/fengzzi/p/10044426.html
指數(shù)模型是用來(lái)預(yù)測(cè)時(shí)序未來(lái)值的最常用模型。這類模型相對(duì)比較簡(jiǎn)單,但是實(shí)踐證明它們的短期預(yù)測(cè)能力較好。不同指數(shù)模型建模時(shí)選用的因子可能不同。比如
- 單指數(shù)模型(simple/single exponential model)擬合的是只有常數(shù)水平項(xiàng)和時(shí)間點(diǎn)i處隨機(jī)項(xiàng)的時(shí)間序列,這時(shí)認(rèn)為時(shí)間序列不存在趨勢(shì)項(xiàng)和季節(jié)效應(yīng);
- 雙指數(shù)模型(double exponential model;也叫Holt指數(shù)平滑,Holt exponential smoothing)擬合的是有水平項(xiàng)和趨勢(shì)項(xiàng)的時(shí)序;
- 三指數(shù)模型(triple exponential model;也叫Holt-Winters指數(shù)平滑,Holt-Winters exponential smoothing)擬合的是有水平項(xiàng)、趨勢(shì)項(xiàng)以及季節(jié)效應(yīng)的時(shí)序。
R中自帶的HoltWinters()函數(shù)或者forecast包中的ets()函數(shù)可以擬合指數(shù)模型。ets()函數(shù)的備選參數(shù)更多,因此更實(shí)用。
1. HoltWinters()函數(shù)
R語(yǔ)言與數(shù)據(jù)分析之七:時(shí)間序列簡(jiǎn)單指數(shù)平滑
R語(yǔ)言與數(shù)據(jù)分析之八:時(shí)間序列--霍爾特指數(shù)平滑法
R語(yǔ)言與數(shù)據(jù)分析之九:時(shí)間內(nèi)序列--HoltWinters指數(shù)平滑法
2. forecast包中的ets()函數(shù)
平滑參數(shù)(α,β,γ)=(水平,趨勢(shì),季節(jié))
2.1 最簡(jiǎn)單參數(shù)
? ? ? ? ets(ts, model="zzz")
? ? ? ?model="ZZZ",依次含義為錯(cuò)誤類型、趨勢(shì)類型、季節(jié)類型。 "A"=additive, "M"=multiplicative and "Z"=automatically
? ? ? ?其中ts是要分析的時(shí)序,限定模型的字母有三個(gè)。第一個(gè)字母代表誤差項(xiàng),第二個(gè)字母代表趨勢(shì)項(xiàng),第三個(gè)字母則代表季節(jié)項(xiàng)。可選的字母包括:相加模型(A)、相乘模型(M)、無(wú)(N)、自動(dòng)選擇(Z)。
? ? ? ?"A"=additive, "M"=multiplicative and "Z"=automatically
2.2 所有參數(shù)
ets(y, model="ZZZ", damped=NULL, alpha=NULL, beta=NULL, gamma=NULL,?phi=NULL, additive.only=FALSE, lambda=NULL,??lower=c(rep(0.0001,3), 0.8), upper=c(rep(0.9999,3),0.98),?opt.crit=c("lik","amse","mse","sigma","mae"), nmse=3,?bounds=c("both","usual","admissible"), ic=c("aic","aicc","bic"),restrict=TRUE)
y:一個(gè)數(shù)值向量或時(shí)間系列
model="ZZZ":依次含義為錯(cuò)誤類型、趨勢(shì)類型、季節(jié)類型。 "A"=additive, "M"=multiplicative and "Z"=automatically
(additive,為加法;multiplicative,乘法;damped,阻尼;Null,無(wú))
damped=NULL,一個(gè)的阻尼趨勢(shì)
lower=c(rep(0.0001,3), 0.8), upper=c(rep(0.9999,3),0.98), 參數(shù)(α,β,γ,φ)的上下界
opt.crit=c("lik","amse","mse","sigma","mae"):優(yōu)化標(biāo)準(zhǔn), “MSE”(均方誤差),“AMSE”((Average MSE over first nmse forecast horizons),“sigma”(標(biāo)準(zhǔn)偏差殘差),“mae”(殘差絕對(duì)值的平均值),或“l(fā)ik”(對(duì)數(shù)似然,默認(rèn)值)
nmse=3, 平均多級(jí)MSE(1 <=nmse<= 10)的步數(shù)。
bounds=c("both","usual","admissible"): 收斂參數(shù)空間類型,"usual" 表示所有參數(shù)都必須指定上限和下限之間,“"admissible"表示參數(shù)必須位于允許的空間,”"both"(默認(rèn))的交叉點(diǎn)這些區(qū)域。
ic=c("aic","aicc","bic"):在模型選擇要使用的信息準(zhǔn)則。
restrict=TRUE:如果是TRUE,無(wú)限方差模型將不會(huì)被允許
3. 預(yù)測(cè)準(zhǔn)確性度量
- 平均誤差和平均百分比誤差:一般來(lái)說(shuō),平均誤差和平均百分比誤差用處不大,因?yàn)檎蚝拓?fù)向的誤差會(huì)抵消掉。
- RMSE:給出了平均誤差平方和的平方根,本例中即1.13°F。
- 平均絕對(duì)百分誤差:給出了誤差在真實(shí)值中的占比,它沒(méi)有單位,因此可以用于比較不同時(shí)序間的預(yù)測(cè)準(zhǔn)確性;但它同時(shí)假定測(cè)量尺度中存在一個(gè)真實(shí)為零的點(diǎn)(比如每天的游客數(shù)量),但華氏溫度中并沒(méi)有一個(gè)真實(shí)為零(即不存在分子運(yùn)動(dòng)動(dòng)能)的點(diǎn),因此這里不能用這個(gè)統(tǒng)計(jì)量。
- 平均絕對(duì)標(biāo)準(zhǔn)化誤差:是最新的一種準(zhǔn)確度測(cè)量,通常用于比較不同尺度的時(shí)序間的預(yù)測(cè)準(zhǔn)確性。這幾種預(yù)測(cè)準(zhǔn)確性度量中,并不存在某種最優(yōu)度量,不過(guò)RMSE相對(duì)最有名、最常用。
總結(jié)
以上是生活随笔為你收集整理的时间序列预测之一:指数平滑法(二)R语言——代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: R语言:ts() 时间序列的建立
- 下一篇: R语言:时间序列常用函数