function diagnostico = weibgf(v)
%obtenemos los parametros y dimensiones
param=weibmle(v);
theta=param(1);
beta=param(2);
n=length(v);
% A) el Anderson Darling
v2=sort(v);
Fv=1-exp(-(v2./theta).^beta);
Fvinv=flipud(Fv);
ind=[1:1:n]; ind=ind';
S=(2.*ind-1).*(log(Fv)+log(1-Fvinv));
a2=-sum(S)/n-n;
% B) la Ji2
%los intervalos, queremos ~K datos esperados en cada intervalo
ninterv=10;
K=round(n/10);
p=1/ninterv;
probs=[p:p:1-p];
probs=probs';
m=length(probs);
lims=theta*(log(1./(1-probs))).^(1/beta);
%la tabla
% liminf | limsup | esperado | observado | ji^2
tabla=zeros(m+1,5);
tabla(:,1)=[0;lims];
tabla(:,2)=[lims;1000];
tabla(:,3)=K;
for i=1:m+1
tabla(i,4)=length(v((v>tabla(i,1))&(v<=tabla(i,2))));
end
tabla(:,5)=((tabla(:,4)-tabla(:,3)).^2)./tabla(:,3);
%calculamos las ji^2
ji2=sum(tabla(:,5));
pvalor=1-chi2cdf(ji2,m-3);
% C) diagnostico grafico
figure
subplot(2,2,1)
hist(v,round(n/K))
title('Histograma')
subplot(2,2,2)
r=0:.1:20;
plot(r,(beta/theta^beta).*(r.^(beta-1)).*exp(-(r./theta).^beta))
title(['f escala = ',num2str(theta),', f forma = ',num2str(beta),' ,AD = ',num2str(a2)])
subplot(2,2,3)
weibplot(v)
subplot(2,2,4)
stem(tabla(:,1),tabla(:,5));
title(['Residuales. Ji^2 = ',num2str(ji2),'. P-valor obtenido = ',num2str(pvalor)])
% D) lo que regresa
diagnostico=[ji2,pvalor,a2];