宜昌云網(wǎng)站建設(shè)開發(fā)建設(shè)信息的網(wǎng)站
鶴壁市浩天電氣有限公司
2026/01/22 08:51:13
宜昌云網(wǎng)站建設(shè),開發(fā)建設(shè)信息的網(wǎng)站,wordpress獲取當(dāng)前用戶id,企業(yè)內(nèi)部門戶網(wǎng)站建設(shè)時間序列#xff08;time series#xff09;是一系列有序的數(shù)據(jù)。通常是等時間間隔的采樣數(shù)據(jù)。如果不是等間隔#xff0c;則一般會標(biāo)注每個數(shù)據(jù)點的時間刻度。
下面以time series 普遍使用的數(shù)據(jù) airline passenger為例。 這是十一年的每月乘客數(shù)量#xff0c;單位是千人次…時間序列time series是一系列有序的數(shù)據(jù)。通常是等時間間隔的采樣數(shù)據(jù)。如果不是等間隔則一般會標(biāo)注每個數(shù)據(jù)點的時間刻度。下面以time series 普遍使用的數(shù)據(jù) airline passenger為例。 這是十一年的每月乘客數(shù)量單位是千人次。可以很明顯的看出airline passenger的數(shù)據(jù)是很有規(guī)律的。time series data mining 主要包括decompose分析數(shù)據(jù)的各個成分例如趨勢周期性prediction預(yù)測未來的值classification對有序數(shù)據(jù)序列的feature提取與分類clustering相似數(shù)列聚類等。本文主要討論predictionforecast預(yù)測問題。即已知歷史的數(shù)據(jù)如何準(zhǔn)確預(yù)測未來的數(shù)據(jù)。先從簡單的方法說起。1、給定一個時間序列要預(yù)測下一個的值是多少最簡單的思路是什么呢1mean平均值未來值是歷史值的平均。2exponential smoothing 指數(shù)衰減當(dāng)去平均值得時候每個歷史點的權(quán)值可以不一樣。最自然的就是越近的點賦予越大的權(quán)重。或者更方便的寫法用變量頭上加個尖角表示估計值3) snaive 假設(shè)已知數(shù)據(jù)的周期那么就用前一個周期對應(yīng)的時刻作為下一個周期對應(yīng)時刻的預(yù)測值4 drift飄移即用最后一個點的值加上數(shù)據(jù)的平均趨勢介紹完最簡單的算法下面開始介紹兩個time series里面最火的兩個強(qiáng)大的算法 Holt-Winters 和 ARIMA。 上面簡答的算法都是這兩個算法的某種特例。5Holt-Winters三階指數(shù)平滑Holt-Winters的思想是把數(shù)據(jù)分解成三個成分平均水平level趨勢trend周期性seasonality。R里面一個簡單的函數(shù)stl就可以把原始數(shù)據(jù)進(jìn)行分解一階Holt—Winters假設(shè)數(shù)據(jù)是stationary的靜態(tài)分布即是普通的指數(shù)平滑。二階算法假設(shè)數(shù)據(jù)有一個趨勢這個趨勢可以是加性的(additive,線性趨勢)也可以是乘性的(multiplicative,非線性趨勢)只是公式里面一個小小的不同而已。三階算法在二階的假設(shè)基礎(chǔ)上多了一個周期性的成分。同樣這個周期性成分可以是additive和multiplicative的。舉個例子如果每個二月的人數(shù)都比往年增加1000人這就是additive如果每個二月的人數(shù)都比往年增加120%那么就是multiplicative。R里面有Holt-Winters的實現(xiàn)現(xiàn)在就可以用它來試試效果了。我用前十年的數(shù)據(jù)去預(yù)測最后一年的數(shù)據(jù)。 性能衡量采用的是RMSE。 當(dāng)然也可以采用別的metrics預(yù)測結(jié)果如下結(jié)果還是很不錯的。6 ARIMAARIMA是兩個算法的結(jié)合AR和MA。其公式如下是白噪聲均值為0 C是常數(shù)。ARIMA的前半部分就是Autoregressive后半部分是moving averageAR實際上就是一個無限脈沖響應(yīng)濾波器MA是一個有限脈沖響應(yīng)輸入是白噪聲。ARIMA里面的I指差分。ARIMAp,d,q就表示p階ARd次差分q階MA。2、為什么要進(jìn)行差分呢ARIMA的前提是數(shù)據(jù)是stationary的也就是說統(tǒng)計特性不會隨著時間窗口的不同而變化。用數(shù)學(xué)表示就是聯(lián)合分布相同當(dāng)然很多時候并不符合這個要求例如這里的airline passenger數(shù)據(jù)。有很多方式對原始數(shù)據(jù)進(jìn)行變換可以使之stationary1差分例如一階差分是把原數(shù)列每一項減去前一項的值。二階差分是一階差分基礎(chǔ)上再來一次差分。這是最推薦的做法2先用某種函數(shù)大致擬合原始數(shù)據(jù)再用ARIMA處理剩余量。例如先用一條直線擬合airline passenger的趨勢于是原始數(shù)據(jù)就變成了每個數(shù)據(jù)點離這條直線的偏移。再用ARIMA去擬合這些偏移量。3對原始數(shù)據(jù)取log或者開根號。這對variance不是常數(shù)的很有效。如何看數(shù)據(jù)是不是stationary呢這里就要用到兩個很常用的量了 ACFauto correlation function和PACF(patial auto correlation function)。對于non-stationary的數(shù)據(jù)ACF圖不會趨向于0或者趨向0的速度很慢。 下面是三張ACF圖分別對應(yīng)原始數(shù)據(jù)一階差分原始數(shù)據(jù)去除周期性的一階差分?jǐn)?shù)據(jù)確保stationary之后下面就要確定p和q的值了。定這兩個值還是要看ACF和PACF確定好p和q之后就可以調(diào)用R里面的arime函數(shù)了。 值得一提的是R里面有兩個很強(qiáng)大的函數(shù) ets 和 auto.arima。 用戶什么都不需要做這兩個函數(shù)會自動挑選一個最恰當(dāng)?shù)乃惴ㄈシ治鰯?shù)據(jù)。在R中各個算法的效果如下代碼如下passenger read.csv(‘passenger.csv’,headerF,sep’ )p-unlist(passenger)pt-ts(p,frequency12,start2001)plot(pt)train-window(pt,start2001,end201111/12)test-window(pt,start2012)library(forecast)pred_meanf-meanf(train,h12)rmse(test,pred_meanf$mean) #226.2657pred_naive-naive(train,h12)rmse(pred_naive$mean,test)#102.9765pred_snaive-snaive(train,h12)rmse(pred_snaive$mean,test)#50.70832pred_rwf-rwf(train,h12, driftT)rmse(pred_rwf$mean,test)#92.66636pred_ses - ses(train,h12,initial‘simple’,alpha0.2)rmse(pred_ses$mean,test) #89.77035pred_holt-holt(train,h12,dampedF,initial“simple”,beta0.65)rmse(pred_holt$mean,test)#76.86677 without beta0.65 it would be 84.41239pred_hw-hw(train,h12,seasonal‘multiplicative’)rmse(pred_hw$mean,test)#16.36156fit-ets(train)accuracy(predict(fit,12),test) #24.390252pred_stlf-stlf(train)rmse(pred_stlf$mean,test)#22.07215plot(stl(train,s.window“periodic”)) #Seasonal Decomposition of Time Series by Loessfit-auto.arima(train)accuracy(forecast(fit,h12),test) #23.538735ma arima(train, order c(0, 1, 3), seasonallist(orderc(0,1,3), period12))p-predict(ma,12)accuracy(pKaTeX parse error: Expected EOF, got # at position 13: pred,test) #?18.55567BT Bo…residuals, lag30, type “Ljung-Box”, fitdf2)文章來源網(wǎng)絡(luò) 版權(quán)歸原作者所有上文內(nèi)容不用于商業(yè)目的如涉及知識產(chǎn)權(quán)問題請權(quán)利人聯(lián)系小編我們將立即處理