set.seed(984293781) media=12 dp=1 N=5000 hemo=rnorm(N,media,dp) #nivel de hemoglobina em mulheres jovens e saud?veis #jpeg(file='taxashemog.jpg') hist(hemo,main='',xlab='Taxas de hemoglobina',freq=TRUE,ylab='Frequência Absoluta') N=length(hemo) media.pop=round(mean(hemo)) dp.pop=round(sd(hemo)) abline(v=media,lty=2,col=2,lwd=2) #dev.off() # Na pratica a media e o desvio-padrao sao desconhecidos!!! # Entao uma amostra aleatoria eh selecionada e com base nesta amostra # temos uma estimativa da media e o desvio-padrao. #Selecionando aleatoriamente amostra de tamanho n=6 n=6 grupo=sample(1:N,size=n,replace=TRUE) amostra=hemo[grupo] round(amostra,2) round(mean(amostra),2) round(sd(amostra),2) #Selecionando outras n mulheres...temos um resultado diferente... grupo=sample(1:N,size=n,replace=TRUE) amostra=hemo[grupo] round(amostra,2) round(mean(amostra),2) round(sd(amostra),2) # PERGUNTAS: # COMO ESTIMAR A MÉDIA E CALCULAR A PRECISÃO DA ESTIMATIVA? # SERÁ QUE EXISTE UM PADRÃO ESPERADO NO COMPORTAMENTO DAS MÉDIAS? # Vamos tentar responder estas perguntas com um exercicio de simulacao. # Selecionando repetidamente grupos de n mulheres # e calculando as medias e desvios-padrao com denominador n e n-1 n=6 nsim=1000 medias=NULL sn=NULL s=NULL for (i in 1:nsim){ grupo=sample(1:N,size=n,replace=TRUE) amostra=hemo[grupo] medias=c(medias,mean(amostra)) sn=c(sn,sqrt(sum((amostra-mean(amostra))^2)/n)) s=c(s,sqrt(sum((amostra-mean(amostra))^2)/(n-1))) } # Histograma das estimativas do desvio-padrao par(mfrow=c(2,1)) hist(s,main='',xlab='s',xlim=range(c(sn,s))) abline(v=dp.pop,col=2,lwd=3) abline(v=mean(s),col=4,lwd=3) legend(1.5,220,c('DP Pop.','Média de s'), col=c(2,4),lty=1,lwd=3) hist(sn,main='',xlab='sn',xlim=range(c(sn,s))) abline(v=dp.pop,col=2,lwd=3) abline(v=mean(sn),col=4,lwd=3) legend(1.5,240,c('DP Pop.','Média de sn'), col=c(2,4),lty=1,lwd=3) dp.pop mean(s) #este eh o melhor estimador pois em media esta mais proximo do dp. pop. mean(sn) # Histograma das estimativas da media par(mfrow=c(1,2)) hist(hemo,main='Taxas de hemoglobina',xlim=c(min(hemo),max(hemo)),freq=TRUE) abline(v=media.pop,lty=1,lwd=2,col=2) hist(medias,main='Histograma das médias (n=6)',xlim=c(min(hemo),max(hemo)),freq=TRUE) abline(v=media.pop,lty=1,lwd=2,col=2) abline(v=mean(medias),lwd=2,col=4) media.pop #média pop. das taxas de hemoglobina mean(medias) #média das médias sd(medias) # desvio-padrão das médias < dp. pop. dp.pop #desvio-padrão pop. dos níveis de hemoglobina dp.pop/sqrt(n) # Note que o resultado desta conta se aproxima do sd(medias) # ou seja, o desvio-padrao das medias eh dado pelo # desvio-padrao da populacao dividido por sqrt(n). # Resultado teórico: media.amostral~N(media.pop,dp.pop/sqrt(n)) par(mfrow=c(1,1)) dd=dnorm(seq(min(medias)-0.5,max(medias)+0.5,l=200),media.pop,dp.pop/sqrt(n)) hist(medias,main='',freq=FALSE,xlab='Médias amostrais',col='gray') text(10.9,0.8,expression(paste(bar(X),'~',N(12,0.41))),col=2,cex=1.5) lines(seq(min(medias)-0.5,max(medias)+0.5,l=200),dd,col=2) #Com isso temos que: 95% das medias amostrais estarao dentro do intervalo a=media.pop-1.96*dp.pop/sqrt(n) b=media.pop+1.96*dp.pop/sqrt(n) segments(a,0,a,dnorm(a,media.pop,dp.pop/sqrt(n)),lty=3,col=4,lwd=4) segments(b,0,b,dnorm(b,media.pop,dp.pop/sqrt(n)),lty=3,col=4,lwd=4) text(12,0.4,c('95%'),col=4,cex=2) media.pop-1.96*dp.pop/sqrt(n) media.pop+1.96*dp.pop/sqrt(n) # Com este resultado é possível obter uma estimativa intervalar # para a média populacional. # demonstrar no quadro #Vários intervalos de confiança num gráfico li=medias-1.96*dp.pop/sqrt(n) ls=medias+1.96*dp.pop/sqrt(n) #probabilidade de cobertura pc=sum(ls>media.pop&limedia.pop&limedia.pop&limedia.pop&limedia.pop&limedia.pop&limedia.pop&limedia.pop&li