miércoles, 13 de agosto de 2014

ejemplos sobre retirar datos atípicos en distribuciones

Sobre lo que platicamos en el laboratorio sobre retirar ciertos datos de un conjunto de medidas y la conservación del promedio;
prepare esta rutina en Matlab. Espero que la puedan ejecutar para completar lo que hemos comentado. La figura que ilustra esta entrada es uno de los resultados: con la distribución no-simétrica. Información más avanzada la pueden encontrar en mi blog sobre programación en Matlab.



%% Rutina para eliminar datos atípicos usando de criterio la desviación
%% estándar

clc, clear, close all % comandos para limpiar memoria y pantalla

%% Diferentes distribuciones,  retirando el símbolo '%' se activan
% x = 1 + 2.*randn(1,1000); % promedio de 1 y desviación estándar de 2
% x = [ones(1,10), 1:10, -10:0]; % otra distribución simétrica
x = [5*ones(1,10), 1:10, -10:0]; % una distribución no-simetrica

error = std(x)/mean(x); % cálculo del error relativo de la distribución original

x_nuevo = x(x > mean(x) - std(x) & x < mean(x) + std(x)); % eliminando datos
error_nuevo = std(x_nuevo)/mean(x_nuevo); % recalculando el error relativo
distancia= abs(mean(x_nuevo)-mean(x)); % distancia entre los promedios

%% Graficación
hold on
histfit(x) % distribución original
h = get(gca,'Children');
set(h(2),'FaceColor',[.8 .8 1])
histfit(x_nuevo) % distribución nueva
hold off

disp('error ='); disp(error)
disp('error nuevo ='); disp(error_nuevo)
disp('distancia ='); disp(distancia)

% fin de la rutina

No hay comentarios:

Publicar un comentario