作者celestialgod (天)
看板MATLAB
标题Re: [讨论] 如何加入限制式进行回归
时间Fri Mar 10 01:18:36 2017
※ 引述《bear32147 (dogbear)》之铭言:
: 现在想要将 限制某个回归系数>0
: 例如 y=k+ax1+bx2+cx3
: 想加上 c>0 的限制进去
: 这样要用到什麽函数 或者是怎麽写
: 谢谢
% data simulation
numRows = 100;
numCols = 3;
X = [ones(numRows, 1), randn(numRows, numCols)];
beta = [-5; 3; 7; -4];
y = X * beta + randn(numRows, 1);
% solve coef
b0 = X \ y; % initial values
obj = @(b) sum((y - X * b).^2); % objective function
beta_sol = fmincon(obj, b0, [0, 0, 0, -1], 0); % solve
all(abs(X(:, 1:3) \ y - beta_sol(1:3)) < 1e-6) # 1
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.235.41.96
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1489079920.A.F53.html
※ 编辑: celestialgod (36.235.41.96), 03/10/2017 01:21:28
1F:推 bear32147: 谢谢 我测试完没问题会再上来回报 03/13 17:19