How to makedisk for a three parameter weibull distribution

6 vues (au cours des 30 derniers jours)
Mustafa Vural
Mustafa Vural le 12 Sep 2020
Modifié(e) : Mustafa Vural le 17 Sep 2020
Everytime I run my code with below lines, it displays "Error using makedist (line 101). Invalid parameter name: t0"
t0 = 0.5;
b = 1:5;
T = 1:5;
dist = makedist('weibull','a',T,'b',b,'c',t0)
[h,p,adstat,cv] = adtest(data,'Distribution',dist)
How can I integrate a three parameter weibull distribution into "makedist"?

Réponse acceptée

Jeff Miller
Jeff Miller le 12 Sep 2020
MATLAB's Weibull distribution only allows 2 parameters, so you must handle the offset separately. Try this:
t0 = 0.5; %
b = 1.5; % you are using vector
T = 1.5; % same here too
dist = makedist('weibull','a',T,'b',b)
dataAdjusted = data - t0;
[h,p,adstat,cv] = adtest(dataAdjusted,'Distribution',dist)
  3 commentaires
VBBV
VBBV le 13 Sep 2020
Modifié(e) : VBBV le 13 Sep 2020
%if true
% code
%end
clear all;
n = 100;
t0 = 0.5;
b = 1:5;
T = 1:5;
for v_T= 1:length(T)
for v_b= 1:length(b)
Use the for loop as shown above or as below
%if true
% code
%end
for v_T = [T]
for v_b = [b]
Mustafa Vural
Mustafa Vural le 13 Sep 2020
Modifié(e) : Mustafa Vural le 17 Sep 2020
So like this? Sry I am very noob in matlab.
clear all;
n = 100;
t0 = 0.5;
b = 1:5;
T = 1:5;
for v_T= 1:length(T)
for v_b= 1:length(b)
data(:,v_b,v_T) = wblrnd(v_b,v_T, [n,1]) + t0;
end
end
for v_T= 1:length(T)
for v_b= 1:length(b)
dist = makedist('weibull','a',v_T,'b',v_b)
dataAdjusted = data - t0;
[h,p,adstat,cv] = adtest(dataAdjusted,'Distribution',dist)
end
end

Connectez-vous pour commenter.

Plus de réponses (1)

VBBV
VBBV le 12 Sep 2020
Modifié(e) : VBBV le 12 Sep 2020
you are using vector of values for 2 parameters and scalar value for other parameter ... try this
%if true
% code
%end
t0 = 0.5; %
b = 1.5; % you are using vector
T = 1.5; % same here too
dist = makedist('weibull','a',T,'b',b,'c',t0)
[h,p,adstat,cv] = adtest(data,'Distribution',dist)
  1 commentaire
VBBV
VBBV le 12 Sep 2020
Modifié(e) : VBBV le 12 Sep 2020
Standard matlab weibull only allows 2 parameter dist as Jeff said But you can use mle to fit a custom distribution Here is the resource below how to do it

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by