Re: [R-br] Amostragem em um vetor
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(10, 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(10, 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,
Re: [R-br] Amostragem em um vetor
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: > 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(10, 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(10, 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, 5) > # ## > ## ## > > obg > > __ _ > R-br mailing list >
Re: [R-br] Amostragem em um vetor
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 Souzaescreveu: 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(10, 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 matrixas.matrix(resultado) Em 26 de setembro de 2017 22:42, Andre Oliveira via R-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(10, 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, 5) # ## ## ## obg __ _ 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 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.
Re: [R-br] Amostragem em um vetor
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(10, 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(10, 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, 5) > ### > > > obg > > ___ > 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.comLattes: 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] Amostragem em um vetor
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(10, 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, 5) ### obg ___ 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.