#ejemplo de programacion ciclo for #generamos 1000 muestras de 15 datos cada una con distribucion normal #mu=170, sigma=30 datos=normrnd(170,30,10000,40); #vamos a estimar sigma por maxima verosimilitud #por maxima verosimilitud es el promedio de los desvios cuadraticos sigma=zeros(10000,1);#las 1000 estimaciones de mu y de sigma por maxima verosimilitud promedio=mean(datos,2);#media por filas for i=1:10000, cuad=mean(datos(i,1:40).^2);#promedio de los cuadrados de cada fila sigma(i,1)=sqrt(cuad-promedio(i,1)^2); endfor figure() hold subplot(2,1,1) hist(promedio,100) subplot(2,1,2) hist(sigma,100) # repetimos 4 veces figure() #subplot(2,2) hold #ejercicio 1 for j=1:6, M=poissrnd(3,1000*j,30); medias=mean(M,2); subplot(2,3,j) hist(medias) endfor #ejercicio 2 #generamos muestras exponenciales de parametro lambda=2 mexp=exprnd(2,1000,40); mediasexp=mean(mexp,2); figure() hold subplot(2,3,1) hist(mediasexp)#25 intervalos title('n=10 intervalos') subplot(2,3,2) hist(mediasexp,30) title('30 intervalos') subplot(2,3,3) hist(mediasexp,50) title('50 intervalos') subplot(2,3,4) hist(mediasexp,70) title('70 intervalos') subplot(2,3,5) hist(mediasexp,90) title('90 intervalos') subplot(2,3,6) hist(mediasexp,110) title('110 intervalos') print('6histogramas.png') #generamos histogramas variando la cantidad de intervalos #ejercicio 4 #generamos muestras uniformes (0,1) y estimamos b #por momentos y maxima verosimilitud muestra=unifrnd(0,1,1000,35); bmom=2*mean(muestra,2); bmv=max(muestra,[],2); figure() subplot(2,1,1) hist(bmom,30) subplot(2,1,2) hist(bmv,30) #ejercicio 5 #generamos muestras de 35 datos cada una con distribucion normal #mu=40, sigma=5 mnormal=normrnd(40,5,1000,35); medios=mean(mnormal,2);#aqui guardamos los centros de los intervalos zalfa=norminv(0.95);#da 1.645 radio=zalfa*35/sqrt(1000);#radio de los intervalos a=medios-radio; b=medios+radio; figure() subplot(2,1,1) hist(a,30) subplot(2,1,2) hist(b,30) size(find(a<=40&b>=40)); #generamos una matriz 1000 x 30 de datos poisson con lambda=3 mpoiss=poissrnd(3,10000,30); mediaspois=mean(mpoiss,2); hist(mediaspois,100) #contamos cuantos caen entre 2.5 y 3.5 size(find(mediaspois>=2.5&mediaspois<=3.5)) #generamos matrices n x 40 de datos normales estandar, n=100, 1000, 5000 y 10000 #problema 3 contador=0 figure() for v=[100 1000 5000 10000]#la variable v tomara cada valor del vector contador=contador+1 matriz=normrnd(0,1,v,40);#generamos la matriz mu_est=mean(matriz,2);#guardamos el promedio de cada fila de la matriz media_cuadrados=mean(matriz.^2,2);#el promedio de los cuadrados sigma_est=media_cuadrados-mu_est.^2;#estimador de sigma cuadrados subplot(4,2,2*contador-1) hist(mu_est,sqrt(v)) title(['estimaciones de mu, n=',num2str(v)]) subplot(4,2,2*contador) hist(sqrt(sigma_est),sqrt(v)) title(['estimaciones de sigma, n=',num2str(v)]) end#en cada figura vamos a la opcion file y la guardamos