Re: [討論] 如何加入限制式進行回歸
※ 引述《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://www.ptt.cc/bbs/MATLAB/M.1489079920.A.F53.html
※ 編輯: celestialgod (36.235.41.96), 03/10/2017 01:21:28
推
03/13 17:19, , 1F
03/13 17:19, 1F
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章