1 Descrição da tarefa.

  1. Baixar os dados municipais do Atlas do desenvolvimento humano no Brasil referente ao Censo de 2010 em http://www.atlasbrasil.org.br/2013/pt/download/ (Links para um site externo.) ou utilizar a base disponível na aula 3. O arquivo a ser baixado do site é atlas2013_dadosbrutos_pt.xlsx, o qual deve ficar somente com a planilha com dados dos municípios.

  2. Escolher uma UF para analisar. Deverá ser realizada uma regressão linear múltipla onde a variável resposta é IDHM de 2010 e como fatores (variáveis explicativas), devem ser escolhidos inicialmente 5 variáveis que você considere importante para o desenvolvimento humano, utilizando seus dados da base de 2000.

  3. Fazer uma análise descritiva destas variáveis explicativas e da variável resposta.

  4. Aplicar a análise de regressão linear múltipla inicial com as 5 variáveis explicativas escolhidas. Avaliar o modelo e verificar se pode ser melhorado com a retirada de variáveis não significativas. Rodar modelos com a(s) variável(is) não significativas.

  5. Entregar na forma de relatório que contenha:

  • introdução (explicar do que se trata a base de dados e o objetivo da análise)

  • procedimentos para a coleta (explicar como obteve os dados)

  • Procedimentos realizados (comentários sobre quais cálculos e análises estatísticas foram suadas)

  • Resultados da modelagem final, mostrando a equação obtida e incluindo as interpretações dos coeficientes da equação.

  • Conclusões finais (destaque sobre a qualidade final do modelo e sua utilidade).

2 Bibliotecas.

library(descr)
library(car)
library(carData)
library(sciplot)
library(tidyverse)
library(dplyr)
library(ggplot2)
library(GGally)
library(DT)
library(readxl)
library(xlsx)
library(relaimpo)
library(hrbrthemes)
library(corrr)
library(broom)
library(qgraph)

3 Regressão Linear Múltipla.

Etapas principais para a modelagem de regressão:

  1. Definir a variável dependente;

  2. Selecionar variáveis independentes;

  3. Coleta dos dados pareados das respectivas variáveis;

  4. Ajustar o modelo obtendo os coeficientes da equação e valor-p;

  5. Reavaliação das variáveis que permanecerão no modelo;

  6. Ajustar o modelo novamente com as variáveis definitivas, obtendo os coeficientes da equação e valor-p;

  7. Cálculo dos resíduos para avaliar o ajuste do modelo;

  8. Revisão para redefinição e possível transformação de variáveis para melhoria do ajuste do modelo;

  9. Interpretação do modelo ajustado (equação) e cálculos de previsão;

  10. Utilização da equação para predição da base que nao apresenta a variável resposta;

  11. Exportação dos dados gerados no modelo.

4 Tarefa - O IDH dos municípios brasileiros.

4.1 Introdução.

O Índice de Desenvolvimento Humano (IDHM) de 5.565 municípios brasileiros está disponível através da plataforma do Atlas do Desenvolvimento Humano no Brasil. Além do IDHM, o Atlas traz mais de 200 indicadores de demografia, educação, renda, trabalho, habitação e vulnerabilidade, com dados extraídos dos Censos Demográficos de 1991, 2000 e 2010. Todas essas informações estão organizadas por município brasileiro nas 27 Unidades da Federação, o seu conteúdo poder ser acessado através do link http://www.atlasbrasil.org.br/.

Os pesquisadores Mahbub ul Haq e Amartya Sen apresentaram em 1990 no Relatório do Desenvolvimento Humano do Programa das Nações Unidas para o Desenvolvimento o primeiro conceito de desenvolvimento humano, bem como sua medida. Esse índice reúne os três requisitos mais importantes para expansão das liberdades das pessoas: a oportunidade de levar uma vida longa e saudável (Saúde), de ter acesso ao conhecimento (Educação) e do poder de desfrutar um padrão de vida digno (Renda) (PNUD, 2013).

Portanto, o IDH compreende, de forma simples, a união de três dimensões para mensurar o desenvolvimento. O IDH de nosso país considera essas três dimensões, mas vai além, adequando a metodologia global ao contexto brasileiro e disponibilidade de indicadores nacionais (PNUD, 2013).

O IDH dos municípios brasileiros (IDHM) é calculado através da média geométrica, raíz cúbica da multiplicação dos 3 subíndices (Saúde - Educação - Renda). Esse valor resulta em um número entre 0 e 1, quanto mais próximo de 1, maior o desenvolvimento humano de um município (PNUD, 2013).

A análise de regressão linear múltipla pode ser uma ferramenta estatística para modelar cenários de predições de valores do IDHM. Nesta análise o IDHM pode ser inserido como uma variável resposta (Y) do modelo em função de uma série de variáveis independentes explicativas (Xn).

O objetivo desta tafera é montar um modelo através de regressão linear múltipla para estimar o valor da variável IDHM do ano de 2010 (Y = IDHM_2010) dos municípios do estado do Rio Grande do Sul, por meio da seleção de algumas variáveis independentes explicativas (Xn) do ano de 2000 presentes na base de dados do Atlas 2013 disponibilizados em material da disciplina de Estaística Aplicada do curso de Especialização em Big Data, Data Science e Data Analytis da Unisinos.

4.2 Base de dados da Tarefa: atlas2013_dadosbrutos_pt.

Os dados utilizados para realização do trabalho foram disponibilizados através da importação do material no conteúdo da disciplina de Estatística Aplicada do curso de Especialização em Big Data, Data Science e Data Analytics da Unisinos.

atlas2013 <- read_excel("C:/LEONARDO/Rpubs/estatistica_aplicada_aula3_tarefa_leonardo.xlsx")

4.3 Etapas do desenvolvimento do modelo através da Regressão Linear Múltipla.

Na base de dados importada, foram aplicados filtros nas variáveis ANO e UF a fim de apenas utilizar para a montagem da regressão linear múltipla os valores referentes ao Estado do Rio Grande do Sul no ano de 2000.

#filtro de Estado e Ano 200
atlas.rs.2000 <- atlas2013 %>% 
  filter(ANO==2000 & UF==43)

4.3.1 Seleção da variável resposta no modelo (Y).

A variável escolhida como resposta do modelo de regressão linear múltipla foi o Índice de Desenvolvimento Humano Municipal do ano 2010 (IDHM_2010).

Esse índice é calculado através da média geométrica dos índices das dimensões Renda, Educação e Longevidade, com pesos iguais.

Portanto, esta variável IDHM_2010, foi adicionada na base de dados do ano de 2000 do estado do RS.

#filtro de Estado e Ano 2010
atlas.rs.2010 <- atlas2013 %>% 
  filter(ANO==2000 & UF==43)
#adicao da variavel IDHM_2010 na base de dados de 2000
atlas.rs.2000$IDHM_2010 <- atlas.rs.2010$IDHM

media.idhm.rs.2010 <- round(mean(atlas.rs.2000$IDHM_2010), digits = 3)

Na figura abaixo observa-se um histograma formado dessa variável resposta, IDHM_2010. A linha tracejada vermelha indica o valor da média, 0.605, do IDHM do ano de 2010 no estado do RS.

hist(atlas.rs.2000$IDHM_2010, col="gray", las=1, xlab="IDHM_2010", ylab="Frequência", 
      main="Histograma de IDHM_2010", cex.lab=1.25, cex.axis=1)
abline(v=mean(atlas.rs.2000$IDHM), col="red", lty=2)

Na plataforma do Atlas do Desenvolvimento Humano no Brasil existem faixas para classificação dos valores do IDHM. A média do IDHM encontrado para o Rio Grande do Sul no ano de 2010 enquadra-se na faixa considerada médio. Ou seja, o valor obtido extraindo a média do IDHM_2010, 0.605, ficou entre 0.600 e 0.699.

Observando o valor médio do IDHM e explorando suas características através do histograma a próxima etapa consiste em buscar entender as características das demais variedades presentes na base de dados a fim de montar um modelo preditivo do valor de IDHM_2010 (variável resposta - Y) através de regressão linear múltipla. Será feito a escolha de cinco variáveis preditoras (Xn) da base de dados do ano de 2000, as quais devem apresentar correlação com a variável IDHM_2010.

4.3.2 Seleção das variáveis explicativas para o modelo (Xn).

Um conjunto de resultados de valores de correlação foi montado para todas as variáveis presentes na base de dados com a variável de interesse para resposta. Esse conjunto de informações é apresentado no Quadro 1, onde os valores de correlação estão ordenados no formato de rank com valores decrescentes. Desta forma é possível rapidamente identificar as variáveis que estão mais correlacionadas com a variável IDHM_2010.

#selecao das variaveis Xs
atlas.rs.2000.varx <- atlas.rs.2000[,6:238]

#identificar variáveis character
take <- sapply(atlas.rs.2000.varx, is.character)
#which(take == TRUE)

#character para numeric
atlas.rs.2000.varx.2 <- data.frame(lapply(atlas.rs.2000.varx, function(x) as.numeric(as.character(x))))

#correlacao de todas as variedades Xs com Y.
df.cor <- atlas.rs.2000.varx.2 %>% 
  correlate(use = "pairwise.complete.obs") %>% 
  focus(IDHM_2010)

#ordenar as correlacoes
df.cor <- arrange(df.cor, desc(df.cor$IDHM_2010))

#ordenar as correlacoes de modo absoluto
df.cor <- arrange(df.cor, desc(abs(df.cor$IDHM_2010)))

datatable(df.cor, colnames = c('Variável', 'Correlação com IDHM_2010'), caption = 'Quadro 1: Rank de correlações das variáveis explicativas com IDHM_2010.')
#T_FUNDIN_TODOS
correlacao.T_FUNDIN_TODOS <- cor(atlas.rs.2000$T_FUNDIN_TODOS,atlas.rs.2000$IDHM_2010)
#RDPC
correlacao.RDPC <- cor(atlas.rs.2000$RDPC,atlas.rs.2000$IDHM_2010)
#T_MED18M
correlacao.T_MED18M <- cor(atlas.rs.2000$T_MED18M,atlas.rs.2000$IDHM_2010)
#T_BANAGUA
correlacao.T_BANAGUA <- cor(atlas.rs.2000$T_BANAGUA,atlas.rs.2000$IDHM_2010)
#T_LUZ
correlacao.T_LUZ <- cor(atlas.rs.2000$T_LUZ,atlas.rs.2000$IDHM_2010)

Com base nos resultados observados no Quadro 1, as variáveis escolhidas para fazerem parte do desenvolvimento do modelo foram: T_FUNDIN_TODOS, RDPC, T_MED18M, T_BANAGUA e T_LUZ.

A descrição do que significa cada variável, bem como o seu valor de correlação com a variável IDHM_2010 está especificado abaixo:

T_FUNDIN_TODOS = Percentual de pessoas que vivem em domicílios em que nenhum morador tem o ensino fundamental completo (Educação), correlação de -0.8820176.

RDPC = Renda per capita média (Renda), correlação de 0.8095219.

T_MED18M = Percentual da população de 18 anos ou mais com ensino médio completo (Educação), correlação de 0.8016771.

T_BANAGUA = Percentual da população que vive em domicílios com banheiro e água encanada (Habitação), correlação de 0.7871984.

T_LUZ = Percentual da população que vive em domicílios com energia elétrica (Habitação), correlação de 0.6685801.

É importante destacar que, apesar de algumas outras variáveis apresentarem valores maiores de correlação com o IDHM_2010 no Quadro 1, optou-se por escolher variáveis de diferentes categorias (educação, habitação e renda) com o propósito de diversificar as informações dentro do modelo da regressão linar múltipla.

O Quadro 2 nos mostra de forma resumida os resultados da média e desvio padrão de cada uma das variáveis selecionadas para uso no modelo.

resumo.varx.mean <- atlas.rs.2000 %>% 
  group_by(UF) %>% 
  summarise(T_FUNDIN_TODOS = round(mean(T_FUNDIN_TODOS), digits = 2), 
            RDPC = round(mean(RDPC), digits = 2),
            T_MED18M = round(mean(T_MED18M), digits = 2),
            T_BANAGUA = round(mean(T_BANAGUA), digits = 2),
            T_LUZ = round(mean(T_LUZ), digits = 2))

resumo.varx.mean.2 <- resumo.varx.mean %>% gather(key = "Variável_X", value = "Média", T_FUNDIN_TODOS, RDPC, T_MED18M, T_BANAGUA, T_LUZ, na.rm = FALSE, convert = FALSE)
resumo.varx.mean.2 <- resumo.varx.mean.2[-1]

resumo.varx.sd <- atlas.rs.2000 %>% 
  group_by(UF) %>% 
  summarise(T_FUNDIN_TODOS = round(sd(T_FUNDIN_TODOS), digits = 2), 
            RDPC = round(sd(RDPC), digits = 2),
            T_MED18M = round(sd(T_MED18M), digits = 2),
            T_BANAGUA = round(sd(T_BANAGUA), digits = 2),
            T_LUZ = round(sd(T_LUZ), digits = 2))

resumo.varx.sd.2 <- resumo.varx.sd %>% gather(key = "Variável_X", value = "Desvio Padrão", T_FUNDIN_TODOS, RDPC, T_MED18M, T_BANAGUA, T_LUZ, na.rm = FALSE, convert = FALSE)
resumo.varx.sd.2 <- resumo.varx.sd.2[-1]

resumo.varx <- data.frame(resumo.varx.mean.2, resumo.varx.sd.2[2])

datatable(resumo.varx, colnames = c('Variável_X', 'Média', "Desvio_Padrão"), caption = 'Quadro 2: Média e Desvio Padrão das variáveis explicativas selecionadas.')

4.3.3 Observação de dados pareados das respectivas variáveis e multicolinearidade.

Por meio dos resultados do Quadro 1 foram obervados as correlações existentes das variáveis explicativas selecionadas com a variável resposta. Contúdo, a seguir detalha-se um agrupamento de cinco diagramas de dispersão que evidenciam visualmente essas correlações.

Cada diagrama de dispersão abaixo representa uma das variáveis explicativas com a variável resposta. O título de cada um dos diagramas apresenta o valor encontrado de correlação.

par(mfrow=c(3,2))

#T_FUNDIN_TODOS
plot(atlas.rs.2000$T_FUNDIN_TODOS,atlas.rs.2000$IDHM_2010, pch=16, col="black", ylab="IDHM_2010", xlab="T_FUNDIN_TODOS", las=1, main = cor(atlas.rs.2000$T_FUNDIN_TODOS,atlas.rs.2000$IDHM_2010))

#RDPC
plot(atlas.rs.2000$RDPC,atlas.rs.2000$IDHM_2010, pch=16, col="black", ylab="IDHM_2010", xlab="RDPC", las=1, main = cor(atlas.rs.2000$RDPC,atlas.rs.2000$IDHM_2010))

#T_MED18M
plot(atlas.rs.2000$T_MED18M,atlas.rs.2000$IDHM_2010, pch=16, col="black", ylab="IDHM_2010", xlab="T_MED18M", las=1, main = cor(atlas.rs.2000$T_MED18M,atlas.rs.2000$IDHM_2010))

#T_BANAGUA
plot(atlas.rs.2000$T_BANAGUA,atlas.rs.2000$IDHM_2010, pch=16, col="black", ylab="IDHM_2010", xlab="T_BANAGUA", las=1, main = cor(atlas.rs.2000$T_BANAGUA,atlas.rs.2000$IDHM_2010))

#T_LUZ
plot(atlas.rs.2000$T_LUZ,atlas.rs.2000$IDHM_2010, pch=16, col="black", ylab="IDHM_2010", xlab="T_LUZ", las=1, main = cor(atlas.rs.2000$T_LUZ,atlas.rs.2000$IDHM_2010))

Todas as variáveis selecionadas apresentaram valores de correlação considerados entre moderadamente forte e forte.

A fim de complementar o detalhamento das análises exploratórias das variáveis explicativas foi utilizado a função ggpairs() para montar uma Matriz de correlações. Nessa matriz são apresentados novamente os diagramas de disperção, porém esses estão acompanhados por histogramas e valores obtidos nas correlações. Desta forma, é possível otimizar a visualização das características dessas variáveis em apenas uma figura. Na diagonal da figura observamos os histogramas formados das variáveis selecionadas. Na parte inferior são evidenciados os diagramas de dispersão e na parte superior são mostrados os valores obtidos das correlações.

altras.rs.2000.ggpairs <- atlas.rs.2000[, c("T_FUNDIN_TODOS", "RDPC", "T_MED18M", "T_BANAGUA", "T_LUZ", "IDHM_2010")]
ggpairs(altras.rs.2000.ggpairs, title = "Matriz de correlações das variáveis selecionadas para o modelo.") + theme_bw()

Foi calculado também os valores referentes ao fator de inflação da variância (VIF) das variáveis selecionadas, o qual apresenta características a respeito da multicolinearidade.

resultado.rlm <- lm(IDHM_2010 ~ T_FUNDIN_TODOS + RDPC + T_MED18M + T_BANAGUA + T_LUZ, 
                    data=atlas.rs.2000)

vif.variaveis.modelo <- vif(resultado.rlm)
vif.T_FUNDIN_TODOS <- vif.variaveis.modelo[1]
vif.RDPC <- vif.variaveis.modelo[2]
vif.T_MED18M <- vif.variaveis.modelo[3]
vif.T_BANAGUA <- vif.variaveis.modelo[4]
vif.T_LUZ <- vif.variaveis.modelo[5]

Os valores obtidos para os fatores de inflação da variâncias (VIF) foram:

T_FUNDIN_TODOS = 3.4595271.

RDPC = 2.5985237.

T_MED18M = 3.2766755.

T_BANAGUA = 3.6561649.

T_LUZ = 2.4353015.

Todos os valores encontrados para VIF apresentam-se menores que 10, o que sinaliza que as variáveis não apresentam problemas de multicolinearidade.

4.3.4 Desenvolvimento do modelo e obtenção dos coeficientes da equação e valor-p.

Com as variáveis explicativas selecionadas, parte-se para o desenvolvimento do modelo por meio da regressão linear múltipla com a utilização da função lm() inserindo as cinco variáveis em relação a variável resposta IDHM_2010. Os detalhes do resultado desta função estão expostos abaixo.

resultado.rlm <- lm(IDHM_2010 ~ T_FUNDIN_TODOS + RDPC + T_MED18M + T_BANAGUA + T_LUZ, 
                    data=atlas.rs.2000)
summary(resultado.rlm)
## 
## Call:
## lm(formula = IDHM_2010 ~ T_FUNDIN_TODOS + RDPC + T_MED18M + T_BANAGUA + 
##     T_LUZ, data = atlas.rs.2000)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.068808 -0.011155  0.000712  0.012165  0.061298 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     5.376e-01  2.068e-02  25.997  < 2e-16 ***
## T_FUNDIN_TODOS -2.502e-03  1.411e-04 -17.733  < 2e-16 ***
## RDPC            1.059e-04  8.249e-06  12.843  < 2e-16 ***
## T_MED18M        9.634e-04  2.393e-04   4.026 6.57e-05 ***
## T_BANAGUA       5.306e-04  1.233e-04   4.302 2.04e-05 ***
## T_LUZ           8.327e-04  2.120e-04   3.927 9.82e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01868 on 490 degrees of freedom
## Multiple R-squared:  0.8981, Adjusted R-squared:  0.897 
## F-statistic: 863.5 on 5 and 490 DF,  p-value: < 2.2e-16
r2.resultado.rlm <- summary(resultado.rlm)$r.squared
r2.resultado.rlm <- round(r2.resultado.rlm*100, digits = 2)
adj.r2.resultado.rlm <- summary(resultado.rlm)$adj.r.squared
adj.r2.resultado.rlm <- round(adj.r2.resultado.rlm*100, digits = 2)

p.valor.resultado.rlm <- glance(resultado.rlm)$p.value

#media erro quadrado
emq <- sqrt(sum((resultado.rlm$residuals)^2)/resultado.rlm$df.residual)

#RSE, erro padrao residuo
rse <- (emq/mean(atlas.rs.2000$IDHM_2010))*100 #3%, baixo.

Constata-se que o modelo utilizado com as cinco variáveis referentes ao ano 2000 explicaram (Adjusted R-squared) 89.7% da variação dos dados do IDHM_2010 do Rio Grande do Sul no ano de 2010, o conjunto do modelo foi significativo apresentando um p-valor de 2.662698310^{-240}.

Desta maneira, a equação gerada do modelo de regressão linear múltipla com seus coeficientes está demonstrada abaixo, conforme o output da função.

equacao.resultado.rlm <- as.formula(
  paste0("IDHM_2010 ~ ", round(resultado.rlm$coefficients, digits = 5), " + ", 
    paste(sprintf("%.5f * %s", 
                  resultado.rlm$coefficients[-1],  
                  names(coefficients(resultado.rlm)[-1])), 
          collapse="+")
  )
)

equacao.resultado.rlm
## IDHM_2010 ~ 0.53757 + -0.0025 * T_FUNDIN_TODOS + 0.00011 * RDPC + 
##     0.00096 * T_MED18M + 0.00053 * T_BANAGUA + 0.00083 * T_LUZ

Todos os coeficiente das variáveis explicativas utilizadas na regressão apresentaram valor de p significativo. Estes valores dos coeficientes de cada uma das variáveis, bem como os respectivos valores de p estão listado a seguir.

resultado.rlm$coefficients
##    (Intercept) T_FUNDIN_TODOS           RDPC       T_MED18M      T_BANAGUA 
##   0.5375677797  -0.0025019704   0.0001059458   0.0009633652   0.0005305686 
##          T_LUZ 
##   0.0008326699
p.value.coef.T_FUNDIN_TODOS <- coef(summary(resultado.rlm))["T_FUNDIN_TODOS","Pr(>|t|)"]
p.value.coef.RDPC <- coef(summary(resultado.rlm))["RDPC","Pr(>|t|)"]
p.value.coef.T_MED18M <- coef(summary(resultado.rlm))["T_MED18M","Pr(>|t|)"]
p.value.coef.T_BANAGUA <- coef(summary(resultado.rlm))["T_BANAGUA","Pr(>|t|)"]
p.value.coef.T_LUZ <- coef(summary(resultado.rlm))["T_LUZ","Pr(>|t|)"]

O valor-p para o coeficiente de T_FUNDIN_TODOS resultou em: 1.015594410^{-54}.

O valor-p para o coeficiente de RDPC resultou em:9.604458110^{-33}.

O valor-p para o coeficiente de T_MED18M resultou em:6.567485110^{-5}.

O valor-p para o coeficiente de T_BANAGUA resultou em:2.041071710^{-5}.

O valor-p para o coeficiente de T_LUZ resultou em:9.817298210^{-5}.

4.3.5 Interpretação do resultado do modelo (equação):

O modelo apresentou que 89.7% da variação dos dados de valores do IDHM_2010 no ano de 2010 do Estado do Rio Grande do sul foram explicados pela variação do percentual de pessoas que vivem em domicílios em que nenhum morador tem o ensino fundamental completo (T_FUNDIN_TODOS) somado com as variações da renda per capita média (RDPC), do percentual da população de 18 anos ou mais com ensino médio completo (T_MED18M), do percentual da população que vive em domicílios com banheiro e água encanada (T_BANAGUA) e do percentual da população que vive em domicílios com energia elétrica (T_LUZ), conforme a equação:

equacao.resultado.rlm
## IDHM_2010 ~ 0.53757 + -0.0025 * T_FUNDIN_TODOS + 0.00011 * RDPC + 
##     0.00096 * T_MED18M + 0.00053 * T_BANAGUA + 0.00083 * T_LUZ

4.3.6 Intepretação dos coeficientes B do modelo.

coef.resultado.rlm.T_FUNDIN_TODOS <- resultado.rlm$coefficients[2]
coef.resultado.rlm.RDPC <- resultado.rlm$coefficients[3]
coef.resultado.rlm.T_MED18M <- resultado.rlm$coefficients[4]
coef.resultado.rlm.T_BANAGUA <- resultado.rlm$coefficients[5]
coef.resultado.rlm.T_LUZ <- resultado.rlm$coefficients[6]

X1 (T_FUNDIN_TODOS): A cada ponto percentual a mais no número de pessoas que vivem em domicílios em que nenhum morador tem o ensino fundamental completo, observou-se em média um descréscimo de -0.002502 no valor do IDHM_2010.

X2 (RDPC): A cada valor a mais de renda per capita médio, observou-se em média um acréscimo de 1.059458310^{-4} no valor do IDHM_2010.

X3 (T_MED18M): A cada ponto percentual a mais da população com 18 anos ou mais com ensino médio completo, observou-se em média um acréscimo de 9.633651610^{-4} no valor do IDHM_2010.

X4 (T_BANAGUA): A cada ponto percentual a mais da população que vive em domicílios com banheiro e água encanada, observou-se em média um acréscimo de 5.305686310^{-4} no valor do IDHM_2010.

X5 (T_LUZ): A cada ponto percentual a mais da população que vive em domicílios com energia elétrica, observou-se em média um acréscimo de 8.326698710^{-4} (acréscimo) no valor do IDHM_2010.

4.3.7 Exemplo do uso do modelo para prever o valor do IDHM_2010 dos municípios.

Por meio da aplicação da equação gerada no modelo de regressão múltipla serão calculados dois exemplos para estimar o valor da variável IDHM_2010. O primeiro exemplo utilizará um município com dados representados pela média de cada uma das variáveis explicativas do modelo. No segundo exemplo, será pego o município situado na linha 100 da base de dados do Rio Grande do Sul.

caso.1.T_FUNDIN_TODOS <- mean(atlas.rs.2000$T_FUNDIN_TODOS)
caso.1.RDPC <- mean(atlas.rs.2000$RDPC)
caso.1.T_MED18M <- mean(atlas.rs.2000$T_MED18M)
caso.1.T_BANAGUA <- mean(atlas.rs.2000$T_BANAGUA)
caso.1.T_LUZ <- mean(atlas.rs.2000$T_LUZ)


caso.1 <- data.frame(T_FUNDIN_TODOS = caso.1.T_FUNDIN_TODOS, 
                     RDPC = caso.1.RDPC, 
                     T_MED18M = caso.1.T_MED18M, 
                     T_BANAGUA = caso.1.T_BANAGUA, 
                     T_LUZ = caso.1.T_LUZ)

resultado.caso.1 <- predict(resultado.rlm, caso.1, interval = "confidence")
IDHM_2010.caso1 <- resultado.caso.1[1]
IDHM_2010.caso1.lwr <- resultado.caso.1[2]
IDHM_2010.caso1.upr <- resultado.caso.1[3]

Exemplo, Caso 1 - Município apresenta valores da média de todas as variáveis explicativas do modelo.

T_FUNDIN_TODOS: 48.3450806.

RDPC: 482.0688911.

T_MED18M: 14.8060685.

T_BANAGUA: 82.9436895.

T_LUZ: 95.1608266.

Com o aplicação desses valores das variáveis explicativas, o resultado encontrado para a variável resposta do IDHM_2010 foi de 0.6051915. Isso significa que, com 95% de confiança o valor do IDHM_2010 para este município em específico está entre 0.6035435 e 0.6068396.

Exemplo, Caso 2 - Município número 100 da base de dados do Estado do Rio Grande do Sul no ano de 2000. Este município apresenta as seguintes características:

caso.2 <- data.frame(atlas.rs.2000[100,])

resultado.caso.2 <- predict(resultado.rlm, caso.2, interval = "confidence")
IDHM_2010.caso2 <- resultado.caso.2[1]
IDHM_2010.caso2.lwr <- resultado.caso.2[2]
IDHM_2010.caso2.upr <- resultado.caso.2[3]

caso.2.T_FUNDIN_TODOS <- mean(caso.2$T_FUNDIN_TODOS)
caso.2.RDPC <- mean(caso.2$RDPC)
caso.2.T_MED18M <- mean(caso.2$T_MED18M)
caso.2.T_BANAGUA <- mean(caso.2$T_BANAGUA)
caso.2.T_LUZ <- mean(caso.2$T_LUZ)

T_FUNDIN_TODOS: 55.36.

RDPC: 275.41.

T_MED18M: 13.18.

T_BANAGUA: 63.26.

T_LUZ: 92.61.

Com o aplicação desses valores das variáveis explicativas, o resultado encontrado para a variável resposta do IDHM_2010 foi de 0.5516117. Isso significa que, com 95% de confiança o valor do IDHM_2010 para este município em específico está entre 0.5476517 e 0.5555717.

4.3.8 Verificação da importância relativa das variáveis selecionadas para o modelo.

Todas as variáveis explicativas selecionadas para o modelo foram significativas. Portanto, todas estão adequadas para fazerem parte no modelo proposto na tarefa.

Buscou-se também fazer uma verificação da importância relativa de cada uma das variáveis explicativas sobre a variável resposta. Os resultados obtidos estão no Quadro 3.

avaliacao.resultado.rlm <- calc.relimp(resultado.rlm, type = "lmg")
avaliacao.resultado.rlm
## Response variable: IDHM_2010 
## Total response variance: 0.003389101 
## Analysis based on 496 observations 
## 
## 5 Regressors: 
## T_FUNDIN_TODOS RDPC T_MED18M T_BANAGUA T_LUZ 
## Proportion of variance explained by model: 89.81%
## Metrics are not normalized (rela=FALSE). 
## 
## Relative importance metrics: 
## 
##                      lmg
## T_FUNDIN_TODOS 0.2622831
## RDPC           0.1917626
## T_MED18M       0.1784523
## T_BANAGUA      0.1586776
## T_LUZ          0.1068967
## 
## Average coefficients for different model sizes: 
## 
##                           1X           2Xs           3Xs           4Xs
## T_FUNDIN_TODOS -0.0046388470 -0.0035172060 -0.0029359401 -0.0026435020
## RDPC            0.0002872372  0.0001814699  0.0001341004  0.0001124487
## T_MED18M        0.0073473763  0.0042874866  0.0028917255  0.0018772598
## T_BANAGUA       0.0035201428  0.0021375534  0.0013380010  0.0008648192
## T_LUZ           0.0062978515  0.0025865824  0.0016058329  0.0011091921
##                          5Xs
## T_FUNDIN_TODOS -0.0025019704
## RDPC            0.0001059458
## T_MED18M        0.0009633652
## T_BANAGUA       0.0005305686
## T_LUZ           0.0008326699
#dataframe com os resultados da avaliacao.resultado.rlm
impo.variaveis <- data.frame(avaliacao.resultado.rlm$lmg, avaliacao.resultado.rlm$lmg.rank, avaliacao.resultado.rlm$namen[-1])
#rank de $lmg
impo.variaveis <- arrange(impo.variaveis, desc(avaliacao.resultado.rlm$lmg))

impo.variaveis$p.values <- c(round(p.value.coef.T_FUNDIN_TODOS, digits = 5), 
                             round(p.value.coef.RDPC, digits = 5), 
                             round(p.value.coef.T_MED18M, digits = 5), 
                             round(p.value.coef.T_BANAGUA, digits = 5), 
                             round(p.value.coef.T_LUZ, digits = 5))

datatable(impo.variaveis, colnames = c('importância relativa', 'rank', 'Variáveis', "valor-p"), 
          caption = 'Quadro 3: Rank de importância relativa das variáveis explicativas do modelo de regressão linear múltipla.') %>%
  formatStyle('p.values',
    backgroundColor = styleInterval(0.05, c('lightgreen', 'lightred'))) %>% 
      formatPercentage('avaliacao.resultado.rlm.lmg', 2)

Nesse quadro, observa-se que a ordem de importância relativa das variáveis explicativas no modelo apresenta o seguinte sentido: T_FUNDIN_TODOS, RDPC, T_MED18M, T_BANAGUA e T_LUZ.

4.3.9 Diagnóstico dos resíduos.

Os resíduos são a diferença entre o valor da variável resposta IDHM_2010 com o valor de IDHM_2010 previsto pelo modelo. Nesta etapa se faz a avaliação visual da normalidade dos resíduos do modelo. Nas figuras abaixo são mostrados o gráfico quantil-quantil da normal e o histograma dos resultados dos resíduos.

O gráfico quantil-quantil (q-q) apresenta no eixo y os quantis observados da amostra e o eixo x os quantis teóricos da distribuição normal padrão.

O histograma apresenta a densidade de número de observações no eixo y. O eixo x mostra os valores dos resíduos. Neste histograma foi adicionado a linha em cor vermelha da densidade dos resíduos observados através do do resultado do modelo da regressão linear múltipla.

Ambas as figuras nos indicam que os dados dos resíduos da regressão apresentam normalidade.

par(mfrow=c(1,2))
qqnorm(resultado.rlm$residuals, ylab="Residuos",xlab="Quantis teoricos",main="Gráfico quantil-quantil")
qqline(resultado.rlm$residuals, lty=1, col="red")

hist(resultado.rlm$residuals, col = 'gray', xlab = 'Resíduos', ylab = 'Densidade de probabilidade', probability = TRUE, main = "Histograma dos Resíduos") 
lines(density(resultado.rlm$residuals), col="red")

Complementa-se no diagnóstico dos resíduos do modelo a verificação da homocedasticidade. No qual busca-se entender se a variância dos resíduos se mostra constante a medida que os valores preditos pela rgressão aumentam.

par(mfrow=c(2,3))

plot(fitted(resultado.rlm),residuals(resultado.rlm),xlab="Valores Preditos pelo Modelo (VPM)",ylab="Resíduos", pch=16, main = "Resíduos e VPM")
abline(h=0, col="red")

plot(atlas.rs.2000$T_FUNDIN_TODOS, residuals(resultado.rlm),xlab="T_FUNDIN_TODOS ",ylab="Residuos", pch=16)
abline(h=0, col="red")

plot(atlas.rs.2000$RDPC,residuals(resultado.rlm),xlab="RDPC",ylab="Residuos", pch=16)
abline(h=0, col="red")

plot(atlas.rs.2000$T_MED18M,residuals(resultado.rlm),xlab="T_MED18M",ylab="Residuos", pch=16)
abline(h=0, col="red")

plot(atlas.rs.2000$T_BANAGUA,residuals(resultado.rlm),xlab="T_BANAGUA",ylab="Residuos", pch=16)
abline(h=0, col="red")

plot(atlas.rs.2000$T_LUZ,residuals(resultado.rlm),xlab="T_LUZ",ylab="Residuos", pch=16)
abline(h=0, col="red")

Na figura titulada como Resíduos e VPM percebe-se que conforme ocorre um aumento nos valores ajustados do modelo os valores dos resíduos se mostram com variação aleatória. Destaca-se a homocedasticidade, ou seja, apresenta-se uma variabilidade dos resíduos constante.

As demais figuras apresentadas nos mostram a variação dos valores dos resíduos do modelo em relação a cada uma das variedades explicativas utilizadas na composição da regressão linear múltipla.

4.4 Aplicação do modelo para os cálculos de previsão do IDHM_2010 (fit).

Aplicou-se o modelo de regressão linear múltiplo desenvolvido sobre a base de dados do RS do ano de 2000 para gerar valores de predição do IDHM_2010 (fit) e comparar com os valores reais de IDHM_2010 a fim de avaliar seus resultados.

predicao <- predict(resultado.rlm, newdata=atlas.rs.2000, se.fit = TRUE, type="response")
atlas.rs.2000 <- data.frame(atlas.rs.2000,predicao)

4.4.1 Avaliação dos resíduos (IDHM_2010 - fit) na aplicação do modelo,

Anteriormente foi apresentado o resultado de um histograma dos resíduos através da extração dos valores direto do resultado da regressão. Neste momento, foram calculados os resídos do modelo através da diferença entre o valor real do IDHM_2010 e o valor proposto pelo modelo desenvolvido (fit). Observamos as características dos resíduos através do Histograma e do Boxplot.

A diferença deste histograma dos resíduos para o histgrama dos resíduos anterior é que este apresenta a frequência em valor absoluto e o anterior em valor percentual.

atlas.rs.2000$residuos <- atlas.rs.2000$IDHM_2010 - atlas.rs.2000$fit
media.residuos.modelo <- mean(atlas.rs.2000$residuos)

par(mfrow=c(1,2))
hist(atlas.rs.2000$residuos , border=F , col=rgb(0.1,0.8,0.3,0.5) , xlab="resíduos" , main="Resíduos (IDHM_2010 - fit)")
abline(v=media.residuos.modelo, col="red", lty=2)

boxplot(atlas.rs.2000$residuos , xlab="resíduos" , col=rgb(0.8,0.8,0.3,0.5) , las=2, main="Resíduos (IDHM_2010 - fit)")
abline(h=media.residuos.modelo, col="red", lty=2)

4.4.2 Avaliação dos resíduos por meio do diagrama de dispersão do modelo.

Foi montado um diagrama de dispersão para visualizar os valores gerados pelo modelo para o IDHM_2010 (fit) com os valores reais do IDHM_2010. O resutado apresenta uma relação de correlação forte entre os resultados do IDHM_2010 através do modelo preditivo (fit) com e os valores reais do IDHM_2010 da base de dados do atlas 2013.

resultado.modelo <-lm(atlas.rs.2000$fit~atlas.rs.2000$IDHM_2010)

plot.resultado.modelo <- ggplot(atlas.rs.2000, aes(x=atlas.rs.2000$fit, y=atlas.rs.2000$IDHM_2010)) +
  geom_point() +
  geom_smooth(method=lm , color="red", fill="#69b3a2", se=TRUE) +
  theme_ipsum()
plot.resultado.modelo + ggtitle("IDHM_2010 e valores do modelo (fit)") +
  xlab("Predição do modelo (fit)") + ylab("IDHM_2010")

4.4.3 Teste de correlação linear entre IDHM_2010 e o valor previsto pelo modelo (fit):

De maneira complementar, a fim de verificar acurácia do modelo, executou-se o teste de correlação linear entre a variável IDHM_2010 e o valor estimado para essa variável previsto no modelo (fit).

resultado.cor.test <- cor.test(atlas.rs.2000$IDHM_2010, atlas.rs.2000$fit)
resultado.cor.test
## 
##  Pearson's product-moment correlation
## 
## data:  atlas.rs.2000$IDHM_2010 and atlas.rs.2000$fit
## t = 65.974, df = 494, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9378757 0.9559498
## sample estimates:
##       cor 
## 0.9476668
resultado.cor.test.valor.p <- resultado.cor.test$p.value
resultado.cor.test.cor <- resultado.cor.test$estimate

Existe correlação linear entre o valor do IDHM_2010 e o valor previsto para essa variável pelo modelo de regressão linear múltipla (valor-p 4.22973810^{-247}). Quanto maior o valor estimado pelo modelo (fit), maior o valor do IDHM_2010, correlação de 0.9476668.

4.4.4 Cálculo do erro de estimativa relativo.

Através do cálculo do erro de estimativa relativo, variação percentual entre o valor previsto pelo modelo (fit) e o valor real do IDHM_2010, montou-se uma visualização desse parâmetro em histograma e boxplot.

atlas.rs.2000$erro_estimativa_relativo <- (atlas.rs.2000$fit-atlas.rs.2000$IDHM_2010)/atlas.rs.2000$IDHM_2010

atlas.rs.2000$erro_estimativa_percentual <- round(((atlas.rs.2000$fit-atlas.rs.2000$IDHM_2010)/atlas.rs.2000$IDHM_2010)*100, digits = 2)

first.q.eep <- quantile(atlas.rs.2000$erro_estimativa_percentual, 0.25)
third.q.eep <- quantile(atlas.rs.2000$erro_estimativa_percentual, 0.75)

media.eep <- mean(atlas.rs.2000$erro_estimativa_percentual)

par(mfrow=c(1,2))
hist(atlas.rs.2000$erro_estimativa_percentual , border=F , col=rgb(0.1,0.8,0.3,0.5) , xlab="erro de estimativa relativo (EER)" , main="Histograma de EER")
abline(v=media.eep, col="red", lty=2)

boxplot(atlas.rs.2000$erro_estimativa_percentual , xlab="erro de estimativa relativo (EER)" , col=rgb(0.8,0.8,0.3,0.5) , las=2, main="Boxplot de EER")
abline(h=media.eep, col="red", lty=2)

É possível observar que 50% da variação percentual entre o valor previsto pelo modelo e o valor real do IDHM_2010 ficou entre -1.91% e 1.9625%. Ou seja, uva variação pequena.

Em média, o erro de estimativa relativo que foi observado no modelo foi de 0.1036895%, representado pela linha vermelha tracejada nas figuras do histograma e boxplot.

4.4.5 Cálculo do erro relativo médio absoluto (MAPE mean absolute percentage error).

A acurácia da predição do modelo estatístico também pode ser quantificada através do erro relativo médio absoluto (MAPE) do modelo, quanto menor for o valor, melhor é o resultado deste índice.

MAPE <- mean(abs(atlas.rs.2000$fit-atlas.rs.2000$IDHM_2010)/atlas.rs.2000$IDHM_2010,na.rm = TRUE)*100

O erro relativo médio absoluto das previsões do modelo resultou em 2.4418314% (MAPE). Um valor considerado baixo, refornçando a qualidade do resultado do modelo.

4.5 Considerações finais sobre o modelo desenvolvido.

O modelo de predição da variável resposta IDHM_2010 através de regressão linear múltipla de cinco variáveis selecionadas, T_FUNDIN_TODOS, RDPC, T_MED18M, T_BANAGUA e T_LUZ, da base de dados do RS do ano de 2000 foi signigicativo (valor-p 2.662698310^{-240}).

Estas variáveis explicativas utilizadas em conjunto explicaram 89.7% da variação dos dados de IDHM_2010 do Rio Grande do Sul no ano de 2010. O valor do erro relativo médio absoluto do modelo proposto resultou em 2.4418314%.

Conclui-se como aceitáveis estas variáveis explicativas selecionadas para prever a variável resposta IDHM_2010.

4.6 Disponibilização da base de dados dos resultados.

A base de dados desenvolvida nesta tarefa está a disposição para verificação e revisão através da interação com a tabela abaixo. Pode ser feito o download do arquivo de dados através de uma das opções, por exemplo, pode ser utilizado o item CSV para baixar o arquivo de dados no modo .csv.

datatable(atlas.rs.2000, extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
)

4.7 Referências Bibliográficas.

PNUD. Atlas dos Municípios. Disponível em: http://www.atlasbrasil.org.br/2013/pt/home/. Acesso em: 31 maio. 2020.