Adding log-linear trend to scatterplot
12 次查看(过去 30 天)
显示 更早的评论
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 个评论
Star Strider
2016-10-1
Please describe what you mean by ‘a log-linear trend’.
Your code sets the y-axis to a logarithmic scale.
采纳的回答
dpb
2016-10-1
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 个评论
Star Strider
2016-10-1
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
2016-10-1
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!