日收益率(每日回報(bào))直方圖呈正態(tài)分布
每日回報(bào)值的直方圖中淆储,X 軸表示上下變化率 (%),Y 軸表示發(fā)生次數(shù)丹诀。我們在直方圖中描繪了每只股票的兩個(gè)常見特性:回報(bào)和波動(dòng)性(或風(fēng)險(xiǎn))。
圖像中軸μ越靠右代表均值越高, 則回報(bào)越高; 圖像越寬(越矮)代表標(biāo)準(zhǔn)差越大, 則波動(dòng)性更高.
峰度(kurtosis)
峰度表征尾部信息, 表示和傳統(tǒng)高斯分布相比有多少不符合的. 寬尾(fat tails)代表存在比傳統(tǒng)高斯分布更偶然更頻繁的東西(概率小的數(shù)量竟然多), 導(dǎo)致頻率上有比正態(tài)分布大的偏移.
- 峰度為正代表尾部數(shù)據(jù)多于傳統(tǒng)高斯分布, 即寬尾(fat tails);
- 峰度為負(fù)代表尾部數(shù)據(jù)少于傳統(tǒng)高斯分布, 即窄尾(skinny tails).
實(shí)際應(yīng)用中, 忽略峰度直接認(rèn)為收益是高斯分布會(huì)帶來慘重后果.
直方圖(histogram)
- 繪制直方圖
# 調(diào)用dataframe自身的方法繪制直方圖
daily_returns.hist(bins=20) # bins參數(shù)代表橫軸疏密度
- 在直方圖中繪制統(tǒng)計(jì)值
使用matplotlib.pyplot.axvline()繪制豎線
plt.axvline(mean, color='w', linestyle='dashed', linewidth=2)
plt.axvline(std, color='r', linestyle='dashed', linewidth=2)
plt.axvline(-std, color='r', linestyle='dashed', linewidth=2)
標(biāo)準(zhǔn)差要繪制兩條線, linestyle='dashed'代表破折號(hào)線
計(jì)算峰度: daily_returns.kurtosis()
, 大于0代表寬尾
使用numpy.histogram
可以得到bin的數(shù)量
- 將兩個(gè)直方圖繪制到同一個(gè)圖中
直接調(diào)用daily_returns.hist(bins=20)
會(huì)出現(xiàn)兩個(gè)直方圖,須分別調(diào)用才能畫到一個(gè)里
daily_returns['SPY'].hist(bins=20, label="SPY")
daily_returns['XOM'].hist(bins=20, label="XOM")
plt.show()
散點(diǎn)圖
市場關(guān)系用SPY表示, 作為橫軸與其他股票作對比
用daily_returns中的['SPY']和['XYZ']在同一天中的取值分別作為橫軸和縱軸繪制散點(diǎn)圖, 二者均分布于[-1, 1], 則散點(diǎn)圖走勢大致為線性增長.
散點(diǎn)圖擬合直線的斜率(slope)通常用β或beta表示, 代表股票對市場的反應(yīng), 市場(SPY)上升1%, 則市場預(yù)期(股票)上升1%; 直線和y軸交點(diǎn)截距通常用α表示, α>0表示股票會(huì)比SPY表現(xiàn)的好, 反之則差.
斜率不等于相關(guān)性, 相關(guān)性表示點(diǎn)對直線的擬合程度, 范圍屬于(0, 1),
- 繪制散點(diǎn)圖
daily_returns.plot(kind='scatter', x='SPY', y='XOM')
plt.show()
- 直線擬合散點(diǎn)圖
使用np.polyfit()擬合散點(diǎn)圖, 參數(shù)degree=1代表擬合次數(shù)(自由度), 即使用一次方程擬合. 返回多項(xiàng)式系數(shù)和截距
daily_returns.plot(kind='scatter', x='SPY', y='XOM')
beta_XOM, alpha_XOM = np.polyfit(daily_returns['SPY'], daily_returns['XOM'], 1)
plt.plot(daily_returns['SPY'], beta_XOM * daily_returns['SPY'] + alpha_XOM, '-', color='r')
plt.show()
圖像如下:
可見XOM的beta更大, 則其對市場(SPY)的反應(yīng)更強(qiáng), 曲線也更貼近SPY; XOM的alpha小于0, 則其在SPY下方.
GLD的beta小, 其受SPY的影響也更小, 和SPY差異大; GLD的alpha大于0, 則其在SPY上方.
相關(guān)性
使用df.corr()方法計(jì)算相關(guān)性, 標(biāo)準(zhǔn)采用pearson
daily_returns.corr(method='pearson')