MATLAB Answers

find the std of each parameter after lsqlin

3 views (last 30 days)
xi
xi on 30 Jul 2020
Answered: John D'Errico on 30 Jul 2020
I'm using x = lsqlin(C,d,A,b,Aeq,beq,lb,ub) to Solve a constrained linear least-squares problem.
After that, how do I find the error bars for each parameter x?
  1 Comment
Matt J
Matt J on 30 Jul 2020
What are the sources of error? Do you have noise in C? In d? All the constraints and bounds as well?

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 30 Jul 2020
There are some issues that make this a little problematic. The main issue is if lsqlin finds itself butted up against a boundary, so there are active inequality constraints at the solution point. That includes active bound constraints at that point. If so, that standard deviation as you might produce it is kind of meaningless anyway. As well, if the problem is inequality constrained, the standard linear algebraic methods to estimate a standard deviation are no longer valid. Equality constraints are less problematic, because they can be viewed in terms of a projection of the problem into a lower dimensional space. Your variables will not be independent (as if they were in any case) but standard deviations will still be computable if you have only equality constraints.
Does all of this mean you cannot solve the problem? Not at all, since the stats toolbox is there to make this a relatively easy problem to solve. The idea is to use a tools like the jackknife or bootstrap. In fact, the stats toolbox provides the function bootstrp, which can solve exactly your question regardless of whether there are active inequality constraints at the solution.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by