时间序列模型调查
?
RNN 模型
Recurrent Neural Network (回流神經網絡,有的譯做遞歸神經網絡)
時間序列模型最常用最強大的的工具就是遞歸神經網絡(recurrent neural network, RNN)。相比與普通神經網絡的各計算結果之間相互獨立的特點,RNN的每一次隱含層的計算結果都與當前輸入以及上一次的隱含層結果相關。通過這種方法,RNN的計算結果便具備了記憶之前幾次結果的特點。
簡單來說,RNN可以通過t個歷史記錄預測t+1??聪聢D可能更容易理解它的原理
右側為計算時便于理解記憶而產開的結構。簡單說,x為輸入層,o為輸出層,s為隱含層,而t指第幾次的計算;V,W,U為權重,其中計算第t次的隱含層狀態時為St = f(U*Xt + W*St-1),實現當前輸入結果與之前的計算掛鉤的目的。
RNN的局限:
 由于RNN模型如果需要實現長期記憶的話需要將當前的隱含態的計算與前n次的計算掛鉤,即St = f(U*Xt + W1*St-1 + W2*St-2 + ... + Wn*St-n),那樣的話計算量會呈指數式增長,導致模型訓練的時間大幅增加,因此RNN模型一般不直接用來進行長期記憶計算。另外,傳統RNN處理不了長期依賴問題,這是個致命傷。
其他關于RNN評價的概括總結:
現實中的RNN因為層次較深,比較難優化,單純的BPTT(back-propagation through time)容易出現問題。
 對于時間序列的模型中,在非線性模型這一塊, 應該就是RNN, 它是表達能力很強的一個模型. 但是RNN的training比較困難, 同時RNN的參數選擇(layer, activation function, hidden neuron, learning rate)都難以優化.
 對于純粹時間序列預測,目前最理想的方法應該就是RNN及其變體了。標準的RNN要達到好的效果會比較難訓練,目前它的帶記憶的變體,比如LSTM(long-short term memory)和GRU(gated recurrent unit)都非常熱門。進一步的,這些模型還可以和其它神經網絡模型組合,比如在LSTM下面堆疊若干層的CNN等等,這樣基本上就是目前深度學習(deep learning)中常見的處理時間序列最好的模型了。當然這也要配置和訓練得當才能得到好的效果(包括數據預處理、恰當的參數等)。
 ?
LSTM 模型
LSTM(Long Short-Term Memory)模型是一種RNN的變型
簡單來說,這個模型相對于RNN的改進就是:既要提取有用的記憶信息,又要去除沒用的記憶信息。通過下圖容易理解
演示了閥門是如何工作的:通過閥門控制使序列第1的輸入的變量影響到了序列第4,6的的變量計算結果。
黑色實心圓代表對該節點的計算結果輸出到下一層或下一次計算;空心圓則表示該節點的計算結果沒有輸入到網絡或者沒有從上一次收到信號。
?
LSTM模型應該是針對RNN處理不了長期依賴問題所做出的改進模型,對于之前的歷史數據只提取有用的,而過濾掉了噪聲,這樣從某種程度上就減少了模型的計算量。備注:Python中有不少包可以直接調用來構建LSTM模型,比如pybrain, kears, tensorflow, cikit-neuralnetwork等。
?
?
移動平均模型??
移動平均模型是最簡單的時間序列模型,分為一次移動平均和多次移動平均
一次移動平均
二次移動平均
當預測目標的基本趨勢是在某一水平上下波動時,可用一次移動平均,當預測目標的基本趨勢與某一線性模型相吻合時,常用二次移動平均。當序列同時存在線性趨勢與周期波動時,可用趨勢移動。平均移動平均的思想是:取最近N期序列值的平均值作為未來各期的預測結果,一般N的取值范圍在5-200之間,當歷史序列的基本趨勢變化不大時且序列中隨機變動的成分較多時,N的取值應該大一些,否則應該小一些,當有確定的季節變動周期資料中,移動平均的項數應取周期長度。選擇最佳N值的有效方法是,比較若干模型的預測誤差,均方預測誤差最小者為好。
?
指數平滑模型
指數平滑法是生產預測中常用的一種方法。所有預測方法中,指數平滑是用得最多的一種。指數平滑法則兼容了全期平均和移動平均所長,不舍棄過去的數據,但是僅給予逐漸減弱的影響程度,即隨著數據的遠離,賦予逐漸收斂為零的權數。
 ?為t+1期的指數平滑趨勢預測值;
 ?為t期的指數平滑趨勢預測值;
 ?為t期實際觀察值;
?
一次指數平滑法只適合于具有水平發展趨勢的時間序列分析,只能對近期進行預測。如果碰到時間序列具有上升或下降趨勢時,在這個上升或下降的過程中,預測偏差會比較大,這時最好用二次指數平滑法進行預測,
1、優點:所需數據資料少,就可以預測出來所需要的結果,指數平滑法是在移動平均法基礎上發展起來的一種時間序列分析預測法,兼容了全期平均和移動平均所長,不舍棄過去的數據,但是僅給予逐漸減弱的影響程度,即隨著數據的遠離,賦予逐漸收斂為零的權數是通過計算指數平滑值,配合一定的時間序列預測模型對現象的未來進行預測。
 2、缺點:賦予遠期較小的比重,近期較大的比重,所以只能進行短期預測。
?
ARIMA模型
在整個調查過程中,該模型的出現頻率是最高的,評價來看應該是使用最廣泛的一個模型,但關于其具體適用范圍的介紹卻很少。
是由Box-Jenkins提出的更加全面的時間序列分析模型,也稱為整合自回歸移動平均模型,該模型的基礎是自回歸和移動平均模型(ARMA模型),在數學上,指數平滑模型僅僅是ARIMA模型的特例。
 ARIMA模型包括兩個特殊模型
<1>自回歸模型(AR模型)
 設某變量的一個觀測值是由其以前的p個觀測值的線性組合加上隨機誤差項at而得,at也稱為白噪聲,假設at在不同時間上是相互獨立無關的。
 該模型看上去就像是自己對自己回歸一樣,所以稱為自回歸模型,一階自回歸模型記為AR(1),p階自回歸模型記為AR(p),計算AR模型的目的是了解預測值和幾個過去值有關,相關關系如何,并確定各階參數φ
 <2>移動平均模型(MA模型)
 設某變量的一個觀測值是由目前和以前的q個隨機誤差的線性回歸而得
 計算MA模型的目的是求解θ的估計值,at的假設和AR模型一樣
 對于AR(p)模型,如果at不是白噪聲,而是MA(q)模型的形式,那么就得出了ARMA(p,q)模型
 顯然,ARMA(P,0)就是AR(p),ARMA(0,q)就是MA(q),整個模型有p+q個參數要估計。ARMA(p,q)模型的前提條件是時間序列平穩和可逆,對于不平穩的時間序列必須經過差分變換,轉化為平穩的,因此平穩之后的ARMA(p,q)模型就是ARIMA(p,d,q)模型,d為差分階數,當不需要差分時,d=0,ARIMA(p,d,q)=ARIMA(p,0,q)=ARMA(p,q),擬合ARIMA模型就是確定階數p,d,q,由于p,q和自相關函數ACF及偏相關函數PACF有關,因此需要結合自相關圖和偏相關圖進行識別確定。
?
?
STL分解法?
STL分解法是一個兼具通用性和魯棒性的時間序列分解法。STL是”Seasonal and Trend decomposition using Loess”的簡寫。?
STL分解基于Loess(局部加權回歸法),即局部加權回歸散點平滑法,是1990年由密歇根大學的R. B. Cleveland教授以及AT&T Bell實驗室的W. S. Cleveland等人提出來的一種對時間序列進行分解的方法。STL分解將時間序列分解成季節項、趨勢項及殘余項。?
優點:?
1.可以處理任何類型的季節變動因素的數據,而不僅僅是季度或是月份的數據
2.季度成分可以被允許隨著時間變化而變化,并且用戶可以自行控制變化率
3.用戶可以自行控制趨勢-周期成分的平滑度
4.對異常值有更好的魯棒性
缺點:?
1.它只適用于加法模型
2.it does not automatically handle trading day or calendar variation
?
?
?
Random Walk Model
備注:該部分取自英文pdf,有些名詞怕在翻譯過程中翻譯的不好,而失去了它原本想要表達的意思,故此部分用英文原文
The random walk model is very simple. Without a constant, it uses the current value of the time series to forecast all future values, i.e.,
Ft(k) = Yt? ?for all ?k≥1
該式子意思應該是在t+k時刻的預測值等于在t時刻的實際值
This model is often used for data that does not have a fixed mean and for which the history of the process is irrelevant given its current position. The time series is thus equally likely to go up or down at any point in time.
If a constant is included, then the forecast is given by
Ft(k) = Yt+k*?
where ? estimates the average change from one period to the next. The forecast function for such a model is a straight line with slope equal to ? .
?
文章中預測舊金山金洲大橋在20年間,每個月的交通量效果圖
The plot shows:
Observed data: shown using point symbols.
2.One-ahead forecasts: shown as a solid line passing through the data.
3.Forecasts for future values: extension of the forecasts past the end of the data.
4.95% prediction limits: the red bounds around the forecasts.
?
Note the wide prediction limits, typical of random walk models.
?
?
?
Trend Models
The Mean, Linear Trend, Quadratic Trend, Exponential Trend, and S-Curve models all fit various types of regression models to the data, using time as the independent variable. The models are fit by least squares, resulting in estimates of up to 3 coefficients: a, b, and c. Forecasts from the models are as follows:
Since they weight all data equally, regression models are often not the best methods for forecasting time series data.
在本問題中,二次模型是幾個中效果最好的,下面是該模型的效果圖,同樣是交通數據
?
怎么選擇以上四個模型:
畫圖看它的趨勢,如果呈線性,則用線性模型;如果有些彎曲或者呈指數型,則用二次模型或指數模型;如果是一個S形狀,則用S-curve trend model
也可以擬合四個模型,并比較它們的測量指標,如MAPE, MAD 和 MSD。 選擇指標最小的模型。
?
?
其他模型
ARCH模型
 ARCH模型能準確地模擬時間序列變量的波動性的變化,它在金融工程學的實證研究中也應用廣泛,使人們能更加準確地把握風險(波動性),尤其是應用在風險價值(Value at Risk)理論中,在華爾街是盡人皆知的工具。
時間序列分析方法的優點
 既考慮了觀測數據在時間序列上的依存性,又考慮了隨機波動的干擾
將ARCH中的方差用ARMA模型表示,則ARCH模型變形為GARCH模型
?
機器學習中的SVR, randomForest, lasso,xgboost,在這些資料中,更多的是講述如何使用它們,或者是做了一些小改進,但是關于適用的范圍或者使用的特點的描述就比較少。
總結
                            
                        - 上一篇: Linux跑火车,提升趣味性
 - 下一篇: pythonsl火车加字_sl命令让火车