矩阵代数 – 这个实现正确吗?

问题描述 投票:0回答:1

我正在尝试学习如何在 Python 中使用矩阵代数,为了做到这一点,我决定实现下面给出的最大夏普比率公式

这是我对公式的实现

def maximum_sharpe_ratio(cov, posterior_returns, risk_free_rate):
    risk_free_vector = np.ones(len(posterior_returns)) * risk_free_rate
    inv_cov = np.linalg.inv(cov)
    numerator = np.dot(inv_cov, posterior_returns - risk_free_vector)
    denominator = np.dot(np.ones(len(posterior_returns)), np.dot(np.linalg.inv(cov), exp_rets - risk_free_vector))
    return numerator / denominator 

如果有人能够告诉我这是否正确以及如何改进,我将非常感激!

python matrix matrix-multiplication
1个回答
0
投票

您的实现看起来基本正确,但变量名称中有一个小错误。

您似乎正在使用函数中未定义的

variable exp_rets
。我假设您打算使用
posterior_returns
来代替。

import numpy as np

def maximum_sharpe_ratio(cov, posterior_returns, risk_free_rate):
    risk_free_vector = np.ones(len(posterior_returns)) * risk_free_rate
    inv_cov = np.linalg.inv(cov)
    numerator = np.dot(inv_cov, posterior_returns - risk_free_vector)
    denominator = np.dot(np.ones(len(posterior_returns)), np.dot(np.linalg.inv(cov), posterior_returns - risk_free_vector))
    return numerator / denominator
© www.soinside.com 2019 - 2024. All rights reserved.