導航:首頁 > 數據行情 > 時間序列怎麼處理股票數據

時間序列怎麼處理股票數據

發布時間:2023-02-22 18:41:44

1. 時間序列基礎

1.隨機時序分析的基本概念
1)隨機變數:簡單的隨機現象,如某班一天學生出勤人數,是靜態的。
2)隨機過程:隨機現象的動態變化過程。動態的。如某一時期各個時刻的狀態。
所謂隨機過程,就是說現象的變化沒有確定形式,沒有必然的變化規律。用數學語言來說,就是事物變化的過程不能用一個(或幾個)時間t的確定的函數來描述。
如果對於每一特定的t屬於T(T是時間集合),X(t)是一個隨機變數,則稱這一族無窮多個隨機變數{X(t),t屬於T}是一個隨機過程。

2.白雜訊序列
1)純隨機過程:隨機變數X(t)(t=1,2,3……),如果是由一個不相關的隨機變數的序列構成的,即對於所有s不等於k,隨機變數Xs和Xk的協方差為零,則稱其為 純隨機過程
2)白雜訊過程:如果一個純隨機過程的期望和方差均為常數,則稱之為 白雜訊過程 。白雜訊過程的樣本實稱成為白雜訊序列,簡稱白雜訊。
3)高斯白雜訊序列:如果白雜訊具體是服從均值為0、方差為常數的正態分布,那就是 高斯白雜訊序列

3.平穩性序列
1)平穩性可以說是時間序列分析的基礎。平穩的通俗理解就是時間序列的一些行為不隨時間改變, 所謂平穩過程就是其統計特性不隨時間的平移而變化的過程。
2)即時間序列內含的規律和邏輯,要在被預測的未來時間段內能夠延續下去。這樣我們才能用歷史信息去預測未來信息,類似機器學習中的訓練集和測試集同分布。
3)如果時間序列的變化是沒有規律的、完全隨機的,那麼預測模型也就沒有用。
4)平穩性的數學表達:如果時間序列在某一常數附近波動且波動范圍有限,即有常數均值和常數方差,並且延遲k期的序列變數的自協方差和自相關系數是相等的或者說延遲k期的序列變數之間的影響程度是一樣的,則稱該序列為平穩序列。簡單說就是沒有明顯趨勢且波動范圍有限。

4.嚴平穩/強平穩
1)通俗來說,就是時間序列的聯合分布隨著時間變化嚴格保持不變。
2)數學表達:如果對所有的時刻 t, (yt1,yt2,…ytm)的聯合分布與(y(t1+k),(yt2+k),…y(tm+k))的聯合分布相同,我們稱時間序列 {yt} 是嚴平穩的。也就是時間序列的聯合分布在時間的平移變換下保持不變。

5.弱平穩
1)數學表達:均值不變,協方差Cov(yt,y(t-k))=γk,γk依賴於k。
2)即協方差也不隨時間改變,而僅與時間差k相關。
3)可以根據根據時間序列的折線圖等大致觀察數據的(弱)平穩性:*所有數據點在一個常數水平上下以相同幅度波動。
4)弱平穩的線性時間序列具有短期相關性(證明見參考書),即通常只有近期的序列值對現時值得影響比較明顯,間隔越遠的過去值對現時值得影響越小。至於這個間隔,也就是下面要提到的模型的階數。

6.嚴平穩和弱平穩的關系
1)嚴平穩是一個很強的條件,難以用經驗的方法驗證,所以一般將弱平穩性作為模型的假設條件。
2)兩者並不是嚴格的包含與被包含關系,但當時間序列是正態分布時,二者等價。

7.單位根非平穩序列(可轉換為平穩序列的非平穩序列)
在金融數據中,通常假定資產收益率序列是弱平穩的。但還有一些研究對象,比如利率、匯率、資產的價格序列,往往不是平穩的。對於資產的價格序列,其非平穩性往往由於價格沒有固定的水平,這樣的非平穩序列叫做單位根(unit-root)非平穩序列。
1)最著名的單位根非平穩序列的例子是隨機遊走(random walk)模型:
pt=μ+p(t-1)+εt
μ是常數項(漂移:drift)。εt是白雜訊序列,則pt就是一個隨機遊走。它的形式和AR模型很像,但不同之處在於,AR模型中,系數的模需要小於1,這是AR的平穩性條件,而隨機遊走相當於系數為1的AR公式,不滿足AR模型的平穩性條件。
隨機遊走模型可作為(對數)股價運動的統計模型,在這樣的模型下,股價是不可預測的。因為εt關於常數對稱,所以在已知p(t-1)的條件下,pt上升或下降的概率都是50%,無從預測。
2)帶趨勢項的時間序列
pt=β0+β1*t+yt,yt是一個平穩時間序列。
帶漂移的隨機遊走模型,其均值和方差都隨時間變化;而帶趨勢項的時間序列,其均值隨時間變化,但方差則是不變的常數。
單位根非平穩序列可以進行平穩化處理轉換為平穩序列。比如用差分法處理隨機遊走序列,用用簡單的回歸分析移除時間趨勢處理帶趨勢項的時間序列。

建立具體的模型,需解決如下三個問題模型的具體形式、時序變數的滯後期以及隨機擾動項的結構。

μ是yt的均值;ψ是系數,決定了時間序列的線性動態結構,也被稱為權重,其中ψ0=1;{εt}為高斯白雜訊序列,它表示時間序列{yt}在t時刻出現了新的信息,所以εt稱為時刻t的innovation(新信息)或shock(擾動)。
線性時間序列模型,就是描述線性時間序列的權重ψ的計量經濟模型或統計模型,比如ARIMA。因為並非所有金融數據都是線性的,所以不是所有金融數據都適合ARIMA等模型。

①自回歸模型(AR)
用變數自身的歷史時間數據對變數進行回歸,從而預測變數未來的時間數據。
p階(滯後值,可暫理解為每個移動窗口有p期)自回歸公式即AR(p):

②移動平均模型(MA)
移動平均模型關注的是誤差項的累加,能夠有效消除預測中的隨機波動。
可以看作是白雜訊序列的簡單推廣,是白雜訊序列的有限線性組合。也可以看作是參數受到限制的無窮階AR模型。

③自回歸移動平均模型(ARMA)
有時候,要用很多階數的AR和MA模型(見後面的定階問題),為解決這個問題提出ARMA模型。
對於金融中的收益率序列,直接使用ARMA模型的時候較少,但其概念與波動率建模很相關,GARCH模型可以認為是對{εt}的ARMA模型。

④自回歸差分移動平均模型(ARIMA)
ARIMA比ARMA僅多了個"I",代表的含義可理解為 差分。
一些非平穩序列經過d次差分後,可以轉化為平穩時間序列。我們對差分1次後的序列進行平穩性檢驗,若果是非平穩的,則繼續差分。直到d次後檢驗為平穩序列。

⑤一般分析過程
1、 平穩性檢驗
ADF檢驗(單位根檢驗):這是一種檢查數據穩定性的統計測試。
原假設(無效假設):時間序列是不穩定的。
2、 平穩化處理
平穩化的基本思路是:通過建模並估計趨勢和季節性這些因素,並從時間序列中移除,來獲得一個穩定的時間序列,然後再使用統計預測技術來處理時間序列,最後將預測得到的數據,通過加入趨勢和季節性等約束,來還原到原始時間序列數據。
2.0 對數變換
對某些時間序列需要取對數處理,一是可以將一些指數增長的時間序列變成線性增長,二是可以穩定序列的波動性。對數變換在經濟金融類時間序列中常用。
2.1 差分法
如果是單位根非平穩的(比如隨機遊走模型),可以對其進行差分化。它能讓數據呈現一種更加平穩的趨勢。差分階數的選擇通常越小越好,只要能夠使得序列穩定就行。
2.2 平滑法
移動平均、指數加權移動平均
註:經差分或平滑後的數據可能因包含缺失值而不能使用檢驗,需要將缺失值去除
2.3 分解法
建立有關趨勢和季節性的模型,並從模型中刪除它們。
3 、建立模型:模型選擇和模型的定階
模型的選擇即在AR、MA、ARMA、ARIMA中間如何選擇。
模型的定階即指定上面過程中產生的超參數p、q和d(差分的階數)。
(1)用ACF和PACF圖判斷使用哪種線性時間序列模型
AR模型:ACF拖尾,PACF截尾,看PACF定階。
MA模型:ACF截尾,PACF拖尾,看ACF定階。
ARMA模型:都拖尾。(EACF定階)
截尾:在某階後 迅速 趨於0(後面大部分階的對應值在二倍標准差以內);
拖尾:按指數衰減或震盪,值到後面還有增大的情況。
ARIMA模型:適用於差分後平穩的序列。
(2)利用 信息准則 函數選擇合適的階
對於個數不多的時序數據,可以通過觀察自相關圖和偏相關圖來進行模型識別,倘若要分析的時序數據量較多,例如要預測每隻股票的走勢,就不可能逐個去調參了。這時可以依據AIC或BIC准則識別模型的p, q值,通常認為AIC或BIC值越小的模型相對更優。
AIC或BIC准則綜合考慮了殘差大小和自變數的個數,殘差越小AIC或BIC值越小,自變數個數越多AIC或BIC值越大。AIC或BIC准則可以說是對模型過擬合設定了一個標准。
AIC (Akaike information criterion,赤池信息度量准則)
AIC=2k-2ln(L)
· BIC (Bayesian information criterion,貝葉斯信息度量准則)
BIC=kln(n)-2ln(L)
k為模型的超參數個數,n為樣本數量,L為似然函數。
類比機器學習中的損失函數=經驗損失函數+正則化項。
模型選擇標准:AIC和BIC越小越好(在保證精度的情況下模型越簡單越好)
4 、模型檢驗和評估(之前應切分訓練集和驗證集)
檢驗殘差是否符合標准(QQ圖):是否服從均值為0,方差是常數的正態分布(εt是否是高斯白雜訊序列)。
擬合優度檢驗(模型的評估):R 2和調整後的R 2(R^2隻適用於平穩序列)。
5 、預測
如果之前進行了標准化、差分化等,需要進行還原:
標准化的還原要注意是log(x+1)還是log(x)。

1 、基礎概念
波動率
在期權交易中,波動率是標的資產的收益率的條件標准差。之前的平穩序列假設方差為常數,但當序列的方差不是常數時,我們需要用波動率對其變化進行描述。
對於金融時間序列,波動率往往具有以下特徵:
存在波動率聚集(volatility cluster)現象。 即波動率在一些 時間段 上高,一些時間段上低。
波動率以連續時間變化,很少發生跳躍。
波動率不會發散到無窮,而是在固定的范圍內變化(統計學角度上說,其是平穩的)
杠桿效應:波動率對價格大幅上升和大幅下降的反應是不同的。
波動率模型/條件異方差模型
給資產收益率的波動率進行建模的模型叫做條件異方差模型。這些波動率模型試圖刻畫的數據有這樣的特性: 它們是序列不相關或低階序列相關的(比如股票的日收益率可能相關,但月收益率則無關),但又不是獨立的 。波動率模型就是試圖刻畫序列的這種非獨立性。
定義信息集F(t-1)是包含過去收益率的一切線性函數,假定F(t-1)給定,那麼在此條件下時間序列yt的條件均值和條件方差分別表示為:

2. 怎麼用excel對股票收盤價進行時間序列分析

最好附上內容

3. 非平穩時間序列可以預測股票走勢嗎

一般把非平穩時間序列轉化為平穩時間序列的方法是取n階差分法。

比如舉個例子,假設xt本身是不平穩的時間序列,如果xt~I(1) ,也就是說x的1階差分是平穩序列。
那麼 xt的1階差分dxt=x(t)-x(t-1) 就是平穩的序列 這時dt=x(t-1)

如果xt~I(2),就是說xt的2階差分是平穩序列的話
xt的1n階差分dxt=x(t)-x(t-1) 這時xt的1階差分依然不平穩,
那麼 對xt的1階差分再次差分後,
xt的2階差分ddxt=dxt-dxt(t-1)便是平穩序列 這時dt=-x(t-1)-dxt(t-1)

n階的話可以依次類推一下。

4. 時間序列(time series)系列1—簡介

筆者在工作中,接觸到了客流數據,網路質量數據等,零零散散的對時間序列分析方法進行了學習和實踐。
在平時的工作中,大多數公司都會有很多時序數據,也都離不開時序數據的挖掘。
所以現在整理分享出來,忘大家批評指正。

時間序列數據(time series data)是在不同時間上收集到的數據,用於描述現象隨時間變化的情況。
時間序列是一種典型的數據,具有隨時間變化的特徵。在大多數場景中,都能見到的一種數據類型。
如客流數據,股票數據,銷售額數據,網路日誌,某些KPI指標等等內容。

一般情況下,時間序列數據可以分解為3個部分,如下圖所示:

首先我們要有個目標,想通過時間序列數據完成什麼樣的目標,短期、中期、長期預測。然後需要盡可能的收集時間序列數據,數據越多,能夠發現更多數據特徵,預測會更准確。時間序列需要對數據中的缺失、異常、范圍等進行處理。
常見的時間序列數據預測方法,筆者主要總結一下幾種:

5. 對股票收盤價進行時間序列分析,預測其下一個交易日的收盤價,並與實際收盤價格進行對比

股票投資的分析這么復雜啊,先問問老師有依據這個買股票沒,再回答。

6. 時間序列分析方法

時間序列是指一組在連續時間上測得的數據,其在數學上的定義是一組向量x(t), t=0,1,2,3,...,其中t表示數據所在的時間點,x(t)是一組按時間順序(測得)排列的隨機變數。包含單個變數的時間序列稱為單變數時間序列,而包含多個變數的時間序列則稱為多變數。

時間序列在很多方面多有涉及到,如天氣預報,每天每個小時的氣溫,股票走勢等等,在商業方面有諸多應用,如:

下面我們將通過一個航班數據來說明如何使用已有的工具來進行時間序列數據預測。常用來處理時間序列的包有三個:

對於基於AR、MA的方法一般需要數據預處理,因此本文分為三部分:

通過簡單的初步處理以及可視化可以幫助我們有效快速的了解數據的分布(以及時間序列的趨勢)。

觀察數據的頻率直方圖以及密度分布圖以洞察數據結構,從下圖可以看出:

使用 statsmodels 對該時間序列進行分解,以了解該時間序列數據的各個部分,每個部分都代表著一種模式類別。借用 statsmodels 序列分解我們可以看到數據的主要趨勢成分、季節成分和殘差成分,這與我們上面的推測相符合。

如果一個時間序列的均值和方差隨著時間變化保持穩定,則可以說這個時間序列是穩定的。

大多數時間序列模型都是在平穩序列的前提下進行建模的。造成這種情況的主要原因是序列可以有許多種(復雜的)非平穩的方式,而平穩性只有一種,更加的易於分析,易於建模。

在直覺上,如果一段時間序列在某一段時間序列內具有特定的行為,那麼將來很可能具有相同的行為。譬如已連續觀察一個星期都是六點出太陽,那麼可以推測明天也是六點出太陽,誤差非常小。

而且,與非平穩序列相比,平穩序列相關的理論更加成熟且易於實現。

一般可以通過以下幾種方式來檢驗序列的平穩性:

如果時間序列是平穩性的,那麼在ACF/PACF中觀測點數據與之前數據點的相關性會急劇下降。

下圖中的圓錐形陰影是置信區間,區間外的數據點說明其與觀測數據本身具有強烈的相關性,這種相關性並非來自於統計波動。

PACF在計算X(t)和X(t-h)的相關性的時候,挖空在(t-h,t)上所有數據點對X(t)的影響,反應的是X(t)和X(t-h)之間真實的相關性(直接相關性)。

從下圖可以看出,數據點的相關性並沒有急劇下降,因此該序列是非平穩的。

如果序列是平穩的,那麼其滑動均值/方差會隨著時間的變化保持穩定。

但是從下圖我們可以看到,隨著時間的推移,均值呈現明顯的上升趨勢,而方差也呈現出波動式上升的趨勢,因此該序列是非平穩的。

一般來講p值小於0.05我們便認為其是顯著性的,可以拒絕零假設。但是這里的p值為0.99明顯是非顯著性的,因此接受零假設,該序列是非平穩的。

從上面的平穩性檢驗我們可以知道該時間序列為非平穩序列。此外,通過上面1.3部分的序列分解我們也可以看到,該序列可分解為3部分:

我們可以使用數據轉換來對那些較大的數據施加更大的懲罰,如取對數、開平方根、立方根、差分等,以達到序列平穩的目的。

滑動平均後數據失去了其原來的特點(波動式上升),這樣損失的信息過多,肯定是無法作為後續模型的輸入的。

差分是常用的將非平穩序列轉換平穩序列的方法。ARIMA中的 'I' 便是指的差分,因此ARIMA是可以對非平穩序列進行處理的,其相當於先將非平穩序列通過差分轉換為平穩序列再來使用ARMA進行建模。

一般差分是用某時刻數值減去上一時刻數值來得到新序列。但這里有一點區別,我們是使用當前時刻數值來減去其對應時刻的滑動均值。

我們來看看剛剛差分的結果怎麼樣。

讓我們稍微總結下我們剛剛的步驟:

通過上面的3步我們成功的將一個非平穩序列轉換成了一個平穩序列。上面使用的是最簡單的滑動均值,下面我們試試指數滑動平均怎麼樣。

上面是最常用的指數滑動平均的定義,但是pandas實現的指數滑動平均好像與這個有一點區別,詳細區別還得去查pandas文檔。

指數滑動均值的效果看起來也很差。我們使用差分+指數滑動平均再來試試吧。

在上面我們通過 取log+(指數)滑動平均+差分 已經成功將非平穩序列轉換為了平穩序列。

下面我們看看,轉換後的平穩序列的各個成分是什麼樣的。不過這里我們使用的是最簡單的差分,當前時刻的值等於原始序列當前時刻的值減去原始序列中上一時刻的值,即: x'(t) = x(t) - x(t-1)。

看起來挺不錯,是個平穩序列的樣子。不過,還是檢驗一下吧。

可以看到,趨勢(Trend)部分已基本被去除,但是季節性(seasonal)部分還是很明顯,而ARIMA是無法對含有seasonal的序列進行建模分析的。

在一開始我們提到了3個包均可以對時間序列進行建模。

為了簡便,這里 pmdarima 和 statsmodels.tsa 直接使用最好的建模方法即SARIMA,該方法在ARIMA的基礎上添加了額外功能,可以擬合seasonal部分以及額外添加的數據。

在使用ARIMA(Autoregressive Integrated Moving Average)模型前,我們先簡單了解下這個模型。這個模型其實可以包括三部分,分別對應著三個參數(p, d, q):

因此ARIMA模型就是將AR和MA模型結合起來然後加上差分,克服了不能處理非平穩序列的問題。但是,需要注意的是,其仍然無法對seasonal進行擬合。

下面開始使用ARIMA來擬合數據。

(1) 先分訓練集和驗證集。需要注意的是這里使用的原始數據來進行建模而非轉換後的數據。

(2)ARIMA一階差分建模並預測

(3)對差分結果進行還原

先手動選擇幾組參數,然後參數搜索找到最佳值。需要注意的是,為了避免過擬合,這里的階數一般不太建議取太大。

可視化看看結果怎麼樣吧。

(6)最後,我們還能對擬合好的模型進行診斷看看結果怎麼樣。

我們主要關心的是確保模型的殘差(resial)部分互不相關,並且呈零均值正態分布。若季節性ARIMA(SARIMA)不滿足這些屬性,則表明它可以進一步改善。模型診斷根據下面的幾個方面來判斷殘差是否符合正態分布:

同樣的,為了方便,我們這里使用 pmdarima 中一個可以自動搜索最佳參數的方法 auto_arima 來進行建模。

一般來說,在實際生活和生產環節中,除了季節項,趨勢項,剩餘項之外,通常還有節假日的效應。所以,在prophet演算法裡面,作者同時考慮了以上四項,即:

上式中,

更多詳細Prophet演算法內容可以參考 Facebook 時間序列預測演算法 Prophet 的研究 。

Prophet演算法就是通過擬合這幾項,然後把它們累加起來得到時間序列的預測值。

Prophet提供了直觀且易於調整的參數:

Prophet對輸入數據有要求:

關於 Prophet 的使用例子可以參考 Prophet example notebooks

下面使用 Prophet 來進行處理數據。

參考:
Facebook 時間序列預測演算法 Prophet 的研究
Prophet example notebooks
auto_arima documentation for selecting best model
數據分析技術:時間序列分析的AR/MA/ARMA/ARIMA模型體系
https://github.com/advaitsave/Introction-to-Time-Series-forecasting-Python
時間序列分析
My First Time Series Comp (Added Prophet)
Prophet官方文檔: https://facebookincubator.github.io

7. 如何用R 語言 建立 股票價格的時間序列

在下想用R語言對股票價格進行時間序列分析。
問題出在第一步,如何將股票價格轉換為時間序列。
我想用的語句是 pri <- ts (data, start=(), frequency= )
但是我不知道frequency 項該如何填?
因為股票的交易日是一周五天的。 那麼這個frequency 該如何設置呢?
我知道通常frequency= 12 為月度數據,frequency= 4 為季度數據,frequency= 1 為年度數據 但日數據怎麼寫我就不知道了

初學R語言,還望各位大俠多多幫助。

8. 在用時間序列分析股票時,如果連續兩天收盤價一樣,為什麼要剔除一天的數據

同一收盤價影響相同

閱讀全文

與時間序列怎麼處理股票數據相關的資料

熱點內容
股票漲停什麼時候打開 瀏覽:571
推薦買賣股票的證券機構 瀏覽:887
美中國移動股票 瀏覽:156
股票七大類指標 瀏覽:326
2020年科技股票 瀏覽:622
股票收和開的時間 瀏覽:15
老白乾股票分析最新行情 瀏覽:758
牛頓投資的南海股票曲線 瀏覽:410
股票不撤單資金會到賬嗎 瀏覽:547
股票如何杠桿數大牛證券 瀏覽:608
2020年中國醫葯股票預測 瀏覽:98
股票和長期債券區別 瀏覽:398
對比股票與債券的異同點 瀏覽:525
航發科技股票查詢 瀏覽:219
股票自銷的條件 瀏覽:390
最新版股票入門小白書 瀏覽:885
股票數據歸一化神經網路 瀏覽:651
從財務數據怎麼分析股票 瀏覽:453
港股通對我國股票市場的影響 瀏覽:88
牛市股票價格上漲幅度 瀏覽:16