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 !

 Akzeptierte Antwort

Amit
Amit am 8 Feb. 2014

0 Stimmen

6 Kommentare

abdoulaye thiam
abdoulaye thiam am 8 Feb. 2014
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))
abdoulaye thiam
abdoulaye thiam am 8 Feb. 2014
Hello Amit, even after setting the lower bound to zero it gives negative coefficients.
Amit
Amit am 8 Feb. 2014
How did you set it? How did you use lsqlin?
John D'Errico
John D'Errico am 8 Feb. 2014
Bearbeitet: John D'Errico am 8 Feb. 2014
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.
abdoulaye thiam
abdoulaye thiam am 8 Feb. 2014
Bearbeitet: abdoulaye thiam am 8 Feb. 2014
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!!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by