%PROGRAMA PARA ANALISIS ESTADISTICO Y MEDIDAS DE TENDENCIA CENTRAL DE DATOS
clear;clc;
%Se debe ingresar la matriz I correspondiente a los datos a analizar
disp('**************************INICIO**************************');fprintf('\n');
disp('Iniciando programa para análisis estadístico');
%Lectura de los datos de excel
Excel=xlsread('fluencia_a36.xlsx');
%Extracción de valores de fluencia
I=Excel(:,2);
%Extrayendo lo necesario de la matriz
[f,c]=size(I);
%Calculo del número de datos
N=f*c;
xmin=min(min(I));xmax=max(max(I));
%Cálculo del rango inicial R
R1=abs(xmax-xmin);
%Cálculo del número de intervalos k por ecuación de Sturges
k1=1+3.33*log10(N);
k=ceil(k1);
%Cálculo de la amplitud de intervalos C
C1=R1/k;
C=ceil(C1);
%Ajustando nuevo rango
R=k*C;
%Cálculo del exceso
exc=abs(R-R1);
if rem(exc,2)==0
Xmin=xmin-exc/2;
Xmax=xmax+exc/2;
else
Xmin=xmin-floor(exc/2);
Xmax=xmax+ceil(exc/2);
end
%Redefinición de los intervalos:
itv=zeros(k,2);
itv(1,1)=Xmin;
itv(k,2)=Xmax;
for ix=2:k
itv(ix,1)=itv(ix-1,1)+C;
itv(ix-1,2)=itv(ix,1);
end
%Marcas de clase:
mc=zeros(k,1);
for iy=1:k
mc(iy,1)=(itv(iy,1)+itv(iy,2))/2;
end
%Mostrar valores en tabla de frecuencias de los datos
frec1=[];
for iz=1:f
frec1=[frec1,I(iz,:)];
end
%Eliminar ceros de tabulate
tf1=tabulate(frec1);tf2=tf1(tf1(:,2)~=0);Tf=tf1(tf2,:);
%Frecuencias acumuladas
[ff,cf]=size(Tf);
facum=zeros(ff,1);
facum(1,1)=Tf(1,3);
for iw=2:ff
facum(iw,1)=facum(iw-1,1)+Tf(iw,3);
end
%Resultados finales
disp('*********************RESULTADOS DEL ANÁLISIS***********************');fprintf('\n');
fprintf('De %d datos que oscilan entre %5.4f y %5.4f\n',N,xmin,xmax);
fprintf('se obtuvieron %d intervalos con una amplitud de %d und\n',k,C);fprintf('\n');
disp('-----------------------TABLA DE INTERVALOS-----------------------');
tabla1=table(itv,mc,'VariableNames',{'INTERVALOS' 'MARCA_DE_CLASE'});
disp(tabla1);fprintf('\n');
disp('-----------------------TABLA DE FRECUENCIAS----------------------');
tabla2=table(Tf(:,1),Tf(:,2),Tf(:,3),facum,...
'VariableNames',{'VALOR' 'FREC_ABS' 'FREC_RELAT' 'FREC_ACUM'});fprintf('\n');
disp(tabla2);fprintf('\n');
%PROMEDIOS
medias=[mean(frec1);geomean(frec1);harmmean(frec1)];
nombremd=['Aritmética';'Geométrica';' Armónica '];
disp('--------------------MEDIDAS DE TENDENCIA CENTRAL--------------------')
tabla3=table(nombremd,medias,'VariableNames',{'MEDIAS' 'VALOR'});
disp(tabla3);fprintf('\n');
%MODA Y MEDIANA
Moda=mode(frec1);
Mediana=median(frec1);
Desviacion=std(frec1,1);
Varianza=var(frec1,1);
disp('---------------------OTRAS MEDIDAS ESTADÍSTICAS--------------------')
tabla4=table(Moda,Mediana,Desviacion,Varianza,...
'VariableNames',{'MODA' 'MEDIANA' 'DESVIAC_STD' 'VARIANZA'});
disp(tabla4);fprintf('\n');
%GRÁFICOS
disp('-----------------------REPRESENTACIÓN GRÁFICA----------------------');
disp('A continuación se monstrarán diversos gráficos para la visualización de los datos');
fprintf('\n');
%Vectores de frencuencias absolutas y relativas
vfa=Tf(:,2)';
vfr=Tf(:,3)';
%Diagrama de dispersión de datos
figure(1);plot(I,'b*');hold on;plot(I,'c--');title('Valores de esfuerzo de fluencia en probetas de acero A36');
xlabel('Número de muestra');ylabel('Esfuerzo de fluencia de muestra');hold on;marit=mean(frec1);
pro1=[0 100];pro2=[marit marit];plot(pro1,pro2,'r');grid on;text(45,marit+0.5,'Media aritmética');
%Diagrama de Pareto
figure(2);
subplot(1,2,1);pareto(vfa);title('Diagrama de Pareto de Frecuencias absolutas');grid on;
subplot(1,2,2);pareto(vfr);title('Diagrama de Pareto de Frecuencias relativas');grid on;
%Diagrama de Barras
figure(3);
subplot(1,2,1);bar(vfa);title('Diagrama de Barras de Frecuencias');grid on;
subplot(1,2,2);bar3(vfa);title('Diagrama de Barras 3D de Frecuencias');grid on;
%Diagrama Circular
figure(4);
subplot(1,2,1);pie(vfa);title('Diagrama Circular de Frecuencias');grid on;
subplot(1,2,2);pie3(vfa);title('Diagrama Circular 3D de Frecuencias');grid on;
%EXPORTAR A OTRO ARCHIVO
disp('-----------------------EXPORTAR----------------------');fprintf('\n');
disp('La tabla de frecuencia de los datos se enviarán a un archivo excel');
%Creando el archivo
tablaadic=[Tf,facum];
xlswrite('tabla_de_frecuencias_fluencia_a36',tablaadic,'Hoja1','B2');fprintf('\n');
disp('**************************FIN DEL PROGRAMA**************************');fprintf('\n');