Linear regression with formulas

3 views (last 30 days)
Olaf
Olaf on 23 Sep 2019
Commented: Rena Berman on 28 Oct 2019
Hey, I need to perform a linear regression with the formulas given
x and y with a line above are the average. And this gives the line:
I then need to make a function that takes x and y as arguments and returns the values for the coefficients â and ^b.
Here is my current code:
f = importdata("HadCRUT.4.6.0.0.monthly_ns_avg.txt");
data = f.data(:,1);
dates = f.textdata;
x = datenum(dates, "yyyy/mm");
y = data;
I then know that the function will look like this. After that I dont know how I should proceed, I've tried with a for loop without any success.
function [coeffA,coeffB] = lin_reg(x,y)
end

Accepted Answer

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 24 Sep 2019
Hi,
Here is the solution:
function [a, b] = linear_regression(x,y)
a = sum((x-mean(x)).*(y-mean(y)))./sum((x-mean(x)).^2);
b = mean(y)-a*mean(x);
end
Good luck
  1 Comment
Olaf
Olaf on 24 Sep 2019
Edited: Olaf on 24 Sep 2019
Thanks, do you know how I then can plot y = ax + b inside another plot? Like this:
plox(x,y)
hold on
and then how can I plot the linear regression inside this?

Sign in to comment.

More Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 24 Sep 2019
Hi,
Glad that I was of some help. Pl., click accept of my proposed answer. To plot your lin. reg model, use the following simple code:
x = 0:.1:13; % just an example
Y_model = a*x+b; plot(x, y, 'bo', x, Y_model, 'r-'), legend('Given Data Set', 'Linear regression fit model')
Good luck

Community Treasure Hunt

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

Start Hunting!