How to calculate standard errors for estimated parameters for a 3-parameter Weibull Distribution?

Illustration
Prachi Singh - 2022-04-19T09:57:35+00:00
Question: How to calculate standard errors for estimated parameters for a 3-parameter Weibull Distribution?

Hi,   The example discussed below provides a code for estimating parameters of a three-parameter weibull distribution. I am interested in calculating the standard errors of these estimated parameters, can anyone please tell me how to proceed?   Link to matlab example:  

Expert Answer

Profile picture of John Michell John Michell answered . 2025-11-20

One method is to use Fisher information; another method is to use bootstrapping. Google will explain these if you are not already familiar with them.
 
Here is some code implementing each method:
 
 
%%Demo showing 2 methods of computing standard errors of 3-parameter Weibull distribution.
% Both methods require Cupid available at https://github.com/milleratotago/Cupid
% Method 2 also requires RawRT available at https://github.com/milleratotago/RawRT

% Here are some sample data to be used for this demo.
myDist = Weibull(550,1.9,300);  % Arbitrary parameter values to generate some data.
myDist.PlotDens;
data = myDist.Random(300,1);  % Replace this with your own data.
figure; histogram(data);

%%Method 1: Estimate SEs using Fisher Information
myDist = Weibull(500,1.8,200);  % Use your best guesses for the initial parameter values.
myDist.EstML(data);   % Estimate the parameter values.
estparms = myDist.ParmValues;
[SEs, Cov] = myDist.MLSE(data,'rrr');  % This step computes the standard errors.

%%Method 2: Estimate the SEs using bootstrapping.
% This option requires Cupid, as above, and also RawRT.
datatbl = table(data);  % Data must be in a MATLAB table
nBootSamples = 100;  % Probably you would want a lot more for any real analysis.
sEval = 'CondFitDist(OneSample,''data'',{},Weibull(500,1.8,200))';
ManyEstimates = CondBootstrap(datatbl,{},sEval,nBootSamples);
SEparm1 = std(ManyEstimates.scale);
SEparm2 = std(ManyEstimates.power);
SEparm3 = std(ManyEstimates.origin);

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!