How to calculate errors in pearson linear fit ?

Illustration
aditi - 2023-07-20T14:10:25+00:00
Question: How to calculate errors in pearson linear fit ?

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 answered . 2025-11-20

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.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!