Adding log-linear trend to scatterplot
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi. I am trying to add a log-linear trend to a scatterplot with log y axis, but I cant seem to figure out how to do it. It is a very simple plot like this:
>> scatter(data1,data2)
>> set(gca, 'yScale', 'log')
Any suggestions on how to add a log-linear trend? Thanks in advan[c]e.
IR
2 Kommentare
Star Strider
am 1 Okt. 2016
Please describe what you mean by ‘a log-linear trend’.
Your code sets the y-axis to a logarithmic scale.
Akzeptierte Antwort
dpb
am 1 Okt. 2016
Fit the log(y), compute the fitted result and add...
b=polyfit(data1,log(data2),1); % ln y = mx + b
yhat=exp(polyval(data1)); % compute fitted result
hold all % prepare to add the fittted line
hLyhat=plot(data1,yhat); % add to the plot; save handle to make fixups as wanted
4 Kommentare
Star Strider
am 1 Okt. 2016
Probably because doing a log transformation transforms the additive errors into multiplicative errors, violating the assumptions of least-squares regression (normally-distributed residuals). It’s mathematically appropriate (and correct) to do a nonlinear regression of an exponential function, that will give you accurate parameter estimates, rather than doing a log transformation and getting the wrong parameter estimates.
dpb
am 1 Okt. 2016
Often in my experience if the data are exponential so are the errors. The assumption of normality only affects conclusions drawn from any statistics derived, not the method of fitting itself.
Should probably noted that in answer; the log transform minimizes the residuals in the log space whereas the exponential minimizes the residual of the original data values. Which resulting fit is better is dependent upon the application; I've seen reasons to choose both cases in practice.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear 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!