MATLAB Answers

How to obtain the standard error for each of the fitted parameters

31 views (last 30 days)
Boy
Boy on 12 Feb 2021
Commented: Boy on 13 Feb 2021
I am using the curvit toolbox of Matlab and I was wondering how can I get the standard error for each of the fitted parameters:a, b, c, and z. Let's say the x and y data points are:
x = [10, 20, 30, 40]
y = [0.1, 0.02, 0.01, 0.001]
you can visuzlize the data points by the code below
plot(x,y,'*')
The x, y data should fit to function below
function [fitresult, gof] = createFit(x, y)
[xData, yData] = prepareCurveData( x, y );
% Set up fittype and options.
ft = fittype( 'a*exp(b/(x-c)^z)', 'independent', 'x', 'dependent', 'y' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.Lower = [0 0 0 0];
opts.StartPoint = [0.001 0.952083907850712 0.7812 2];
opts.Upper = [1 Inf Inf 3];
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );
% Plot fit with data.
figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, xData, yData );
legend( h, 'y vs. x', 'untitled fit 1', 'Location', 'NorthEast', 'Interpreter', 'none' );
% Label axes
xlabel( 'x', 'Interpreter', 'none' );
ylabel( 'y', 'Interpreter', 'none' );
grid on
end

Answers (2)

Matt J
Matt J on 12 Feb 2021
Edited: Matt J on 12 Feb 2021
If you're prepared to assume the parameter estimates have Gaussian errors, perhaps you can find the 95% confidence interval width using confint and divide that result by 3.92.
  3 Comments

Sign in to comment.


Jeff Miller
Jeff Miller on 13 Feb 2021
The notion of a standard error assumes some kind of random sampling. For example, the standard error of your 'b' parameter reflects the variation in b estimates that would be found across from many random samples like the one you have. It isn't really clear from your dataset what is varying randomly, or by how much it varies. You would need that kind of info to get standard error estimates.
  3 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!