razao dep
Dados
Disponíveis em: https://www.ipardes.pr.gov.br/Pagina/Base-de-Dados-do-Estado
Variável resposta (por município):
- razao_dep: razão de dependencia
Covariáveis (por município):
- populacao: população estimada
- pib_pc: pib per capita
- gini: índice de gini
- prop_idosos: proporção de idosos
- natalidade: renda média domiciliar per capita
- ipdm: Índice de Desempenho Municipal
- renda: Renda média domiciliar per capita
- idh: Índice de Desenvolvimento Humano Municipal
Primeiras linhas da base:
| razao_dep | populacao | pib_pc | gini | prop_idosos | natalidade | gini_renda_pc | idh | renda | ipdm |
|---|---|---|---|---|---|---|---|---|---|
| 51.58 | 7350 | 30141 | 0.44 | 14.92 | 11.19 | 0.4424 | 0.687 | 533.79 | 0.7556 |
| 52.21 | 6366 | 63631 | 0.53 | 13.36 | 11.19 | 0.5393 | 0.667 | 430.79 | 0.6951 |
| 48.22 | 10325 | 22674 | 0.48 | 11.15 | 14.95 | 0.4797 | 0.660 | 516.96 | 0.6148 |
| 42.38 | 122524 | 15948 | 0.43 | 7.15 | 13.09 | 0.4402 | 0.699 | 629.58 | 0.6259 |
| 48.22 | 3628 | 67333 | 0.58 | 13.70 | 11.98 | 0.5848 | 0.667 | 504.11 | 0.7449 |
| 50.42 | 3095 | 43224 | 0.52 | 12.54 | 18.66 | 0.5769 | 0.678 | 498.65 | 0.7570 |
Análise Descritiva
| vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | Q0.25 | Q0.75 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| razao_dep | 1 | 399 | 4.781391e+01 | 3.077880e+00 | 47.8200 | 4.789009e+01 | 2.891070e+00 | 39.3100 | 56.6500 | 17.3400 | -0.1956089 | 0.0328813 | 0.1540868 | 4.6015e+01 | 49.8800 |
| populacao | 2 | 399 | 2.928995e+04 | 1.060821e+05 | 9781.0000 | 1.276305e+04 | 8.060896e+03 | 1342.0000 | 1836535.0000 | 1835193.0000 | 13.1551570 | 211.1002330 | 5310.7481511 | 4.9855e+03 | 18882.5000 |
| pib_pc | 3 | 399 | 4.308138e+04 | 1.975808e+04 | 38431.0000 | 4.028830e+04 | 1.496388e+04 | 13213.0000 | 170126.0000 | 156913.0000 | 1.9707201 | 6.4621561 | 989.1413957 | 2.9765e+04 | 51827.5000 |
| gini | 4 | 399 | 4.656892e-01 | 5.710750e-02 | 0.4700 | 4.646729e-01 | 5.930400e-02 | 0.3300 | 0.6600 | 0.3300 | 0.2315127 | 0.0717342 | 0.0028590 | 4.3000e-01 | 0.5000 |
| prop_idosos | 5 | 399 | 1.286133e+01 | 2.409878e+00 | 12.8700 | 1.287146e+01 | 2.461116e+00 | 5.3000 | 19.8700 | 14.5700 | -0.0564452 | -0.1348679 | 0.1206448 | 1.1215e+01 | 14.4900 |
| natalidade | 6 | 399 | 1.224291e+01 | 2.036939e+00 | 12.1900 | 1.224505e+01 | 1.942206e+00 | 3.5600 | 18.6600 | 15.1000 | -0.0890629 | 0.4935912 | 0.1019745 | 1.0935e+01 | 13.6050 |
| gini_renda_pc | 7 | 399 | 4.730075e-01 | 5.768080e-02 | 0.4754 | 4.723751e-01 | 5.604230e-02 | 0.3278 | 0.6383 | 0.3105 | 0.1172795 | -0.1939912 | 0.0028877 | 4.3365e-01 | 0.5092 |
| idh | 8 | 399 | 7.019599e-01 | 3.856590e-02 | 0.7060 | 7.039595e-01 | 3.261720e-02 | 0.5460 | 0.8230 | 0.2770 | -0.5552369 | 0.9380658 | 0.0019307 | 6.8100e-01 | 0.7250 |
| renda | 9 | 399 | 6.000395e+02 | 1.478300e+02 | 581.3500 | 5.898104e+02 | 1.204613e+02 | 274.0500 | 1536.3900 | 1262.3400 | 1.2128961 | 4.3941051 | 7.4007580 | 5.0765e+02 | 672.1050 |
| ipdm | 10 | 399 | 7.414358e-01 | 5.253060e-02 | 0.7467 | 7.436065e-01 | 5.144620e-02 | 0.4592 | 0.9013 | 0.4421 | -0.6297050 | 1.9366117 | 0.0026298 | 7.0955e-01 | 0.7778 |
;;;Escrever algo
Histograma
Como vimos acima as variáveis população e pib per capita problemas de assimetria, vamos analisar os histogramas dessas variáveis para entender melhor a distribuição dos dados.
par(mfrow = c(1, 2))
hist(df$populacao, main = "Histograma de População", xlab = "População")
hist(df$pib_pc, main = "Histograma de PIB per Capita", xlab = "PIB per Capita");;; Escrever algo
;;; Justificativa para a transformação
# Criando variáveis transformadas (logaritmo da população e PIB)
df$log_pop <- log(df$populacao)
df$log_pib <- log(df$pib_pc)
df$log_renda <- log(df$renda)Após a transformação, vamos verificar novamente
| vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | Q0.25 | Q0.75 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| razao_dep | 1 | 399 | 47.8139098 | 3.0778804 | 47.820000 | 47.8900935 | 2.8910700 | 39.310000 | 56.650000 | 17.340000 | -0.1956089 | 0.0328813 | 0.1540868 | 46.015000 | 49.880000 |
| gini | 2 | 399 | 0.4656892 | 0.0571075 | 0.470000 | 0.4646729 | 0.0593040 | 0.330000 | 0.660000 | 0.330000 | 0.2315127 | 0.0717342 | 0.0028590 | 0.430000 | 0.500000 |
| prop_idosos | 3 | 399 | 12.8613283 | 2.4098777 | 12.870000 | 12.8714642 | 2.4611160 | 5.300000 | 19.870000 | 14.570000 | -0.0564452 | -0.1348679 | 0.1206448 | 11.215000 | 14.490000 |
| natalidade | 4 | 399 | 12.2429073 | 2.0369387 | 12.190000 | 12.2450467 | 1.9422060 | 3.560000 | 18.660000 | 15.100000 | -0.0890629 | 0.4935912 | 0.1019745 | 10.935000 | 13.605000 |
| gini_renda_pc | 5 | 399 | 0.4730075 | 0.0576808 | 0.475400 | 0.4723751 | 0.0560423 | 0.327800 | 0.638300 | 0.310500 | 0.1172795 | -0.1939912 | 0.0028877 | 0.433650 | 0.509200 |
| idh | 6 | 399 | 0.7019599 | 0.0385659 | 0.706000 | 0.7039595 | 0.0326172 | 0.546000 | 0.823000 | 0.277000 | -0.5552369 | 0.9380658 | 0.0019307 | 0.681000 | 0.725000 |
| renda | 7 | 399 | 600.0395489 | 147.8300262 | 581.350000 | 589.8104361 | 120.4612500 | 274.050000 | 1536.390000 | 1262.340000 | 1.2128961 | 4.3941051 | 7.4007580 | 507.650000 | 672.105000 |
| ipdm | 8 | 399 | 0.7414358 | 0.0525306 | 0.746700 | 0.7436065 | 0.0514462 | 0.459200 | 0.901300 | 0.442100 | -0.6297050 | 1.9366117 | 0.0026298 | 0.709550 | 0.777800 |
| log_pop | 9 | 399 | 9.3274121 | 1.1111943 | 9.188197 | 9.2136506 | 0.9924579 | 7.201916 | 14.423391 | 7.221475 | 1.0813543 | 1.6084961 | 0.0556293 | 8.514287 | 9.845928 |
| log_pib | 10 | 399 | 10.5855348 | 0.4021658 | 10.556620 | 10.5692511 | 0.4061473 | 9.488957 | 12.044295 | 2.555338 | 0.4033601 | 0.2652028 | 0.0201335 | 10.301088 | 10.855675 |
| log_renda | 11 | 399 | 6.3685244 | 0.2381859 | 6.365353 | 6.3689812 | 0.2099528 | 5.613311 | 7.337191 | 1.723880 | 0.0224492 | 0.8616387 | 0.0119242 | 6.229792 | 6.510413 |
;;; Escrever algo
Correlação
Vamos analisar a correlação entre as variáveis transformadas e a variável resposta.
## razao_dep gini prop_idosos natalidade gini_renda_pc
## razao_dep 1.000000000 0.009286122 0.677308206 -0.11511023 -0.006796366
## gini 0.009286122 1.000000000 -0.231390860 0.31330213 0.989640146
## prop_idosos 0.677308206 -0.231390860 1.000000000 -0.51989531 -0.251855742
## natalidade -0.115110226 0.313302127 -0.519895307 1.00000000 0.318848441
## gini_renda_pc -0.006796366 0.989640146 -0.251855742 0.31884844 1.000000000
## idh -0.270710523 -0.115975323 0.149520252 -0.19776761 -0.124112319
## renda -0.333524781 0.148955156 -0.023973133 -0.03611589 0.135945284
## ipdm -0.266481062 0.013166002 -0.017719723 -0.03104015 0.009298058
## log_pop -0.565719379 0.256161964 -0.496119612 0.20262777 0.270499147
## log_pib -0.092030849 0.157002715 -0.012018878 0.04051899 0.160096346
## log_renda -0.313599430 0.102427649 0.006711298 -0.06455538 0.089240883
## idh renda ipdm log_pop log_pib
## razao_dep -0.2707105 -0.33352478 -0.266481062 -0.56571938 -0.09203085
## gini -0.1159753 0.14895516 0.013166002 0.25616196 0.15700272
## prop_idosos 0.1495203 -0.02397313 -0.017719723 -0.49611961 -0.01201888
## natalidade -0.1977676 -0.03611589 -0.031040147 0.20262777 0.04051899
## gini_renda_pc -0.1241123 0.13594528 0.009298058 0.27049915 0.16009635
## idh 1.0000000 0.84545393 0.602394569 0.34547952 0.35647922
## renda 0.8454539 1.00000000 0.579609912 0.53256715 0.32436919
## ipdm 0.6023946 0.57960991 1.000000000 0.27219510 0.47394515
## log_pop 0.3454795 0.53256715 0.272195103 1.00000000 0.05392605
## log_pib 0.3564792 0.32436919 0.473945147 0.05392605 1.00000000
## log_renda 0.8819643 0.97809377 0.585597073 0.49389961 0.33696129
## log_renda
## razao_dep -0.313599430
## gini 0.102427649
## prop_idosos 0.006711298
## natalidade -0.064555383
## gini_renda_pc 0.089240883
## idh 0.881964341
## renda 0.978093770
## ipdm 0.585597073
## log_pop 0.493899611
## log_pib 0.336961292
## log_renda 1.000000000
;;; Escrever algo
Pair plot
Após observar o pair plot, percebemos que a variável gini parece não ter
uma relação linear clara com a variável resposta. Vamos analisar mais de
perto essa relação.
# Gráfico de dispersão entre gini e razão de dependência
ggplot(df, aes(x = gini, y = razao_dep)) +
geom_point() +
labs(title = "Relação entre Gini e Razão de Dependência",
x = "Índice de Gini",
y = "Razão de Dependência") +
theme_minimal()Como podemos ver, a relação entre o índice de Gini e a razão de dependência não é linear. Então vamos utilizar a variável ipdm, que é o Índice de Desempenho Municipal, para ver se há uma relação mais clara.
# Gráfico de dispersão entre gini_renda_pc e razão de dependência
ggplot(df, aes(x = ipdm, y = razao_dep)) +
geom_point() +
labs( x = "Índice de Desempenho Municipal",
y = "Razão de Dependência") +
theme_minimal()Vamos utilizar a variável ipdm como uma covariável no modelo, pois ela parece ter uma relação mais clara com a razão de dependência.
Ao compararmos os gráficos de dispersão, observamos que a variável log_renda apresenta uma relação mais clara e consistente com a razão de dependência do que log_pib.
# Gráfico de dispersão entre log_pib e razão de dependência
ggplot(df, aes(x = log_pib, y = razao_dep)) +
geom_point() +
labs(title = "Razão de Dependência vs. log(PIB per Capita)",
x = "log(PIB per Capita)",
y = "Razão de Dependência") +
theme_minimal()# Gráfico de dispersão entre log_renda e razão de dependência
ggplot(df, aes(x = log_renda, y = razao_dep)) +
geom_point() +
labs(title = "Razão de Dependência vs. log(Renda Média Domiciliar per Capita)",
x = "log(Renda Média Domiciliar per Capita)",
y = "Razão de Dependência") +
theme_minimal()Ajuste do Modelo de Regressão Linear Múltipla
Vamos ajustar um modelo de regressão linear múltipla utilizando as variáveis transformadas e as covariáveis selecionadas.
ajuste <- lm(razao_dep ~ log_pop + prop_idosos + natalidade + log_renda + ipdm, data = df)
summary(ajuste)##
## Call:
## lm(formula = razao_dep ~ log_pop + prop_idosos + natalidade +
## log_renda + ipdm, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.9462 -1.1939 -0.0454 1.2188 6.6161
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 52.00975 2.79483 18.609 < 2e-16 ***
## log_pop -0.36709 0.11788 -3.114 0.00198 **
## prop_idosos 0.97567 0.05329 18.307 < 2e-16 ***
## natalidade 0.44501 0.05366 8.293 1.77e-15 ***
## log_renda -2.21467 0.56112 -3.947 9.38e-05 ***
## ipdm -6.29087 2.18856 -2.874 0.00427 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.856 on 393 degrees of freedom
## Multiple R-squared: 0.6408, Adjusted R-squared: 0.6363
## F-statistic: 140.2 on 5 and 393 DF, p-value: < 2.2e-16
;;; explicar o summary
Diagnóstico do Ajuste
indica problemas de heterocedasticidade e leve fuga da normal
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 4.131307, Df = 1, p = 0.042097
##
## Shapiro-Wilk normality test
##
## data: rstudent(ajuste)
## W = 0.99443, p-value = 0.1561
## log_pop prop_idosos natalidade log_renda ipdm
## 1.981898 1.905244 1.379882 2.063200 1.526648
max_likelihood_index <- which.max(boxcox_resultado$y)
lambda_ideal <- boxcox_resultado$x[max_likelihood_index]
max_likelihood_index## [1] 65
## [1] 0.5858586
Como 1 está no intervalo de confiança não vamos fazer nenhuma transformação.
new_data <- data.frame(log_pop = log(100000), log_renda = log(500), ipdm = 0.85, prop_idosos = 15, natalidade = 12)
predict(ajuste, newdata = new_data, interval = "confidence") ## fit lwr upr
## 1 48.64809 47.68594 49.61024
## fit lwr upr
## 1 48.64809 44.87392 52.42226