Curve fitting with variance

Hi, I am just curious as to what's the proper way to fit a curve to data and also take into account the variance of the data. Consider this example here https://au.mathworks.com/help/stats/examples/curve-fitting-and-distribution-fitting.html?prodcode=ML&requestedDomain=www.mathworks.com, where they measure concentration at different times. They plot this as a time vs concentration scatter plot and can fit a curve using nlinfit.
I want to know what if I take multiple concentrations measurements for each time. Can I still use nlinfit for this? How can I preserve the variance of concentration in my curve?

 采纳的回答

John D'Errico
John D'Errico 2016-10-4
编辑:John D'Errico 2016-10-4
It is just a weighted nonlinear least squares then. If nlinfit accepts weights (the standard deviation for each data point would be the appropriate weight) then it is simple. A quick check of the help reveals this:
[BETA,R,J,COVB,MSE] = nlinfit(X,Y,MODELFUN,BETA0,OPTIONS,...,'Weights',W)
nlinfit can accept an optional parameter name/value pair that specifies
the observation weights:
'Weights' A vector of real positive weights the same size as Y,
each element of which specifies an observation weight.
Reducing the weight of an observation reduces the
influence of that observation on the fitted model.
This can also be specified as a function handle that
accepts a vector of predicted response values and
returns a vector of real positive weights as output.
Default is no weights.
Always a good idea to read the help.

4 个评论

I always use inverse-variance weighting, so the weight vector would be 1/variance.
Sloppy of me. Yes, large uncertainty in a point should yield small weights.
So how do you define weight using standard deviation of data? 1/standard deviation?

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by