Uma solução. O comando retorna um dataframe contendo uma coluna com as médias e outra com os desvios. A partir daí fazer os graficos fica a seu sabor.
populacao <- rchisq(100000, df = 10) tamanhoAmostra <- c(6,14,16,18,20) ##x:dados a serem amostrados ##n= tamanho da amostra ##r =número de repetições. deve ser um valor inteiro amostra <- function(x,n,r){ a <- list() ##guarda as amostras rptn <- list() ##guarda a repetição da amostragem for(i in 1:length(n)){ z <- 1 while(z <= r){ rptn[[z]] <- sample(x,size = n[i]) names(rptn)[z] <- paste0("repetição",z) z = z + 1 } a[,i] <- rptn } return(a) } amostrados <- amostra(populacao,tamanhoAmostra,2) #install.packages("plyr") library(plyr) resultado <- ldply (amostrados,function(x){ media <- mean(c(x$repetição1,x$repetição2)) desvio <- sd(c(x$repetição1,x$repetição2)) resposta <- data.frame(media,desvio) return(resposta) }) ##você pode converter o dataframe para matrix as.matrix(resultado) Em 28 de setembro de 2017 15:45, FHRB Toledo via R-br < r-br@listas.c3sl.ufpr.br> escreveu: > Isso tem bastante cara de um exercício de classe. De qualquer forma, segue > uma versão funcionando que se aproxima muito da sua explicação: > > > library(plyr) > > library(ggplot2) > > > R <- 1E4 # tamanho da populacao > > S <- 1E3 # quantidade de amostras > > T <- 2:50 # tamanho das amostras > > names(T) <- T # nomeando vetor > > > pop <- rnorm(R) # populacao > > > ## cavalor de forca... : gera os dados > > sampler <- function(t, s, p) ldply(t, .id = 'size', > function(ts) t(sapply(lapply(1:S, > > function(ss) sample(x = p, > > size = t, > > replace = TRUE)), > function(x) > c(mu = mean(x), sigma = sd(x))))) > > > ## resume por tamanho de amostras > > dados <- mutate(ddply(sampler(T, S, pop), .(size), > summarize, muBar = mean(mu), sigmaBar = > mean(sigma)), > size = as.numeric(as.character(size))) > > > ## media das medias > > ggplot(dados, mapping = aes(x = size, y = muBar)) + geom_point() > > > ## media dos desvios > > ggplot(dados, mapping = aes(x = size, y = sigmaBar)) + geom_point() > > Vale a pena revisar e testar tudo novamente, sobre as saídas como matriz, > deixo isso para suas adaptações. > > att, > FH > > 2017-09-27 19:24 GMT-05:00 Andre Oliveira via R-br < > r-br@listas.c3sl.ufpr.br>: > >> Vou tentar explicar melhor! >> >> " para cada tam repetir nam (vezes)" >> >> >> Seria repetir as amostragens: >> >> amostras de 2 em 2 um número k vezes. (Teria aqui k desvios-padrão e k >> medias). salvar media dos desvios e media das media! >> >> amostras de 3 em 3 um número k vezes. (Teria aqui k desvios-padrão e k >> medias). salvar media dos desvios e media das media! >> >> >> amostras de 4 em 4 um número k vezes. (Teria aqui k desvios-padrão e k >> medias). salvar media dos desvios e media das media! >> >> ............................................................ >> ............................................................ >> ............................................................ >> .................... >> >> >> amostras de j em j um número k vezes. (Teria aqui k desvios-padrão e k >> medias). salvar media dos desvios e media das media! >> >> >> Plotar os vetores salvos! >> >> André Oliveira Souza. Graduação em Matemática, mestrado em estatística >> aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito >> Santo. IFES >> >> >> Em Quarta-feira, 27 de Setembro de 2017 15:02, Fernando Souza < >> nandodeso...@gmail.com> escreveu: >> >> >> Acredito que isso deva te ajudar. Não entendi muito bem o que quis dizer >> com " para cada tam repetir nam (vezes)" , por isso o código abaixo >> não faz nenhuma repetição dos valores amostrados , porém acredito que é >> fácil de ajustar. >> >> populacao <- rchisq(100000, df = 10) >> tamanho <- c(6,14,16,18,20) # diferentes tamanhos para amostrar >> >> amostra <- function(x,n){ >> a <- list() >> >> for(i in 1:length(n)){ >> >> a[[i]] <- sample(x,size = n[i]) >> >> >> } >> return(a) >> >> } >> amostrados <- amostra(populacao,tamanho) >> >> #install.packages("plyr") >> library(plyr) >> >> resultado <- ldply (amostrados,function(x){ >> media <- mean(x) >> desvio <- sd(x) >> >> resposta <- data.frame(media,desvio) >> return(resposta) >> >> }) >> >> ##você pode converter o dataframe para matrix >> as.matrix(resultado) >> >> >> Em 26 de setembro de 2017 22:42, Andre Oliveira via R-br < >> r-br@listas.c3sl.ufpr.br> escreveu: >> >> Boa noite, >> preciso de amostrar em um vetor de nome populacao amostras de tamanho n, >> com n variando de tamanhos [2; tam] e para cada tam repetir nam >> (vezes) e assim pegar a estimativas de media e dos desvios -padrão das >> amostras. >> >> >> Para cada amostra obtida extrair desvio padrão, média e guardar em uma >> matriz com vazia com NAs! Ao final plotar a média dos desvios e a media >> das medias em função de cada n. >> >> Tentei fazer, mas sem sucesso! Caso alguém pude ajudar ficarei grato! >> >> >> ############################## ############################## >> ######################### >> >> n=10 >> populacao <- rchisq(100000, df = n) >> mu=n >> s=sqrt(2*n) >> mu >> s >> >> par(mfrow = c(1, 3)) >> hist(populacao, prob=T, main="Y ~ Quiquadrado(GL=10)",xlab=" ", >> yla="Densidade",col=" limegreen") >> >> amostragem<-function( populacao, tam, nam) >> { >> SD<-NULL >> media<-NULL >> X <-matrix(NA, tam, 2) >> { >> for(i in 2:nam) >> amostra<-sample(populacao,tam) >> SD[i]=sd(amostra) >> media[i]<-mean(amostra) >> X[i,] <- c(mean(SD), mean(media)) >> } >> print(cbind(mean(SD),mean( media)) >> print(X) >> plot.ts(SD, pch=19, type = "p", xlab="Número de folhas amostrada", >> ylab="Estimativa da Variabiliade", lty=2,xaxp=c(0,150,10)) >> plot.ts(media, pch=19, type = "p", xlab="Número de folhas amostrada", >> ylab="Estimativa da média", lty=2,xaxp=c(0,150,10)) >> } >> >> >> amostragem(populacao, 150, 50000) >> ############################# ############################## >> ############################## ## >> >> obg >> >> ______________________________ _________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/ cgi-bin/mailman/listinfo/r-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 >> <http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível. >> >> >> >> >> -- >> ========================================= >> Fernando Souza >> Zootecnista, DSc. Produção e Alimentação Animal >> Celular: (31)99796-8781 (Vivo) >> E-mail:nandodeso...@gmail.com <e-mail%3anandodeso...@gmail.com> >> Lattes: http://lattes.cnpq.br/6519538815038307 >> Blog: https://producaoanimalcomr.wordpress.com/ >> ========================================== >> >> >> >> _______________________________________________ >> 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. >> > > > _______________________________________________ > 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. > -- ========================================= Fernando Souza Zootecnista, DSc. Produção e Alimentação Animal Celular: (31)99796-8781 (Vivo) E-mail:nandodeso...@gmail.com <e-mail%3anandodeso...@gmail.com> Lattes: http://lattes.cnpq.br/6519538815038307 Blog: https://producaoanimalcomr.wordpress.com/ ==========================================
_______________________________________________ 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.