Teste para decisão do número ótimo de amostra

Boa tarde pessoal, Gostaria de utilizar um teste para decidir o número ótimo de amostral, baseado na abordagem que estou empregando, se faço: pop.total<-rnorm(10000,mean=20,sd=15) ## População total i<-c(5000,50)## Quantidade de amostras n.sim<-999 ## Número de simulações RES=NULL for(Nsim in 1:n.sim){ for(Nam in 1:length(i)){ amostras<-sample(pop.total,i[Nam]) ## Amostragem com reposição m.amostras<-mean(amostras) ## Media encontrada nas amostras err.amost<-100-((mean(amostras)/mean(pop.total))*100) ### Erro amostral RES=rbind(RES,c(Nsim,i[Nam],err.amost)) }} ####### 50 amostras am.50<-RES[RES[,2]==50,] shapiro.test(am.50[,3]-mean(am.50[,3])) ## Distribuição normal,então inferências sobre os parâmetros média e desvio estão corretos mean(am.50[,3])## Média do erro amostral sd(am.50[,3])/sqrt(length(am.50[,3]))## Erro padrão do erro amostral sd(am.50[,3])## Desvio padrão # ####### 5000 amostras am.5000<-RES[RES[,2]==5000,] shapiro.test(am.5000[,3]-mean(am.5000[,3])) ## Distribuição normal,então inferências sobre os parâmetros média e desvio estão corretos mean(am.5000[,3])## Média do erro amostral sd(am.5000[,3])/sqrt(length(am.50[,3]))## Erro padrão do erro amostral sd(am.5000[,3])## Desvio padrão # Percebo que a média do erro amostral e o erro padrão desta média são baixos (próximos de zero) tanto quando minha amostra tem tamanho 50 quanto 5000, porém o desvio padrão, obviamente, aumenta quando reduzo o número de amostras. Gostaria de saber que teste poderia empregar para escolha de um número ótimo de amostras, uma vez que eu não posso usar como critério o erro amostral, quando simulo este cenário 999 vezes e emprego inúmeros tamanhos amostrais? Obrigado, -- ====================================================================== Alexandre dos Santos Proteção Florestal Coordenador do curso Técnico em Florestas Vice Coordenador do curso de Engenharia Florestal IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso Campus Cáceres Caixa Postal 244 Avenida dos Ramires, s/n Bairro: Distrito Industrial Cáceres - MT CEP: 78.200-000 Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@cas.ifmt.edu.br ======================================================================

Esses estudos de tamanho de amostra normalmente são baseados em alguma medida que expressa quantidade de informação em função do número de elementos na amostra. Em geral essa medida de informação pode ser o CV, a amplitude da margem de erro (ou o próprio erro padrão) para a média da população (ou outro parâmetro de interesse). Quanto maior a informação menor o erro padrão e por isso essas medidas de incerteza diminuem com o tamanho da amostra. Você pode representar isso por um modelo não linear de decaimento e escolher o tamanho da amostra a partir dele. Usa-se às vezes o modelo linear-platô e o valor da abcissa (o cotovelo) como tamanho de amostra. À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Obrigado Walmes, Mas no meu caso não consegui expressar essa relação do tipo curvatura máxima (cotovelo) entre o CV e o número de amostras, segue tentativa abaixo: ################################################################################ pop.total<-rnorm(10000,mean=20,sd=15) i<-c(2,4,8,156,1250,2500,5000,7500)## Quantidade de amostras n.sim<-999 ## Número de simulações RES=NULL for(Nsim in 1:n.sim){ for(Nam in 1:length(i)){ amostras<-sample(pop.total,i[Nam]) ## Amostragem com reposição m.amostras<-mean(amostras) ## Media encontrada nas amostras err.amost<-100-((mean(amostras)/mean(pop.total))*100) ### Erro amostral RES=rbind(RES,c(Nsim,i[Nam],err.amost)) }} # length(RES[,1]) err.sd<-aggregate(RES, by = list(RES[,2]), FUN = "sd") ##Retirando a média das simulações err.mean<-aggregate(RES, by = list(RES[,2]), FUN = "mean") ##Retirando a média das simulações dados<-cbind(err.sd[,1],100*(err.sd[,4]/err.mean[,4])) ### Numero de amostras e CV plot(dados[,1],dados[,2]) # # # mod<-nls(dados[,2]~a/dados[,1]^b,start=list(a=1,b=1))## Modelo não linear para determinar a queda do CV com o tamanho da amostra summary(mod) ### Obrigado, Alexandre Em 20/03/2013 14:49, Walmes Zeviani escreveu:
Esses estudos de tamanho de amostra normalmente são baseados em alguma medida que expressa quantidade de informação em função do número de elementos na amostra. Em geral essa medida de informação pode ser o CV, a amplitude da margem de erro (ou o próprio erro padrão) para a média da população (ou outro parâmetro de interesse). Quanto maior a informação menor o erro padrão e por isso essas medidas de incerteza diminuem com o tamanho da amostra. Você pode representar isso por um modelo não linear de decaimento e escolher o tamanho da amostra a partir dele. Usa-se às vezes o modelo linear-platô e o valor da abcissa (o cotovelo) como tamanho de amostra.
À disposição. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br <mailto:walmes@ufpr.br> skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes <http://www.leg.ufpr.br/%7Ewalmes> linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- ====================================================================== Alexandre dos Santos Proteção Florestal Coordenador do curso Técnico em Florestas Vice Coordenador do curso de Engenharia Florestal IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso Campus Cáceres Caixa Postal 244 Avenida dos Ramires, s/n Bairro: Distrito Industrial Cáceres - MT CEP: 78.200-000 Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@cas.ifmt.edu.br ======================================================================

Alexandre, Segue um CMR simples: # tamanho de amostra para medida de interesse que # é o erro absoluto ao estimar a média da população # erro = abs(média_estimada-média_verdadeira) pop.total <- rnorm(10000, mean=20, sd=15) # população m <- mean(20) # média verdadeira i <- unique(floor(2^seq(1, 12, by=0.5))); i # tamanhos de amostra nr <- 100 # número de execuções de reamostragem fun <- function(size, pop, m){ # função que calcula o erro a partir de uma amostra x <- sample(pop, size, replace=TRUE) # retorna a diferença entre estimado e real abs(mean(x)-m) } results1 <- sapply(i, function(j){ replicate(nr, fun(size=j, pop=pop.total, m=m)) }) str(results1) # matriz: colunas correspondem à i results2 <- colMeans(results1) # tira a média para cada i results2 plot(results2~i) plot(results2~log2(i)) # qual o tamanho de amostra para ter um erro no ponto # médio entre o máximo (quando n=1) e o mínimo (n->infinito, erro=0) n0 <- nls(results2~A*B^(-log2(i)+1), start=list(A=1, B=1)) coef(n0) perc <- 0.3 # erro tolerado de 30% do máximo (usuário define) xi <- -log(perc)/log(coef(n0)["B"])+1 # tamanho de amostra correspondente plot(results2~log2(i), xlim=c(1, max(log2(i))), ylim=c(0,max(results2, coef(n0)["A"])), xlab="Tamanho da amostra (log2 unidades)", ylab="Erro absoluto médio ao estimar a média") abline(v=1, lty=2) with(as.list(coef(n0)), curve(A*B^(-x+1), add=TRUE)) with(as.list(coef(n0)), abline(h=A*c(1,perc), v=xi, lty=2, col=2)) ceiling(2^xi) # tamanho de amostra à ser considerado À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Perfeito Walmes, Era isto mesmo que eu buscava, Abraço, Alexandre Em 20/03/2013 17:31, Walmes Zeviani escreveu:
Alexandre,
Segue um CMR simples:
# tamanho de amostra para medida de interesse que # é o erro absoluto ao estimar a média da população # erro = abs(média_estimada-média_verdadeira)
pop.total <- rnorm(10000, mean=20, sd=15) # população m <- mean(20) # média verdadeira i <- unique(floor(2^seq(1, 12, by=0.5))); i # tamanhos de amostra nr <- 100 # número de execuções de reamostragem fun <- function(size, pop, m){ # função que calcula o erro a partir de uma amostra x <- sample(pop, size, replace=TRUE) # retorna a diferença entre estimado e real abs(mean(x)-m) }
results1 <- sapply(i, function(j){ replicate(nr, fun(size=j, pop=pop.total, m=m)) }) str(results1) # matriz: colunas correspondem à i results2 <- colMeans(results1) # tira a média para cada i results2
plot(results2~i) plot(results2~log2(i))
# qual o tamanho de amostra para ter um erro no ponto # médio entre o máximo (quando n=1) e o mínimo (n->infinito, erro=0)
n0 <- nls(results2~A*B^(-log2(i)+1), start=list(A=1, B=1)) coef(n0)
perc <- 0.3 # erro tolerado de 30% do máximo (usuário define) xi <- -log(perc)/log(coef(n0)["B"])+1 # tamanho de amostra correspondente
plot(results2~log2(i), xlim=c(1, max(log2(i))), ylim=c(0,max(results2, coef(n0)["A"])), xlab="Tamanho da amostra (log2 unidades)", ylab="Erro absoluto médio ao estimar a média") abline(v=1, lty=2) with(as.list(coef(n0)), curve(A*B^(-x+1), add=TRUE)) with(as.list(coef(n0)), abline(h=A*c(1,perc), v=xi, lty=2, col=2))
ceiling(2^xi) # tamanho de amostra à ser considerado
À disposição. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br <mailto:walmes@ufpr.br> skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes <http://www.leg.ufpr.br/%7Ewalmes> linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- ====================================================================== Alexandre dos Santos Proteção Florestal Coordenador do curso Técnico em Florestas Vice Coordenador do curso de Engenharia Florestal IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso Campus Cáceres Caixa Postal 244 Avenida dos Ramires, s/n Bairro: Distrito Industrial Cáceres - MT CEP: 78.200-000 Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@cas.ifmt.edu.br ======================================================================
participantes (2)
-
ASANTOS
-
Walmes Zeviani