自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用 Python 分析資產(chǎn)收益的典型化事實(shí)

開發(fā) 后端
在本節(jié)中,我們將用 Python去發(fā)現(xiàn)標(biāo)準(zhǔn)普爾 500 指數(shù)系列中的五個(gè)典型化事實(shí)。

[[426550]]

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

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

典型化事實(shí)(Stylized Facts)是出現(xiàn)在許多資產(chǎn)回報(bào)(跨時(shí)間和市場)中的統(tǒng)計(jì)屬性。了解它們很重要,因?yàn)楫?dāng)我們構(gòu)建代表資產(chǎn)價(jià)格動態(tài)的模型時(shí),模型必須能夠捕獲這些屬性。

下面我們使用從 1985 年到 2018 年標(biāo)普 500 指數(shù)的每日回報(bào)收益來分析五個(gè)典型化事實(shí)。

我們從雅虎財(cái)經(jīng)下載標(biāo)準(zhǔn)普爾 500 指數(shù)價(jià)格并計(jì)算收益。使用以下代碼導(dǎo)入所有需要的庫: 

  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 

在本節(jié)中,我們將用 Python去發(fā)現(xiàn)標(biāo)準(zhǔn)普爾 500 指數(shù)系列中的五個(gè)典型化事實(shí)。 

  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'

一、資產(chǎn)收益的非高斯分布

運(yùn)行以下步驟,通過繪制收益直方圖和 Q-Q 圖來發(fā)現(xiàn)第一個(gè)事實(shí)的存在。

1、使用觀察到的收益的均值和標(biāo)準(zhǔn)差計(jì)算正態(tài)概率密度函數(shù) (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() 

執(zhí)行上面的代碼會產(chǎn)生下圖:

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

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

二、波動集聚性

運(yùn)行以下代碼,通過繪制收益序列來發(fā)現(xiàn)第二個(gè)典型化事實(shí)。

1、可視化收益序列: 

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

執(zhí)行代碼會產(chǎn)生下圖:

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

三、收益不存在自相關(guān)性

我們繼續(xù)去發(fā)現(xiàn)第三個(gè)典型化事實(shí)。

1、定義用于創(chuàng)建自相關(guān)圖的參數(shù): 

  1. N_LAGS = 50  
  2. SIGNIFICANCE_LEVEL = 0.05 

2、運(yùn)行以下代碼以創(chuàng)建收益的自相關(guān)函數(shù) (ACF) 圖: 

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

執(zhí)行上面的代碼會產(chǎn)生下圖:

只有少數(shù)值位于置信區(qū)間之外并且可以被認(rèn)為具有統(tǒng)計(jì)顯著性。我們可以假設(shè)已經(jīng)驗(yàn)證了收益序列中沒有自相關(guān)性。

四、平方/絕對收益的自相關(guān)性小且遞減

通過創(chuàng)建平方和絕對收益的 ACF 圖來研究第四個(gè)典型化事實(shí)。

1、創(chuàng)建 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'

執(zhí)行上面的代碼會產(chǎn)生以下圖:

我們可以觀察到平方回報(bào)和絕對回報(bào)的自相關(guān)值很小且不斷減小,這與第四種典型化事實(shí)一致。

五、杠桿效應(yīng)

對于第五個(gè)事實(shí),運(yùn)行以下步驟來調(diào)查杠桿效應(yīng)的存在。

1、將波動性度量計(jì)算為滾動標(biāo)準(zhǔn)偏差: 

  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、繪制所有系列以進(jìn)行比較: 

  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() 

我們現(xiàn)在可以通過將價(jià)格序列與(滾動)波動率指標(biāo)進(jìn)行可視化比較來研究杠桿效應(yīng):

這一事實(shí)表明,資產(chǎn)波動性的大多數(shù)衡量標(biāo)準(zhǔn)與其回報(bào)呈負(fù)相關(guān),我們確實(shí)可以觀察到價(jià)格下跌時(shí)波動性增加而價(jià)格上漲時(shí)波動性減少的模式。 

 

責(zé)任編輯:龐桂玉 來源: Python中文社區(qū)
相關(guān)推薦

2009-01-18 10:15:20

SaaS服務(wù)SOA

2021-08-06 09:05:12

Python加密貨幣腳本

2021-11-01 11:15:28

Python資產(chǎn)代碼

2022-04-11 08:43:52

定制化軟件項(xiàng)目

2021-08-20 10:12:35

Python蒙特卡洛股票

2013-10-18 17:09:52

SAP

2017-08-15 18:55:57

大數(shù)據(jù)數(shù)據(jù)可視化圖表

2021-10-11 09:51:37

模塊化UPS架構(gòu)

2014-04-25 09:23:06

2013-11-25 10:20:25

2020-01-02 13:40:14

預(yù)測分析數(shù)據(jù)科學(xué)網(wǎng)絡(luò)

2024-08-06 09:54:20

2010-03-23 16:52:42

Python分解路徑名

2010-08-30 12:01:05

曝光系數(shù)風(fēng)險(xiǎn)估價(jià)

2022-02-08 23:02:23

比特幣加密貨幣代幣

2020-05-15 15:18:25

matlab數(shù)據(jù)分析

2015-12-03 09:23:31

SaaSAdMaster金數(shù)據(jù)

2020-03-16 13:47:24

數(shù)字化分析團(tuán)隊(duì)

2020-07-23 09:15:25

Python機(jī)器學(xué)習(xí)聚類分析

2020-09-21 16:29:22

區(qū)塊鏈資產(chǎn)數(shù)字化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號