成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Python 分析資產收益的典型化事實

開發 后端
在本節中,我們將用 Python去發現標準普爾 500 指數系列中的五個典型化事實。

[[426550]]

      Python中文社區(ID:python-china)

典型化事實(Stylized Facts)是在實際數據中發現的一些現象。“典型化事實”在經濟學中非常重要,無論是宏觀經濟學還是貿易、金融還是產業經濟學,在理論的發展中都扮演著非常重要的角色,因而如果能發現一些“典型化事實”,對經濟學的理論研究和之后的實證研究是非常重要的。掃描本文最下方二維碼獲取全部完整源碼和Jupyter Notebook 文件打包下載。

典型化事實(Stylized Facts)是出現在許多資產回報(跨時間和市場)中的統計屬性。了解它們很重要,因為當我們構建代表資產價格動態的模型時,模型必須能夠捕獲這些屬性。

下面我們使用從 1985 年到 2018 年標普 500 指數的每日回報收益來分析五個典型化事實。

我們從雅虎財經下載標準普爾 500 指數價格并計算收益。使用以下代碼導入所有需要的庫: 

  1. import pandas as pd   
  2. import numpy as np  
  3. import yfinance as yf  
  4. import seaborn as sns   
  5. import scipy.stats as scs  
  6. import statsmodels.api as sm  
  7. import statsmodels.tsa.api as smt 

在本節中,我們將用 Python去發現標準普爾 500 指數系列中的五個典型化事實。 

  1. df = yf.download('^GSPC',   
  2.                  start='1985-01-01'
  3.                  end='2018-12-31' 
  4.                  progress=False 
  5. dfdf = df[['Adj Close']].rename(columns={'Adj Close': 'adj_close'})  
  6. df['log_rtn'] = np.log(df.adj_close/df.adj_close.shift(1))  
  7. dfdf = df[['adj_close', 'log_rtn']].dropna(how = 'any'

一、資產收益的非高斯分布

運行以下步驟,通過繪制收益直方圖和 Q-Q 圖來發現第一個事實的存在。

1、使用觀察到的收益的均值和標準差計算正態概率密度函數 (PDF): 

  1. r_range = np.linspace(min(df.log_rtn), max(df.log_rtn), num=1000 
  2. mu = df.log_rtn.mean()  
  3. sigma = df.log_rtn.std()  
  4. norm_pdf = scs.norm.pdf(r_range, loc=muscale=sigma

2、繪制直方圖和 Q-Q 圖: 

  1. fig, ax = plt.subplots(1, 2, figsize=(16, 8))  
  2. # histogram  
  3. sns.distplot(df.log_rtn, kde=Falsenorm_hist=Trueaxax=ax[0])                                  
  4. ax[0].set_title('Distribution of S&P 500 returns', fontsize=16)                                                     
  5. ax[0].plot(r_range, norm_pdf, 'g', lw=2,  
  6.            label=f'N({mu:.2f}, {sigma**2:.4f})' 
  7. ax[0].legend(loc='upper left');  
  8. # Q-Q plot  
  9. qq = sm.qqplot(df.log_rtn.values, line='s'axax=ax[1])  
  10. ax[1].set_title('Q-Q plot', fontsize = 16 
  11. # plt.tight_layout() 
  12. # plt.savefig('images/ch1_im10.png')  
  13. plt.show() 

執行上面的代碼會產生下圖:

我們可以使用直方圖(顯示分布的形狀)和 Q-Q 圖來評估收益的正態性。此外,我們可以打印匯總統計信息:

通過查看均值、標準差、偏度和峰度等指標,我們可以推斷它們偏離我們在正態下的預期。此外,Jarque-Bera 正態性檢驗讓我們有理由拒絕原假設,即在 99% 置信水平下分布是正態的。

二、波動集聚性

運行以下代碼,通過繪制收益序列來發現第二個典型化事實。

1、可視化收益序列: 

  1. df.log_rtn.plot(title='Daily S&P 500 returns'figsize=(10, 6)) 

執行代碼會產生下圖:

我們可以觀察到明顯的波動集聚性——波動較大的正收益和負收益時期。

三、收益不存在自相關性

我們繼續去發現第三個典型化事實。

1、定義用于創建自相關圖的參數: 

  1. N_LAGS = 50  
  2. SIGNIFICANCE_LEVEL = 0.05 

2、運行以下代碼以創建收益的自相關函數 (ACF) 圖: 

  1. acf = smt.graphics.plot_acf(df.log_rtn,   
  2.                             lags=N_LAGS,   
  3.                             alpha=SIGNIFICANCE_LEVEL

執行上面的代碼會產生下圖:

只有少數值位于置信區間之外并且可以被認為具有統計顯著性。我們可以假設已經驗證了收益序列中沒有自相關性。

四、平方/絕對收益的自相關性小且遞減

通過創建平方和絕對收益的 ACF 圖來研究第四個典型化事實。

1、創建 ACF 圖: 

  1. fig, ax = plt.subplots(2, 1, figsize=(12, 10))  
  2. smt.graphics.plot_acf(df.log_rtn ** 2, lags=N_LAGS,   
  3.                       alpha=SIGNIFICANCE_LEVELaxax = ax[0])  
  4. ax[0].set(title='Autocorrelation Plots' 
  5.           ylabel='Squared Returns' 
  6. smt.graphics.plot_acf(np.abs(df.log_rtn), lags=N_LAGS 
  7.                       alpha=SIGNIFICANCE_LEVELaxax = ax[1])  
  8. ax[1].set(ylabel='Absolute Returns' 
  9.           xlabel='Lag'

執行上面的代碼會產生以下圖:

我們可以觀察到平方回報和絕對回報的自相關值很小且不斷減小,這與第四種典型化事實一致。

五、杠桿效應

對于第五個事實,運行以下步驟來調查杠桿效應的存在。

1、將波動性度量計算為滾動標準偏差: 

  1. df['moving_std_252'] = df[['log_rtn']].rolling(window=252).std()  
  2. df['moving_std_21'] = df[['log_rtn']].rolling(window=21).std() 

2、繪制所有系列以進行比較: 

  1. fig, ax = plt.subplots(3, 1, figsize=(18, 15),   
  2.                        sharex=True 
  3. df.adj_close.plot(axax=ax[0])  
  4. ax[0].set(title='S&P 500 time series' 
  5.           ylabel='Price ($)' 
  6. df.log_rtn.plot(axax=ax[1])  
  7. ax[1].set(ylabel='Log returns (%)' 
  8. df.moving_std_252.plot(axax=ax[2], color='r', 
  9.                        label='Moving Volatility 252d' 
  10. df.moving_std_21.plot(axax=ax[2], color='g',   
  11.                       label='Moving Volatility 21d' 
  12. ax[2].set(ylabel='Moving Volatility' 
  13.           xlabel='Date' 
  14. ax[2].legend() 

我們現在可以通過將價格序列與(滾動)波動率指標進行可視化比較來研究杠桿效應:

這一事實表明,資產波動性的大多數衡量標準與其回報呈負相關,我們確實可以觀察到價格下跌時波動性增加而價格上漲時波動性減少的模式。 

 

責任編輯:龐桂玉 來源: Python中文社區
相關推薦

2009-01-18 10:15:20

SaaS服務SOA

2021-08-06 09:05:12

Python加密貨幣腳本

2021-11-01 11:15:28

Python資產代碼

2022-04-11 08:43:52

定制化軟件項目

2013-10-18 17:09:52

SAP

2021-08-20 10:12:35

Python蒙特卡洛股票

2017-08-15 18:55:57

大數據數據可視化圖表

2020-01-02 13:40:14

預測分析數據科學網絡

2013-11-25 10:20:25

2021-10-11 09:51:37

模塊化UPS架構

2014-04-25 09:23:06

2024-08-06 09:54:20

2022-02-08 23:02:23

比特幣加密貨幣代幣

2020-09-21 16:29:22

區塊鏈資產數字化

2010-08-30 12:01:05

曝光系數風險估價

2010-03-23 16:52:42

Python分解路徑名

2015-12-03 09:23:31

SaaSAdMaster金數據

2020-03-16 13:47:24

數字化分析團隊

2020-05-15 15:18:25

matlab數據分析

2016-03-14 10:00:42

APP數據手機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色视频在线免费观看 | 久久这里只有精品首页 | 国产精品一区二区福利视频 | 综合精品 | 欧美日韩中文国产一区发布 | 亚洲欧美第一视频 | 国产激情亚洲 | 成人妇女免费播放久久久 | 欧美一区视频 | 99re66在线观看精品热 | 国产成人网 | 亚洲最大的成人网 | 在线观看www高清视频 | 亚洲高清免费 | 亚洲欧美国产精品一区二区 | 国产精品一区二区三级 | 国产精品国产三级国产aⅴ原创 | 国产在线精品一区二区三区 | 一区二区手机在线 | gogo肉体亚洲高清在线视 | 国产一级免费视频 | 亚洲激情一级片 | 国产精品日韩一区 | 国产一级片一区二区三区 | 午夜精品久久久久久久久久久久久 | 91精品国产高清一区二区三区 | 日韩二三区 | 国产二区三区 | 久草热播 | 精品一区二区三区在线视频 | 久久九精品 | 亚洲大片在线观看 | 国产一级视频在线播放 | 欧美日韩久 | 成人久久一区 | 一区二区激情 | 伊人网影院| 91porn在线 | 中文字幕一区二区三区日韩精品 | 羞羞视频网页 | 精品视频在线免费观看 |