O presente documento tem como finalidade analisar os dados do
Estado do Piauí, disponibilizados pelo Instituto Brasileiro de Geografia
e Estatística - IBGE
Este relatório apresenta uma análise exploratória de
dados com foco em examinar a relação entre a mortalidade infantil, o
Índice de Desenvolvimento Humano Municipal (IDHM) e a escolarização no
Estado do Piauí. A análise exploratória de dados (AED) permite entender
melhor as características dos dados disponíveis e identificar padrões
importantes. Além disso, medidas de variação e dispersão serão aplicadas
para compreender a distribuição dos dados. Técnicas estatísticas, como
gráficos de dispersão e correlações, serão utilizadas para testar a
hipótese de uma relação entre MI, IDHM e ESC (Siglas utilizadas no banco
de dados).
O Índice de Desenvolvimento Humano (IDH) é medido através de uma média controlada de três componentes necessários como a saúde, educação e renda. Cada um desses componentes recebe a mesma importância na fórmula, refletindo a visão de que todos são igualmente vitais para assegurar o progresso humano da população. A taxa de mortalidade infantil representa a medida de crianças que não sobrevivem ao seu primeiro ano de vida, para cada mil nascidos vivos, em uma população específica e durante um período de tempo definido. O índice de escolarização, é a proporção de indivíduos de um grupo etário específico que estão matriculados na escola em comparação com o número total de indivíduos na mesma faixa etária.
O Índice de Desenvolvimento Humano Municipal (IDHM), sendo uma medida abrangente do bem-estar humano, pode influenciar tanto a mortalidade infantil quanto a escolarização. Uma alta taxa de mortalidade infantil pode indicar problemas de saúde na população, o que pode afetar negativamente o IDHM. Da mesma forma, uma baixa taxa de escolarização pode indicar falta de acesso à educação, o que também pode reduzir o IDHM. Por outro lado, um alto IDHM pode indicar boas condições de saúde e acesso à educação, o que pode levar a uma baixa taxa de mortalidade infantil e uma alta taxa de escolarização. A análise em conjunto das variáveis é fundamental para compreender a situação socioeconômica dos municípios do Estado do Piauí.
Analisar os dados disponíveis e aplicar técnicas estatísticas
adequadas para testar a hipótese da relação entre a mortalidade
infantil, o Índice de Desenvolvimento Humano Municipal (IDHM) e a
escolarização no Estado do Piauí.
Investigar a associação entre a mortalidade infantil, o IDHM e a
escolarização no Estado do Piauí, e entender como esses fatores se
inter-relacionam e influenciam uns aos outros.
Analisar os dados sobre a mortalidade infantil, o IDHM e a escolarização no estado do Piauí;
Aplicar técnicas estatísticas adequadas para avaliar a relação entre essas variáveis;
Evidenciar pontos de melhoria em áreas específicas de preocupação.
Os dados utilizados nesta análise foram coletados de fonte
oficial e referem-se a indicadores municipais do Estado do Piauí. A
preparação dos dados incluiu a verificação de valores ausentes, que
foram imputados utilizando a técnica de Imputação Múltipla com Cadeias
(MICE) com o método Predictive Mean Matching (PMM). A análise
exploratória de dados (AED) foi realizada por meio de tabelas
descritivas e gráficos de dispersão. Além disso, foi utilizado a
correlação de Pearson para testar a relação entre as variáveis. Para
complementar, modelos de regressão linear múltipla foram ajustados para
avaliar o impacto do IDHM e da escolarização na mortalidade
infantil.
A importação dos dados foi realizada a partir de um arquivo Excel
chamado “piaui.xlsx” usando a biblioteca readxl.
1.library(readxl): Esta linha carrega a biblioteca
readxl, que é necessária para ler arquivos Excel no R.
2.meuxlsx <- "piaui.xlsx": O nome do arquivo Excel é
atribuído à variável meuxlsx.
3.Dados <- read_excel(path = meuxlsx, sheet = 1):
Esta linha lê os dados do arquivo Excel. A função
read_excel() é usada para isso. O
path = meuxlsx especifica o caminho do arquivo Excel a ser
lido. sheet = 1 especifica que a leitura deve ser feita na
primeira planilha do arquivo Excel, vale lembrar que planilhas são
numeradas começando de 1.
4.dados <- as.data.frame(Dados): Esta linha converte
o objeto retornado por read_excel(), que é um tibble, em um
data.frame R clássico. Isso é útil porque
data.frame é um tipo de estrutura de dados mais amplamente
utilizado em R, compatível com muitas outras funções e pacotes.
Os dados utilizados foram obtidos do IBGE e abrangem 224 observações de municípios do Estado do Piauí, com 11 variáveis no total, incluindo mortalidade Infantil(MI), Índice de Desenvolvimento Humano Municipal(IDHM) e escolarização(ESC).
Durante a análise inicial, foi identificado que a coluna de mortalidade infantil (MI) possuía 67 dados ausentes, representando cerca de 30% das observações. Para lidar com esses dados ausentes, aplicamos a técnica de imputação múltipla usando o método de regressão preditiva (Predictive Mean Matching - PMM) com cinco conjuntos de dados imputados.
| Municipio | Prefeito [2021] | AT | PR | DD | ESC | IDHM | RR | DE | PIB | MI | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 157 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 67 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 67 | 67 |
Nesta tabela:
As duas primeiras linhas representam padrões diferentes de presença (1) e ausência (0) de dados para cada variável no conjunto de dados. A última linha indica o número de observações com dados ausentes para cada variável.
A variável “MI” possui 67 observações com dados ausentes. Todas as outras variáveis (Municipio, Prefeito [2021], AT, PR, DD, ESC, IDHM, RR, DE, PIB) têm todos os dados presentes (valor 1) nas duas primeiras linhas.
Tabela 1. Dados faltantes.
## Dados faltantes: 67
Tabela 2. Dados faltantes por coluna.
## Dados faltantes por coluna:
## Municipio Prefeito [2021] AT PR DD
## 0 0 0 0 0
## ESC IDHM MI RR DE
## 0 0 67 0 0
## PIB
## 0
Justificativa para a escolha do método de imputação:
1.Calculando o percentual dos dados ausentes na coluna mortalidade infantil (MI), temos:
\[
\text{Percentual} = \left( \frac{\text{Número de dados
ausentes}}{\text{Total de observações na coluna}} \right) \times 100\%
\]
Substituindo pelos valores observados:
\[
\text{Percentual} = \left( \frac{67}{224} \right) \times 100\% = 29.91\%
\]
2.Avaliando o impacto:
Após o calculo do percentual é observado quase 30% de dados ausentes,
logo a remoção não é uma opção, tendo em vista que pode afetar
significativamente a análise, sendo necessário considerar outras
estratégias, como preenchimento de dados nulos ou imputação.
Imputação de dados:
Dada a situação, onde a coluna de mortalidade infantil (MI) possui aproximadamente 30% de dados ausentes em um total de 224 observações, e considerando que o objetivo de analisar a relação entre a mortalidade infantil, o Índice de Desenvolvimento Humano Municipal (IDHM) e a escolarização no Estado do Piauí, a imputação múltipla é uma escolha robusta e recomendada. A escolha da imputação múltipla foi devido à sua capacidade de preservar a variabilidade dos dados e de incorporar a incerteza associada aos valores imputados. O método PMM(Predictive Mean Matching) é adequado para lidar com diferentes tipos de dados e para fornecer estimativas realistas.
Comparação entre dados originais e imputados:
Para garantir a eficácia da imputação, foi realizada uma comparação entre os dados antes e depois da imputação.
Tabela 3. Dados antes e depois da imputação.
## Variavel Media_Original Media_Imputado
## MI MI 21.8391083 21.8769643
## IDHM IDHM 0.5710491 0.5710491
## ESC ESC 97.5455357 97.5455357
Gráfico 2.Histogramas para comparação.
As estatísticas descritivas da variável Mortalidade Infantil(MI) também foram calculadas antes e depois da imputação:
Tabela 4.Mortalidade Infantil(MI) antes da imputação.
## media mediana desvio_padrao
## 1 21.83911 16.95 13.55441
Tabela 5.Mortalidade Infantil(MI) depois da imputação.
## media mediana desvio_padrao
## 1 21.87696 17.46 12.94538
Observações:
Média e Mediana: Ambos os valores da média e da mediana mostram pequenas mudanças após a imputação. A média passou de 21.83911 para 21.87696, e a mediana aumentou de 16.95 para 17.46. Isso sugere que, em termos centrais (tendência central), os dados não foram drasticamente alterados pela imputação.
Desvio Padrão: O desvio padrão diminuiu de 13.55441 para 12.94538 após a imputação. Isso indica que houve uma redução na dispersão dos dados imputados em comparação com os dados originais.
Com base nas estatísticas descritivas(média, mediana e desvio padrão) apresentadas, parece que a imputação foi razoavelmente bem-sucedida em manter a consistência e a estrutura dos dados originais. A redução no desvio padrão pode ser esperada em muitos casos de imputação, especialmente se os dados ausentes estavam relacionados a valores extremos que foram imputados com valores mais próximos da média.
Utilização dos dados imputados:
Após o processo de imputação, irá ser utilizado os dados completados para todas as análises subsequentes neste relatório. Essa abordagem garante que as análises descritiva e exploratória, bem como os testes estatísticos, sejam realizados com o conjunto de dados mais completo e representativo possível.
| Estatística | MI | IDHM | ESC |
|---|---|---|---|
| Média | 21.87696 | 0.5710491 | 97.545536 |
| Mediana | 17.46000 | 0.5650000 | 97.800000 |
| Desvio Padrão | 12.94538 | 0.0401010 | 1.659779 |
| Mínimo | 3.45000 | 0.4850000 | 84.700000 |
| Máximo | 63.83000 | 0.7510000 | 100.000000 |
Visualizações Gráficas:
Gráfico 3.Histogramas das variáveis de interesse.
Gráfico 4.Boxplots das variáveis de interesse.
Análise de Correlação:
Gráfico 5.Correlação de Pearson.
A matriz de correlação de Pearson fornece uma medida de como as variáveis estão linearmente relacionadas umas com as outras. Coeficientes próximos de 1 ou -1 indicam uma relação mais forte, enquanto coeficientes próximos de 0 indicam uma relação mais fraca ou ausência de relação.
## MI IDHM ESC
## MI 1.00000000 -0.1442439 -0.05088089
## IDHM -0.14424393 1.0000000 0.17345984
## ESC -0.05088089 0.1734598 1.00000000
MI vs IDHM: Correlação de -0.1442. Isso indica uma correlação negativa muito fraca entre mortalidade infantil e Índice de Desenvolvimento Humano Municipal. Ou seja, à medida que o IDHM aumenta, a tendência é que a mortalidade infantil diminua, mas a correlação é muito fraca.
MI vs ESC: Correlação de -0.0509. Também é uma correlação negativa muito fraca entre mortalidade infantil e escolarização. Não há uma relação linear forte entre essas variáveis.
IDHM vs ESC: Correlação de 0.1735. Há uma correlação positiva fraca entre Índice de Desenvolvimento Humano Municipal e escolarização. Isso sugere que, em geral, áreas com maiores índices de desenvolvimento humano tendem a ter níveis mais altos de escolarização, mas a relação não é forte.
A seguir, são apresentados os resultados da análise
exploratória de dados. Os resultados desta análise fornecem conclusões
baseadas nos dados disponibilizados, podendo variar se considerarmos
fatores não incluídos neste estudo.
Variável Dependente: Mortalidade Infantil (MI).
Variáveis Independentes: Índice de Desenvolvimento Humano Municipal (IDHM) e a Escolarização (ESC).
O IDHM é classificado muito baixo quando resulta em (0 à 0,499), baixo (0,5 à 0,599), médio (0,6 à 0,699), alto (0,7 à 0,799) e muito alto (0,8 à 1)
Gráfico 6. Apresentação de 20 municípios com Índice de Desenvolvimento Humano (IDH) baixo no estado do Piauí.
Gráfico 7. Apresentação de 20 municípios com Índice de Desenvolvimento Humano (IDH) alto no estado do Piauí.
Os histogramas da mortalidade infantil(MI), Índice de Desenvolvimento
Humano Municipal (IDHM) e escolarização (ESC) mostram a distribuição
dessas variáveis.
Gráfico 8. Histograma da mortalidade infantil
O histograma (MI) apresenta a distribuição das taxas de mortalidade infantil (MI). A distribuição é inclinada para a direita, o que indica que a maioria dos municípios tem uma taxa de mortalidade infantil menor, enquanto poucos municípios têm uma taxa de mortalidade infantil muito alta, ou seja, é um problema significativo em alguns Municípios, não em todos.
Gráfico 9. Histograma do IDHM
O histograma do IDHM (Índice de Desenvolvimento Humano Municipal) apresenta a frequência mais alta em torno de 0,6, ou seja, a maioria dos municípios nesta área tem um valor de IDHM de cerca de 0,6. Os valores de IDHM variam de cerca de 0,5 à 0,7, dessa forma, entende-se que a maioria dos municípios nesta área tem um nível moderado de desenvolvimento humano.
Gráfico 10. Histograma da escolarização
O histograma da escolarização apresenta que a maioria dos municípios desta amostra tem um alto nível de escolaridade.
Os gráficos de dispersão de mortalidade infantil(MI) versus Índice de Desenvolvimento Humano Municipal(IDHM), e mortalidade infantil(MI) versus escolarização (ESC) mostram a relação entre essas variáveis. O gráfico de dispersão de mortalidade infantil versus IDHM mostra uma tendência decrescente, isso pode indicar que municípios com maior IDHM tendem a ter menor mortalidade infantil. Da mesma forma, a relação entre mortalidade infantil e escolarização pode ser explorada.
Gráfico 11. Dispersão de MI versus IDHM
A distribuição dos pontos no gráfico sugere uma correlação negativa entre o IDHM e a mortalidade infantil (MI). Isso significa que, em geral, quanto maior o IDHM (indicando um maior nível de desenvolvimento humano), menor é a mortalidade infantil, ou seja, municípios com maior desenvolvimento humano tendem a ter taxas de mortalidade infantil mais baixas.
Gráfico 12. Dispersão de MI versus ESC
A distribuição dos pontos no gráfico sugere uma correlação negativa entre a Escolarização (ESC) e a Mortalidade Infantil (MI). Isso significa que, em geral, quanto maior a Escolarização (ESC), menor é a Mortalidade Infantil (MI), ou seja, municípios com maior nível de educação tendem a ter taxas de mortalidade infantil mais baixas.
A regressão linear múltipla é uma técnica estatística fundamental que explora as relações entre uma variável dependente e múltiplas variáveis independentes. Utilizada neste estudo para investigar a relação entre mortalidade infantil e variáveis socioeconômicas como o Índice de Desenvolvimento Humano Municipal (IDHM) e a taxa de escolarização (ESC) no estado do Piauí.
##
## Call:
## lm(formula = MI ~ IDHM + ESC, data = dados_imputados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.085 -8.552 -3.944 7.402 42.060
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.900 50.755 1.338 0.182
## IDHM -45.072 21.811 -2.066 0.040 *
## ESC -0.208 0.527 -0.395 0.694
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.86 on 221 degrees of freedom
## Multiple R-squared: 0.0215, Adjusted R-squared: 0.01264
## F-statistic: 2.427 on 2 and 221 DF, p-value: 0.09061
O modelo de regressão linear múltipla ajustado foi especificado como:
\[
\text{MI} = \beta_0 + \beta_1 \cdot \text{IDHM} + \beta_2 \cdot
\text{ESC} + \epsilon
\]
onde:
O modelo apresentou os seguintes resultados:
Estimate para o
intercepto foi 67.900, com um erro padrão de 50.755. O valor do
coeficiente não foi estatisticamente significativo (p = 0.182),
indicando que não há evidências suficientes para rejeitar a hipótese
nula de que o intercepto é igual a zero.1.IDHM (Índice de Desenvolvimento Humano Municipal): O coeficiente estimado foi −45.072. Isso sugere que, para cada aumento unitário no IDHM, a mortalidade infantil diminui em média 45.072 unidades, mantendo-se constante o efeito da Escolarização (ESC).
2.Erro Padrão (Std. Error): O erro padrão da estimativa para o IDHM foi 21.811.Este valor mede a precisão da estimativa do coeficiente de regressão. Um erro padrão menor indica uma estimativa mais precisa e confiável do efeito do IDHM sobre a mortalidade infantil.
3.Valor t (t value): O valor t para o coeficiente de IDHM foi −2.066. Esse valor é calculado como o coeficiente de regressão dividido pelo erro padrão e é usado para testar a hipótese nula de que o coeficiente é igual a zero.
4.Valor p (Pr(>|t|)): O valor p associado ao IDHM foi 0.040.Esta é a probabilidade de obter um valor t tão extremo ou mais extremo, considerando que a hipótese nula (o coeficiente de regressão é igual a zero) é verdadeira. Como o valor p é menor que o nível de significância usual de 0.05, podemos rejeitar a hipótese nula e concluir que o IDHM tem um efeito significativo sobre a mortalidade infantil no estado do Piauí.
5.Escolarização (ESC): Em contraste, o coeficiente estimado para ESC foi −0.208, com um valor t de −0.395 e um valor p de 0.694.Isso indica que não há evidências suficientes para rejeitar a hipótese nula para ESC, ou seja, a escolarização não teve um efeito significativo sobre a mortalidade infantil no modelo ajustado.
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 67.900 | 50.755 | 1.338 | 0.182 |
| IDHM | -45.072 | 21.811 | -2.066 | 0.040 |
| ESC | -0.208 | 0.527 | -0.395 | 0.694 |
Gráfico de dispersão com uma linha de melhor ajuste para cada par de
variáveis.
Gráfico 13. Dispersão com uma linha do IDHM versus
MI
Existem alguns pontos que se desviam significativamente da linha de melhor ajuste em azul. Esses pontos são Valores atípicos (outliers), em outras palavras, existem outros fatores não considerados neste gráfico que podem estar influenciando a mortalidade infantil.
Gráfico 14. Dispersão com uma linha de ESC versus MI
A linha de melhor ajuste inclina-se para baixo da esquerda para a direita e os pontos de dados estão espalhados ao redor dessa linha com uma maior concentração de pontos no canto inferior esquerdo do gráfico, ou seja, à medida que a escolarização aumenta, a mortalidade infantil diminui.
Portanto, a análise dos dados indica que o Piauí possui um IDHM médio, e evidencia a elevada taxa de mortalidade infantil. Embora a taxa de escolarização esteja acima da média nacional, ainda existem desafios a serem superados para aprimorar o desenvolvimento humano e diminuir a mortalidade infantil. Com base nesta análise, o Índice de Desenvolvimento Humano Municipal (IDHM) parece ter um impacto significativo na mortalidade infantil, enquanto a educação não parece ter o mesmo efeito. Vale ressaltar, que é fundamental interpretar os resultados de uma análise de correlação com prudência. Embora possamos identificar relações entre as variáveis, isso não nos permite concluir definitivamente sobre relações de causa e efeito. Essas conclusões geralmente requerem experimentos controlados ou análises mais profundas. Além disso, durante a análise, foi identificado um número significativo de dados ausentes na variável de interesse mortalidade infantil (MI), e para lidar com isso, utilizou-se a técnica de Imputação Múltipla com Cadeias (MICE) com o método Predictive Mean Matching (PMM), que ajudou a preencher os dados ausentes de maneira estatisticamente robusta. No entanto, a imputação de dados pode introduzir incertezas adicionais, e os resultados devem ser interpretados com cautela. Esses resultados destacam a importância de políticas públicas focadas em melhorar a educação e o desenvolvimento humano para reduzir a mortalidade infantil.
DA SILVA, Fernando. Análise exploratória de dados com o gráfico de histograma Acesso em: 23 de junho de 2024
Iberdrola. O que é o Índice de Desenvolvimento Humano e por que se reduziu pela primeira vez desde 1990? Acesso em: 23 de junho de 2024
PERES, Fernanda.Canal YouTube: Estatística Aplicada à vida real Acesso em: 23 de junho de 2024
R, Curso.RPubs: O pacote ggplot2 Acesso em: 23 de junho de 2024
SAÚDE, Revista de Administração. Taxa de mortalidade infantil no Piauí e determinantes sociais Acesso em: 23 de junho de 2024
Storopoli & Vils, 2021. Dados faltantes. Acesso em: 21 de junho de 2024
UNIVERSIDADE FEDERAL DO PARANÁ. Análise exploratória de dados. Acesso em: 23 de junho 2024
ZEVIANI, Walmes. Visualização de Dados com ggplot2 Acesso em: 23 de junho de 2024
#Foi utilizado para desativar as mensagens, avisos e eco do código
#{r message=FALSE, warning=FALSE, echo=FALSE}
Gráfico 1. Visualização gráfica dos dados faltantes.
library(mice)
library(kableExtra)
library(readxl)
meuxlsx <- "piaui.xlsx"
Dados <- read_excel(path = meuxlsx, sheet = 1)
dados <- as.data.frame(Dados)
# Calcular padrão de dados ausentes
padrao_ausentes <- md.pattern(dados)
# Criar tabela formatada com tamanho reduzido
kable(padrao_ausentes, align = "c", digits = 1, format = "html") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "condensed"))
| Municipio | Prefeito [2021] | AT | PR | DD | ESC | IDHM | RR | DE | PIB | MI | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 157 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 67 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 67 | 67 |
Tabela 1. Dados faltantes.
library(readxl)
meuxlsx <- "piaui.xlsx"
Dados <- read_excel(path = meuxlsx, sheet = 1)
dados <- as.data.frame(Dados)
# Dados faltantes
cat("Dados faltantes: ", sum(is.na(dados)))
## Dados faltantes: 67
Tabela 2. Dados faltantes por coluna.
library(readxl)
meuxlsx <- "piaui.xlsx"
Dados <- read_excel(path = meuxlsx, sheet = 1)
dados <- as.data.frame(Dados)
cat("Dados faltantes por coluna:" )
## Dados faltantes por coluna:
colSums(is.na(dados))
## Municipio Prefeito [2021] AT PR DD
## 0 0 0 0 0
## ESC IDHM MI RR DE
## 0 0 67 0 0
## PIB
## 0
library(readxl)
library(tidyverse)
library(mice)
meuxlsx <- "piaui.xlsx"
Dados <- read_excel(path = meuxlsx, sheet = 1)
dados <- as.data.frame(Dados)
# Criando a coluna MI_imputado
dados$MI_imputado <- ifelse(is.na(dados$MI), "Imputado", "Original")
# Conversão de variáveis para numéricas (se necessário)
dados$MI <- as.numeric(dados$MI)
dados$IDHM <- as.numeric(dados$IDHM)
dados$ESC <- as.numeric(dados$ESC)
# Carregar o pacote necessário
library(mice)
# Aplicar imputação múltipla
imputed_data <- mice(dados, method = 'pmm', m = 5, seed = 123)
##
## iter imp variable
## 1 1 MI
## 1 2 MI
## 1 3 MI
## 1 4 MI
## 1 5 MI
## 2 1 MI
## 2 2 MI
## 2 3 MI
## 2 4 MI
## 2 5 MI
## 3 1 MI
## 3 2 MI
## 3 3 MI
## 3 4 MI
## 3 5 MI
## 4 1 MI
## 4 2 MI
## 4 3 MI
## 4 4 MI
## 4 5 MI
## 5 1 MI
## 5 2 MI
## 5 3 MI
## 5 4 MI
## 5 5 MI
## Warning: Number of logged events: 5
# Obter o dataset completado
dados_imputados <- complete(imputed_data)
library(stringr)
# Exemplo de limpeza de espaços em branco e caracteres especiais
dados$Municipio <- str_trim(dados$Municipio) # Remove espaços em branco no início e no final
# Verificar se há espaços em branco extras que precisam de remoção
dados$Municipio <- str_replace_all(dados$Municipio, "\\s+", " ") # Substitui múltiplos espaços em branco por um único espaço
Tabela 3. Dados antes e depois da imputação.
# Cálculo de médias
media_original <- sapply(dados %>% filter(MI_imputado == "Original"), function(x) mean(x, na.rm = TRUE))
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
media_imputada <- sapply(dados_imputados, function(x) mean(x, na.rm = TRUE))
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
## Warning in mean.default(x, na.rm = TRUE): argumento não é numérico nem lógico:
## retornando NA
# Calcular médias antes da imputação
media_original <- sapply(dados[, c("MI", "IDHM", "ESC")], function(x) mean(x, na.rm = TRUE))
# Calcular médias depois da imputação
media_imputada <- sapply(dados_imputados[, c("MI", "IDHM", "ESC")], function(x) mean(x, na.rm = TRUE))
# Criar dataframe com as médias
medias_df <- data.frame(
Variavel = c("MI", "IDHM", "ESC"),
Media_Original = media_original,
Media_Imputado = media_imputada
)
# Exibir o dataframe com as médias
print(medias_df)
## Variavel Media_Original Media_Imputado
## MI MI 21.8391083 21.8769643
## IDHM IDHM 0.5710491 0.5710491
## ESC ESC 97.5455357 97.5455357
Gráfico 2.Histogramas para comparação.
library(tidyverse)
library(mice)
library(VIM)
library(GGally)
library(DMwR)
library(gridExtra)
# Histogramas
par(mfrow = c(2, 1))
par(mar = c(4, 4, 2, 2)) # margens: inferior, esquerda, superior, direita
# Desenhar histogramas
hist(dados$MI[!is.na(dados$MI)], main = "Mortalidade Infantil (Sem dados imputados)", xlab = "MI", col = "blue", breaks = 20)
hist(dados_imputados$MI, main = "Mortalidade Infantil (Com dados imputados)", xlab = "MI", col = "green", breaks = 20)
Tabela 4.Mortalidade Infantil(MI) antes da imputação.
summary_antes <- dados %>%
summarise(
media = mean(MI, na.rm = TRUE),
mediana = median(MI, na.rm = TRUE),
desvio_padrao = sd(MI, na.rm = TRUE)
)
# Mostrar os resultados
print(summary_antes)
## media mediana desvio_padrao
## 1 21.83911 16.95 13.55441
Tabela 5.Mortalidade Infantil(MI) depois da imputação.
# Estatísticas descritivas - depois da imputação
summary_depois <- dados_imputados %>%
summarise(
media = mean(MI, na.rm = TRUE),
mediana = median(MI, na.rm = TRUE),
desvio_padrao = sd(MI, na.rm = TRUE)
)
# Mostrar os resultados
print(summary_depois)
## media mediana desvio_padrao
## 1 21.87696 17.46 12.94538
Tabela 6.Estatísticas descritivas das variáveis de interesse (MI, IDHM, ESC).
# Carregar os pacotes
library(dplyr)
library(kableExtra)
# Calcular estatísticas descritivas para MI, IDHM e ESC
desc_stats <- dados_imputados %>%
summarise(
MI_Media = mean(MI, na.rm = TRUE),
MI_Mediana = median(MI, na.rm = TRUE),
MI_Desvio_Padrao = sd(MI, na.rm = TRUE),
MI_Minimo = min(MI, na.rm = TRUE),
MI_Maximo = max(MI, na.rm = TRUE),
IDHM_Media = mean(IDHM, na.rm = TRUE),
IDHM_Mediana = median(IDHM, na.rm = TRUE),
IDHM_Desvio_Padrao = sd(IDHM, na.rm = TRUE),
IDHM_Minimo = min(IDHM, na.rm = TRUE),
IDHM_Maximo = max(IDHM, na.rm = TRUE),
ESC_Media = mean(ESC, na.rm = TRUE),
ESC_Mediana = median(ESC, na.rm = TRUE),
ESC_Desvio_Padrao = sd(ESC, na.rm = TRUE),
ESC_Minimo = min(ESC, na.rm = TRUE),
ESC_Maximo = max(ESC, na.rm = TRUE)
)
# Transformar os dados para uma forma longa (long format) para facilitar a visualização compacta
desc_stats_long <- data.frame(
Estatistica = c("Média", "Mediana", "Desvio Padrão", "Mínimo", "Máximo"),
MI = c(desc_stats$MI_Media, desc_stats$MI_Mediana, desc_stats$MI_Desvio_Padrao, desc_stats$MI_Minimo, desc_stats$MI_Maximo),
IDHM = c(desc_stats$IDHM_Media, desc_stats$IDHM_Mediana, desc_stats$IDHM_Desvio_Padrao, desc_stats$IDHM_Minimo, desc_stats$IDHM_Maximo),
ESC = c(desc_stats$ESC_Media, desc_stats$ESC_Mediana, desc_stats$ESC_Desvio_Padrao, desc_stats$ESC_Minimo, desc_stats$ESC_Maximo)
)
# Criar uma tabela compacta usando kableExtra
desc_stats_long %>%
kbl(caption = "",
col.names = c("Estatística", "MI", "IDHM", "ESC")) %>%
kable_styling(bootstrap_options = c("striped", "condensed"), full_width = F, position = "left") %>%
column_spec(1, bold = TRUE)
| Estatística | MI | IDHM | ESC |
|---|---|---|---|
| Média | 21.87696 | 0.5710491 | 97.545536 |
| Mediana | 17.46000 | 0.5650000 | 97.800000 |
| Desvio Padrão | 12.94538 | 0.0401010 | 1.659779 |
| Mínimo | 3.45000 | 0.4850000 | 84.700000 |
| Máximo | 63.83000 | 0.7510000 | 100.000000 |
Visualizações Gráficas:
Gráfico 3.Histogramas das variáveis de interese.
# Histogramas
par(mfrow = c(2, 3)) # Organiza os gráficos em 2 linhas e 3 colunas
hist(dados_imputados$MI, main = "Mortalidade Infantil", xlab = "MI", col = "blue", breaks = 20)
hist(dados_imputados$IDHM, main = "IDHM", xlab = "IDHM", col = "green", breaks = 20)
hist(dados_imputados$ESC, main = "Escolarização", xlab = "ESC", col = "red", breaks = 20)
Gráfico 4.Boxplots das variáveis de
interesse.
# Boxplots
par(mfrow = c(1, 3)) # Organiza os gráficos em 1 linha e 3 colunas
boxplot(dados_imputados$MI, main = "Mortalidade Infantil", col = "blue")
boxplot(dados_imputados$IDHM, main = "IDHM", col = "green")
boxplot(dados_imputados$ESC, main = "Escolarização", col = "red")
Análise de Correlação:
Gráfico 5.Correlação de Pearson.
# Calcular a matriz de correlação
cor_matrix <- cor(dados_imputados[, c("MI", "IDHM", "ESC")], use = "pairwise.complete.obs")
# Exibir a matriz de correlação
print(cor_matrix)
## MI IDHM ESC
## MI 1.00000000 -0.1442439 -0.05088089
## IDHM -0.14424393 1.0000000 0.17345984
## ESC -0.05088089 0.1734598 1.00000000
# Gráfico de heatmap da matriz de correlação
library(ggplot2)
library(reshape2)
cor_matrix_melted <- melt(cor_matrix)
ggplot(cor_matrix_melted, aes(Var1, Var2, fill = value)) +
geom_tile() +
labs(title = "Matriz de Correlação",
x = "Variável",
y = "Variável",
fill = "Correlação") +
theme_minimal()
Tabela 6. Visualização estruturada e completa dos dados
library(readxl)
meuxlsx <- "piaui.xlsx"
Dados <- read_excel(path = meuxlsx, sheet = 1)
dados <- as.data.frame(Dados)
library(rmarkdown)
paged_table(dados_imputados)
library(dplyr, warn.conflicts = FALSE)
library(ggplot2)
library(readxl)
library(dplyr)
library(broom)
# Carregando os dados
#O `meuxlsx` hospeda o arquivo excel(.xlsx)
meuxlsx <- "piaui.xlsx"
#O `Dados` ler o arquivo excel(.xlsx)
Dados <- read_excel(path = meuxlsx, sheet = 1)
#O `dados` recebe `Dados` e o transforma em tabela
dados <- as.data.frame(Dados)
#Função para mostrar o tipo da variável
Gráfico 6. Apresentação de 20 municípios com Índice de Desenvolvimento Humano (IDH) baixo no estado do Piauí.
# Carregue o pacote necessário
library(dplyr)
library(ggplot2)
# Ordena o dataframe 'dados' pela coluna 'IDHM' em ordem crescente e seleciona as primeiras 20 linhas
dados_IDHM_baixo <- dados_imputados %>% arrange(IDHM) %>% head(20)
# Cria um gráfico para os municípios com IDHM baixo
ggplot(data = dados_IDHM_baixo, aes(x = IDHM, y = Municipio, fill = IDHM)) +
geom_bar(stat = "identity", color = "white") +
scale_fill_gradient(low = "red", high = "orange") +
geom_text(aes(label = round(IDHM, 2)), hjust = 1.5) +
labs(title = "Municípios com IDHM baixo", x = "IDHM", y = "Municípios")
Gráfico 7. Apresentação de 20 municípios com Índice de Desenvolvimento Humano (IDH) alto no estado do Piauí.
# Ordena o dataframe 'dados' pela coluna 'IDHM' em ordem decrescente e seleciona as primeiras 20 linhas
dados_IDHM_alto <- dados_imputados %>% arrange(desc(IDHM)) %>% head(20)
# Cria um gráfico para os municípios com IDHM alto
ggplot(data = dados_IDHM_alto, aes(x = IDHM, y = Municipio, fill = IDHM)) +
geom_bar(stat = "identity", color = "white") +
scale_fill_gradient(low = "yellow", high = "green") +
geom_text(aes(label = round(IDHM, 2)), hjust = 1.5) +
labs(title = "Municípios com IDHM alto", x = "IDHM", y = "Municípios")
Gráfico 8. Histograma da mortalidade infantil
ggplot(dados_imputados, aes(x = MI)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Gráfico 9. Histograma do IDHM
ggplot(dados_imputados, aes(x = IDHM)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Gráfico 10. Histograma da escolarização
ggplot(dados_imputados, aes(x = ESC)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Gráfico 11. Dispersão de MI versus IDHM
ggplot(dados_imputados, aes(x = IDHM, y = MI)) + geom_point()
Gráfico 12. Dispersão de MI versus ESC
ggplot(dados_imputados, aes(x = ESC, y = MI)) + geom_point()
library(ggplot2)
library(readr)
library(dplyr)
library(broom)
# Regressão linear múltipla
# Isso ajustará um modelo de regressão linear múltipla aos dados
modelo <- lm(MI ~ IDHM + ESC, data = dados_imputados)
# Isso fornecerá um resumo do modelo, incluindo os coeficientes de regressão, o valor de R-quadrado e o valor-p
summary(modelo)
##
## Call:
## lm(formula = MI ~ IDHM + ESC, data = dados_imputados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.085 -8.552 -3.944 7.402 42.060
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.900 50.755 1.338 0.182
## IDHM -45.072 21.811 -2.066 0.040 *
## ESC -0.208 0.527 -0.395 0.694
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.86 on 221 degrees of freedom
## Multiple R-squared: 0.0215, Adjusted R-squared: 0.01264
## F-statistic: 2.427 on 2 and 221 DF, p-value: 0.09061
Tabela 7.Valor t, valor p e o intervalo de confiança para cada coeficiente de regressão.
# Carregar pacotes necessários
library(broom)
library(knitr)
library(kableExtra)
# Ajustar o modelo de regressão linear múltipla
modelo <- lm(MI ~ IDHM + ESC, data = dados_imputados)
# Obter o resumo do modelo com o comando tidy
summary_modelo <- tidy(modelo)
# Formatar a tabela usando kable e kableExtra
kable(summary_modelo, format = "html", digits = 3, align = "c") %>%
kable_styling(full_width = FALSE, bootstrap_options = "striped", font_size = 12)
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 67.900 | 50.755 | 1.338 | 0.182 |
| IDHM | -45.072 | 21.811 | -2.066 | 0.040 |
| ESC | -0.208 | 0.527 | -0.395 | 0.694 |
Gráfico de dispersão com uma linha de melhor ajuste para cada par de
variáveis.
Gráfico 13. Dispersão com uma linha do IDHM versus MI
ggplot(dados_imputados, aes(x = IDHM, y = MI)) + geom_point() + geom_smooth(method = "lm")
## `geom_smooth()` using formula = 'y ~ x'
Gráfico 14. Dispersão com uma linha de ESC versus MI
ggplot(dados_imputados, aes(x = ESC, y = MI)) + geom_point() + geom_smooth(method = "lm")
## `geom_smooth()` using formula = 'y ~ x'
#A biblioteca abaixo permite ler arquivos excel
library(readxl)
#A biblioteca ggplot2 fornece funções para criar gráficos
library(ggplot2)
#A biblioteca broom converte modelos estatísticos em formatos ordenados
library(broom)
#Define o nome do arquivo excel que será lido
meuxlsx <- "piaui.xlsx"
#Lê a primeira planilha do arquivo excel especificado e armazena os dados na variável "Dados"
Dados <- read_excel(path = meuxlsx, sheet = 1)
#Converte os dados lidos para um data frame, que é uma estrutura de dados tabular no R
dados <- as.data.frame(Dados)
#A biblioteca "rmarkdown" fornece funções para renderizar tabelas
library(rmarkdown)
#Renderiza a tabela de dados em um formato que pode ser visualizado em uma página estruturada
paged_table(dados)
#A biblioteca "dplyr" fornece funções para manipulação de dados
#O parâmetro warn.conflicts = FALSE suprime avisos sobre conflitos de nomes de funções
library(dplyr, warn.conflicts = FALSE)
#Ordena o dataframe 'dados' pela coluna 'IDHM' em ordem crescente e seleciona as primeiras 20 linhas
dados_IDHM_baixo <- dados %>% arrange(IDHM) %>% head(20)
#Cria um gráfico de barras para os municípios com IDHM baixo
#"aes" define as variáveis que serão usadas no gráfico
ggplot(data = dados_IDHM_baixo, aes(x = IDHM, y = Municipio, fill = IDHM)) +
#Adiciona as barras ao gráfico
geom_bar(stat = "identity", color = "white") +
#Define a cor das barras baseada no valor de 'IDHM'
scale_fill_gradient(low = "red", high = "green") +
#Adiciona rótulos de texto às barras
geom_text(aes(label = round(IDHM, 2)), hjust = 1.5) +
#Define os títulos do gráfico e dos eixos
labs(title = "Municípios com IDHM baixo", x = "IDHM", y = "Municípios")
#Ordena o dataframe 'dados' pela coluna 'IDHM' em ordem decrescente e seleciona as primeiras 20 linhas
dados_IDHM_alto <- dados %>% arrange(desc(IDHM)) %>% head(20)
#Cria um gráfico de barras para os municípios com IDHM alto
#"aes" define as variáveis que serão usadas no gráfico
ggplot(data = dados_IDHM_alto, aes(x = IDHM, y = Municipio, fill = IDHM)) +
#Adiciona as barras ao gráfico
geom_bar(stat = "identity", color = "white") +
#Define a cor das barras baseada no valor de 'IDHM'
scale_fill_gradient(low = "red", high = "green") +
#Adiciona rótulos de texto às barras
geom_text(aes(label = round(IDHM, 2)), hjust = 1.5) +
#Define os títulos do gráfico e dos eixos
labs(title = "Municípios com IDHM alto", x = "IDHM", y = "Municípios")
#Mortalidade infantil(MI)
#Fornece um resumo estatístico da coluna 'MI' do dataframe 'dados'
summary(dados$MI)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 3.45 12.82 16.95 21.84 28.57 63.83 67
#Índice de Desenvolvimento Humano Municipal(IDHM)
#Fornece um resumo estatístico da coluna 'IDHM' do dataframe 'dados'
summary(dados$IDHM)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4850 0.5467 0.5650 0.5710 0.5910 0.7510
#Escolarização(ESC)
#Fornece um resumo estatístico da coluna 'ESC' do dataframe 'dados'
summary(dados$ESC)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 84.70 96.90 97.80 97.55 98.60 100.00
#Mortalidade infantil(MI)
#Cria um histograma da coluna 'MI' do dataframe 'dados'
#"aes" define as variáveis que serão usadas no gráfico
#"geom_histogram" adiciona as barras ao histograma
ggplot(dados, aes(x = MI)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_bin()`).
#Índice de Desenvolvimento Humano Municipal(IDHM)
#Cria um histograma da coluna 'IDHM' do dataframe 'dados'
#"aes" define as variáveis que serão usadas no gráfico
#"geom_histogram" adiciona as barras ao histograma
ggplot(dados, aes(x = IDHM)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Escolarização(ESC)
#Cria um histograma da coluna 'ESC' do dataframe 'dados'
#"aes" define as variáveis que serão usadas no gráfico
#"geom_histogram" adiciona as barras ao histograma
ggplot(dados, aes(x = ESC)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Cria um gráfico de dispersão usando a biblioteca ggplot2
#ggplot(dados, aes(x = IDHM, y = MI)) define o conjunto de dados e mapeia as variáveis IDHM e MI para os eixos x e y, respectivamente
#geom_point() adiciona pontos ao gráfico, cada ponto representa uma observação no conjunto de dados
ggplot(dados, aes(x = IDHM, y = MI)) + geom_point()
## Warning: Removed 67 rows containing missing values or values outside the scale range
## (`geom_point()`).
#Cria um gráfico de dispersão usando a biblioteca ggplot2
#ggplot(dados, aes(x = ESC, y = MI)) define o conjunto de dados e mapeia as variáveis ESC e MI para os eixos x e y, respectivamente
#geom_point() adiciona pontos ao gráfico, cada ponto representa uma observação no conjunto de dados
ggplot(dados, aes(x = ESC, y = MI)) + geom_point()
## Warning: Removed 67 rows containing missing values or values outside the scale range
## (`geom_point()`).
#Regressão linear múltipla
#A função lm() é usada para ajustar modelos lineares
#MI ~ IDHM + ESC é a fórmula do modelo, onde MI é a variável dependente e IDHM e ESC são as variáveis independentes
#data = dados especifica o conjunto de dados a ser usado
modelo <- lm(MI ~ IDHM + ESC, data = dados)
#A função summary() é usada para obter um resumo do modelo
#Isso inclui os coeficientes de regressão, o valor de R-quadrado e o valor-p
summary(modelo)
##
## Call:
## lm(formula = MI ~ IDHM + ESC, data = dados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.999 -8.940 -3.696 7.512 41.450
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 91.4842 60.0688 1.523 0.1298
## IDHM -49.8101 25.1586 -1.980 0.0495 *
## ESC -0.4218 0.6222 -0.678 0.4988
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.43 on 154 degrees of freedom
## (67 observations deleted due to missingness)
## Multiple R-squared: 0.03106, Adjusted R-squared: 0.01848
## F-statistic: 2.468 on 2 and 154 DF, p-value: 0.08806
#A função tidy() da biblioteca broom é usada para obter um resumo limpo e arrumado do modelo de regressão
tidy(modelo)
## # A tibble: 3 × 5
## term estimate std.error statistic p.value
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 91.5 60.1 1.52 0.130
## 2 IDHM -49.8 25.2 -1.98 0.0495
## 3 ESC -0.422 0.622 -0.678 0.499
#Cria um gráfico de dispersão usando a biblioteca ggplot2
#ggplot(dados, aes(x = IDHM, y = MI)) define o conjunto de dados e mapeia as variáveis IDHM e MI para os eixos x e y, respectivamente
#geom_point() adiciona pontos ao gráfico, cada ponto representa uma observação no conjunto de dados
#geom_smooth(method = "lm") adiciona uma linha de melhor ajuste ao gráfico usando o método de mínimos quadrados (lm)
ggplot(dados, aes(x = IDHM, y = MI)) + geom_point() + geom_smooth(method = "lm")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 67 rows containing missing values or values outside the scale range
## (`geom_point()`).
#Cria um gráfico de dispersão usando a biblioteca ggplot2
#ggplot(dados, aes(x = ESC, y = MI)) define o conjunto de dados e mapeia as variáveis ESC e MI para os eixos x e y, respectivamente
#geom_point() adiciona pontos ao gráfico, cada ponto representa uma observação no conjunto de dados
#geom_smooth(method = "lm") adiciona uma linha de melhor ajuste ao gráfico usando o método de mínimos quadrados (lm)
ggplot(dados, aes(x = ESC, y = MI)) + geom_point() + geom_smooth(method = "lm")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 67 rows containing missing values or values outside the scale range
## (`geom_point()`).