Skip to main content
improve formatting
Source Link
Alex C
  • 9.4k
  • 1
  • 22
  • 34

extend Extend mean-variance optimisation to fama five factor... help!

I'm new to quant finance, and as I'm not a mathematician, I am using python to try an understand it.

There are a number of blogs on the internet which explain mean variance optimisation, but no-one extends these examples to the fama french factors and optimising it under that model of the world.

This is what I am trying to understand.

Mean Variance Optimisation: I

I know that in matrix notation, the following is true for mean-variance:

mu = w * r.T sigma = np.sqrt(w * C * w.T)

where: w = matrix of weights r = matrix of returns C = variance covariance matrix of r

mu = w * r.T
sigma = np.sqrt(w * C * w.T)

where: 
w = matrix of weights
r = matrix of returns
C = variance covariance matrix of r

You then try to maximise return, or minimise variance by adjusting weights in an optimisation function.

Under the factor view of the world, r = B * f + sr = B * f + s where:

r = matrix of returns B = matrix of factor exposures f = matrix of factor returns and s = matrix idiosyncratic returns

r = matrix of returns
B = matrix of factor exposures
f = matrix of factor returns and 
s = matrix idiosyncratic returns

Under this scenario, returns would be again

mu = r * w.T

mu = r * w.T

However, tothe sigma doesn't seem to take into account the fact there is more than one factor at play describing risk. How do you extend mean-variance to account for additional factors?

wouldWould it be something like finding a sigma for each factor and its covariance to the return and then combining them?

sigma = np.sqrt(factor1_weight * Covariance(return,factor1) * factor1_weight) * np.sqrt(factor2_weight * Covariance(return,factor2) * factor2_weight) ??

sigma = np.sqrt(factor1_weight * Covariance(return,factor1) * factor1_weight) * np.sqrt(factor2_weight * Covariance(return,factor2) * factor2_weight) ??

Any help would be appreciated, and perhaps an explanation as well.

Thanks so much!

extend mean-variance optimisation to fama five factor... help!

I'm new to quant finance, and as I'm not a mathematician, I am using python to try an understand it.

There are a number of blogs on the internet which explain mean variance optimisation, but no-one extends these examples to the fama french factors and optimising it under that model of the world.

This is what I am trying to understand.

Mean Variance Optimisation: I know that in matrix notation, the following is true for mean-variance:

mu = w * r.T sigma = np.sqrt(w * C * w.T)

where: w = matrix of weights r = matrix of returns C = variance covariance matrix of r

You then try to maximise return, or minimise variance by adjusting weights in an optimisation function.

Under the factor view of the world, r = B * f + s where:

r = matrix of returns B = matrix of factor exposures f = matrix of factor returns and s = matrix idiosyncratic returns

Under this scenario, returns would be again

mu = r * w.T

However, to sigma doesn't seem to take into account the fact there is more than one factor at play describing risk. How do you extend mean-variance to account for additional factors?

would it be something like finding a sigma for each factor and its covariance to the return and then combining them?

sigma = np.sqrt(factor1_weight * Covariance(return,factor1) * factor1_weight) * np.sqrt(factor2_weight * Covariance(return,factor2) * factor2_weight) ??

Any help would be appreciated, and perhaps an explanation as well.

Thanks so much!

Extend mean-variance optimisation to fama five factor

I'm new to quant finance, and as I'm not a mathematician, I am using python to try an understand it.

There are a number of blogs on the internet which explain mean variance optimisation, but no-one extends these examples to the fama french factors and optimising it under that model of the world.

This is what I am trying to understand.

Mean Variance Optimisation:

I know that in matrix notation, the following is true for mean-variance:

mu = w * r.T
sigma = np.sqrt(w * C * w.T)

where: 
w = matrix of weights
r = matrix of returns
C = variance covariance matrix of r

You then try to maximise return, or minimise variance by adjusting weights in an optimisation function.

Under the factor view of the world, r = B * f + s where:

r = matrix of returns
B = matrix of factor exposures
f = matrix of factor returns and 
s = matrix idiosyncratic returns

Under this scenario, returns would be again

mu = r * w.T

However, the sigma doesn't seem to take into account the fact there is more than one factor at play describing risk. How do you extend mean-variance to account for additional factors?

Would it be something like finding a sigma for each factor and its covariance to the return and then combining them?

sigma = np.sqrt(factor1_weight * Covariance(return,factor1) * factor1_weight) * np.sqrt(factor2_weight * Covariance(return,factor2) * factor2_weight) ??

Any help would be appreciated, and perhaps an explanation as well.

Thanks so much!

Source Link

extend mean-variance optimisation to fama five factor... help!

I'm new to quant finance, and as I'm not a mathematician, I am using python to try an understand it.

There are a number of blogs on the internet which explain mean variance optimisation, but no-one extends these examples to the fama french factors and optimising it under that model of the world.

This is what I am trying to understand.

Mean Variance Optimisation: I know that in matrix notation, the following is true for mean-variance:

mu = w * r.T sigma = np.sqrt(w * C * w.T)

where: w = matrix of weights r = matrix of returns C = variance covariance matrix of r

You then try to maximise return, or minimise variance by adjusting weights in an optimisation function.

Under the factor view of the world, r = B * f + s where:

r = matrix of returns B = matrix of factor exposures f = matrix of factor returns and s = matrix idiosyncratic returns

Under this scenario, returns would be again

mu = r * w.T

However, to sigma doesn't seem to take into account the fact there is more than one factor at play describing risk. How do you extend mean-variance to account for additional factors?

would it be something like finding a sigma for each factor and its covariance to the return and then combining them?

sigma = np.sqrt(factor1_weight * Covariance(return,factor1) * factor1_weight) * np.sqrt(factor2_weight * Covariance(return,factor2) * factor2_weight) ??

Any help would be appreciated, and perhaps an explanation as well.

Thanks so much!