日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一. 時間序列基礎知識

社會經濟現象總是隨著時間的推移而變遷,呈現動態性。一個或一組變量x(t)進行觀測,將在一系列時刻t1、t2、...、tn得到離散數字組成的序列集合,稱之為時間序列。通過時間序列算法,我們對事物進行動態的研究。

時間序列表示按時間先后順序排列的數列,通常X軸為時間要素,Y軸為數據要素,比如1986-2000年的人均GDP為y1、y2、...、yn,再如下圖所示太陽黑子運動規律。

時間序列金融數據預測及Pandas庫詳解

 

指標通常包括時期指標(年度、月度)和時點指標(時刻)。時間序列分為以下三類:

1.隨機性時間序列:各指標變動受隨機因素影響

2.平穩時間序列:基本穩定在某個水平附近波動

3.非平穩時間序列:存在某種規律性變動,比如趨勢性、季節性

時間序列常用的特征統計量如下所示:

時間序列金融數據預測及Pandas庫詳解

 

二. 金融時間序列-Pandas庫

該部分是作者學習《Python金融大數據分析》書籍第6章的內容,僅供大家學習:

金融學中最重要的數據類型之一是金融時間序列,以日期時間作為索引的數據,例如股票、GDP、匯率等。Python處理時間序列主要使用Pandas庫,其DataFrame和Series等基本類靈感來源于R語言。Pandas庫允許從Web上讀取數據,比如雅虎財經、谷歌財經等,也可以讀取csv文件(逗號分割)。下面詳細介紹Pandas庫的用法:

1.DataFrame類

首先我們通過DataFrame定義數據,包括數據、標簽和索引三部分,其中數據包括列表、元組、字典、ndarray等類型,索引包括數值、字符串和時間等。示例代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下所示,包括輸出索引、標簽值,獲取“c”對應數值等,通過df.sum()對數據進行求和、df.mean()求平均值、df.Apply(lambda x:x**2)實現數值平方計算。

時間序列金融數據預測及Pandas庫詳解

 

DataFrame對象總體上比較方便、高效,相比ndarray對象更專業化。下面代碼是進維度擴增,增加了一個float類型。

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下所示:

時間序列金融數據預測及Pandas庫詳解

 

接下來再增加一個維度,通過索引進行對應。代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下:

時間序列金融數據預測及Pandas庫詳解

 

2.DatetimeIndex類

接下來我們講解DatetimeIndex類,通過它定義時間。首先調用numpy.random函數 生成一個9*4的標準正態分布偽隨機數,然后定義列標簽,代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下,如果需要進行訪問則調用df['No2'][3]實現。

時間序列金融數據預測及Pandas庫詳解

 

為高效處理金融事件序列數據,必須很好地處理時間索引,接下來通過date_range()函數對9行數據對應上時間,從2015-1-1開始,代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下所示,可以看到每行數據對應一個年份,其中freq參數表示頻率參數,常見的值包括:

B-交易日 D-日 W-每周 M-每月底 MS-月初 BM-每月最后一個交易日 A-每年底 H-每小時

時間序列金融數據預測及Pandas庫詳解

 

3.繪圖操作接著我們進行繪圖操作,Pandas提供了Matplotlib的一個封裝器,專門為Dataframe對象設計。代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

主要調用plot方法,參數包括x、y、title、grid(表格線)、ax、legend、kind(圖形類型,kde/line/bar/barh)、logx、yticks(刻度)、xlim(界限)、rot(旋轉度)等,繪制圖形如下所示:

時間序列金融數據預測及Pandas庫詳解

 

4.Series類從DataFrame對象中選擇一列時,則得到一個Series對象,代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下:

時間序列金融數據預測及Pandas庫詳解

 

僅僅獲取了"No1"數據并繪制如下圖所示圖形:

時間序列金融數據預測及Pandas庫詳解

 

5.Groupby操作Pandas具有靈活分組功能,工作方式類似于SQL中分組和Excel透視表,為進行分組,我們添加一組索引對應季度表,代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下所示:

時間序列金融數據預測及Pandas庫詳解

 

三. 時間序列算法-ARIMA

作者本來想通過下面代碼導入雅虎財經數據,但是沒有成功,最終選擇自定義數據進行ARIMA算法實驗。

時間序列是通過曲線擬合和參數估計來建立 數學模型的理論方法,基本步驟如下:

(1).獲取被觀測系統時間序列數據;

(2).對數據繪圖觀測是否為平穩時間序列、非平穩d階差分;

(3).得平穩時間序列,求其自相關系數ACF和偏自相關系數PACF,通過自相關和偏相關圖分析,得到最佳階層p和結束q;

(4).由d、q、p得到ARIMA模型,然后進行檢驗。

1.獲取數據導入庫

時間序列金融數據預測及Pandas庫詳解

 

代碼從2001年到2090年共有90組數據,然后按照年份進行時間序列統計(freq='A'年份),輸出結果如下所示:

時間序列金融數據預測及Pandas庫詳解

 

繪制圖形如下:

時間序列金融數據預測及Pandas庫詳解

 

2.時間序列差分d

ARIMA模型要求是平穩型,如果是非平穩型的時間序列需要先做時間序列的差分,得到一個平穩的時間序列。如果時間序列做d次差分才能得到一個平穩序列,則可使用ARIMA(p,d,q)模型,其中d表示差分次數。代碼如下:

主要調用df.diff(1)實現一階差分的效果,此數據一階和二階差分的結果類似,均值和方差基本問題,這里的差分d值就取1。

時間序列金融數據預測及Pandas庫詳解

 

得到的平穩圖形如下圖所示:

時間序列金融數據預測及Pandas庫詳解

 

3.合適的q和p值

得到一個平穩的時間序列后,需要選擇合適的ARIMA模型,即ARIMA模型中的p和q值。

注意:這里需要調用"pip install statsmodels"安裝統計數學分析的包,有時您的版本過低會導致錯誤(尤其是Anaconda 2.7版本),則需要調用"pip install --upgrade statsmodels"升級包至0.8版本。

代碼如下:

時間序列金融數據預測及Pandas庫詳解

 

輸出結果如下所示,主要 調用plot_acf和plot_pacf函數。

時間序列金融數據預測及Pandas庫詳解

 

四. 時間序列預測分析

最后給出選擇ARIMA(8,0)模型對未來10年數據進行的代碼。代碼如下:

時間序列金融數據預測及Pandas庫詳解

 


時間序列金融數據預測及Pandas庫詳解

 

輸出相關ARIMA(8,0)系數和預測的2090-2100年結果如下所示:

時間序列金融數據預測及Pandas庫詳解

 

輸出圖形如下所示,可以看到后面綠色部分為預測值,根據前面的波動規律近似得到。

時間序列金融數據預測及Pandas庫詳解

 

 

 

 

分享到:
標簽:金融 數據
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定