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.
Related Questions
Expert Answer
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