How to calculate errors in pearson linear fit ?

aditi · Jul 20, 2023 · 2.1K views
Question
Hello everyone,   I have done straight line fitting by using polyfit command where i gave polynomial = 1 and found the values of m and c of the equation mx + c = y   Now i want to find errors associated with m and c i.e I want finally   m +/- error c +/- error and also the r value   It would be nice if anyone could help me with it.
Expert Answer
Profile picture of Prashant Kumar
Prashant Kumar PhD Expert
Answered Aug 15, 2026
Hi Aditi, 
Here is the solution and code for your question.
 
Question: How can I calculate the errors associated with the slope (m) and y-intercept (c) of a straight line fit using the polyfit command with polynomial degree 1? Additionally, how can I determine the coefficient of determination (r)?
 
Solution:
 
To find the errors associated with the slope (m) and y-intercept (c) in a linear regression model (polynomial = 1), as well as the coefficient of determination (r), you can use the "polyfit" function along with additional calculations.
 
Code:
 
% Sample data points
x = [1, 2, 3, 4, 5];
y = [2, 4, 6, 8, 10];
% Perform linear regression using polyfit
coefficients = polyfit(x, y, 1); % As polynomial = 1
m = coefficients(1); % Slope
c = coefficients(2); % Y-intercept
% Calculate the residuals (errors)
residuals = y - (m*x + c);
% Calculate the standard deviation of the residuals
residuals_std = std(residuals);
% Calculate the standard error of the slope and y-intercept
n = length(x); % Number of data points
x_mean = mean(x);
x_var = sum((x - x_mean).^2);
m_std_error = residuals_std/sqrt(x_var*(n - 1));
c_std_error = residuals_std*sqrt(sum(x.^2)/(n*x_var));
% Calculate the coefficient of determination (r)
y_mean = mean(y);
ss_total = sum((y - y_mean).^2);
ss_residual = sum(residuals.^2);
r_squared = 1 - (ss_residual/ss_total);
r = sqrt(r_squared);
% Display the results
disp(["Slope (m): ", num2str(m)]);
 "Slope (m): "    "2"
disp(["Slope Error: ", num2str(m_std_error)]);
 "Slope Error: "    "9.9301e-17"
disp(["Y-Intercept (c): ", num2str(c)]);
   "Y-Intercept (c): "    "5.1884e-17"
disp(["Y-Intercept Error: ", num2str(c_std_error)]);
"Y-Intercept Error: "    "6.5869e-16"
disp(["Coefficient of Determination (r): ", num2str(r)]);
  "Coefficient of Determination (r): "    "1"
  • In this code, we first perform linear regression using polyfit to obtain the slope (m) and y-intercept (c).
  • Then, we calculate the residuals (errors) by subtracting the predicted values from the actual values.
  • The standard deviation of the residuals is calculated to estimate the overall error.
  • The standard error of the slope and y-intercept are then calculated using the residuals' standard deviation, the number of data points, and the variance of the x-values.
  • Finally, the coefficient of determination (r) is calculated using the sum of squares of residuals and the total sum of squares.
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!