How to specify a specific constant for a multiple linear regression?
1 次查看(过去 30 天)
显示 更早的评论
I would like to know if it is possible to specify a certain constant to a multiple linear regression abd how?
2 个评论
采纳的回答
Image Analyst
2017-10-14
See John's answer. https://www.mathworks.com/matlabcentral/answers/274980-linear-fit-to-data-with-intercept-at-origin#answer_214651
You can fit y-43 instead of y, then do the fit and add back in the 43 to get yFitted .
4 个评论
Jan
2017-10-15
@Khaled Ahmat: Please use flags only to inform editors and admins about contributions, which might conflict with the terms of use e.g. by rudeness. Thanks.
更多回答(4 个)
Khaled Ahmat
2017-10-15
3 个评论
Image Analyst
2017-10-15
But we already solved that in the first answer. If you don't know how to do it, then just attach vectors x1, x2, x3, and y in a .mat file.
Khaled Ahmat
2017-10-15
2 个评论
Image Analyst
2017-10-16
Not familiar with regress(). Why didn't you use the method of John D'Errico?
Image Analyst
2017-10-17
I'm not sure I've got the columns correct for x1, x2, x3, and y, but this is essentially how you'd do it (again, thanks to John D'Errico):
% Read in data file.
data = importdata('Data_case1.txt')
% Extract columns into separate variables.
% Make sure the column numbers are the correct ones!!!!
x1 = data(:, 1);
x2 = data(:, 2);
x3 = data(:, 3);
y = data(:, 4);
% Construct x matrix
x = [x1, x2, x3];
% Construct y
y = y - 30;
% Get the cofficients:
coefficients = x \ y; % Estimate Parameter: x*coefficients = y
% Get fitted values for y. Be sure to add back in the 30 we subtracted!
y_estimated = x*coefficients + 30;
% Print them out
fprintf(' x1 x2 x3 y y_estimated\n');
for row = 1 : length(x1)
fprintf('%8.4f, %8.4f, %8.4f, %8.4f, %8.4f\n', ...
x1(row), x2(row), x3(row), y(row), y_estimated(row));
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!