eleicoes_2006_2010 <- readr::read_csv(
here::here('Lab1/eleicoes_2006_e_2010.csv'),
local=readr::locale("br"),
col_types = cols(
ano = col_integer(),
sequencial_candidato = col_character(),
quantidade_doacoes = col_integer(),
quantidade_doadores = col_integer(),
total_receita = col_double(),
media_receita = col_double(),
recursos_de_outros_candidatos.comites = col_double(),
recursos_de_pessoas_fisicas = col_double(),
recursos_de_pessoas_juridicas = col_double(),
recursos_proprios = col_double(),
recursos_de_partido_politico = col_double(),
quantidade_despesas = col_integer(),
quantidade_fornecedores = col_integer(),
total_despesa = col_double(),
media_despesa = col_double(),
votos = col_integer(),
.default = col_character()))
eleicoes_2006_2010$sexo <- as.numeric(as.factor(eleicoes_2006_2010$sexo))
eleicoes_2006_2010$estado_civil <- as.numeric(as.factor(eleicoes_2006_2010$estado_civil))
eleicoes_2006_2010$ocupacao <- as.numeric(as.factor(eleicoes_2006_2010$ocupacao))
eleicoes_2006_2010$sequencial_candidato <- as.numeric(as.factor(eleicoes_2006_2010$sequencial_candidato))
eleicoes_2006_2010$nome <- as.numeric(as.factor(eleicoes_2006_2010$nome))
eleicoes_2006_2010$uf <- as.numeric(as.factor(eleicoes_2006_2010$uf))
eleicoes_2006_2010$partido <- as.numeric(as.factor(eleicoes_2006_2010$partido))
eleicoes_2006_2010$cargo <- as.numeric(as.factor(eleicoes_2006_2010$cargo))
eleicoes_2006_2010$grau <- as.numeric(as.factor(eleicoes_2006_2010$grau))
glimpse(eleicoes_2006_2010)
## Observations: 7,476
## Variables: 24
## $ ano <int> 2006, 2006, 2006, 2006, ...
## $ sequencial_candidato <dbl> 158, 159, 159, 159, 160,...
## $ nome <dbl> 3649, 4130, 4753, 5998, ...
## $ uf <dbl> 4, 21, 4, 12, 21, 17, 12...
## $ partido <dbl> 26, 26, 26, 16, 26, 5, 1...
## $ quantidade_doacoes <int> 6, 13, 17, 6, 48, 6, 14,...
## $ quantidade_doadores <int> 6, 13, 16, 6, 48, 6, 7, ...
## $ total_receita <dbl> 16600.00, 22826.00, 1581...
## $ media_receita <dbl> 2766.67, 1755.85, 9301.2...
## $ recursos_de_outros_candidatos.comites <dbl> 0.00, 6625.00, 2250.00, ...
## $ recursos_de_pessoas_fisicas <dbl> 9000.00, 15000.00, 34150...
## $ recursos_de_pessoas_juridicas <dbl> 6300.00, 1000.00, 62220....
## $ recursos_proprios <dbl> 1300.00, 201.00, 59500.0...
## $ recursos_de_partido_politico <dbl> 0, 0, 0, 0, 0, 0, 0, 0, ...
## $ quantidade_despesas <int> 14, 24, 123, 8, 133, 9, ...
## $ quantidade_fornecedores <int> 14, 23, 108, 8, 120, 9, ...
## $ total_despesa <dbl> 16583.60, 20325.99, 1460...
## $ media_despesa <dbl> 1184.54, 846.92, 1187.09...
## $ cargo <dbl> 1, 1, 1, 1, 1, 1, 1, 1, ...
## $ sexo <dbl> 2, 1, 1, 2, 2, 2, 2, 2, ...
## $ grau <dbl> 3, 6, 6, 4, 1, 6, 6, 6, ...
## $ estado_civil <dbl> 1, 4, 5, 1, 1, 1, 1, 1, ...
## $ ocupacao <dbl> 172, 138, 109, 93, 43, 1...
## $ votos <int> 8579, 2757, 17428, 1193,...
“sequencial_candidato” :(character) id do candidato
“nome”: (character)
“uf”: (character)
“partido”: (character)
“quantidade_doacoes”: (integer)
“quantidade_doadores”: (integer) número de doadores diferentes
“total_receita”: (double) soma em R$ das doações
“media_receita”: (double) média das doações
“recursos_de_outros_candidatos/comites”: (double) quantia em R$ das doações provenientes de outros candidatos ou comite partidário
“recursos_de_pessoas_fisicas”: (double) quantia em R$ das doações provenientes de outros CPFs
“recursos_de_pessoas_juridicas”: (double) quantia em R$ das doações provenientes de outros CNPJ
“recursos_proprios”: (double) quantia em R$ das doações provenientes do próprio candidato
“recursos_de_partido_politico”: (double) quantia em R$ das doações provenientes do partido político do candidato
“votos”: (integer) variável alvo. Se refere ao número de votos na campanha de 2006 e 2010
“quantidade_despesas”: (integer)
“quantidade_fornecedores”: (integer) número de fornecedores/despesas diferentes
“total_despesa”: (double) soma em R$ das despesas de campanha
“media_despesa”: (double) média das despesas de campanha
“cargo”: (character)
“Sexo”: (character)
“grau”: (character) grau de instrução do candidato
“estado_civil”: (character)
“ocupacao”: (character) ocupação do candidato
A biblioteca Visdat foi utilizada para procurar por dados faltosos. Eles não existem nessa base de dados.
vis_miss(eleicoes_2006_2010, show_perc_col = TRUE)
Modelo para regressão com todas as variáveis em 2006:
eleicoes_2006 <- eleicoes_2006_2010 %>% filter(ano == 2006)
fit.lm2006<- lm(formula = votos ~ ., eleicoes_2006, na.action = na.omit)
summary(fit.lm2006)
##
## Call:
## lm(formula = votos ~ ., data = eleicoes_2006, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -227989 -8112 -4031 677 641979
##
## Coefficients: (3 not defined because of singularities)
## Estimate Std. Error t value
## (Intercept) 1724.61595 4523.49381 0.381
## ano NA NA NA
## sequencial_candidato -1.41285 1.10549 -1.278
## nome -0.24978 0.27405 -0.911
## uf -50.15183 77.48120 -0.647
## partido -103.53643 65.21562 -1.588
## quantidade_doacoes -75.64275 124.03139 -0.610
## quantidade_doadores 342.51193 134.01345 2.556
## total_receita -0.10343 0.02186 -4.731
## media_receita 1.15609 0.10498 11.013
## recursos_de_outros_candidatos.comites 0.04014 0.02351 1.708
## recursos_de_pessoas_fisicas 0.15737 0.02233 7.049
## recursos_de_pessoas_juridicas 0.07347 0.01821 4.034
## recursos_proprios 0.00978 0.01871 0.523
## recursos_de_partido_politico NA NA NA
## quantidade_despesas -22.08093 9.79627 -2.254
## quantidade_fornecedores -5.67660 13.00726 -0.436
## total_despesa 0.13510 0.01303 10.369
## media_despesa 0.80069 0.41914 1.910
## cargo NA NA NA
## sexo 3205.28915 1688.25163 1.899
## grau 809.89585 321.52091 2.519
## estado_civil -446.40111 445.18606 -1.003
## ocupacao -28.29856 10.86754 -2.604
## Pr(>|t|)
## (Intercept) 0.70304
## ano NA
## sequencial_candidato 0.20132
## nome 0.36212
## uf 0.51750
## partido 0.11247
## quantidade_doacoes 0.54199
## quantidade_doadores 0.01064 *
## total_receita 2.33e-06 ***
## media_receita < 2e-16 ***
## recursos_de_outros_candidatos.comites 0.08779 .
## recursos_de_pessoas_fisicas 2.18e-12 ***
## recursos_de_pessoas_juridicas 5.59e-05 ***
## recursos_proprios 0.60117
## recursos_de_partido_politico NA
## quantidade_despesas 0.02426 *
## quantidade_fornecedores 0.66256
## total_despesa < 2e-16 ***
## media_despesa 0.05618 .
## cargo NA
## sexo 0.05770 .
## grau 0.01182 *
## estado_civil 0.31606
## ocupacao 0.00926 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 31560 on 3415 degrees of freedom
## Multiple R-squared: 0.5211, Adjusted R-squared: 0.5183
## F-statistic: 185.8 on 20 and 3415 DF, p-value: < 2.2e-16
Modelo para regressão com todas as variáveis em 2010:
eleicoes_2010 <- eleicoes_2006_2010 %>% filter(ano == 2010)
fit.lm2010<- lm(formula = votos ~ ., eleicoes_2010, na.action = na.omit)
summary(fit.lm2010)
##
## Call:
## lm(formula = votos ~ ., data = eleicoes_2010, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -213027 -9759 -5568 -555 1300453
##
## Coefficients: (3 not defined because of singularities)
## Estimate Std. Error t value
## (Intercept) 1.305e+04 4.638e+03 2.814
## ano NA NA NA
## sequencial_candidato 5.070e-01 4.468e-01 1.135
## nome -4.861e-01 2.909e-01 -1.671
## uf -2.101e+02 8.154e+01 -2.576
## partido -1.949e+02 6.855e+01 -2.843
## quantidade_doacoes 2.647e+01 5.418e+01 0.489
## quantidade_doadores -8.813e+00 6.283e+01 -0.140
## total_receita -6.773e-03 9.500e-03 -0.713
## media_receita -2.104e-01 5.410e-02 -3.889
## recursos_de_outros_candidatos.comites 4.679e-03 6.087e-03 0.769
## recursos_de_pessoas_fisicas 4.510e-02 1.003e-02 4.498
## recursos_de_pessoas_juridicas -5.408e-03 5.561e-03 -0.972
## recursos_proprios -3.114e-02 4.982e-03 -6.251
## recursos_de_partido_politico NA NA NA
## quantidade_despesas 1.401e+01 9.114e+00 1.537
## quantidade_fornecedores -3.143e+01 1.112e+01 -2.826
## total_despesa 8.500e-02 9.988e-03 8.511
## media_despesa 1.636e-01 8.963e-02 1.825
## cargo NA NA NA
## sexo 2.102e+03 1.632e+03 1.288
## grau 9.544e+02 3.388e+02 2.817
## estado_civil -1.307e+03 4.603e+02 -2.838
## ocupacao -4.437e+01 1.206e+01 -3.680
## Pr(>|t|)
## (Intercept) 0.004913 **
## ano NA
## sequencial_candidato 0.256588
## nome 0.094779 .
## uf 0.010016 *
## partido 0.004491 **
## quantidade_doacoes 0.625210
## quantidade_doadores 0.888457
## total_receita 0.475948
## media_receita 0.000102 ***
## recursos_de_outros_candidatos.comites 0.442188
## recursos_de_pessoas_fisicas 7.07e-06 ***
## recursos_de_pessoas_juridicas 0.330876
## recursos_proprios 4.50e-10 ***
## recursos_de_partido_politico NA
## quantidade_despesas 0.124359
## quantidade_fornecedores 0.004743 **
## total_despesa < 2e-16 ***
## media_despesa 0.068050 .
## cargo NA
## sexo 0.197772
## grau 0.004864 **
## estado_civil 0.004559 **
## ocupacao 0.000236 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 37110 on 4019 degrees of freedom
## Multiple R-squared: 0.442, Adjusted R-squared: 0.4392
## F-statistic: 159.1 on 20 and 4019 DF, p-value: < 2.2e-16
O p-valor de amos os modelos é baixo, o que indica que os votos podem ser explicados como uma variável que depende de todas as outras variáveis. Mas algumas variáveis específicas não influenciam quase nada, como a quantidade de despesas. Podemos ainda checar os resíduos, ou seja, a diferença entre a predição e o dado real.
pred2006 <- predict.lm(fit.lm2006, eleicoes_2006)
## Warning in predict.lm(fit.lm2006, eleicoes_2006): prediction from a rank-
## deficient fit may be misleading
pred2010 <- predict.lm(fit.lm2010, eleicoes_2010)
## Warning in predict.lm(fit.lm2010, eleicoes_2010): prediction from a rank-
## deficient fit may be misleading
res2006 <- eleicoes_2006$votos - pred2006
res2010 <- eleicoes_2010$votos - pred2010
plot(pred2006, y=res2006)
abline(h=0, col="red")
plot(pred2010, y=res2010)
abline(h=0, col="red")
plot(pred2010, res2010)
abline(h=0, col="red", lty=2, lwd=2)
Utilizando o p-valor para estimar a significância de cada variável podemos perceber que em 2006 as variáveis que mais explicaram os votos foram: -ocupacao -total_despesa -recursos_proprios -recursos_de_pessoas_fisicas -media_receita
Em 2010 no entanto foram: -total_despesa -recursos_de_pessoas_juridicas -recursos_de_pessoas_fisicas -media_receita -total_receita
Podemos então afirmar que o aspecto financeiro da campanha influencia bastante a quantidade de votos do candidato.
Se olharmos para o R2 percebemos que em 2006 as variáveis explicaram os votos com menos erros do que em 2010. O fit do modelo em 2006 foi melhor, isso por caus do menor RSE e maior R2.
Para ponderar sobre a utilidade e sobre a redundância das variáveis podemos ter a seguinte estratégia: Um p-valor muito alto indica que a variável em questão não explica quase nada da variável alvo. Uma alta correlação entre variáveis indica uma redundância entre elas.
Sobre a utilidade:
Variáveis como sequencia_candidato, nome, uf, partido, quantidade_doações, recursos_próprios, recursos_de_partido_politico, cargo e estado civil explicam quase nada da variável alvo, votos. O p-valor dessas variáveis está entre 0.1 e 1.
Sobre a redundância.
Uma varável que mostra de maneira mais clara a correlação entre as variáveis é a GGally e a função ggcorr().
library(GGally)
## Warning: replacing previous import by 'utils::capture.output' when loading
## 'GGally'
## Warning: replacing previous import by 'utils::head' when loading 'GGally'
## Warning: replacing previous import by 'utils::installed.packages' when
## loading 'GGally'
## Warning: replacing previous import by 'utils::str' when loading 'GGally'
##
## Attaching package: 'GGally'
## The following object is masked from 'package:dplyr':
##
## nasa
ggcorr(eleicoes_2006_2010)
## Warning in cor(data, use = method[1], method = method[2]): the standard
## deviation is zero
Percebemos as células com a cor vermelha mais fortes, vemos que todas as variáveis sobre o financiamento da campanha são bem correlatos. Poderiamos enxugar as variáveis eliminando:
quantidade_doacoes (fortemente correlacionada com quantidade_doadores) total_receita (fortemente correlacionada com total_despesa) quantidade_fornecedores (fortemente correlacionada com quantidade_despesas)
A correlação entre votos e as variáveis_financeiras também sustenta a tese de que essas são as variáveis que definem a variação nos votos e variáveis como partido e uf influenciam muito pouco.
eleicoes_2006<- eleicoes_2006_2010 %>% filter(ano == 2006)
eleicoes_2006_optimized <- eleicoes_2006 %>% select(ano,quantidade_doadores,media_receita,recursos_de_outros_candidatos.comites,recursos_de_pessoas_fisicas,recursos_de_pessoas_juridicas,quantidade_despesas,total_despesa,media_despesa,sexo,grau,ocupacao,votos)
fit.lm2006_opt<- lm(formula = votos ~ ., eleicoes_2006_optimized, na.action = na.omit)
summary(fit.lm2006_opt)
##
## Call:
## lm(formula = votos ~ ., data = eleicoes_2006_optimized, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -228726 -8197 -4152 388 634884
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value
## (Intercept) -4.345e+03 3.839e+03 -1.132
## ano NA NA NA
## quantidade_doadores 2.658e+02 1.766e+01 15.051
## media_receita 9.597e-01 9.963e-02 9.633
## recursos_de_outros_candidatos.comites 2.501e-03 1.687e-02 0.148
## recursos_de_pessoas_fisicas 1.287e-01 1.457e-02 8.836
## recursos_de_pessoas_juridicas 3.995e-02 6.430e-03 6.214
## quantidade_despesas -3.075e+01 3.273e+00 -9.395
## total_despesa 5.774e-02 7.237e-03 7.978
## media_despesa 1.269e+00 4.155e-01 3.054
## sexo 3.538e+03 1.679e+03 2.107
## grau 8.321e+02 3.231e+02 2.576
## ocupacao -3.020e+01 1.094e+01 -2.761
## Pr(>|t|)
## (Intercept) 0.25779
## ano NA
## quantidade_doadores < 2e-16 ***
## media_receita < 2e-16 ***
## recursos_de_outros_candidatos.comites 0.88215
## recursos_de_pessoas_fisicas < 2e-16 ***
## recursos_de_pessoas_juridicas 5.79e-10 ***
## quantidade_despesas < 2e-16 ***
## total_despesa 2.00e-15 ***
## media_despesa 0.00227 **
## sexo 0.03517 *
## grau 0.01004 *
## ocupacao 0.00579 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 31810 on 3424 degrees of freedom
## Multiple R-squared: 0.5124, Adjusted R-squared: 0.5108
## F-statistic: 327.1 on 11 and 3424 DF, p-value: < 2.2e-16
eleicoes_2010 <- eleicoes_2006_2010 %>% filter(ano == 2010)
eleicoes_2010_optimized <- eleicoes_2010 %>% select(ano,quantidade_doadores,media_receita,recursos_de_outros_candidatos.comites,recursos_de_pessoas_fisicas,recursos_de_pessoas_juridicas,quantidade_despesas,total_despesa,media_despesa,sexo,grau,ocupacao,votos)
fit.lm2010_opt<- lm(formula = votos ~ ., eleicoes_2010_optimized, na.action = na.omit)
summary(fit.lm2010_opt)
##
## Call:
## lm(formula = votos ~ ., data = eleicoes_2010_optimized, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -249005 -9341 -6157 -1529 1309876
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value
## (Intercept) 1.441e+03 3.645e+03 0.395
## ano NA NA NA
## quantidade_doadores 2.599e+01 5.549e+00 4.684
## media_receita -1.840e-01 5.400e-02 -3.407
## recursos_de_outros_candidatos.comites 2.398e-02 5.212e-03 4.602
## recursos_de_pessoas_fisicas 6.107e-02 9.382e-03 6.510
## recursos_de_pessoas_juridicas 1.770e-02 3.937e-03 4.497
## quantidade_despesas -1.382e+01 2.093e+00 -6.603
## total_despesa 5.788e-02 3.462e-03 16.717
## media_despesa 1.898e-01 9.001e-02 2.109
## sexo 3.299e+03 1.614e+03 2.044
## grau 9.241e+02 3.409e+02 2.711
## ocupacao -4.660e+01 1.211e+01 -3.848
## Pr(>|t|)
## (Intercept) 0.692667
## ano NA
## quantidade_doadores 2.90e-06 ***
## media_receita 0.000663 ***
## recursos_de_outros_candidatos.comites 4.31e-06 ***
## recursos_de_pessoas_fisicas 8.46e-11 ***
## recursos_de_pessoas_juridicas 7.08e-06 ***
## quantidade_despesas 4.56e-11 ***
## total_despesa < 2e-16 ***
## media_despesa 0.035034 *
## sexo 0.041020 *
## grau 0.006746 **
## ocupacao 0.000121 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 37420 on 4028 degrees of freedom
## Multiple R-squared: 0.4314, Adjusted R-squared: 0.4298
## F-statistic: 277.8 on 11 and 4028 DF, p-value: < 2.2e-16
Olhando para as estatísticas R2 e RSE a remoção das variáveis não alterou de forma significativa o modelo. Para 2006: RSE foi 31560 de para 31810 R2 foi 0.5211 de para 0.5124
Para 2010: RSE foi 37110 de para 37420 R2 foi 0.442 de para 0.4314
fit.lm2006_2010<- lm(formula = votos ~ ., eleicoes_2006_2010, na.action = na.omit)
summary(fit.lm2006_2010)
##
## Call:
## lm(formula = votos ~ ., data = eleicoes_2006_2010, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -343137 -11153 -5714 643 1313965
##
## Coefficients: (2 not defined because of singularities)
## Estimate Std. Error t value
## (Intercept) 3.352e+06 7.269e+05 4.612
## ano -1.664e+03 3.622e+02 -4.593
## sequencial_candidato -2.199e-01 4.107e-01 -0.535
## nome -3.756e-01 2.105e-01 -1.785
## uf -1.512e+02 5.814e+01 -2.601
## partido -1.284e+02 4.978e+01 -2.579
## quantidade_doacoes -7.919e+01 4.826e+01 -1.641
## quantidade_doadores 1.334e+02 5.570e+01 2.395
## total_receita -4.009e-02 7.797e-03 -5.142
## media_receita 1.118e-01 4.707e-02 2.375
## recursos_de_outros_candidatos.comites 1.602e-02 5.721e-03 2.800
## recursos_de_pessoas_fisicas 9.230e-02 8.493e-03 10.869
## recursos_de_pessoas_juridicas 3.627e-02 4.766e-03 7.610
## recursos_proprios -7.550e-03 4.552e-03 -1.659
## recursos_de_partido_politico NA NA NA
## quantidade_despesas 1.453e+01 6.637e+00 2.189
## quantidade_fornecedores -3.928e+01 8.273e+00 -4.748
## total_despesa 9.725e-02 7.893e-03 12.321
## media_despesa -3.621e-02 8.415e-02 -0.430
## cargo NA NA NA
## sexo 2.452e+03 1.229e+03 1.995
## grau 1.252e+03 2.451e+02 5.107
## estado_civil -1.184e+03 3.366e+02 -3.518
## ocupacao -4.473e+01 8.542e+00 -5.236
## Pr(>|t|)
## (Intercept) 4.06e-06 ***
## ano 4.44e-06 ***
## sequencial_candidato 0.592401
## nome 0.074358 .
## uf 0.009301 **
## partido 0.009915 **
## quantidade_doacoes 0.100875
## quantidade_doadores 0.016651 *
## total_receita 2.79e-07 ***
## media_receita 0.017568 *
## recursos_de_outros_candidatos.comites 0.005127 **
## recursos_de_pessoas_fisicas < 2e-16 ***
## recursos_de_pessoas_juridicas 3.07e-14 ***
## recursos_proprios 0.097222 .
## recursos_de_partido_politico NA
## quantidade_despesas 0.028611 *
## quantidade_fornecedores 2.09e-06 ***
## total_despesa < 2e-16 ***
## media_despesa 0.666932
## cargo NA
## sexo 0.046045 *
## grau 3.36e-07 ***
## estado_civil 0.000438 ***
## ocupacao 1.68e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 36220 on 7454 degrees of freedom
## Multiple R-squared: 0.4258, Adjusted R-squared: 0.4241
## F-statistic: 263.2 on 21 and 7454 DF, p-value: < 2.2e-16
O resultado não foi muito diferente dos resultados utilizando apenas um dos anos. No entanto as variáveis como partido, grau e estado civil estão com p-value menor.