Python—对风险的边际贡献

Python—对风险的边际贡献,python,matrix,multiplication,Python,Matrix,Multiplication,有人能帮我解决以下问题吗?我已经挣扎了一段时间了 边际风险贡献=要找到每项资产的边际贡献,取权重向量和协方差矩阵的叉积除以投资组合标准偏差 Relativeweights = np.array([0.02, -0.025, -0.015, 0.0, 0.02,0,0,0]) cov_matrix_a= 8x8 matrix Port_volatility= 0.05882615906289199 现在将每项资产的边际贡献乘以权重向量,得到总贡献。然后我们可以求出资产贡献的总和,并确保它等于总的

有人能帮我解决以下问题吗?我已经挣扎了一段时间了

边际风险贡献=要找到每项资产的边际贡献,取权重向量和协方差矩阵的叉积除以投资组合标准偏差

Relativeweights = np.array([0.02, -0.025, -0.015, 0.0, 0.02,0,0,0])
cov_matrix_a= 8x8 matrix
Port_volatility= 0.05882615906289199
现在将每项资产的边际贡献乘以权重向量,得到总贡献。然后我们可以求出资产贡献的总和,并确保它等于总的投资组合标准差

Relativeweights = np.array([0.02, -0.025, -0.015, 0.0, 0.02,0,0,0])
cov_matrix_a= 8x8 matrix
Port_volatility= 0.05882615906289199
因此,我尝试了以下代码

MCTAR=(np.dot(Relativeweights,cov_matrix_a))/Port_volatility
TCTPR=MCTAR*Relativeweights
np.sum(TCTPR, axis=0)
这并不意味着投资组合的波动性,所以不确定到底出了什么问题

谢谢你的帮助。 谢谢


完整代码如下

从csv文件中拉入返回 使用.cov()方法构造投资组合每日收益的协方差矩阵 使用标准的252个交易日对每日协方差矩阵进行年度化 分配相对权重 分配投资组合权重 投资组合的标准差只是其方差的平方根 每个资产的边际贡献,取权重向量和协方差矩阵的叉积除以投资组合标准偏差。 现在将每项资产的边际贡献乘以权重向量,得到总贡献。然后我们可以求出资产贡献的总和,并确保它等于总的投资组合标准差。
如果您将Relativeweights=Portweights等同,那么乘法结果就是您期望的答案。

如果您将Relativeweights=Portweights等同,然后乘法得到你期望的答案。

@p每个乘法的数学公式step@P米卡列夫我的意思是:@Zaraki Kenpachi-@P米卡列夫对每一个的数学公式step@P米卡列夫:我的意思是:@Zaraki Kenpachi-谢谢你-为什么我没看到呢!谢谢你——为什么我没看到呢!
cov_matrix_Assetreturns = Assetreturns.cov()
cov_matrix_Assetreturns
cov_matrix_a = cov_matrix_Assetreturns * 252
cov_matrix_a
Relativeweights = np.array([0.02, -0.025, -0.015, 0.0, 0.02,0,0,0])
Relativeweights
Portweights = np.array([0.49, 0.15, 0.125, 0.215, 0.02, 0, 0,0])
Portweights
Port_volatility = np.sqrt(np.dot(Portweights.T, np.dot(cov_matrix_a, Portweights)))
Port_volatility
MCTAR=(np.dot(Relativeweights,cov_matrix_a))/Port_volatility
TCTPR=MCTAR*Relativeweights

np.sum(TCTPR, axis=0)