A análise estatística através de técnicas de amostragem é importante para entender e extrair percepções importantes acerca dos conjuntos de dados. Este relatório foca na apresentação dessas técnicas utilizando dados do estado de Rondônia, explorando os métodos de amostragens probabilísticas simples, estratificada e conglomerada.
Os dados do estado de Rondônia, localizado na região Norte do Brasil, será o dataframe principal neste relatório. Este relatório visa explorar métodos de amostragem com dados como população residente, Índice de Desenvolvimento Humano Municipal (IDHM), mortalidade infantil e produto interno bruto (PIB) per capita.
Foi baixado os dados do estado de Rondônia no site oficial do IBGE, depois excluído, no Excel, as colunas “código”, “gentílico”, “prefeito”, “receitas realizadas” e “despesas empenhadas” e “densidade”, já que não seriam necessárias para a realização de nossas amostras.
No Excel também foi retirado acentos e espaços dos nomes das colunas, além de diminuído, abreviado ou modificado alguns nomes, para evitar complicações na amostragem que seria realizado no RStudio em linguagem R.
Nos dados do Estado de Rondônia que trabalharemos, está contido nele informações sobre nome do município, área territorial por quilômetro quadrado (2022), população residente por pessoa (2022), escolarização de 6 a 14 anos (2010), IDH - índice de densevolvimento humano (2010), mortalidade infantil (por 1000 nascidos, 2022) e PIB per capita em R$ (2021).
Primeiro foi medido as dimensões do dataframe em questão com a função
str(), pois essa dimensão é importante para tirar-se as
amostragens a partir dela. Em seguida foi feito a amostragem aleatória
simples utilizando a função sample(), após isso, foi feito
com a função cut() a classificação do dataframe de acordo
com seu IDHM em cinco categorias e realizado a amostragem aleatória
estratificada com auxílio da função for(), em seguida,
dividiu-se o dataframe em quatro grupos de treze e implementou-se a
amostragem aleatória conglomerada…
library(readxl)
library(ggplot2)
library(knitr)
library(dplyr)
A readxl foi necessária para ler o arquivo xlsx no qual
estavam os dados que foram baixados. A ggplot2 foi
necessária para gerar os gráficos deste relatório. A knitr
foi necessária para gerar as tabelas deste relatório. A
dplyr foi necessária para classificar colunas com base em
seus níveis de IDHs.
Antes de começarmos a trabalhar com nosso dataframe, é importante esclarecer algumas coisas, existem dois tipos de amostragens (sem reposição e com reposição), cada uma é importante para determinados objetivos. A seguir, explicaremos cada um desses dois tipos, contudo, após as explicações, trabalharemos apenas com amostragens sem reposição.
Reposição nada mais é do que repor algo, no entanto, mais precisamente em métodos de amostragem em Probabilidade e Estatística, a reposição se refere a repetição de um elemento em uma amostragem. Por exemplo, suponhamos que eu sorteie 10 pessoas de uma sala de 30 alunos para cada um ganhar um chocolate, então eu peço aos 30 alunos para cada 1 escrever seu nome em 1 pedaço de papel, coloco todos os papéis numa caixa e sacudo, e, conforme eu vou retirando os nomes, eu jogo o papel no lixo, então esse sorteio é um exemplo de como é feita a amostragem sem reposição pois um mesmo aluno não poderia ser sorteado 2 vezes, isto é, não poderá ganhar 2 chocolates. Para melhor entendimento do que é uma amostragem sem reposição, segue exemplos de nomes de 30 alunos.
## 'data.frame': 30 obs. of 1 variable:
## $ c("Eduarda", "Nailton", "Danielly", "Lucas", "Adriano", "Allan", "Marcos", "Marília", "Alessandro", "Carlos", "Vinicius", "Keroly", "Artur", "Milena", "Grazielly", "Naira", "Deyze", "Williane", "Giuliano", "Gustavo", "Renata", "Renan", "Davi", "Mayza", "Samuel", "Rafael", "Samara", "Gabriel", "Ramon", "Maria da Guia"): chr "Eduarda" "Nailton" "Danielly" "Lucas" ...
Agora, vamos realizar um sorteio de 10 nomes destes 30 nomes. Segue o resultado do sorteio (amostra aleatória simples sem reposição). Note que nenhum nome foi repetido neste sorteio, pois numa amostragem sem reposição é impossível um mesmo elemento se repetir dentro de uma mesma amostra.
| Adriano | Renata | Nailton | Gustavo | Milena | Maria da Guia | Mayza | Allan | Keroly | Marília |
Como dito anteriormente, a reposição se refere a repetição de um elemento em uma amostragem. Pegando ainda, o exemplo dado anteriormente sobre pedir a 30 alunos para cada 1 escrever seu nome em 1 pedaço de papel, colocar os papéis numa caixa e sacudir para sortear, suponhamos agora que eu ao invés de jogar o papel com o nome do aluno sorteado no lixo, o colocasse de volta na caixa para sacudir e ver o próximo sorteiado, por exemplo, em um exemplo hipotético, se eu o primeiro nome que eu retirasse fosse de um aluno chamado “Nailton”, ao invés de eu jogar fora, antes de retirar o segundo nome do sorteio, o colocasse de volta na caixa, aí, então, esse sorteio seria com reposição, pois eu estaria repondo o elemento de volta sempre que sorteasse um elemento, assim, um mesmo aluno, poderia ser sorteado até 10 vezes, tendo em vista que o sorteio seria de 10 pessoas, isto é, 10 elementos, então poderia haver, dentro dessa amostra, nomes repetidos. Para melhor entendimento do que é uma amostragem com reposição, pegaremos os mesmos exemplos de nomes de 30 alunos e faremos uma amostragem aleatória simples com reposição. É possível que haja nomes repetidos e também é possível que não haja nenhum nome repetido, e isso é o que representa uma amostragem com reposição.
| Nailton | Renata | Naira | Samuel | Giuliano | Allan | Giuliano | Eduarda | Maria da Guia | Giuliano |
Antes de iniciarmos a implementação das amostragens é importante saber as dimensões do nosso dataframe, e, como podemos ver a seguir, as dimensões que o nosso dataframe possui são de 7 colunas e 52 linhas.
## Warning: NAs introduzidos por coerção
## 'data.frame': 52 obs. of 7 variables:
## $ Municipio : chr "Alta Floresta D'Oeste" "Ariquemes" "Cabixi" "Cacoal" ...
## $ Territorio : num 7067 4427 1314 3793 2783 ...
## $ Populacao : num 21494 96833 5351 86887 15890 ...
## $ Escolarizacao: num 95.7 97.2 98.1 97.6 98.5 97.6 97.1 97.6 95.9 93.1 ...
## $ IDHM : num 0.641 0.702 0.65 0.718 0.692 0.685 0.613 0.611 0.672 0.657 ...
## $ Mortalidade : num 5.43 21.26 NA 9.61 3.68 ...
## $ PIB : num 32620 28878 47052 32313 46186 ...
Agora, faremos uma amostra aleatória (sem reposição) dos dados do estado de Rondônia, e pegaremos 13 dos 52 municípios. Vejamos a tabela a seguir. É possível fitar uma tabela com os dados de 13 municípios (e nenhum é repetido).
| Municipio | Territorio | Populacao | Escolarizacao | IDHM | Mortalidade | PIB | |
|---|---|---|---|---|---|---|---|
| 27 | Alto Paraíso | 2651.822 | 16320 | 95.7 | 0.625 | 24.51 | 22929.34 |
| 40 | Monte Negro | 1931.378 | 11548 | 93.5 | 0.607 | 36.14 | 24129.89 |
| 11 | Jaru | 2944.128 | 50591 | 97.8 | 0.689 | 13.48 | 34294.21 |
| 29 | Novo Horizonte do Oeste | 843.446 | 7667 | 97.5 | 0.634 | NA | 28492.53 |
| 1 | Alta Floresta D’Oeste | 7067.127 | 21494 | 95.7 | 0.641 | 5.43 | 32619.88 |
| 4 | Cacoal | 3793.000 | 86887 | 97.6 | 0.718 | 9.61 | 32313.26 |
| 47 | Seringueiras | 3773.505 | 11171 | 95.9 | 0.598 | 10.70 | 28109.66 |
| 25 | Alvorada D’Oeste | 3029.189 | 13117 | 97.6 | 0.643 | 5.46 | 25539.82 |
| 13 | Machadinho D’Oeste | 8509.270 | 30707 | 93.2 | 0.596 | 24.10 | 21338.33 |
| 22 | Vilhena | 11699.150 | 95832 | 97.8 | 0.731 | 13.75 | 40328.81 |
| 37 | Itapuã do Oeste | 4081.580 | 8548 | 96.3 | 0.614 | 9.35 | 19413.13 |
| 34 | Chupinguaia | 5126.723 | 9324 | 97.0 | 0.652 | 12.35 | 39880.28 |
| 35 | Cujubim | 3863.946 | 14863 | 94.4 | 0.612 | 14.42 | 17967.64 |
Agora, classificaremos esses dados com base em seus IDHMs, formando 5 categorias, ou, como é conveniente falar, 5 estratos.
O IDHM (Índice de Desenvolvimento Humano Municipal) é a avaliação de três aspectos, os quais são a saúde, a educação e a renda,variando entre 0 a 1, onde 0 representa um pior IDHM e 1, um melhor. O IDH é classificado em cinco categorias, são elas:
Com base nessas 5 categorias (estratos) faremos a nossa amostragem estratificada, desta vez faremos uma sorteio por cada categoria. Neste caso, desejamos sortear 5 elementos de cada uma das 5 categorias , por exemplo, 5 municípios co IDHM “Muito Baixo”, 5 com IDHM “Muito Alto”, 5 com IDHM “Médio” até completar 5 de cada categoria. No caso, como são 5 categorias, sortearemos um total de 25 elementos.
| Municipio | Territorio | Populacao | Escolarizacao | IDHM | Mortalidade | PIB | Classificacao | |
|---|---|---|---|---|---|---|---|---|
| 21 | Santa Luzia D’Oeste | 1197.796 | 7419 | 93.9 | 0.670 | 13.70 | 35940.09 | Medio |
| 38 | Ministro Andreazza | 798.083 | 6466 | 95.5 | 0.638 | NA | 31484.85 | Medio |
| 50 | Urupá | 831.857 | 10725 | 96.6 | 0.609 | 12.42 | 24682.00 | Medio |
| 44 | Primavera de Rondônia | 605.692 | 3076 | 98.6 | 0.641 | 50.00 | 39684.71 | Medio |
| 7 | Corumbiara | 3060.321 | 7519 | 97.1 | 0.613 | 29.13 | 56257.46 | Medio |
| 16 | Pimenta Bueno | 6241.016 | 35079 | 97.7 | 0.710 | 18.74 | 44275.07 | Alto |
| 22 | Vilhena | 11699.150 | 95832 | 97.8 | 0.731 | 13.75 | 40328.81 | Alto |
| 12 | Ji-Paraná | 6896.649 | 124333 | 96.6 | 0.714 | 10.45 | 32292.16 | Alto |
| 17 | Porto Velho | 34090.952 | 460434 | 94.5 | 0.736 | 13.33 | 36541.49 | Alto |
| 4 | Cacoal | 3793.000 | 86887 | 97.6 | 0.718 | 9.61 | 32313.26 | Alto |
| 31 | Campo Novo de Rondônia | 3442.005 | 8844 | 90.6 | 0.593 | 36.50 | 25667.21 | Baixo |
| 41 | Nova União | 807.125 | 6200 | 98.7 | 0.587 | 9.71 | 23060.80 | Baixo |
| 26 | Alto Alegre dos Parecis | 3958.273 | 11479 | 95.9 | 0.592 | 6.67 | 36454.01 | Baixo |
| 36 | Governador Jorge Teixeira | 5067.384 | 8001 | 93.6 | 0.596 | 23.26 | 33566.66 | Baixo |
| 24 | Nova Mamoré | 10070.490 | 25444 | 92.8 | 0.587 | 4.31 | 23076.28 | Baixo |
Agora veremos as informaçãoes dessa tabela numa versão gráfica em histograma, para melhor visualização. Vale ressaltar que a probabilidade do centro do histograma ser maior, isto é, haver mais municípios de IDHM classificado como médio, é mais provável, e a possibilidade de haver municípios classificados como tendo IDHM muito alto é inexistente, pois, dentro dos dados coletados não encontrou nenhum elemento que pudesse ser classificado como IDHM “Muito Alto”.
Agora, dividimos o dataframe em 4 partes iguais (conglomerados) para fazermos a nossa amostragem conglomerada ao sortear desta vez quais categorias iremos escolher. Classificamos os municípios com base numa enumeração atribuída, o grupo 1 foi composto por municípios de numeração entre 1 e 13, o grupo 2, de 14 a 27, o grupo 3 de 28 a 39 e o grupo 4 de 40 a 52, totalizando simetricamente 4 agrupamentos. Neste caso, dos 4 agrupamentos, desejamos sortear 2, por exemplo, se o resultado for “Grupo 1” e “Grupo 3”, então serão escolhidos apenas municípios que tenham essa classificação, e todos os que forem pertecente a um desses dois conjuntos fará parte da amostragem aleatória conglomerada. E então faremos outra amostragem e assim faremos o que é chamado de amostragem aleatória conglomerada dupla, pois escolheremos aleatoriamente elementos dentro dos agrupamentos. Como visto a seguir. Uma vantagem enorme da amostra aleatória conglomerada em relação a amostra aleatória estratificada, na prática, é o seu custo menor, já que não é necessário se preocupar em como classificar os dados e analisar características em comum entre os elementos, sendo a amostragem conglomerada mais fácil de ser aplicada, embora não seja mais fácil que a amostragem aleatória simples.
| Municipio | Territorio | Populacao | Escolarizacao | IDHM | Mortalidade | PIB | Numeracao | Classificacao | |
|---|---|---|---|---|---|---|---|---|---|
| 2 | Ariquemes | 4426.571 | 96833 | 97.2 | 0.702 | 21.26 | 28878.27 | 2 | Grupo 1 |
| 14 | Nova Brasilândia D’Oeste | 1703.008 | 15679 | 97.5 | 0.643 | 16.95 | 26762.31 | 14 | Grupo 1 |
| 18 | Presidente Médici | 1758.465 | 19327 | 96.9 | 0.664 | 10.20 | 30827.94 | 18 | Grupo 2 |
| 22 | Vilhena | 11699.150 | 95832 | 97.8 | 0.731 | 13.75 | 40328.81 | 22 | Grupo 2 |
| 40 | Monte Negro | 1931.378 | 11548 | 93.5 | 0.607 | 36.14 | 24129.89 | 40 | Grupo 3 |
| 38 | Ministro Andreazza | 798.083 | 6466 | 95.5 | 0.638 | NA | 31484.85 | 38 | Grupo 3 |
| 47 | Seringueiras | 3773.505 | 11171 | 95.9 | 0.598 | 10.70 | 28109.66 | 47 | Grupo 4 |
| 46 | São Francisco do Guaporé | 10948.593 | 16286 | 95.7 | 0.611 | 24.48 | 23143.16 | 46 | Grupo 4 |
As amostragens aleatórias simples, estratificadas e conglomeradas são técnicas fundamentais na estatística e na pesquisa por suas capacidades de fornecer representatividade e precisão nas estimativas de populações maiores. Entretanto, cada técnica de amostragem tem suas vantagens e aplicações específicas pois em alguns casos algumas dessas técnicas ofertam resultados menos precisos e não compensa, já em outros é mais compensatório devido ao baio gasto e facilidade na implementação, em todo caso, uma técnica será boa ou ruim dependendo da natureza da população, dos objetivos da pesquisa e das restrições logísticas. A escolha correta da técnica de amostragem pode garantir que os resultados da pesquisa sejam válidos, confiáveis e generalizáveis para a população de interesse, fornecendo meios para tomadas de decisões e formulações de políticas.
IBGE, disponível em: https://www.ibge.gov.br/cidades-e-estados/ro.html. Acesso em 28 de jun. de 2024.
Atlas Socioeconômico Rio Grande do Sul, Índice de Desenvolvimento Humano (IDH e IDHM), disponível em: https://atlassocioeconomico.rs.gov.br/indice-de-desenvolvimento-humano-idh-e-idhm. Acesso em 28 de jun. de 2024.
Essência da Ciência. Técnicas de Amostragem. YouTube, 26 de mar. de 2020. 30:29, disponível em: https://www.youtube.com/watch?v=rXy8-prjocQ. Acesso em 28 de jun. de 2024.
Microsoft Excel, disponível em: https://www.office.com/launch/excel?wdOrigin=MARKETING.EXCEL.SIGNIN&auth=1. Acesso em 28 de jun. de 2024.
RStudio Desktop, posit, disponível em: https://posit.co/download/rstudio-desktop/. Acesso em 07 de dez. de 2023.
The Comprehensive R Archive Network, CRAN, disponível em: https://cran-r.c3sl.ufpr.br/. Acesso em 07 de dez. de 2023.
# Biblioteacas usadas:
library(readxl)
library(ggplot2)
library(knitr)
library(dplyr)
NomesAlunos <- as.data.frame(c("Eduarda", "Nailton", "Danielly", "Lucas", "Adriano", "Allan", "Marcos", "Marília", "Alessandro", "Carlos", "Vinicius", "Keroly", "Artur", "Milena",
"Grazielly", "Naira", "Deyze", "Williane", "Giuliano", "Gustavo", "Renata", "Renan", "Davi", "Mayza", "Samuel", "Rafael", "Samara", "Gabriel", "Ramon", "Maria da Guia"))
str(NomesAlunos)
preparAmostraExemploSR <- sample(1:nrow(NomesAlunos), size = 10, replace=F)
amostraAleaExemploSR <- NomesAlunos[preparAmostraExemploSR, ]
amostraAleaExemploSRTrans <- t(amostraAleaExemploSR)
kable(amostraAleaExemploSRTrans)
preparAmostraExemploCR <- sample(1:nrow(NomesAlunos), size = 10, replace=T)
amostraAleaExemploCR <- NomesAlunos[preparAmostraExemploCR, ]
amostraAleaExemploCRTrans <- t(amostraAleaExemploCR)
kable(amostraAleaExemploCRTrans)
nomexlsx <- "DadosRO.xlsx"
Dadoslidos <- read_excel(nomexlsx, sheet = 1)
dados <- as.data.frame(Dadoslidos)
dados$Mortalidade <- as.numeric(dados$Mortalidade)
str(dados)
preparAmostra <- sample(1:nrow(dados), size = 13, replace=F)
amostraAlea <- dados[preparAmostra, ]
kable(amostraAlea)
# Classificação através de cut():
niveisIDHM <- dados %>%
mutate(Classificacao = cut(IDHM,
breaks = c(-Inf, 0.5, 0.6, 0.7, 0.8, Inf),
labels = c("Muito Baixo", "Baixo", "Medio", "Alto", "Muito alto"),
include.lowest = TRUE))
# Iniciando uma lista para guardar os dados amostrados e estratificados:
amostraEstraSR <- list()
# Definingo o tamanho de amostra em 5 por cada estrato:
amostraTamanEstraSR <- 5
# Usando for() para cada nível da variável de estratificação:
for (nivel in unique(niveisIDHM$Classificacao)) {
# Obter os índices das linhas correspondentes ao estrato atual
indicesAmosEstra <- which(niveisIDHM$Classificacao == nivel)
# Amostrando aleatoriamente do estrato atual:
dadoAmostradinho <- niveisIDHM[sample(indicesAmosEstra, size = amostraTamanEstraSR, replace = FALSE), ]
# Adicionando a amostra do estrato à lista final:
amostraEstraSR <- rbind(amostraEstraSR, dadoAmostradinho)
}
kable(amostraEstraSR)
# Histograma das classificações de IDHMs:
ggplot(niveisIDHM, aes(x = Classificacao, fill = Classificacao)) +
geom_bar() +
labs(title = "Histograma das Classificações de IDHM em Rondônia",
x = "Classificação de IDHM",
y = "Frequência") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
dadosCongoAlea <- as.data.frame(dados)
# Adicionando uma nova coluna de 1 a 52:
dadosCongoAlea$Numeracao <- c(1:52)
# Nota: como já sabemos que 52 é número divisível por 4 a divisão foi realizada deste modo.
# Divisão em 4 partes simétricas através de cut():
dadosCongoAleaCate <- dadosCongoAlea %>%
mutate(Classificacao = cut(Numeracao,
breaks = c(-Inf, 14, 27, 40, Inf),
labels = c("Grupo 1", "Grupo 2", "Grupo 3", "Grupo 4"),
include.lowest = TRUE))
# Iniciando uma lista para guardar os dados amostrados e conglomerados:
amostraCongoSR <- list()
# Definindo o tamanho de amostra em 2 por cada conglomerado sorteado:
amostraTamanCongoSR <- 2
# Usando for() para cada nível da variável de conglomeração:
for (nivel in unique(dadosCongoAleaCate$Classificacao)) {
# Obter os índices das linhas correspondentes a conglomeração atual
indicesAmosCongo <- which(dadosCongoAleaCate$Classificacao == nivel)
# Amostrando aleatoriamente do conglomerado atual:
dadosAmostrados <- dadosCongoAleaCate[sample(indicesAmosCongo, size = amostraTamanCongoSR, replace = FALSE), ]
# Adicionando a amostra do conglomerado à lista final:
amostraCongoSR <- rbind(amostraCongoSR, dadosAmostrados)
}
# Exibindo tabela:
kable(amostraCongoSR)