How can I build an trendline through a fixed point?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have scatter data and need to fit it with a curve (line) which passes through one exact and fixed point (0,0).
How can I do this?
Thank's for respond.
Iaroslav.
0 commentaires
Réponses (3)
Star Strider
le 15 Avr 2015
If you do not include a constant (intercept) term in your model, it will force an intercept at (0,0). So if it is a straight line, to fit (x,y) data, this works:
x = randi(10, 10, 1); % Create Data
y = randi(50, 10, 1); % Create DAta
B = x(:)\y(:); % Regression Of Line Through Origin
yfit = x(:)*B; % Calculate Fitted Line
figure(1)
plot(x, y, 'bp') % Plot Data
hold on
plot(x, yfit, '-r') % Plot Fitted Regression Line
hold off
grid
axis([0 max(x) 0 max(y)])
2 commentaires
pfb
le 15 Avr 2015
Modifié(e) : pfb
le 15 Avr 2015
Is that a straight line or a curve? And, in the second case, which curve?
In the first case you're basically expecting that y is proportional to x. So y./x should be roughly constant, and mean(y./x) would be an estimate of the slope, right?
0 commentaires
Iaroslav Gritsayenko
le 15 Avr 2015
2 commentaires
Star Strider
le 15 Avr 2015
MATLAB functions all want (or will insert) a non-zero intercept term in the regressions they calculate. If you want a general case that will always fit a zero intercept, the code in my Answer will provide it.
Voir également
Catégories
En savoir plus sur Linear and Nonlinear Regression dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!