python協(xié)方差函數(shù) python計(jì)算協(xié)方差矩陣

Python基礎(chǔ) numpy中的常見(jiàn)函數(shù)有哪些

有些Python小白對(duì)numpy中的常見(jiàn)函數(shù)不太了解,今天小編就整理出來(lái)分享給大家。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、可克達(dá)拉ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的可克達(dá)拉網(wǎng)站制作公司

Numpy是Python的一個(gè)科學(xué)計(jì)算的庫(kù),提供了矩陣運(yùn)算的功能,其一般與Scipy、matplotlib一起使用。其實(shí),list已經(jīng)提供了類(lèi)似于矩陣的表示形式,不過(guò)numpy為我們提供了更多的函數(shù)。

數(shù)組常用函數(shù)

1.where()按條件返回?cái)?shù)組的索引值

2.take(a,index)從數(shù)組a中按照索引index取值

3.linspace(a,b,N)返回一個(gè)在(a,b)范圍內(nèi)均勻分布的數(shù)組,元素個(gè)數(shù)為N個(gè)

4.a.fill()將數(shù)組的所有元素以指定的值填充

5.diff(a)返回?cái)?shù)組a相鄰元素的差值構(gòu)成的數(shù)組

6.sign(a)返回?cái)?shù)組a的每個(gè)元素的正負(fù)符號(hào)

7.piecewise(a,[condlist],[funclist])數(shù)組a根據(jù)布爾型條件condlist返回對(duì)應(yīng)元素結(jié)果

8.a.argmax(),a.argmin()返回a最大、最小元素的索引

改變數(shù)組維度

a.ravel(),a.flatten():將數(shù)組a展平成一維數(shù)組

a.shape=(m,n),a.reshape(m,n):將數(shù)組a轉(zhuǎn)換成m*n維數(shù)組

a.transpose,a.T轉(zhuǎn)置數(shù)組a

數(shù)組組合

1.hstack((a,b)),concatenate((a,b),axis=1)將數(shù)組a,b沿水平方向組合

2.vstack((a,b)),concatenate((a,b),axis=0)將數(shù)組a,b沿豎直方向組合

3.row_stack((a,b))將數(shù)組a,b按行方向組合

4.column_stack((a,b))將數(shù)組a,b按列方向組合

數(shù)組分割

1.split(a,n,axis=0),vsplit(a,n)將數(shù)組a沿垂直方向分割成n個(gè)數(shù)組

2.split(a,n,axis=1),hsplit(a,n)將數(shù)組a沿水平方向分割成n個(gè)數(shù)組

數(shù)組修剪和壓縮

1.a.clip(m,n)設(shè)置數(shù)組a的范圍為(m,n),數(shù)組中大于n的元素設(shè)定為n,小于m的元素設(shè)定為m

2.a.compress()返回根據(jù)給定條件篩選后的數(shù)組

數(shù)組屬性

1.a.dtype數(shù)組a的數(shù)據(jù)類(lèi)型

2.a.shape數(shù)組a的維度

3.a.ndim數(shù)組a的維數(shù)

4.a.size數(shù)組a所含元素的總個(gè)數(shù)

5.a.itemsize數(shù)組a的元素在內(nèi)存中所占的字節(jié)數(shù)

6.a.nbytes整個(gè)數(shù)組a所占的內(nèi)存空間7.a.astype(int)轉(zhuǎn)換a數(shù)組的類(lèi)型為int型

數(shù)組計(jì)算

1.average(a,weights=v)對(duì)數(shù)組a以權(quán)重v進(jìn)行加權(quán)平均

2.mean(a),max(a),min(a),middle(a),var(a),std(a)數(shù)組a的均值、最大值、最小值、中位數(shù)、方差、標(biāo)準(zhǔn)差

3.a.prod()數(shù)組a的所有元素的乘積

4.a.cumprod()數(shù)組a的元素的累積乘積

5.cov(a,b),corrcoef(a,b)數(shù)組a和b的協(xié)方差、相關(guān)系數(shù)

6.a.diagonal()查看矩陣a對(duì)角線(xiàn)上的元素7.a.trace()計(jì)算矩陣a的跡,即對(duì)角線(xiàn)元素之和

以上就是numpy中的常見(jiàn)函數(shù)。更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。

python求解系數(shù)是啥

1. person correlation coefficient(皮爾森相關(guān)性系數(shù))

皮爾遜相關(guān)系數(shù)通常用r或ρ表示,度量?jī)勺兞縓和Y之間相互關(guān)系(線(xiàn)性相關(guān))

(1)公式

皮爾森相關(guān)性系數(shù)的值等于它們之間的協(xié)方差cov(X,Y)除以它們各自標(biāo)準(zhǔn)差的乘積(σX, σY)。

(2)數(shù)據(jù)要求

a.正態(tài)分布

它是協(xié)方差與標(biāo)準(zhǔn)差的比值,并且在求皮爾森相關(guān)性系數(shù)以后,通常還會(huì)用t檢驗(yàn)之類(lèi)的方法來(lái)進(jìn)行皮爾森相關(guān)性系數(shù)檢驗(yàn),而t檢驗(yàn)是基于數(shù)據(jù)呈正態(tài)分布的假設(shè)的。

b.實(shí)驗(yàn)數(shù)據(jù)之間的差距不能太大

比如:研究人跑步的速度與心臟跳動(dòng)的相關(guān)性,如果人突發(fā)心臟病,心跳為0(或者過(guò)快與過(guò)慢),那這時(shí)候我們會(huì)測(cè)到一個(gè)偏離正常值的心跳,如果我們把這個(gè)值也放進(jìn)去進(jìn)行相關(guān)性分析,它的存在會(huì)大大干擾計(jì)算的結(jié)果的。

(3)實(shí)例代碼

import pandas as pd

import numpy as np

#原始數(shù)據(jù)

X1=pd.Series([1, 2, 3, 4, 5, 6])

Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5])

X1.mean() #平均值# 3.5

Y1.mean() #2.4

X1.var() #方差#3.5

Y1.var() #2.9760000000000004

X1.std() #標(biāo)準(zhǔn)差不能為0# 1.8708286933869707

Y1.std() #標(biāo)準(zhǔn)差不能為0#1.725108692227826

X1.cov(Y1) #協(xié)方差#3.0600000000000005

X1.corr(Y1,method="pearson") #皮爾森相關(guān)性系數(shù) #0.948136664010285

X1.cov(Y1)/(X1.std()*Y1.std()) #皮爾森相關(guān)性系數(shù) # 0.948136664010285

2. spearman correlation coefficient(斯皮爾曼相關(guān)性系數(shù))

斯皮爾曼相關(guān)性系數(shù),通常也叫斯皮爾曼秩相關(guān)系數(shù)?!爸取?,可以理解成就是一種順序或者排序,那么它就是根據(jù)原始數(shù)據(jù)的排序位置進(jìn)行求解

(1)公式

首先對(duì)兩個(gè)變量(X, Y)的數(shù)據(jù)進(jìn)行排序,然后記下排序以后的位置(X’, Y’),(X’, Y’)的值就稱(chēng)為秩次,秩次的差值就是上面公式中的di,n就是變量中數(shù)據(jù)的個(gè)數(shù),最后帶入公式就可求解結(jié)果。

(2)數(shù)據(jù)要求

因?yàn)槭嵌ㄐ颍晕覀儾挥霉躕和Y這兩個(gè)變量具體的值到底差了多少,只需要算一下它們每個(gè)值所處的排列位置的差值,就可以求出相關(guān)性系數(shù)了

(3)實(shí)例代碼

import pandas as pd

import numpy as np

#原始數(shù)據(jù)

X1=pd.Series([1, 2, 3, 4, 5, 6])

Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5])

#處理數(shù)據(jù)刪除Nan

x1=X1.dropna()

y1=Y1.dropna()

n=x1.count()

x1.index=np.arange(n)

y1.index=np.arange(n)

#分部計(jì)算

d=(x1.sort_values().index-y1.sort_values().index)**2

dd=d.to_series().sum()

p=1-n*dd/(n*(n**2-1))

#s.corr()函數(shù)計(jì)算

r=x1.corr(y1,method='spearman')

print(r,p) #0.942857142857143 0.9428571428571428

3. kendall correlation coefficient(肯德?tīng)栂嚓P(guān)性系數(shù))

肯德?tīng)栂嚓P(guān)性系數(shù),又稱(chēng)肯德?tīng)栔认嚓P(guān)系數(shù),它也是一種秩相關(guān)系數(shù),不過(guò)它所計(jì)算的對(duì)象是分類(lèi)變量。

分類(lèi)變量可以理解成有類(lèi)別的變量,可以分為:

(1) 無(wú)序的,比如性別(男、女)、血型(A、B、O、AB);

(2) 有序的,比如肥胖等級(jí)(重度肥胖,中度肥胖、輕度肥胖、不肥胖)。

通常需要求相關(guān)性系數(shù)的都是有序分類(lèi)變量。

(1)公式

R=(P-(n*(n-1)/2-P))/(n*(n-1)/2)=(4P/(n*(n-1)))-1

注:設(shè)有n個(gè)統(tǒng)計(jì)對(duì)象,每個(gè)對(duì)象有兩個(gè)屬性。將所有統(tǒng)計(jì)對(duì)象按屬性1取值排列,不失一般性,設(shè)此時(shí)屬性2取值的排列是亂序的。設(shè)P為兩個(gè)屬性值排列大小關(guān)系一致的統(tǒng)計(jì)對(duì)象對(duì)數(shù)

(2)數(shù)據(jù)要求

類(lèi)別數(shù)據(jù)或者可以分類(lèi)的數(shù)據(jù)

(3)實(shí)例代碼

import pandas as pd

import numpy as np

#原始數(shù)據(jù)

x= pd.Series([3,1,2,2,1,3])

y= pd.Series([1,2,3,2,1,1])

r = x.corr(y,method="kendall") #-0.2611165

PCA(主成分分析)python實(shí)現(xiàn)

回顧了下PCA的步驟,并用python實(shí)現(xiàn)。深刻的發(fā)現(xiàn)當(dāng)年學(xué)的特征值、特征向量好強(qiáng)大。

PCA是一種無(wú)監(jiān)督的學(xué)習(xí)方式,是一種很常用的降維方法。在數(shù)據(jù)信息損失最小的情況下,將數(shù)據(jù)的特征數(shù)量由n,通過(guò)映射到另一個(gè)空間的方式,變?yōu)閗(kn)。

這里用一個(gè)2維的數(shù)據(jù)來(lái)說(shuō)明PCA,選擇2維的數(shù)據(jù)是因?yàn)?維的比較容易畫(huà)圖。

這是數(shù)據(jù):

畫(huà)個(gè)圖看看分布情況:

協(xié)方差的定義為:

假設(shè)n為數(shù)據(jù)的特征數(shù),那么協(xié)方差矩陣M, 為一個(gè)n n的矩陣,其中Mij為第i和第j個(gè)特征的協(xié)方差,對(duì)角線(xiàn)是各個(gè)特征的方差。

在我們的數(shù)據(jù)中,n=2,所以協(xié)方差矩陣是2 2的,

通過(guò)numpy我們可以很方便的得到:

得到cov的結(jié)果為:

array([[ 0.61655556, 0.61544444],

[ 0.61544444, 0.71655556]])

由于我們之前已經(jīng)做過(guò)normalization,因此對(duì)于我們來(lái)說(shuō),

這個(gè)矩陣就是 data*data的轉(zhuǎn)置矩陣。

得到結(jié)果:

matrix([[ 5.549, 5.539],

[ 5.539, 6.449]])

我們發(fā)現(xiàn),其實(shí)協(xié)方差矩陣和散度矩陣關(guān)系密切,散度矩陣 就是協(xié)方差矩陣乘以(總數(shù)據(jù)量-1)。因此他們的 特征根 和 特征向量 是一樣的。這里值得注意的一點(diǎn)就是,散度矩陣是 SVD奇異值分解 的一步,因此PCA和SVD是有很大聯(lián)系的,他們的關(guān)系這里就不詳細(xì)談了,以后有機(jī)會(huì)再寫(xiě)下。

用numpy計(jì)算特征根和特征向量很簡(jiǎn)單,

但是他們代表的意義非常有意思,讓我們將特征向量加到我們?cè)瓉?lái)的圖里:

其中紅線(xiàn)就是特征向量。有幾點(diǎn)值得注意:

藍(lán)色的三角形就是經(jīng)過(guò)坐標(biāo)變換后得到的新點(diǎn),其實(shí)他就是紅色原點(diǎn)投影到紅線(xiàn)、藍(lán)線(xiàn)形成的。

得到特征值和特征向量之后,我們可以根據(jù) 特征值 的大小,從大到小的選擇K個(gè)特征值對(duì)應(yīng)的特征向量。

這個(gè)用python的實(shí)現(xiàn)也很簡(jiǎn)單:

從eig_pairs選取前k個(gè)特征向量就行。這里,我們只有兩個(gè)特征向量,選一個(gè)最大的。

主要將原來(lái)的數(shù)據(jù)乘以經(jīng)過(guò)篩選的特征向量組成的特征矩陣之后,就可以得到新的數(shù)據(jù)了。

output:

數(shù)據(jù)果然變成了一維的數(shù)據(jù)。

最后我們通過(guò)畫(huà)圖來(lái)理解下數(shù)據(jù)經(jīng)過(guò)PCA到底發(fā)生了什么。

綠色的五角星是PCA處理過(guò)后得到的一維數(shù)據(jù),為了能跟以前的圖對(duì)比,將他們的高度定位1.2,其實(shí)就是紅色圓點(diǎn)投影到藍(lán)色線(xiàn)之后形成的點(diǎn)。這就是PCA,通過(guò)選擇特征根向量,形成新的坐標(biāo)系,然后數(shù)據(jù)投影到這個(gè)新的坐標(biāo)系,在盡可能少的丟失信息的基礎(chǔ)上實(shí)現(xiàn)降維。

通過(guò)上述幾步的處理,我們簡(jiǎn)單的實(shí)現(xiàn)了PCA第一個(gè)2維數(shù)據(jù)的處理,但是原理就是這樣,我們可以很輕易的就依此實(shí)現(xiàn)多維的。

用sklearn的PCA與我們的pca做個(gè)比較:

得到結(jié)果:

用我們的pca試試

得到結(jié)果:

完全一致,完美~

值得一提的是,sklearn中PCA的實(shí)現(xiàn),用了部分SVD的結(jié)果,果然他們因緣匪淺。

Python數(shù)據(jù)分析 | 數(shù)據(jù)描述性分析

首先導(dǎo)入一些必要的數(shù)據(jù)處理包和可視化的包,讀文檔數(shù)據(jù)并通過(guò)前幾行查看數(shù)據(jù)字段。

對(duì)于我的數(shù)據(jù)來(lái)說(shuō),由于數(shù)據(jù)量比較大,因此對(duì)于缺失值可以直接做刪除處理。

得到最終的數(shù)據(jù),并提取需要的列作為特征。

對(duì)類(lèi)別數(shù)據(jù)進(jìn)行統(tǒng)計(jì):

類(lèi)別型字段包括location、cpc_class、pa_country、pa_state、pa_city、assignee六個(gè)字段,其中:

單變量統(tǒng)計(jì)描述是數(shù)據(jù)分析中最簡(jiǎn)單的形式,其中被分析的數(shù)據(jù)只包含一個(gè)變量,不處理原因或關(guān)系。單變量分析的主要目的是通過(guò)對(duì)數(shù)據(jù)的統(tǒng)計(jì)描述了解當(dāng)前數(shù)據(jù)的基本情況,并找出數(shù)據(jù)的分布模型。

單變量數(shù)據(jù)統(tǒng)計(jì)描述從集中趨勢(shì)上看,指標(biāo)有:均值,中位數(shù),分位數(shù),眾數(shù);從離散程度上看,指標(biāo)有:極差、四分位數(shù)、方差、標(biāo)準(zhǔn)差、協(xié)方差、變異系數(shù),從分布上看,有偏度,峰度等。需要考慮的還有極大值,極小值(數(shù)值型變量)和頻數(shù),構(gòu)成比(分類(lèi)或等級(jí)變量)。

對(duì)于數(shù)值型數(shù)據(jù),首先希望了解一下數(shù)據(jù)取值范圍的分布,因此可以用統(tǒng)計(jì)圖直觀展示數(shù)據(jù)分布特征,如:柱狀圖、正方圖、箱式圖、頻率多邊形和餅狀圖。

按照發(fā)布的時(shí)間先后作為橫坐標(biāo),數(shù)值范圍的分布情況如圖所示.

還可以根據(jù)最終分類(lèi)的結(jié)果查看這些數(shù)值數(shù)據(jù)在不同類(lèi)別上的分布統(tǒng)計(jì)。

箱線(xiàn)圖可以更直觀的查看異常值的分布情況。

異常值指數(shù)據(jù)中的離群點(diǎn),此處定義超出上下四分位數(shù)差值的1.5倍的范圍為異常值,查看異常值的位置。

參考:

python數(shù)據(jù)分析之?dāng)?shù)據(jù)分布 - yancheng111 - 博客園

python數(shù)據(jù)統(tǒng)計(jì)分析 -

科爾莫戈羅夫檢驗(yàn)(Kolmogorov-Smirnov test),檢驗(yàn)樣本數(shù)據(jù)是否服從某一分布,僅適用于連續(xù)分布的檢驗(yàn)。下例中用它檢驗(yàn)正態(tài)分布。

在使用k-s檢驗(yàn)該數(shù)據(jù)是否服從正態(tài)分布,提出假設(shè):x從正態(tài)分布。最終返回的結(jié)果,p-value=0.9260909172362317,比指定的顯著水平(一般為5%)大,則我們不能拒絕假設(shè):x服從正態(tài)分布。這并不是說(shuō)x服從正態(tài)分布一定是正確的,而是說(shuō)沒(méi)有充分的證據(jù)證明x不服從正態(tài)分布。因此我們的假設(shè)被接受,認(rèn)為x服從正態(tài)分布。如果p-value小于我們指定的顯著性水平,則我們可以肯定的拒絕提出的假設(shè),認(rèn)為x肯定不服從正態(tài)分布,這個(gè)拒絕是絕對(duì)正確的。

衡量?jī)蓚€(gè)變量的相關(guān)性至少有以下三個(gè)方法:

皮爾森相關(guān)系數(shù)(Pearson correlation coefficient) 是反應(yīng)倆變量之間線(xiàn)性相關(guān)程度的統(tǒng)計(jì)量,用它來(lái)分析正態(tài)分布的兩個(gè)連續(xù)型變量之間的相關(guān)性。常用于分析自變量之間,以及自變量和因變量之間的相關(guān)性。

返回結(jié)果的第一個(gè)值為相關(guān)系數(shù)表示線(xiàn)性相關(guān)程度,其取值范圍在[-1,1],絕對(duì)值越接近1,說(shuō)明兩個(gè)變量的相關(guān)性越強(qiáng),絕對(duì)值越接近0說(shuō)明兩個(gè)變量的相關(guān)性越差。當(dāng)兩個(gè)變量完全不相關(guān)時(shí)相關(guān)系數(shù)為0。第二個(gè)值為p-value,統(tǒng)計(jì)學(xué)上,一般當(dāng)p-value0.05時(shí),可以認(rèn)為兩變量存在相關(guān)性。

斯皮爾曼等級(jí)相關(guān)系數(shù)(Spearman’s correlation coefficient for ranked data ) ,它主要用于評(píng)價(jià)順序變量間的線(xiàn)性相關(guān)關(guān)系,在計(jì)算過(guò)程中,只考慮變量值的順序(rank, 秩或稱(chēng)等級(jí)),而不考慮變量值的大小。常用于計(jì)算類(lèi)型變量的相關(guān)性。

返回結(jié)果的第一個(gè)值為相關(guān)系數(shù)表示線(xiàn)性相關(guān)程度,本例中correlation趨近于1表示正相關(guān)。第二個(gè)值為p-value,p-value越小,表示相關(guān)程度越顯著。

kendall :

也可以直接對(duì)整體數(shù)據(jù)進(jìn)行相關(guān)性分析,一般來(lái)說(shuō),相關(guān)系數(shù)取值和相關(guān)強(qiáng)度的關(guān)系是:0.8-1.0 極強(qiáng) 0.6-0.8 強(qiáng) 0.4-0.6 中等 0.2-0.4 弱 0.0-0.2 極弱。

python實(shí)現(xiàn)資產(chǎn)配置(2)--Blacklitterman 模型

在 python實(shí)現(xiàn)資產(chǎn)配置(1)----Markowitz 投資組合模型 中, 我們已經(jīng)見(jiàn)過(guò)如何使用Markowitz求得最優(yōu)資產(chǎn)配比. 這是一種在已知未來(lái)各資產(chǎn)的概率分布,然后再求解的方法.

Markowitz模型輸入?yún)?shù)包括歷史數(shù)據(jù)法和情景分析法兩種方法,情景分析法的缺點(diǎn)是主觀因素,隨意性太強(qiáng),因此使用歷史數(shù)據(jù)法, 將資產(chǎn)的均值和協(xié)方差輸入模型是比較常見(jiàn)的作法. 不過(guò), 不足之處很明顯: 未來(lái)的資產(chǎn)收益率分布不一定與過(guò)去相同. 此外, Markowitz 模型結(jié)果對(duì)輸入?yún)?shù)過(guò)于敏感.

Black-Litterman模型就是基于此的改進(jìn). 其核心思想是將投資者對(duì)大類(lèi)資產(chǎn)的觀點(diǎn) (主觀觀點(diǎn)) 與市場(chǎng)均衡收益率 (先驗(yàn)預(yù)期收益率)相結(jié)合,從而形成新的預(yù)期收益率(后驗(yàn)預(yù)期收益率). 這里的先驗(yàn)預(yù)期收益率的分布可以是貝葉斯推斷中的先驗(yàn)概率密度函數(shù)的多元正態(tài)分布形式,投資者的主觀觀點(diǎn)就是貝葉斯推斷中的似然函數(shù)(可以看作新的信息, 因?yàn)樽龀鲋饔^判斷必然是從外界獲取得到了這些資產(chǎn)的收益率變化信息), 而相應(yīng)的, 后驗(yàn)預(yù)期收益率也可以從后驗(yàn)概率密度函數(shù)中得到. 具體的推導(dǎo)可以看我的這篇文章: 從貝葉斯定理到貝葉斯推斷 .

BL模型的求解步驟包括下面幾步:

(1) 使用歷史數(shù)據(jù)估計(jì)預(yù)期收益率的協(xié)方差矩陣作為先驗(yàn)概率密度函數(shù)的協(xié)方差.

(2) 確定市場(chǎng)預(yù)期之收益率向量, 也就是先驗(yàn)預(yù)期收益之期望值. 作為先驗(yàn)概率密度函數(shù)的均值. 或者使用現(xiàn)有的期望值和方差來(lái)反推市場(chǎng)隱含的均衡收益率(Implied Equilibrium Return Vector), 不過(guò)在使用這種方法時(shí), 需要知道無(wú)風(fēng)險(xiǎn)收益率 的大小.

(3) 融合投資人的個(gè)人觀點(diǎn),即根據(jù)歷史數(shù)據(jù)(看法變量的方差)和個(gè)人看法(看法向量的均值)

(4) 修正后驗(yàn)收益.

是均衡收益率協(xié)方差的調(diào)整系數(shù),可以根據(jù)信心水平來(lái)判斷. 是歷史資產(chǎn)收益率的協(xié)方差矩陣, P是投資者的觀點(diǎn)矩陣, 是似然函數(shù)(即投資者觀點(diǎn)函數(shù))中的協(xié)方差矩陣,其值為 的對(duì)角陣, 是先驗(yàn)收益率的期望值.

(5) 投資組合優(yōu)化: 將修正后的期望值與協(xié)方差矩陣即 重新代入Markowitz投資組合模型求解.

(1)定義求解函數(shù),輸入為投資者觀點(diǎn)P,Q以及目前資產(chǎn)的市場(chǎng)收益率矩陣,輸出為后驗(yàn)的市場(chǎng)收益率和協(xié)方差矩陣.

(2) 實(shí)列分析

我們繼續(xù)研究 python實(shí)現(xiàn)資產(chǎn)配置(1)----Markowitz 投資組合模型 中的五支股票: 白云機(jī)場(chǎng), 福建高速, 華夏銀行, 生益科技和浙能電力. 假設(shè)現(xiàn)在分析師的觀點(diǎn)為:

獲取股票數(shù)據(jù), 并且獲得后驗(yàn)的均值和方差:

這時(shí)候,已經(jīng)可以使用Markowitz模型進(jìn)行資產(chǎn)的配置. 定義新的函數(shù)blminVar以求解資產(chǎn)配置權(quán)重. 該函數(shù)的輸入變量為blacklitterman函數(shù)的輸出結(jié)果, 以及投資人的目標(biāo)收益率goalRet.假設(shè)目標(biāo)收益率為年化70%,則goalRet = 0.7:

輸出結(jié)果為:

0-5分別對(duì)應(yīng)上面的五只股票.

怎么用python表示出二維高斯分布函數(shù),mu表示均值,sigma表示協(xié)方差矩陣,x表示數(shù)據(jù)點(diǎn)

clear?

close?all

%%%%%%%%%%%%%%%%%%%%%%%%%生成實(shí)驗(yàn)數(shù)據(jù)集

rand('state',0)

sigma_matrix1=eye(2);

sigma_matrix2=50*eye(2);

u1=[0,0];

u2=[30,30];

m1=100;

m2=300;%樣本數(shù)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm1數(shù)據(jù)集

Y1=multivrandn(u1,m1,sigma_matrix1);

Y2=multivrandn(u2,m2,sigma_matrix2);

scatter(Y1(:,1),Y1(:,2),'bo')

hold?on

scatter(Y2(:,1),Y2(:,2),'r*')

title('SM1數(shù)據(jù)集')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm2數(shù)據(jù)集

u11=[0,0];

u22=[5,5];

u33=[10,10];

u44=[15,15];

m=600;

sigma_matrix3=2*eye(2);

Y11=multivrandn(u11,m,sigma_matrix3);

Y22=multivrandn(u22,m,sigma_matrix3);

Y33=multivrandn(u33,m,sigma_matrix3);

Y44=multivrandn(u44,m,sigma_matrix3);

figure(2)

scatter(Y11(:,1),Y11(:,2),'bo')

hold?on

scatter(Y22(:,1),Y22(:,2),'r*')

scatter(Y33(:,1),Y33(:,2),'go')

scatter(Y44(:,1),Y44(:,2),'c*')

title('SM2數(shù)據(jù)集')

end

function?Y?=?multivrandn(u,m,sigma_matrix)

%%生成指定均值和協(xié)方差矩陣的高斯數(shù)據(jù)

n=length(u);

c?=?chol(sigma_matrix);

X=randn(m,n);

Y=X*c+ones(m,1)*u;

end

文章題目:python協(xié)方差函數(shù) python計(jì)算協(xié)方差矩陣
轉(zhuǎn)載源于:http://muchs.cn/article34/doocope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、App設(shè)計(jì)企業(yè)網(wǎng)站制作、云服務(wù)器搜索引擎優(yōu)化、用戶(hù)體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)