Identificado pela primeira vez em dezembro de 2019 na cidade de Wuhan, na China, a SARS-CoV-2 (covid-19) se mostrou não se tratar de um problema isolado. Pelo contrário, ela se disseminou rapidamente por todos os continentes do planeta em velocidade inesperada para a maioria dos países. O Brasil registra um total de 6.388.526 casos confirmados e 176.628 mortos1. No município de São Paulo, foram 360.539 casos e 14.693 mortes2, destacando-se como o município com maior número de casos e mortes no país.
Sem uma vacina ou tratamento específico, as primeiras experiências mostraram que a melhor forma de conter sua rápida disseminação é através do isolamento físico, conjuntamente, com a adoção de medidas básicas de higiene. Ainda que uma pandemia seja um acontecimento que afeta as pessoas numa escala coletiva, pode-se considerar que os indicadores socioeconômicos do território podem influenciar na contenção da disseminação do vírus no território?.
A manifestação da desigualdade no território tem diversas formas, a saber, distribuição de renda desigual, desigualdade racial, desigualdade de acesso à serviços básicos. De acordo com o Mapa da Desigualdade de 2019, a diferença na taxa de emprego formal entre o distrito melhor colocado (o da Barra Funda, com 59,20) e o pior colocado (Cidade Tiradentes, com 0,2) chega a 247 vezes. Outro exemplo: em Moema a idade média ao morrer é de 80,6 anos, enquanto em Cidade Tiradentes é de apenas 57,3 anos.
Considerando esse pontos, é razoável questionar se a população residente nos distritos com os menores indicadores socioeconômicos, isto é, os mais vulneráveis, serão os mais afetados pela pandemia da COVID-19, possuindo um maior números de infectados e mortos na pandemia. Sendo assim, o presente trabalho parte da seguinte pergunta de pesquisa: pandemia de COVID-19 tem afetado mais os distritos mais vulneráveis em São Paulo?
Para responder à pergunta, o trabalho investiga como indicadores de qualidade de vida e vulnerabilidade social se relacionam com os óbitos e infecção por COVID-19 nos distritos de São Paulo.
Explicar as etapas do trabalho: análise exploratória (gráficos, mapas, correlações entre variáveis); Análise de regressão global (clássica e espacial) e local (GWR).
A base de dados analisada nos ajudará a entender como os diferentes indicadores socioeconômicos afetam as variáveis de interesse, a saber, a taxa de mortalidade por 100 mil habitantes por COVID-19 e a taxa de mortalidade por 100 habitantes por doença aguda grave (SRAG) por distrito da cidade de São Paulo. Incluímos na base de dados os casos de morte por SRAG porque há “é o principal quadro grave causado por COVID-19. Sua notificação depende apenas de diagnóstico clínico, enquanto que a notificação de casos de COVID-19 depende de testes laboratoriais, que podem demorar e têm uma taxa de erro. Por isso, acompanhar também os casos de SRAG é importante para ter um quadro mais completo da pandemia de COVID-19. Mas é importante lembrar que SRAG é um síndrome que pode também ter outras causas” OBSERVATÓRIO COVID BR.
Assim, com os resultados com uso da correlação, da regressão simples, múltipla e espacial, iremos avaliar se a taxa de mortalidade por COVID-19 e por SRAG é afetada por indicadores socioeconômicos, e se esse efeito depende da renda e/ou da população. Os dados sobre o número de mortos por COVID-19 e por SRAG abrangem os meses de março até setembro de 2020, a base de dados foi disponibilizado pela Prefeitura de São Paulo, já os dados sobre a população e a renda foram extraídos do censo demográfico de 2010 e do Portal Infocidade daPrefeitura de São Paulo
Podemos consultar todos pacotes utilizados para a presente análise.
library(dplyr)
library(car)
library(rstatix)
library(emmeans)
library(ggplot2)
library(knitr)
library(kableExtra)
library(htmltools)
library(prettydoc)
library(rmdformats)
library(hrbrthemes)
library(tufte)
library(tint)
library(tidyverse)
library(corrplot)
library(Hmisc)
library(performance)
library(broom)
library(ggplot2)
library(dplyr)
library(car)
library(rstatix)
library(emmeans)
library(ggplot2)
library(knitr)
library(kableExtra)
library(htmltools)
library(prettydoc)
library(rmdformats)
library(hrbrthemes)
library(tufte)
library(tint)
library(DT)
Segue o banco de dados utilizado para realizarmos as análises de correlação e regressões (simples, múltipla e espacial) e a autocorrelação espacial.
Segue a tabela com todas as variáveis que serão utilizadas nas primeira análises.
kable(head(dados, 5), col.names = c("Código", "Distrito", "População", "SRAG", "Taxa de mortalidade por 100 mil de SRAG", "Covid", "Taxa de mortalidade por 100 mil de Covid-19")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Código | Distrito | População | SRAG | Taxa de mortalidade por 100 mil de SRAG | Covid | Taxa de mortalidade por 100 mil de Covid-19 |
---|---|---|---|---|---|---|
355030801 | Água Rasa | 84963 | 452 | 532 | 167 | 197 |
355030802 | Alto de Pinheiros | 43117 | 172 | 399 | 64 | 148 |
355030803 | Anhanguera | 65859 | 225 | 342 | 66 | 100 |
355030804 | Aricanduva | 89622 | 447 | 499 | 183 | 204 |
355030805 | Artur Alvim | 105269 | 529 | 503 | 232 | 220 |
O Diagrama de dispersão nos mostra se há correlação entre as variáveis analisadas, ou seja, é uma medida do relacionamento linear entre duas variáveis. Abaixo segue, o diagrama das variáveis taxa de mortalidade por 100 mil habitantes por SRAG versus população por distrito.
ggplot(dados, aes(x = populacao, y = taxa_por_100_mil_srag)) +
geom_point() +
theme_bw() +
labs(title= " ", x = "População", y = "Taxa de mortalidade por 100 mil de SRAG")
Podemos notar que há correlação negativa entre as duas variáveis, ou seja, as variáveis são negativamente relacionais quando maior a população, menor a taxa de mortalidade por Síndrome Aguda Grave.
Em seguida, apresentamos outro gráfico de dispersão, mostrando se há correlação entre as variáveis, a saber, taxa de mortalidade por 100 mil de Covid e a população por distrito.
ggplot(dados, aes(x = populacao , y = taxa_por_100_mil_covid)) +
geom_point() +
theme_bw() +
labs(title= " ", x = "População", y = "Taxa mortalidade por 100 mil de Covid")
Podemos identicar uma correlação negativa entre as duas variáveis.
Entretanto, nos dois casos analisados será necessário utilizar a correlação de Pearson para determinamos o grau da correlação entre as variáveis.
É uma media padronizada da correlação entre variáveis. Para isso, utilizamos o coeficiente de correlação, que é uma medida padronizada do relacionamento entre duas variáveis, e o teste de significância, que confirmar se a correlação não se deve a um erro amostral, ou seja, ao acaso.
cor.test(x = dados$populacao,
y = dados$taxa_por_100_mil_srag,
method = "pearson",
alternative = "two.sided",
conf.level = 0.95)
##
## Pearson's product-moment correlation
##
## data: dados$populacao and dados$taxa_por_100_mil_srag
## t = -3.9191, df = 94, p-value = 0.0001686
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.5350488 -0.1884358
## sample estimates:
## cor
## -0.3747636
O coeficiente de correlaçao nos mostra uma correlação negativa, a saber, -0.3754829 e o teste de significância nos permite rejeitar a hipótese nula (H0).
cor.test(x = dados$populacao,
y = dados$taxa_por_100_mil_covid,
method = "pearson",
alternative = "two.sided",
conf.level = 0.95)
##
## Pearson's product-moment correlation
##
## data: dados$populacao and dados$taxa_por_100_mil_covid
## t = -2.5222, df = 94, p-value = 0.01334
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.4305221 -0.0540072
## sample estimates:
## cor
## -0.2517671
O coeficiente de correlaçao nos mostra uma correlação negativa, a saber, -0.2520574 e o teste de significância nos permite rejeitar a hipótese nula (H0).
A matriz de correlação permite a análise e visualização simultânea da relação entre duas ou mais variáveis.
Como a matriz de correlção não computa o teste de significância em conjunto com a correlação será necessário utilizar a função cor.test() para calcula-la.
dados %>%
select(taxa_por_100_mil_covid, taxa_por_100_mil_srag, populacao, domilicios, Pessoas_por_domilicio) %>%
rename(taxa_covid = taxa_por_100_mil_covid, taxa_srag = taxa_por_100_mil_srag, Domicilios = domilicios, pessoas_dom = Pessoas_por_domilicio) %>%
cor(method = "pearson",
use = "complete.obs") %>%
corrplot(method = "number")
Legenda:
taxa_covid = taxa de mortalidade por 100 mil habitante por covid
taxa_srag = taxa de mortalidade por 100 mil habitante por SRAG
pessoas_dom = Pessoas por domicilios.
dados %>%
select(taxa_por_100_mil_covid, taxa_por_100_mil_srag, populacao, domilicios, Pessoas_por_domilicio) %>%
rename(taxa_covid = taxa_por_100_mil_covid, taxa_srag = taxa_por_100_mil_srag, Domicilios = domilicios, pessoas_dom = Pessoas_por_domilicio) %>%
as.matrix() %>%
rcorr(type = "pearson")
## taxa_covid taxa_srag populacao Domicilios pessoas_dom
## taxa_covid 1.00 0.46 -0.25 -0.26 -0.02
## taxa_srag 0.46 1.00 -0.38 -0.35 -0.38
## populacao -0.25 -0.38 1.00 0.98 0.46
## Domicilios -0.26 -0.35 0.98 1.00 0.31
## pessoas_dom -0.02 -0.38 0.46 0.31 1.00
##
## n= 96
##
##
## P
## taxa_covid taxa_srag populacao Domicilios pessoas_dom
## taxa_covid 0.0000 0.0132 0.0102 0.8563
## taxa_srag 0.0000 0.0002 0.0005 0.0001
## populacao 0.0132 0.0002 0.0000 0.0000
## Domicilios 0.0102 0.0005 0.0000 0.0022
## pessoas_dom 0.8563 0.0001 0.0000 0.0022
A regressão linear é uma ferramenta estatística que permite explorar e inferir a relação de uma variável dependente com uma variável independente.
A utilização da regressão simples nos ajudará a obter uma equação matemática que descreve a relação entre duas ou mais variáveis.
modelo1 <- lm(formula = dados$taxa_por_100_mil_srag ~ dados$populacao, data = dados, na.action = na.exclude)
summary(modelo1)
##
## Call:
## lm(formula = dados$taxa_por_100_mil_srag ~ dados$populacao, data = dados,
## na.action = na.exclude)
##
## Residuals:
## Min 1Q Median 3Q Max
## -365.82 -41.49 6.08 33.09 249.51
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.149e+02 1.584e+01 32.497 < 2e-16 ***
## dados$populacao -4.571e-04 1.164e-04 -3.928 0.000163 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 78.98 on 94 degrees of freedom
## Multiple R-squared: 0.141, Adjusted R-squared: 0.1318
## F-statistic: 15.43 on 1 and 94 DF, p-value: 0.0001635
b0 é o intercepto de y (onde a linha corta o eixo y) –> b0 = 0,05149 é o valor que Y assume quando X = 0).
b1 é a inclinação da reta de regressão –> indica a mudança da variável de saída (Y) para cada alteração de uma unidade no previsor (X).
b1 = -0,00045718 –> Em média, um aumento de 1 habitante, está relacionado a uma diminuição de -0,00045718 na taxa de mortos por 100 mil por Síndrome Aguda Grave.
Esta variável preditora (população) faz diferença na representação da variação da taxa de mortos por 100 mil porque o parâmetro b1 é diferente de zero, mais especificamente, o teste t nos ajudar a rejeitar a hipótese nula de que b1 = zero
Calcula-se o valor t dividindo o b1 pelo seu erro padrão (Std. Error) = -0,00045718/0,0001164 = -3.928
A probabilidade de se obter um valor igual ou maior do que esse valor t, dado que a hipótese nula é verdadeira é muito pequena (pr(>|t|)) –> p-valor < 0,0001 (para ser mais preciso, menor do que 0,000163). Ou seja, rejeita-se a hipótese nula!
Concluímos que a população tem uma contribuição significativa (p < 0,000163) na explicação da variação da taxa de mortalidade por 100 mil por Síndrome Aguda Grave.
O mesmo teste é aplicado para analisar a significância do b0.
H0 : b0 = zero
Neste caso o p-valor < 0.0001635.
O nosso modelo consegue explicar 13,18% da variação da taxa de mortalidade por 100 mil por SRAG. No entanto, 86,72% da variação da taxa de mortalidade não pode ser explicado pela variação da população.
O teste F é uma medida do quanto o modelo melhorou na previsão de valores comparado como o nível de não precisão do modelo.
A Estatística F = 15.43 é significativa até mesmo para o nível de significância x > 0,01.
Esse resultado nos informa que existe uma probabilidade menor do que 0,0001% de que valor F seja tão alto tenha ocorrido apenas por acaso. Ou seja, pode-se concluir que nosso modelo de regressão representa melhor a taxa de mortalidade se tivéssemos usados apenas o valor médio das mortes por covid por distrito. Lembrando que o critério de Fisher é de 0.05 (nível de significância). Ou seja, o resultado reflete um efeito genuíno, não é fruto do acaso.
O modelo de regressão linear assume algumas hipotéses sobre os dados de entrada para que seu resultado seja significativo.
Se o modelo for adequado, os resíduos devem refletir as propriedades impostas pelo termo de erro do modelo. Portanto, a análise dos resíduos se faz necessária para avaliar a adequação do modelo
O primeiro gráfico (resíduos x valores ajustados) permite verificar a linearidade do modelo. Um bom exemplo possui valores distribuidos em torno da linha de resíduos igual a zero (linha pontilhada). O modelo aplicado (linha vermelha) desvia um pouco do zero, principalmente nos extremos dos valores ajustados.
O segundo gráfico (QQ-plot) exibe os resíduos normalizados e os quantis teóricos da curva normal, ou seja, verifica a hipótese de normalidade dos resíduos. O ideal é que as observações sigam a linha pontilhada. Entretanto, identificamos que nos extremos as observações mais afastadas da linha.
O terceiro gráfico é útil para verificar a hipótese de homocedasticidade dos resíduos. No modelo ideal, os pontos estão distribuídos uniformemente ao redor da linha vermelha. No modelo utilizado, identica-se que eles não estão distribuídos uniformemente.
O quarto gráfico exibe a influência pelos resíduos padronizados. Neste gráfico, as observações mais distantes possuem influência. A distância de Cook permite identificar pontos influentes, mas em termos da alavancagem, ou seja, detectar obervações extremas, que possuem alta influência no modelo. As obervações mais influentes possuem valor de distância de Cook maior.
Após a aplicação do modelo, é possível criar um diagrama de dispersão com a linha de tendência (ajuste).
plot(x = dados$populacao,
y = dados$taxa_por_100_mil_srag,
xlab = "População",
ylab = "Taxa mortalidade por 100 mil de SRAG")
abline(modelo1, col = "red")
A utilização da regressão simples nos ajudará a obter uma equação matemática que descreve a relação entre duas ou mais variáveis.
modelo2 <- lm(formula = dados$taxa_por_100_mil_covid ~ dados$populacao, data = dados, na.action = na.exclude)
summary(modelo2)
##
## Call:
## lm(formula = dados$taxa_por_100_mil_covid ~ dados$populacao,
## data = dados, na.action = na.exclude)
##
## Residuals:
## Min 1Q Median 3Q Max
## -75.292 -16.977 -0.636 21.933 66.347
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.828e+02 5.939e+00 30.773 <2e-16 ***
## dados$populacao -1.101e-04 4.362e-05 -2.525 0.0132 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 29.6 on 94 degrees of freedom
## Multiple R-squared: 0.06353, Adjusted R-squared: 0.05357
## F-statistic: 6.377 on 1 and 94 DF, p-value: 0.01323
b0 é o intercepto de y (onde a linha corta o eixo y) –> b0 = 0,01828 é o valor que Y assume quando X = 0).
b1 é a inclinação da reta de regressão –> indica a magnitude da mudança da variável de saída (Y) para cada alteração de uma unidade no previsor (X).
b1 = -0,0001101 –> Em média, um aumento de 1 habitante, está relacionado a uma diminuição de -0,0001101 na taxa de mortos por 100 mil por Covid.
Esta variável preditora (população) faz diferença na representação da variação da taxa de mortos por 100 mil porque o parâmetro b1 é diferente de zero, mais especificamente, o teste t nos ajudar a rejeitar a hipótese nula de que b1 = zero
Calcula-se o valor t dividindo o b1 pelo seu erro padrão (Std. Error) = -0,0001101/0,00004362 = -2.525
A probabilidade de se obter um valor igual ou maior do que esse valor t, dado que a hipótese nula é verdadeira é muito pequena (pr(>|t|)) –> p-valor < 0,01 (para ser mais preciso, menor do que 0,0132). Ou seja, rejeita-se a hipótese nula!
Concluímos que a população tem uma contribuição significativa (p < 0,0132) na explicação da variação da taxa de mortalidade por 100 mil por Covid.
O mesmo teste é aplicado para analisar a significância do b0.
H0 : b0 = zero
Neste caso, o p-valor < 0.0132.
O nosso modelo consegue explicar 5,3% da variação da taxa de mortalidade por 100 mil por Covid. No entanto, 84,7% da variação da taxa de mortalidade não pode ser explicado pela variação da população.
O teste F é uma medida do quanto o modelo melhorou na previsão de valores comparado como o nível de não precisão do modelo.
A Estatística F = 6.37 é significativa até mesmo para o nível de significância x > 0,01.
Esse resultado nos informa que existe uma probabilidade menor do que 0,01% de que valor F seja tão alto tenha ocorrido apenas por acaso. Ou seja, pode-se concluir que nosso modelo de regressão representa melhor a taxa de mortalidade se tivéssemos usados apenas o valor médio das mortes por covid por distrito. Lembrando que o critério de Fisher é de 0.05 (nível de significância). Ou seja, o resultado reflete um efeito genuíno, não é fruto do acaso.
O modelo de regressão linear assume algumas hipotéses sobre os dados de entrada para que seu resultado seja significativo.
Se o modelo for adequado, os resíduos devem refletir as propriedades impostas pelo termo de erro do modelo. Portanto, a análise dos resíduos se faz necessária para avaliar a adequação do modelo
O primeiro gráfico (resíduos x valores ajustados) permite verificar a linearidade do modelo. Um bom exemplo possui valores distribuidos em torno da linha de resíduos igual a zero (linha pontilhada). O modelo aplicado (linha vermelha) desvia um pouco do zero, principalmente nos extremos dos valores ajustados.
O segundo gráfico (QQ-plot) exibe os resíduos normalizados e os quantis teóricos da curva normal, ou seja, verifica a hipótese de normalidade dos resíduos. O ideal é que as observações sigam a linha pontilhada. Entretanto, identificamos que nos extremos as observações mais afastadas da linha.
O terceiro gráfico é útil para verificar a hipótese de homocedasticidade dos resíduos. No modelo ideal, os pontos estão distribuídos uniformemente ao redor da linha vermelha. No modelo utilizado, identica-se que eles não estão distribuídos uniformemente.
O quarto gráfico exibe a influência pelos resíduos padronizados. Neste gráfico, as observações mais distantes possuem influência. A distância de Cook permite identificar pontos influentes, mas em termos da alavancagem, ou seja, detectar obervações extremas, que possuem alta influência no modelo. As obervações mais influentes possuem valor de distância de Cook maior.
Após a aplicação do modelo, é possível criar um diagrama de dispersão com a linha de tendência (ajuste).
plot(x = dados$populacao,
y = dados$taxa_por_100_mil_covid,
xlab = "População",
ylab = "Taxa mortalidade por 100 mil de Covid")
abline(modelo2, col = "red")
Um modelo com mais de uma variável independente (X) é denominado modelo de regressão múltiplo.
Segue o banco de dados utilizado para realizarmos as análises de regressão múltipla e espacial.
Segue a tabela com as variáveis que serão utilizadas, a partir de agora, nas análises.
dados_2 %>%
select(taxa_por_100_mil_covid, taxa_por_100_mil_srag, populacao, dmd_ate_2, dmd_2_a_4, dmd_acima_4) %>%
rename(taxa_covid = taxa_por_100_mil_covid, taxa_srag = taxa_por_100_mil_srag) %>%
cor(method = "pearson",
use = "complete.obs") %>%
corrplot(method = "number")
Legenda: . <br
dados_2 %>%
select(taxa_por_100_mil_covid, taxa_por_100_mil_srag, anos_0_19, anos_20_44, anos_45_64, anos_65_mais, sem_renda, sm_ate_2, sm_2_a_5, sm_5_a_10, sm_mais_10) %>%
rename(taxa_covid = taxa_por_100_mil_covid, taxa_srag = taxa_por_100_mil_srag) %>%
cor(method = "pearson",
use = "complete.obs") %>%
corrplot(method = "number")
Legenda: .
dados_2 %>%
select(taxa_por_100_mil_covid, taxa_por_100_mil_srag, populacao, dmd_ate_2, dmd_2_a_4, dmd_acima_4) %>%
rename(taxa_covid = taxa_por_100_mil_covid, taxa_srag = taxa_por_100_mil_srag) %>%
as.matrix() %>%
rcorr(type = "pearson")
## taxa_covid taxa_srag populacao dmd_ate_2 dmd_2_a_4 dmd_acima_4
## taxa_covid 1.00 0.46 -0.25 0.12 -0.11 -0.20
## taxa_srag 0.46 1.00 -0.38 0.35 -0.34 -0.38
## populacao -0.25 -0.38 1.00 -0.50 0.50 0.47
## dmd_ate_2 0.12 0.35 -0.50 1.00 -1.00 -0.95
## dmd_2_a_4 -0.11 -0.34 0.50 -1.00 1.00 0.93
## dmd_acima_4 -0.20 -0.38 0.47 -0.95 0.93 1.00
##
## n= 96
##
##
## P
## taxa_covid taxa_srag populacao dmd_ate_2 dmd_2_a_4 dmd_acima_4
## taxa_covid 0.0000 0.0132 0.2396 0.3051 0.0539
## taxa_srag 0.0000 0.0002 0.0004 0.0006 0.0001
## populacao 0.0132 0.0002 0.0000 0.0000 0.0000
## dmd_ate_2 0.2396 0.0004 0.0000 0.0000 0.0000
## dmd_2_a_4 0.3051 0.0006 0.0000 0.0000 0.0000
## dmd_acima_4 0.0539 0.0001 0.0000 0.0000 0.0000
dados_2 %>%
select(taxa_por_100_mil_covid, taxa_por_100_mil_srag, anos_0_19, anos_20_44, anos_45_64, anos_65_mais, sem_renda, sm_ate_2, sm_2_a_5, sm_5_a_10, sm_mais_10) %>%
rename(taxa_covid = taxa_por_100_mil_covid, taxa_srag = taxa_por_100_mil_srag) %>%
as.matrix() %>%
rcorr(type = "pearson")
## taxa_covid taxa_srag anos_0_19 anos_20_44 anos_45_64 anos_65_mais
## taxa_covid 1.00 0.46 -0.21 -0.39 0.31 0.32
## taxa_srag 0.46 1.00 -0.42 0.18 0.25 0.35
## anos_0_19 -0.21 -0.42 1.00 0.10 -0.90 -0.94
## anos_20_44 -0.39 0.18 0.10 1.00 -0.48 -0.41
## anos_45_64 0.31 0.25 -0.90 -0.48 1.00 0.94
## anos_65_mais 0.32 0.35 -0.94 -0.41 0.94 1.00
## sem_renda -0.31 -0.47 0.85 0.15 -0.80 -0.81
## sm_ate_2 -0.03 -0.40 0.92 -0.01 -0.79 -0.83
## sm_2_a_5 -0.02 -0.23 0.88 0.22 -0.85 -0.86
## sm_5_a_10 0.54 0.41 -0.29 0.03 0.24 0.25
## sm_mais_10 -0.03 0.27 -0.88 -0.14 0.82 0.84
## sem_renda sm_ate_2 sm_2_a_5 sm_5_a_10 sm_mais_10
## taxa_covid -0.31 -0.03 -0.02 0.54 -0.03
## taxa_srag -0.47 -0.40 -0.23 0.41 0.27
## anos_0_19 0.85 0.92 0.88 -0.29 -0.88
## anos_20_44 0.15 -0.01 0.22 0.03 -0.14
## anos_45_64 -0.80 -0.79 -0.85 0.24 0.82
## anos_65_mais -0.81 -0.83 -0.86 0.25 0.84
## sem_renda 1.00 0.77 0.66 -0.45 -0.72
## sm_ate_2 0.77 1.00 0.88 -0.16 -0.92
## sm_2_a_5 0.66 0.88 1.00 0.13 -0.98
## sm_5_a_10 -0.45 -0.16 0.13 1.00 -0.13
## sm_mais_10 -0.72 -0.92 -0.98 -0.13 1.00
##
## n= 96
##
##
## P
## taxa_covid taxa_srag anos_0_19 anos_20_44 anos_45_64 anos_65_mais
## taxa_covid 0.0000 0.0415 0.0001 0.0019 0.0013
## taxa_srag 0.0000 0.0000 0.0820 0.0130 0.0004
## anos_0_19 0.0415 0.0000 0.3114 0.0000 0.0000
## anos_20_44 0.0001 0.0820 0.3114 0.0000 0.0000
## anos_45_64 0.0019 0.0130 0.0000 0.0000 0.0000
## anos_65_mais 0.0013 0.0004 0.0000 0.0000 0.0000
## sem_renda 0.0022 0.0000 0.0000 0.1479 0.0000 0.0000
## sm_ate_2 0.7507 0.0000 0.0000 0.9365 0.0000 0.0000
## sm_2_a_5 0.8695 0.0272 0.0000 0.0330 0.0000 0.0000
## sm_5_a_10 0.0000 0.0000 0.0043 0.7903 0.0179 0.0158
## sm_mais_10 0.7379 0.0082 0.0000 0.1688 0.0000 0.0000
## sem_renda sm_ate_2 sm_2_a_5 sm_5_a_10 sm_mais_10
## taxa_covid 0.0022 0.7507 0.8695 0.0000 0.7379
## taxa_srag 0.0000 0.0000 0.0272 0.0000 0.0082
## anos_0_19 0.0000 0.0000 0.0000 0.0043 0.0000
## anos_20_44 0.1479 0.9365 0.0330 0.7903 0.1688
## anos_45_64 0.0000 0.0000 0.0000 0.0179 0.0000
## anos_65_mais 0.0000 0.0000 0.0000 0.0158 0.0000
## sem_renda 0.0000 0.0000 0.0000 0.0000
## sm_ate_2 0.0000 0.0000 0.1222 0.0000
## sm_2_a_5 0.0000 0.0000 0.2107 0.0000
## sm_5_a_10 0.0000 0.1222 0.2107 0.1967
## sm_mais_10 0.0000 0.0000 0.0000 0.1967
modelo3 <- lm(formula = taxa_por_100_mil_covid ~ anos_65_mais + sm_mais_10, data = dados_2, na.action = na.exclude)
summary(modelo3)
##
## Call:
## lm(formula = taxa_por_100_mil_covid ~ anos_65_mais + sm_mais_10,
## data = dados_2, na.action = na.exclude)
##
## Residuals:
## Min 1Q Median 3Q Max
## -64.043 -15.215 -0.262 11.955 94.670
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 120.615 7.126 16.926 < 2e-16 ***
## anos_65_mais 968.795 115.138 8.414 4.59e-13 ***
## sm_mais_10 -162.168 22.085 -7.343 7.81e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23.16 on 93 degrees of freedom
## Multiple R-squared: 0.4329, Adjusted R-squared: 0.4207
## F-statistic: 35.5 on 2 and 93 DF, p-value: 3.506e-12
modelo4 <- lm(formula = taxa_por_100_mil_srag ~ anos_65_mais + sm_mais_10, data = dados_2, na.action = na.exclude)
summary(modelo4)
##
## Call:
## lm(formula = taxa_por_100_mil_srag ~ anos_65_mais + sm_mais_10,
## data = dados_2, na.action = na.exclude)
##
## Residuals:
## Min 1Q Median 3Q Max
## -295.112 -46.257 -2.556 27.776 261.205
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 381.83 24.62 15.510 <2e-16 ***
## anos_65_mais 970.59 397.77 2.440 0.0166 *
## sm_mais_10 -44.02 76.30 -0.577 0.5654
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 80.01 on 93 degrees of freedom
## Multiple R-squared: 0.1278, Adjusted R-squared: 0.109
## F-statistic: 6.814 on 2 and 93 DF, p-value: 0.001732
## Warning: When comparing models, please note that probably not all models were
## fit from same data.
## # Comparison of Model Performance Indices
##
## Model | Type | AIC | BIC | R2 | R2_adjusted | RMSE | Sigma | BF | Performance_Score
## -----------------------------------------------------------------------------------------------------
## modelo3 | lm | 880.74 | 891.00 | 0.43 | 0.42 | 22.80 | 23.16 | BF > 1000 | 100.00%
## modelo2 | lm | 926.89 | 934.59 | 0.06 | 0.05 | 29.29 | 29.60 | BF = 1.00 | 0.00%
##
## Model modelo3 (of class lm) performed best with an overall performance score of 100.00%.
O modelo 3 (regressão linear múltipla) possui um R² e R² ajustado maior que o modelo 1 (regressão linear simples). Além das métricas apresentadas, também é importante avaliar as hipóteses e redíduos do segundo modelo.
## # A tibble: 6 x 27
## ds_codigo codigo distrito domilicios populacao SRAG taxa_por_100_mi~ COVID
## <int> <int> <chr> <int> <int> <int> <dbl> <int>
## 1 1 3.55e8 Água Ra~ 28652 84963 452 532 167
## 2 2 3.55e8 Alto de~ 15408 43117 172 399. 64
## 3 3 3.55e8 Anhangu~ 19437 65859 225 342. 66
## 4 4 3.55e8 Aricand~ 27661 89622 447 499. 183
## 5 5 3.55e8 Artur A~ 33712 105269 529 503. 232
## 6 6 3.55e8 Barra F~ 5623 14383 109 758. 28
## # ... with 19 more variables: taxa_por_100_mil_covid <dbl>, dmd_ate_2 <dbl>,
## # dmd_2_a_4 <dbl>, dmd_acima_4 <dbl>, anos_0_19 <dbl>, anos_20_44 <dbl>,
## # anos_45_64 <dbl>, anos_65_mais <dbl>, sem_renda <dbl>, sm_ate_2 <dbl>,
## # sm_2_a_5 <dbl>, sm_5_a_10 <dbl>, sm_mais_10 <dbl>, .fitted <dbl>,
## # .resid <dbl>, .std.resid <dbl>, .hat <dbl>, .sigma <dbl>, .cooksd <dbl>
Foram adicionados à base de dados original seis novas variáveis:
fitted = Valor ajustado ou previsto
resid = A diferença entre os valores observados e ajustados
std.resid = Resíduos padronizados
hat = Diagonal da matriz de influência
sigma = Desvio padrão residual estimado a observação correspondente é excluída do modelo
cooksd = Distância de Cook
Quantil - taxa mortalidade por 100 habitantes
histograma
Taxa de mortalidade por 100 mil de covid x População
Análise Exploratória
índice de moran
Alto-Alto
Baixo-Baixo
Índice local
Mapa de Clusters
Mapa de Significância
Material criado por Grupo Covid-19.