def implied_returns(delta, sigma, w):
    '\nObtain the implied expected returns by reverse engineering the weights\nInputs:\ndelta: Risk Aversion Coefficient (scalar)\nsigma: Variance-Covariance Matrix (N x N) as DataFrame\n    w: Portfolio weights (N x 1) as Series\nReturns an N x 1 vector of Returns as Series\n    '
    ir = (delta * sigma.dot(w).squeeze())
    ir.name = 'Implied Returns'
    return ir
Obtain the implied expected returns by reverse engineering the weights
Inputs:
delta: Risk Aversion Coefficient (scalar)
sigma: Variance-Covariance Matrix (N x N) as DataFrame
    w: Portfolio weights (N x 1) as Series
Returns an N x 1 vector of Returns as Series
def implied_returns(delta, sigma, w):
    '\nObtain the implied expected returns by reverse engineering the weights\nInputs:\ndelta: Risk Aversion Coefficient (scalar)\nsigma: Variance-Covariance Matrix (N x N) as DataFrame\n    w: Portfolio weights (N x 1) as Series\nReturns an N x 1 vector of Returns as Series\n    '
    ir = (delta * sigma.dot(w).squeeze())
    ir.name = 'Implied Returns'
    return ir