Estimator standard errors using fmincon (portfolio optimization context)

18 visualizaciones (últimos 30 días)
I'm trying to get standard errors of the estimators in my optimization. I use the fmincon function with the active-set algorithm and dfp updating scheme. I am working on a portfolio optimization problem and what I would like to do is determine the statistical significance of the estimators in determining model performance (so which variables actually matter in determining model outperformance relative to the benchmark).
I have already ran a CAPM regression using Newey-West robust standard errors, however this just gives you a value for market beta and an alpha. I did this by taking my model returns as the dependent variable and taking the a vector of ones and the market returns as the independent variables.
Would it be correct to run a regression incorporating the other variables I believe to be useful (again with model returns as dependent variable), or do I need to do something else? I am wondering about this, since when I search for standard errors of the estimators on Google/the Matlab website, I just find a lot about calculating the Hessian.
Thanks in advance.
Martin Pott

Respuesta aceptada

Roger Wohlwend
Roger Wohlwend el 5 de Sept. de 2014
The key to the standard errors is the Hessian matrix. The variance-covariance-matrix of the coefficients is the inverse of the Hessian matrix. So the standard errors are the square root of the values on the diagonal of the inverse Hessian matrix.
err = sqrt(diag(inv(Hessian)))
The Hessian matrix is the 7th output variable of the fmincon function.
  2 comentarios
Matt J
Matt J el 5 de Sept. de 2014
Editada: Matt J el 5 de Sept. de 2014
The Hessian output of fmincon is inaccurate, see
It is also unclear whether an accurate Hessian leads to meaningful statistical error estimates in constrained problems. According to Alan Weiss' remarks here, however, fminunc does generate accurate Hessians.
Joshua Scott
Joshua Scott el 9 de Nov. de 2022
Editada: Joshua Scott el 9 de Nov. de 2022
Hi Roger,
I realize your comment was a long time ago, but I am hoping you can help.
I am similarly trying to use the variance and/or standard error that resides in the hessian matrix. I want to put the results of "err" into a vector/matrix I can call on later. However, when I try versions of this, "err" isn't recognized.
Do you happen to know why?

Iniciar sesión para comentar.

Más respuestas (3)

Martin Pott
Martin Pott el 6 de Sept. de 2014
Dear Roger and Matt,
Thank you very much for your response. If I understand correctly, I need to run the estimation again, but using the fminunc function (just for the calculation of the right standard errors). Then, if my estimation is not at one of the bounds of the constraint, I can use the dfs/bfgs Hessian that is calculated in the unconstrained optimization, to derive the standard errors in the way Roger wrote above.
Do you have any idea how to do this in the case that a value is at the bounds of the constraints? I have set an upper and lower bound vector with values of -10 and 10, for which some coefficients are at the bounds when estimated.
Thanks again.
Martin

Matt J
Matt J el 6 de Sept. de 2014
Editada: Matt J el 6 de Sept. de 2014
I have set an upper and lower bound vector with values of -10 and 10, for which some coefficients are at the bounds when estimated.
I don't know of any extension of the Cramer-Rao bound to constrained problems. One option might be to rewrite the problem as an unconstrained one. E.g., if you have a parameter x that varies between bounds -10 and 10, rewrite that particular parameter using the change of variables.
x=10*sin(y)
Finding the inv(Hessian) of this transformed objective will give you standard errors on the new parameter y.
Note: since you've already solved the problem in the space of x, you need merely transform the objective and calculate the Hessian at that solution. No need to redo the optimization.
  1 comentario
Matt J
Matt J el 9 de Sept. de 2014
Martin Pott Commented:
Dear Matt,
I am currently working on some improvements in the optimization, so I'm not able to try it out at the moment.
I will try your method as soon as possible. Thank you for your response.
Martin

Iniciar sesión para comentar.


Martin Pott
Martin Pott el 15 de Sept. de 2014
Thanks everyone for helping me with my problem. After rerunning the optimization it turned out that my estimators were all well between the boundaries, meaning (if I understand correctly) that I can use the DFP approximated Hessian for finding (reasonably) correct standard errors. Please correct me if I'm wrong.
Thank you again.
Martin
  3 comentarios
atreyu
atreyu el 30 de Jun. de 2016
Editada: atreyu el 30 de Jun. de 2016
Was this true at the time? The documentation now says that it is in fact the Hessian at the solution.

Iniciar sesión para comentar.

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by