1 概率密度
概率密度函數(shù)和累計(jì)分布積分都是來(lái)刻畫隨機(jī)變量的不確定性的宫蛆,描述的是總體的特征托酸,我們可以從變量的樣本觀測(cè)值來(lái)估計(jì)總體特征粘都。下面以青島啤酒日收益率為例肘迎,說明python如何估計(jì)概率分布的過程
dw = ts.get_k_data("600600",start="2016-01-12")
dw["ret"] = dw['close'].diff(1)
dw["log"] = np.log(dw['close']).diff(1)
dw.dropna(inplace=True)
density=stats.kde.gaussian_kde(dw['ret'])
bins = np.arange(-5,5,0.02)
plt.subplot(211)
plt.title(u"青島啤酒收益率序列概率密度曲線圖",fontproperties=font)
plt.plot(bins,density(bins))
plt.subplot(212)
plt.plot(bins, density(bins).cumsum())
plt.title(u"青島啤酒累計(jì)分布函數(shù)圖",fontproperties=font)
使用stats模塊中的gaussian_kde可以估計(jì)收益率的概率密度甥温,對(duì)于累計(jì)概率密度可以使用cumsum函數(shù)計(jì)算。
2 二項(xiàng)分布
二項(xiàng)分布用于描述金融市場(chǎng)只有兩種結(jié)果之重復(fù)事件妓布。例如假設(shè)股票上漲為1姻蚓,股價(jià)下跌為0,概率就是1-p,X為n天中股價(jià)上漲的天數(shù)匣沼,X~b(n,p)狰挡。
下面以青島啤酒為例子,估計(jì)10天中滬深300指數(shù)6天上漲的概率释涛。
dw = ts.get_k_data("600600",start="2016-01-12")
dw["ret"] = dw['close'].diff(1)
#計(jì)算青島啤酒上漲的概率
p= len(dw[dw['ret']>0])/(1.0*len(dw))
# 估計(jì)10個(gè)交易日中加叁,有6個(gè)交易日上漲的概率
prob = stats.binom.pmf(6,10,p)
print("上漲的概率為{0} 10個(gè)交易日中有6個(gè)上漲的概率{1:.7f}".format(p, prob))
#上漲的概率為0.487738419619 10個(gè)交易日中有6個(gè)上漲的概率0.1946741
3 正態(tài)分布
正態(tài)分布又名高斯分布,被廣泛應(yīng)用在數(shù)學(xué)唇撬、物理以及金融工程領(lǐng)域它匕。是人們最常用的描述連續(xù)性隨機(jī)變量的概率分布。在金融工程中窖认,收益率等變量的分布常常假定為正態(tài)分布或者對(duì)數(shù)正態(tài)分布豫柬。由于正太分布的概率密度曲線呈鐘型告希,人們常常稱正態(tài)分布曲線為鐘型曲線。
VaR(Value at Risk)指的是在一定概率水平下(a%)轮傍,某一金融資產(chǎn)或者金融資產(chǎn)組合在未來(lái)特定的一段時(shí)間內(nèi)最大可能的損失暂雹。
我們首先計(jì)算收益率序列的均值和方差。假定收益率序列服從正態(tài)分布创夜,有了均值和方差就可以得到收益率序列的概率密度函數(shù)和累積分布函數(shù)杭跪。之后使用ppf函數(shù)獲取累積密度值為0.05的分位數(shù),得到的值為0.666017805141%驰吓, 這說明涧尿,VaR為-0.666017805141%,即有95%的概率損失不會(huì)超過0.666017805141%
dw = ts.get_k_data("600600",start="2016-01-12")
dw["ret"] = dw['close'].diff(1)
dw.dropna(inplace=True)
meam=dw["ret"].values.mean()
var=dw["ret"].values.var()
print("Var is {0}".format(stats.norm.ppf(0.05,meam,var**0.5)))
Var is -0.666017805141
4 卡方分布
Z0檬贰,Z1姑廉,...,Zn為n個(gè)相互獨(dú)立的服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)變量翁涤,則
其之和自由度為n的卡方分布桥言。
plt.plot(np.arange(0,5,0.02),\
stats.chi.pdf(np.arange(0,5,0.02),3 ))
plt.title("Probability Density Plot of Chi-Squre Distribution")
5 t分布
繪制t分布
x = np.arange(-4,4.004, 0.004)
plt.plot(x, stats.norm.pdf(x),label="Normal")
plt.plot(x, stats.t.pdf(x,5),label="df=5")
plt.plot(x, stats.t.pdf(x,30),label="df=30")
plt.legend()
6 F分布
plt.plot(np.arange(0,5,0.02),\
stats.f.pdf(np.arange(0,5,0.02),4, 40 ))
plt.title("Probability Density Plot of F Distribution")