Polyfit - Forcing a non-zero intercept

40 Ansichten (letzte 30 Tage)
F P
F P am 5 Nov. 2012
Hi,
Is there any way to specify the y-intercept value of polyfit? I have had a look around, and when this question is asked most people are trying to fit it to a 0 y-intercept. In my case, I need to fit least-square lines to several different groups of points whose y-intercepts are known and are non-zero.
Any help would be great,
FP

Akzeptierte Antwort

Star Strider
Star Strider am 5 Nov. 2012
Bearbeitet: Star Strider am 5 Nov. 2012
I doubt that's possible with polyfit. If you are only using a first order regression model and you have access to one of the nonlinear curve fitting routines ( nlinfit in the Statistics Toolbox or lsqcurvefit in the Optimization Toolbox), the easiest way to do this is simply to use them with an objective function similar to:
Intercept = 5;
RegModel = @(B,X) B(1).*X + Intercept;
then:
beta0 = rand;
[Beta,R,J,CovB,MSE] = nlinfit(X, Y, RegModel, beta0);
You can use whatever sort of regression model you want, of course. In this one I used a simple single-parameter model.
You can specify whatever you want in a model function, and can fit as many parameters as you want (that are mathematically appropriate).

Weitere Antworten (1)

Matt J
Matt J am 5 Nov. 2012
Bearbeitet: Matt J am 5 Nov. 2012
So you just have a slope to estimate? It should be just
slope=xData\(yData-yIntercept);

Kategorien

Mehr zu Linear and Nonlinear Regression finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by