How to set slope in linear regression

6 views (last 30 days)
I want to run a linear regression where I set the slope of the regression line to 1 and the intercept to 0. In other words, I want to see how well a set of points fits along the line y = x and I am not concerned about finding the line of best fit. I know how to use the fitlm to remove the intercept term, but I don't yet know how to set the slope. This is what I have so far:
vec1 = (0:10)+rand(1,11);
vec2 = (0:10)+rand(1,11);
scatter(vec1, vec2)
hold on
plot(0:11, 0:11)
mdl = fitlm(vec1, vec2, 'Intercept', false);
.Are there any other arguments that I can add to this function to set the slope, or is it necessary to calculate terms like R^2 and the p-value manually?
  1 Comment
dpb
dpb on 11 Jan 2020
If the intercept is zero and the slope is one; you've already determined the regression expression uniquely--there's nothing left to solve for.
I've at least temporarily lost access to ML license so can't test; but I don't think any of the regression toolsets are coded such as to just allow for the statistics to be computed from a given regression for a data set.
Not such a bad idea to ask for a tool enhancement to do so...

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 11 Jan 2020
Determing the statistic you want to use to determine how well the regression explains the points is not difficult. It is relatively striaghtforward to calculate the Coefficient of determination, .
vec1 = (0:10)+rand(1,11);
vec2 = (0:10)+rand(1,11);
scatter(vec1, vec2)
hold on
plot(0:10, 0:10)
hold off
SStot = sum((vec2-mean(vec2)).^2);
SSres = sum((vec2-vec1).^2);
Rsq = 1-SSres/SStot;
pval = ttest(resd);
text(min(xlim)+0.2*diff(xlim), min(ylim)+0.7*diff(ylim), sprintf('R^2 = %.3f\n\\itp\\rm = %.3f', Rsq,pval))
A one-sample t-test on the residuials is probably adequate to provide a p-value.
  1 Comment
dpb
dpb on 12 Jan 2020
It would be kinda' convenient to have a prepared function that output a clean table, though...the presentation of results in the statistics area is still pretty far from ideal altho has certainly gotten better.

Sign in to comment.

More Answers (0)

Categories

Find more on Linear and Nonlinear Regression in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!