%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PRÁCTICA 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Ejercicio 1: Caso práctico %-------------------------------------------------------------------------- %a) Datos de partida: randn('seed',0); A = round(20 + randn(1,500)*5); % Doradas B = round(30 + randn(1,500)*2); % Lubinas %b) Obtener los histogramas de A y B en intervalos de tamaño 1 figure, hist(A, min(A):max(A)) figure, hist(B, min(B):max(B)) %c) Obtener las probabilidades de A y B para cada intervalo. aA = hist(A, min(A):max(A)); pA = aA / sum(aA); aB = hist(B, min(B):max(B)); pB = aB / sum(aB); %d) Determinar qué error se comete si se dicen las siguientes %afirmaciones: %Bucle para errores con 24, 25, 26, 27 y 28 for i = 24:28, pnoA = length(find(B <= i))/sum(aB); pnoB = length(find(A > i))/sum(aA); p(i-23) = pnoA + pnoB; end %e) e) Realizar los pasos anteriores, suponiendo que genero datos para 500 %doradas y para 50 lubinas. clear all clc randn('seed',0); A = round(20 + randn(1,500)*5); % Doradas B = round(30 + randn(1,50)*2); % Lubinas aA = hist(A, min(A):max(A)); aB = hist(B, min(B):max(B)); %¿Qué ha ocurrido con el punto de error mínimo? %Bucle para errores con 24, 25, 26, 27 y 28 for i = 24:28, pnoA = length(find(B <= i))/sum(aB); pnoB = length(find(A > i))/sum(aA); p(i-23) = pnoA + pnoB; end %¿Y si son 50 doradas y 500 lubinas? clear all clc randn('seed',0); A = round(20 + randn(1,50)*5); % Doradas B = round(30 + randn(1,500)*2); % Lubinas aA = hist(A, min(A):max(A)); aB = hist(B, min(B):max(B)); %Bucle para errores con 24, 25, 26, 27 y 28 for i = 24:28, pnoA = length(find(B <= i))/sum(aB); pnoB = length(find(A > i))/sum(aA); p(i-23) = pnoA + pnoB; end %f) Enuncia un procedimiento para, dados A y B, encontrar el punto óptimo %de decisión N: Si un pez mide menos o igual a N, es dorada. Si no, es %lubina mA = fix(mean(A)); mB = fix(mean(B)); aA = hist(A, min(A):max(A)); aB = hist(B, min(B):max(B)); for i = mA:mB, pnoA = length(find(B <= i))/sum(aB); pnoB = length(find(A > i))/sum(aA); p(i-mA+1) = pnoA + pnoB; end [mi, ind] = min(p); N = ind + mA - 1;