Fit parameter to Weibull distribution
Show older comments
Hi, i wounder why my customized 3-parametric Weibull distribution function can't fit this specific data but the 2-parametric Weibull distribution function does.
%% INPUT DATA
A = [5.05002673467000 4.03148539861043 5.39815092086792 5.80624039967855 6.40216302871704 5.76023737589518 4.58155600229899 5.00490283966065 6.05405394236247 3.56419595082601 4.50625197092692 6.45612986882528 5.02723805109660 5.93072589238485 5.20658095677694 6.97059233983358 6.17937358220418 4.19038120905558 5.45702393849691 4.59787972768148 2.83733654022217 5.06135972340902 4.45322751998902 3.77954316139221 6.04727951685588 5.98482131958008 4.78870089848836 5.37800931930542 5.78453779220581];
A = A';
%% WEIBULL SETUP
custompdf = @(x,a,b,c) (x>c).*(b/a).*(((x-c)/a).^(b-1)).*exp(-((x-c)/a).^b);
customcdf = @(x,a,b,c) (x>c).*1-exp(-((x-c)/a).^b);
opt = statset('MaxIter',1e5,'MaxFunEvals',1e5,'FunValCheck','off');
params = mle(A,'pdf',custompdf,'start',[mean(A) std(A) min(A)],'Options',opt,'LowerBound',[0 0 -Inf],'UpperBound',[Inf Inf min(A)]);
a = params(1,1);
b = params(1,2);
c = params(1,3);
x = [c+eps(c):0.1:max(A)*4.5];
%% QUANTILES
p = wblfit(A);
[nlogl,pcov] = wbllike(p,A);
[quantile_Wbl2,q95lo,q95up] = wblinv(0.9991666,p(1),p(2),pcov);
Q = quantile(customcdf(x, a, b, c),0.9991666);
quantile_Wbl3 = fsolve(@(x) customcdf(x, a, b, c) - 0.9991666, quantile_Wbl2);
%% FIGURES
plot(x,customcdf(x, a, b, c),'LineWidth',2);
hold on
plot(x,wblcdf(x,p(1),p(2)));
hold on
cdfplot(A);
legend('WBL-3-Parameter','WBL-2-Parameter','daten')
hold off
%% Anpassungstest
% kolmogorov-smirnov Anpassungstest
[h_wbl3,p_wbl3] = kstest(A,[A customcdf(A,a,b,c)],0.05,0);
[h_wbl2,p_wbl2] = kstest(A,[A wblcdf(A,p(1),p(2))],0.05,0);
Accepted Answer
More Answers (1)
Sandeep
on 23 May 2023
0 votes
Hi Kalle,
There can be more than one reason as to why a customized 3-parametric Weibull distribution function may not adequately fit a specific data set while the standard 2-parametric Weibull distribution function does. Firstly, including more parameters in the model can lead to overfitting, which negatively affects the generalization performance of the model. The customized 3-parameter Weibull distribution function may overfit the data, leading to poor predictions in new instances. The customized 3-parameter Weibull distribution function may require more data points to estimate the parameters accurately, leading to poor parameter estimation and sub-optimal results.
In summary, the customized 3-parameter Weibull distribution function may not fit your specific data because it is too complex or you do not have enough data to estimate the parameters accurately, overfitting to random errors, or sub-optimal parameter estimation.
Categories
Find more on Weibull Distribution in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!