What is the regress function doing?

7 visualizaciones (últimos 30 días)
John
John el 24 de Dic. de 2015
Respondida: Star Strider el 24 de Dic. de 2015
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?

Respuesta aceptada

Star Strider
Star Strider el 24 de Dic. de 2015
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

Más respuestas (1)

Matt J
Matt J el 24 de Dic. de 2015
Editada: Matt J el 24 de Dic. de 2015
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.

Categorías

Más información sobre Linear and Nonlinear Regression en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by