O presente relatório pretende analisar os dados do estado do Rio Grande do Sul, abrangendo os seus municípios, e pôrá em análise os dados sobre a área territorial em quilômetros quadrados, a população, a densidade populacional em habitantes por quilômetro quadrado, a taxa de mortalidade infantil a cada 1.000 nascidos vivos e o PIB per capita (Produto interno bruto).
O estado do Rio Grande do Sul, possue uma área de 281.707,151 quilômetros quadrados de território, uma população de 10.882.965 habitantes, uma densidade de 38,63 habitantes por quilômetro quadrado, é o 3° estado com mais municípios do país com um total de 457 municípios, segundo o IBGE (Instituto Brasileiro de Pesquisa de Geografia e Estatística).
Exploraremos se há correlações, por exemplo, da possível relação entre as variáveis de densidade populacional e de PIB per capita, e também de área territorial e densidade populacional. Também analisaremos se os Municípios com baixas taxas de mortalidade podem indicar um bom desenvolvimento econômico enquanto que as altas taxas indicariam o oposto, isto é, se há uma correlação negativa. Usaremos para analisar as correlações o método de Pearson. Também faremos uma análise dos dados do Rio Grande do Sul, abrangendo todas as variáveis.
A metodologia utilizada neste estudo foi estruturada para analisar e
interpretar os dados socioeconômicos do estado do Rio Grande do Sul,
focando em variáveis como área territorial, população, densidade
populacional, mortalidade infantil e Produto Interno Bruto per capita
(PIB). Para analisar as correlações entre as variáveis, utilizamos
principalmente o método de correlação de Pearson, que é adequado para
verificar a direção e a força das relações lineares entre variáveis
quantitativas. Além disso, exploramos a correlação de Kendall para
verificar a consistência das relações em relação ao método de Pearson.
As visualizações foram geradas principalmente utilizando a biblioteca
ggplot2 no ambiente de programação estatística R. Os
gráficos de dispersão e boxplot foram empregados para identificar
padrões, tendências e outliers nos dados, proporcionando uma compreensão
visual das distribuições e relações entre as variáveis estudadas. Para
descrever as características centrais e a dispersão dos dados,
calculamos medidas estatísticas como média, mediana, mínimo, máximo e
quartis. Isso nos permitiu entender melhor a distribuição dos dados e
identificar pontos críticos, como valores extremos que poderiam
influenciar nas análises. Além das análises de correlação, realizamos
testes estatísticos para verificar a significância das relações
encontradas. Utilizamos testes de hipótese com intervalo de confiança de
95% (p < 0,05) para determinar se as correlações observadas eram
estatisticamente significativas.
Abaixo há a listagem das bibliotecas usadas para a pesquisa:
library(readxl)
library(ggplot2)
library(knitr)
library(corrplot)
library(kableExtra)
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
corrplot foi necessária para criar gráficos de correlação
entre as variáveis. A kableExtra foi necessária para gerar
tabelas com informações de estatística descritiva do dataframe. A
dplyr foi necessária para realizar operações de manipulação
e transformação dos dados.
Os dados aqui utilizados são sobre o Estado do Rio Grande do Sul e foram tirados diretamente do site oficial do Instituto Brasileiro de Geografia e Estatística (IBGE) em formato XLSX e abrangendo todas as UFs do Estado em questão. Antes da análise, os dados foram pré-processados, retirando antes traços no Excel para não atrapalhar o manuseio dos dados, e também foram retiradas no Excel algumas colunas que não seriam utilizadas para a finalidade deste relatório, como gentílico e código da cidade, entre outros.
## 'data.frame': 494 obs. of 6 variables:
## $ Municipio : chr "Aceguá" "Água Santa" "Agudo" "Ajuricaba" ...
## $ Territorio : num 1551 292 535 323 316 ...
## $ Populacao : num 4170 3912 16041 6720 6123 ...
## $ Densidade : num 2.69 13.42 30 20.83 19.35 ...
## $ Mortalidade: num 19.23 38.46 5.68 16.67 20.41 ...
## $ PIB : num 53518 92001 33039 46898 22721 ...
Território: área territorial em quilômetros quadrados (km²), fornece uma medida da extensão geográfica de cada município.
População: número total de habitantes em cada município, oferece uma compreensão do tamanho relativo de cada comunidade em cada município.
Densidade Populacional: calculada como o número de habitantes por quilômetro quadrado, esta variável permite uma análise da distribuição populacional em relação à área territorial de cada município.
Mortalidade: taxa de mortalidade infantil (a cada 1.000 nascidos vivos), indica o número de óbitos por mil habitantes entre as idades infanto-juvenil.
PIB per capita: produção econômica média por habitante em cada município, importante para avaliar o nível de prosperidade econômica e o padrão de vida local.
Como podemos ver no gráfico seguinte, ao que diz respeito ao Estado do Rio Grande do Sul, há baixas correlações entre as colunas citadas no gráfico, exceto a correlação entre a densidade populacional e o tamanho da população, onde possuem uma certa correlação positiva entre 0,4 e 0,6.
Agora, para vermos mais claramente os valores de correlação, analisaremos o gráfico a seguir que exibe os valores de cada correlação de colunas. Como podemos ver, as correlações entre as colunas são bastante fracas, exceto a correlação entre a densidade populacional e o tamanho da população que é o,56. A segunda maior correlação é entre o tamanho da população e a taxa de mortalidade infantil, que é uma correlação negativa de valor -0,20.
A seguir podemos ver um gráfico de dispersão mostrando, especificamente, a correlação entre a variável da população e a variável mortalidade infantil. Note que a correlação é bem fraca e negativa.
Agora que vimos essa baixa correlação entre população e mortalidade infantil, como sabemos que a maioria das correlações entre as variáveis do nosso dataframe possuem correlações próximas a zero e já vimos seus valores segundo o método de Pearson, veremos a seguir testes estatísticos para analisar se esses dados são significativos. Usamos aqui, para o teste dessa correlação população-mortalidade infantil, os métodos de Pearson e de Kendall (não utilizamos o de Spearman pois não é possível calcular aqui). Note que o “p-value” é muito baixo em ambos os métodos, um valor-p abaixo de 0,05 sugere que há evidências suficientes para rejeitar a hipótese nula de que não há correlação entre as variáveis na população maior, isso significa que há uma correlação estatisticamente significativa entre as variáveis na amostra analisada.
##
## Pearson's product-moment correlation
##
## data: dados_sem_faltar$Mortalidade and dados_sem_faltar$Populacao
## t = -3.1192, df = 227, p-value = 0.002048
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.32385842 -0.07506048
## sample estimates:
## cor
## -0.2027289
##
## Kendall's rank correlation tau
##
## data: dados_sem_faltar$Mortalidade and dados_sem_faltar$Populacao
## z = -11.778, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## -0.5233213
Agora daremos ênfase na correlação entre população e densidade, ao implementar um gráfico de dispersão para análise da correlação, que é mais forte que a anterior analisada e esta é positiva.
Realizando os mesmos testes (o de Pearson e o de Kendall), vemos que o valor-p é extremamente baixo, isso indica que há evidências estatísticas extremamente fortes para rejeitar a hipótese nula de que não há correlação entre a densidade e a população na população maior.
##
## Pearson's product-moment correlation
##
## data: dados$Densidade and dados$Populacao
## t = 16.003, df = 492, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.5239192 0.6402695
## sample estimates:
## cor
## 0.5850973
##
## Kendall's rank correlation tau
##
## data: dados$Densidade and dados$Populacao
## z = 11.574, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.3484149
Agora, analisemos algumas informações de estatística descritiva a respeito do nosso banco de dados do Estado do Rio Grande do Sul, o valor mínimo, o 1º Quartil, o valor mediano, o valor de média, o 3º Quartil e o valor máximo (observação, foi omitido os dados faltantes para evitar interferência nos valores). Depois veremos uma tabela mais estética para melhor visualização e análise.
## Municipio Territorio Populacao Densidade
## Length:229 Min. : 27.68 Min. : 1505 Min. : 2.69
## Class :character 1st Qu.: 168.49 1st Qu.: 6787 1st Qu.: 16.50
## Mode :character Median : 307.16 Median : 16013 Median : 30.22
## Mean : 844.00 Mean : 42357 Mean : 166.90
## 3rd Qu.: 933.63 3rd Qu.: 35768 3rd Qu.: 103.15
## Max. :7800.43 Max. :1332845 Max. :3112.48
## Mortalidade PIB
## Min. : 1.20 Min. : 13723
## 1st Qu.: 7.78 1st Qu.: 25228
## Median : 12.58 Median : 34864
## Mean : 17.05 Mean : 39132
## 3rd Qu.: 21.28 3rd Qu.: 46898
## Max. :111.11 Max. :241635
Com base no que foi fornecido pela função summary
podemos fazer cálculos sobre as modas do nosso dataframe e montar a
tabela a seguir, que nos fornece uma melhor visualização.
| Variável | Média | Moda | Mediana | Mínimo | Máximo | X1º.Quartil | X3º.Quartil |
|---|---|---|---|---|---|---|---|
| Território | 844.00 | 27.676 | 307.16 | 27.68 | 7800.43 | 168.49 | 933.63 |
| População | 42357.00 | 4461.000 | 16013.00 | 1505.00 | 1332845.00 | 6787.00 | 35768.00 |
| Densidade | 166.90 | 6.020 | 30.22 | 2.69 | 3112.48 | 16.50 | 103.15 |
| Mortalidade | 17.05 | 43.480 | 12.58 | 1.20 | 111.11 | 7.78 | 21.28 |
| PIB | 39132.00 | 13723.280 | 34864.00 | 13723.00 | 241635.00 | 25228.00 | 46898.00 |
Agora veremos uma tabela exibindo todas as medidas de disperção das variáveis de PIB, População, e Densidade. Não exporemos as medidas sobre a mortalidade infantil pois há muitos dados faltantes e ela é a única variável que possue dados faltantes. Em seguida, a análise.
| Medidas | PIB | População | Densidade |
|---|---|---|---|
| Amplitude | 228098.94 | 1331710 | 3110.98 |
| Variância | 619680107.20184 | 5470870318.62994 | 105825.74044 |
| Desvio Padrão | 24893.37477 | 73965.33187 | 325.30868 |
| Coeficiente de Variação | 0.6202 | 3.37092 | 3.55665 |
| Percentual de Coeficiente de Variação | 62.02% | 337.09% | 355.66% |
Amplitude do PIB (228098.94): indica que varia até em 228098.94 unidades monetárias entre o valor máximo e mínimo observado nos dados.
Variância do PIB (619680107.20184): mostra a tamanha dispersão dos valores do PIB em relação à média, ou seja, demonstra ampla variação de valores.
Desvio Padrão do PIB (24893.37477): exibe um desvio padrão alto que indica que os valores estão distantes da média.
Coeficiente de Variação do PIB (62.02%): a varialibilidade de 62.02% em relação à média indica uma variação razoável em relação à média.
Amplitude de População (1331710): indica que varia em até 1331710 habitantes entre o município com menor e maior população.
Variância de População (5470870318.62994): mostra a tamanha dispersão da quantidade de população em relação à média, ou seja, demonstra ampla variação de população entre os municípios.
Desvio Padrão de População (73965.33187): exibe um desvio padrão alto que indica que as quantidades de população estão distantes da média.
Coeficiente de Variação da População (337.09%): a varialibilidade de 337.09% indica uma alta variação em relação à média.
Amplitude de Densidade (3110.98): indica que varia em até 3110.98 habitantes por km² entre o menor e o maior valor observado nos municípios.
Variância de Densidade (105825.74044): mostra a dispersão da densidade de população em relação à média, ou seja, demonstra uma variação considerável de densidade entre os municípios.
Desvio Padrão de Densidade (325.30868): exibe um desvio padrão alto que indica que as densidades de população estão distantes da média.
Coeficiente de Variação de Densidade (355.66%): a varialibilidade de 355.66% indica uma alta variação em relação à média.
Vemos no gráfico boxplot acima a distribuição estatística dos dados ao tocante do PIB, fornecendo informações sobre dispersão, centralidade e a presença dos outliers. Note que a centralidade é uma parte baixa e os outliers são sempre acima dela.
Vemos agora, no gráfico boxplot acima, a distribuição estatística dos dados em relação a população, isto é, a dispersão, a centralidade e os outliers. Note que a centralidade aqui é mais fina mas também é uma parte baixa e os outliers são sempre acima dela, vale notar que há um outlier bem elevado em comparação aos demais.
Agora fitamos, no gráfico boxplot acima, a dispersão, a centralidade e os outliers da mortalidade infantil no Rio Grande do Sul.Perceba que a centralidade aqui é mais volumosa que a mostrada anteriormente porém não é tão baixa quanto, por isso os seus outliers poderiam estar acima ou abaixo dela, entretanto, só há outliers acima.
O presente relatório proporcionou uma análise abrangente dos dados do estado do Rio Grande do Sul, explorando variáveis essenciais como área territorial, população, densidade populacional, mortalidade infantil e PIB per capita. Pode-se afirmar que há uma correlação positiva moderada entre a densidade e a população nestes dados, não sendo uma relação devida ao acaso, conforme indicado pelo valor-p extremamente baixo. Utilizando medidas como média, mediana, mínimo, máximo e quartis, pudemos caracterizar adequadamente as variáveis estudadas. Por exemplo, observamos que o PIB per capita varia consideravelmente entre os municípios, com uma amplitude de R$ 228.098,94, refletindo grandes disparidades econômicas dentro do estado.
IBGE, disponível em: https://cidades.ibge.gov.br/brasil/rs/panorama. Acesso em 28 de jun. de 2024.
IBGE, disponível em: https://www.ibge.gov.br/cidades-e-estados/rs.html. Acesso em 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 28 de jun. de 2024.
The Comprehensive R Archive Network, CRAN, disponível em: https://cran-r.c3sl.ufpr.br/. Acesso em 28 de jun. de 2024.
# Bibliotecas usadas:
library(readxl)
library(ggplot2)
library(knitr)
library(corrplot)
library(kableExtra)
library(dplyr)
# Exportando os dados XLSX:
nomexlsx <- "RSData.xlsx"
Dadoslidos <- read_excel(nomexlsx, sheet = 1)
# Transformando em dataframe:
dados <- as.data.frame(Dadoslidos)
# Expondo tipo de variável (se é numérica ou caractere):
str(dados)
# Omitindo dados faltantes para evitar problemas nas correlações:
dados_sem_faltar = na.omit(dados)
# Retirando a coluna "Municipio" só para criar gráficos de correlação:
dados_sem_nomes <- dados_sem_faltar[, sapply(dados_sem_faltar, is.numeric)]
# Criando uma matriz para gráficos de correlação:
matriz_cor = cor(dados_sem_nomes)
# Criando o gráfico de correlação não-númerico de matrizes:
corrplot(matriz_cor)
# Criando o gráfico de correlação númerico de matrizes:
corrplot(matriz_cor, method = 'number')
# Criando um gráfico de correlação entre "Mortalidade" e "Populacao":
ggplot(dados_sem_faltar) +
geom_point(mapping = aes(x = Mortalidade, y = Populacao))
# Realizando um teste de correlação entre "Mortalidade" e "Populacao" com base em Pearson:
cor.test(dados_sem_faltar$Mortalidade, dados_sem_faltar$Populacao, method = 'pearson')
# Realizando um teste de correlação entre "Mortalidade" e "Populacao" com base em Kendall:
cor.test(dados_sem_faltar$Mortalidade, dados_sem_faltar$Populacao, method = 'kendall')
# Criando um gráfico de correlação entre "Densidade" e "Populacao":
ggplot(dados) +
geom_point(mapping = aes(x = Densidade, y = Populacao))
# Teste de correlação entre "Densidade" e "Populacao" com base em Pearson:
cor.test(dados$Densidade, dados$Populacao, method = 'pearson')
# Teste de correlação entre "Densidade" e "Populacao" com base em Kendall:
cor.test(dados$Densidade, dados$Populacao, method = 'kendall')
# Fazendo um sumário de dados_sem_faltar:
summary(dados_sem_faltar)
# Criando listas com base no que é visualizado no sumário:
territorio <- c(27.68, 168.49, 307.16, 844.00, 933.63, 7800.43)
populacao <- c(1505, 6787, 16013, 42357, 35768, 1332845)
densidade <- c(2.69, 16.50, 30.22, 166.90, 103.15, 3112.48)
mortalidade <- c(1.20, 7.78, 12.58, 17.05, 21.28, 111.11)
pib <- c(13723, 25228, 34864, 39132, 46898, 241635)
# Captando e armazenando a moda de cada variável do dataframe dados_sem_faltar:
modaTerri <- as.numeric(names(sort(table(dados_sem_faltar$Territorio), decreasing = TRUE)[1]))
modaPop <- as.numeric(names(sort(table(dados_sem_faltar$Populacao), decreasing = TRUE)[1]))
modaDensi <- as.numeric(names(sort(table(dados_sem_faltar$Densidade), decreasing = TRUE)[1]))
modaMort <- as.numeric(names(sort(table(dados_sem_faltar$Mortalidade), decreasing = TRUE)[1]))
modaPIB <- as.numeric(names(sort(table(dados_sem_faltar$PIB), decreasing = TRUE)[1]))
# Criando um dataframe para ser exibido em tabela e exibir descrições estatísticas:
tabelaDescri <- data.frame(
Variável = c("Território", "População", "Densidade", "Mortalidade", "PIB"),
Média = c(844.00, 42357, 166.90, 17.05, 39132),
Moda = c(modaTerri, modaPop, modaDensi, modaMort, modaPIB),
Mediana = c(307.16, 16013, 30.22, 12.58, 34864),
Mínimo = c(27.68, 1505, 2.69, 1.20, 13723),
Máximo = c(7800.43, 1332845, 3112.48, 111.11, 241635),
`1º Quartil` = c(168.49, 6787, 16.50, 7.78, 25228),
`3º Quartil` = c(933.63, 35768, 103.15, 21.28, 46898))
# Exibindo em tabela o dataframe tabelaDescri:
kable(tabelaDescri)
# Calculando a amplitude, variância, desvio padrão, média, coeficiente de variação e coeficiente de variação em porcentagem de PIB:
amplitudePIB <- range(dados$PIB)
amplitudeTotalPIB <- amplitudePIB[2] - amplitudePIB[1]
varianciaPIB <- round(var(dados$PIB), 5)
desvioPIB <- round(sd(dados$PIB), 5)
mediaPIB <- mean(dados$PIB)
coefiVariaPIB <- round((desvioPIB / mediaPIB), 5)
coVariaCalcuPIB <- round((desvioPIB / mediaPIB) * 100, 2)
coVariaPercentuPIB <- paste0(coVariaCalcuPIB, "%")
# Calculando a amplitude, variância, desvio padrão, média, coeficiente de variação e coeficiente de variação em porcentagem de Populacao:
amplitudePop <- range(dados$Populacao)
amplitudeTotalPop <- amplitudePop[2] - amplitudePop[1]
varianciaPop <- round(var(dados$Populacao), 5)
desvioPop <- round(sd(dados$Populacao), 5)
mediaPop <- mean(dados$Populacao)
coefiVariaPop <- round((desvioPop / mediaPop), 5)
coVariaCalcuPop <- round((desvioPop / mediaPop) * 100, 2)
coVariaPercentuPop <- paste0(coVariaCalcuPop, "%")
# Calculando a amplitude, variância, desvio padrão, média, coeficiente de variação e coeficiente de variação em porcentagem de Densidade:
amplitudeDensi <- range(dados$Densidade)
amplitudeTotalDensi <- amplitudeDensi[2] - amplitudeDensi[1]
varianciaDensi <- round(var(dados$Densidade), 5)
desvioDensi <- round(sd(dados$Densidade), 5)
mediaDensi <- mean(dados$Densidade)
coefiVariaDensi <- round((desvioDensi / mediaDensi), 5)
coVariaCalcuDensi <- round((desvioDensi / mediaDensi) * 100, 2)
coVariaPercentuDensi <- paste0(coVariaCalcuDensi, "%")
# Criando um dataframe para ser exibido em tabela para visualização das medidas de disperção:
tabelaGeral <- data.frame(
Medidas = c("Amplitude", "Variância", "Desvio Padrão", "Coeficiente de Variação", "Percentual de Coeficiente de Variação"),
PIB = c(amplitudeTotalPIB, varianciaPIB, desvioPIB, coefiVariaPIB, coVariaPercentuPIB),
População = c(amplitudeTotalPop, varianciaPop, desvioPop, coefiVariaPop, coVariaPercentuPop),
Densidade = c(amplitudeTotalDensi, varianciaDensi, desvioDensi, coefiVariaDensi, coVariaPercentuDensi))
# Exibindo em tabela o dataframe tabelaGeral:
kable(tabelaGeral)
# Elaborando um rol com base na densidade:
dadosdensicres <- dados[order(dados$Densidade, decreasing = TRUE),]
# Elaborando um rol com base no PIB:
dadospibcres <- dados[order(dados$PIB, decreasing = TRUE),]
# Criando um gráfico Boxplot de dados com base na variável PIB:
ggplot(dados, aes(y = PIB)) +
geom_boxplot(width = .75, fill = "#1F74B7", outlier.size = 1.8, outlier.shape = 16, outlier.colour = "#1F74B7", outlier.fill = "#1F74B7") +
xlab("") +
ylab("PIB") +
theme(legend.position = "none")
# Criando um gráfico Boxplot de dados_sem_faltar com base na variável Populacao:
ggplot(dados, aes(y = Populacao)) +
geom_boxplot(width = .75, fill = "#1F74B7", outlier.size = 1.8, outlier.shape = 16, outlier.colour = "#1F74B7", outlier.fill = "#1F74B7") +
xlab("") +
ylab("População") +
theme(legend.position = "none")
# Criando um gráfico Boxplot de dados_sem_faltar com base na variável Mortalidade:
ggplot(dados_sem_faltar, aes(y = Mortalidade)) +
geom_boxplot(width = .75, fill = "#1F74B7", outlier.size = 1.8, outlier.shape = 16, outlier.colour = "#1F74B7", outlier.fill = "#1F74B7") +
xlab("") +
ylab("Mortalidade") +
theme(legend.position = "none")