Constrained regression with constrains on the slopes
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I was the following regeression specification
ln Q = ln A + alpha * ln K + beta * ln L
I want to fins alpha and beta such that alpha + beta < 1 and alpha > 0 and beta > 0.
I am trying to use lsqlin but I don't understand how to write the specification.
5 Kommentare
Torsten
am 26 Jul. 2022
But you want to fit Q against A*K^x(1)*L^x(2).
In the above code, you try to make A*K^x(1)*L^x(2) = 0.
Antworten (1)
Matt J
am 26 Jul. 2022
Bearbeitet: Matt J
am 26 Jul. 2022
AA=log(K(:)./L(:));
bb=log(Q(:)./A(:)./L(:));
alpha=min( max(AA\bb,0) ,1 );
beta=1-alpha;
2 Kommentare
Matt J
am 27 Jul. 2022
Bearbeitet: Matt J
am 27 Jul. 2022
Darn it. Well then, why not with lsqlin as originally proposed,
C=[log(K(:)) log(L(:));
d=log(Q(:)./A(:));
x0=lsqlin(C,d,[1,1],1,[],[],[0 0],[1,1]);
alpha=x0(1);
beta=x0(2);
If desired, you can use x0 to initialize a a nonlinear least squares fit to the original non-logged model,
fun = @(x,KL) A(:).'*KL.^x;
lb = [0, 0];
ub = [1, 1];
x=lsqcurvefit(fun,x0(:)',[K(:),L(:)], Q(:), lb,ub);
alpha=x(1);
beta=x(2);
Siehe auch
Kategorien
Mehr zu Linear Least Squares finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!