Multiple linear regression with constraint

I need to run a multiple linear regression such that all of the coefficients are positive, and their sum = 1 . I have 7 variables, so i need 7 seven coefficients.
Thanks !

 Accepted Answer

Amit
Amit on 8 Feb 2014

6 Comments

Thanks Amit, with lsqlin i am able to set the sum of the coefficients being equal to zero, but i do not know how to make sure that they are all positive numbers.. sorry, if the question sounds dumb, i am new matlab user thank
make sure that all the coefficients are positive, you set the lower bound as 0 and upper bound as inf. something like:
lsqlin(.......,zeros(7,1),Inf*ones(7,1))
Hello Amit, even after setting the lower bound to zero it gives negative coefficients.
How did you set it? How did you use lsqlin?
Note that most likely, some of the coefficients MIGHT go negative by an amount on the order of eps. Look at the numbers. If they are -1.e-13, why do you care? Just set them to ZERO afterwards.
Yes you are right John, the only the only negative number that i have is -2.641592169276901e-17...Sure, why would I care!! Thank you both!!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!