[R-br] Amostragem em um vetor

Andre Oliveira andreolsouza em yahoo.com.br
Quinta Setembro 28 20:31:04 -03 2017


Negativo Fernando, isto não é exercício de classe! É uma ideia que estou batalhando para implementar para semana nacional de ciência e tecnologia com alunos do ensino médio (técnico em informática) conhecer o R, saber sobre amostragem com ou sem reposição e claro sobre estatística. Obrigado pela contribuição.
   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 Quinta-feira, 28 de Setembro de 2017 16:45, Fernando Souza <nandodesouza em gmail.com> escreveu:
 

 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 inteiroamostra <- 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 matrixas.matrix(resultado)

Em 28 de setembro de 2017 15:45, FHRB Toledo via R-br <r-br em 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 em 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 <nandodesouza em 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 matrixas.matrix(resultado)

Em 26 de setembro de 2017 22:42, Andre Oliveira via R-br <r-br em 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 em 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:nandodesouza em gmail.com
Lattes: http://lattes.cnpq.br/65195388 15038307
Blog: https://producaoanimalcomr.wor dpress.com/
============================== ============

   
______________________________ _________________
R-br mailing list
R-br em 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-g uia) e forneça código mínimo reproduzível.



______________________________ _________________
R-br mailing list
R-br em 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:nandodesouza em gmail.com
Lattes: http://lattes.cnpq.br/6519538815038307
Blog: https://producaoanimalcomr.wordpress.com/
==========================================

   
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170928/776cee81/attachment-0001.html>


Mais detalhes sobre a lista de discussão R-br