[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