What is the regress function doing?

I don't understand what the regress function is returning. My understanding that it should be the gradient of the line of best fit. For example:
x = [1:5]'
y = [2 4 6 8 10]'
b = regress(y, x)
returns b = 2 as expected, whereas:
x = [1:5]'
y = [5 4 3 2 1]'
b = regress(y, x)
returns b = 0.6364 as opposed to -1.
What is the regress function calculating in this case? Where does this value for b come from?

 採用された回答

Star Strider
Star Strider 2015 年 12 月 24 日

2 投票

The reason the first data set returned the slope you expected is that the intercept was zero, and your design forced a zero intercept. The reason the second data set is not returning -1 for the slope is because you are forcing it to have an intercept at zero.
If you include an intercept term, you get the expected -1 slope with a y-intercept of +6:
x = [1:5]'
y = [5 4 3 2 1]'
b = regress(y, [x ones(size(x))])
b =
-1
6

その他の回答 (1 件)

Matt J
Matt J 2015 年 12 月 24 日
編集済み: Matt J 2015 年 12 月 24 日

1 投票

It is returning x\y
>> x = [1:5]'; y = [5 4 3 2 1]'; b=x\y
b =
0.6364
In other words, the best fit to the equation y=b*x. It is just a coincidence that, in the first case, this happens to also be the slope of the line of best fit.

カテゴリ

ヘルプ センター および File ExchangeLinear and Nonlinear Regression についてさらに検索

質問済み:

2015 年 12 月 24 日

回答済み:

2015 年 12 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by