library(tidyverse)
## ── Attaching packages ────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.0.0     ✔ purrr   0.2.5
## ✔ tibble  1.4.2     ✔ dplyr   0.7.6
## ✔ tidyr   0.8.1     ✔ stringr 1.3.1
## ✔ readr   1.1.1     ✔ forcats 0.3.0
## ── Conflicts ───────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
#leaps
eleicoes_data <- readr::read_csv(
  '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()))

data2006 <- read.csv("eleicoes_2006.csv")
data2010 <- read.csv("eleicoes_2010.csv")

QUESTÃO 1) Um modelo de regressão múltipla com todas as variáveis é plausível para explicar a variação em y (número de votos) em 2006? Mesma pergunta para 2010.

Para responder essa questão, transformaremos as variáveis categóricas (não numéricas) em fatores e veremos como se comporta o modelo, com essas variáveis e o restante, para explicar a variação dos votos.

  data2006$uf <- as.factor(data2006$uf)
  data2006$partido <- as.factor(data2006$partido)
  data2006$sexo <- as.factor(data2006$sexo)
  data2006$cargo <- as.factor(data2006$cargo)
  data2006$estado_civil <- as.factor(data2006$estado_civil)
  data2006$ocupacao <- as.factor(data2006$ocupacao)
  
  data2010$uf <- as.factor(data2010$uf)
  data2010$partido <- as.factor(data2010$partido)
  data2010$sexo <- as.factor(data2010$sexo)
  data2010$cargo <- as.factor(data2010$cargo)
  data2010$estado_civil <- as.factor(data2010$estado_civil)
  data2010$ocupacao <- as.factor(data2010$ocupacao)
  
  
  #voto.model2006 <- lm(formula = votos ~ . , data2006 %>% select(-cargo), na.action = na.omit)
  
  #voto.model2010 <- lm(formula = votos ~ . , data2010 %>% select(-cargo), na.action = na.omit)

  #summary(voto.model2006)
  #summary(voto.model2010)

Tentando rodar o modelo, pode-se observar que utilizar todas as variáveis não é plausível por, pelo menos, 3 motivos:

  1. Limitação computacional do computador - rodar todas as variáveis dos dados demanada uma grande quantidade de memória que não pôde ser suportado por computadores (como o meu pessoal) que possuem memória razoável. A seguinte mensagem de erro foi lançada: “Erro: não é possível alocar vetor de tamanho 364.0 Mb”.

  2. Modelo não roda com variáveis que possuem apenas um nível - as variáveis cargo e ano, por serem de apenas um nível, não puderam ser inseridas no modelo para explicar a variação da quantidade de votos, pois são variável que não possuem variância alguma, visto que seus valores são contantes.

  3. R² e R ajustado - valores (R² = 1 e R ajusatdo = NaN) muito diferentes indicando que a escolha das variáveis do modelo não foram boas e não servem para explicar os votos.

QUESTÃO 2) Compare as regressões construídas para 2006 e 2010. Quais as diferenças/semelhanças percebidas?

Construindo o modelo, o total de despesa e o total de receita indicam o nível de gasto de campanha de cada candidato são variáveis que parecem serem boas para explicar a variação de votos, visto que, historicamente, campanhas mais caras redundam em campanhas vencedoras. Vamos observar os modelos, para 2006 e 2010.

Observando primeiro o modelo para 2006:

    voto.model2006 <- lm(formula = votos ~ data2006$total_despesa + data2006$total_receita, data2006 %>% select(-cargo), na.action = na.omit)
    summary(voto.model2006)
## 
## Call:
## lm(formula = votos ~ data2006$total_despesa + data2006$total_receita, 
##     data = data2006 %>% select(-cargo), na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -282157   -9639   -8448    -889  657223 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            9884.66046  635.49735  15.554  < 2e-16 ***
## data2006$total_despesa    0.18426    0.01315  14.014  < 2e-16 ***
## data2006$total_receita   -0.05202    0.01153  -4.512 6.65e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 34160 on 3433 degrees of freedom
## Multiple R-squared:  0.436,  Adjusted R-squared:  0.4357 
## F-statistic:  1327 on 2 and 3433 DF,  p-value: < 2.2e-16
    ggplot(voto.model2006, aes(x = predict(voto.model2006), y = residuals(voto.model2006))) + geom_point()

Analisando o plot dos resíduos vemos que os resíduos se encontram aglomerados, próximos de zero, com exceção de alguns poucos, mostrando que há pouca diferença entre o modelo original da variação dos votos e o modelo da variação dos votos sendo explicados por nossas variáveis.

Além disso, observando o R² e o R ajustado vemos que não há diferença entre os valores dos mesmos (0.436 e 0,4357, respectivamente), indicando que as variáveis escolhidas explicam bem a variação dos votos. Vemos também que o valor do RSE não é um valor alto.

Analisando agora para variáveis menos explicativas (sexo, grau, estado, sequencial do candidato, estado civil), observados no plot de resíduos que os mesmos se encontram com razoável distância a zero e com certo espalhamento, indicando razoável grau de erro. O valor do RSE se apresenta alto e os valores de R² e R ajustado com uma considerável diferença (0.075 e 0.064, respectivamente), indicando que as variáveis do modelo explicam mal os votos.

  voto.model2006Ruim <- lm(formula = votos ~ data2006$sexo + data2006$grau + data2006$uf + data2006$sequencial_candidato + data2006$estado_civil, data2006 %>% select(-cargo), na.action = na.omit)
    summary(voto.model2006Ruim)
## 
## Call:
## lm(formula = votos ~ data2006$sexo + data2006$grau + data2006$uf + 
##     data2006$sequencial_candidato + data2006$estado_civil, data = data2006 %>% 
##     select(-cargo), na.action = na.omit)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -50021 -22368 -11485   4537 714881 
## 
## Coefficients:
##                                                 Estimate Std. Error
## (Intercept)                                    40268.291  16192.766
## data2006$sexoMASCULINO                          8380.413   2371.468
## data2006$grauENSINO FUNDAMENTAL INCOMPLETO     -1916.544   5486.710
## data2006$grauENSINO MÉDIO COMPLETO              5540.037   3603.529
## data2006$grauENSINO MÉDIO INCOMPLETO            -122.849   5727.635
## data2006$grauLÊ E ESCREVE                       4805.913  18271.048
## data2006$grauSUPERIOR COMPLETO                 21287.328   3304.370
## data2006$grauSUPERIOR INCOMPLETO               10932.768   3916.052
## data2006$ufAL                                  11442.206   9466.381
## data2006$ufAM                                  15213.827   9677.884
## data2006$ufAP                                  -3108.474   9669.575
## data2006$ufBA                                  31142.976   8351.618
## data2006$ufCE                                  28841.905   8799.821
## data2006$ufDF                                   6623.581   9023.608
## data2006$ufES                                  14086.397   9186.608
## data2006$ufGO                                  17328.517   8901.448
## data2006$ufMA                                  12317.670   9140.283
## data2006$ufMG                                  18445.172   7839.424
## data2006$ufMS                                   9926.885   9406.246
## data2006$ufMT                                  13387.118  10025.688
## data2006$ufPA                                  19847.277   8694.539
## data2006$ufPB                                  17764.929   9434.150
## data2006$ufPE                                  26995.756   8588.926
## data2006$ufPI                                  15906.802   9560.013
## data2006$ufPR                                  15046.888   8149.620
## data2006$ufRJ                                  12680.223   7890.934
## data2006$ufRN                                  31628.759  10768.824
## data2006$ufRO                                   3141.740   9449.766
## data2006$ufRR                                  -4191.185   9482.744
## data2006$ufRS                                  15966.650   7999.427
## data2006$ufSC                                  16613.940   8572.649
## data2006$ufSE                                  18730.418  10775.152
## data2006$ufSP                                  19568.437   7861.650
## data2006$ufTO                                   3253.478   9358.059
## data2006$sequencial_candidato                     -5.007      1.358
## data2006$estado_civilDIVORCIADO(A)             -5749.926   2569.264
## data2006$estado_civilSEPARADO(A) JUDICIALMENTE -1913.572   3546.677
## data2006$estado_civilSOLTEIRO(A)               -7716.287   2036.042
## data2006$estado_civilVIÚVO(A)                  -3818.145   6136.445
##                                                t value Pr(>|t|)    
## (Intercept)                                      2.487 0.012937 *  
## data2006$sexoMASCULINO                           3.534 0.000415 ***
## data2006$grauENSINO FUNDAMENTAL INCOMPLETO      -0.349 0.726881    
## data2006$grauENSINO MÉDIO COMPLETO               1.537 0.124290    
## data2006$grauENSINO MÉDIO INCOMPLETO            -0.021 0.982889    
## data2006$grauLÊ E ESCREVE                        0.263 0.792540    
## data2006$grauSUPERIOR COMPLETO                   6.442 1.34e-10 ***
## data2006$grauSUPERIOR INCOMPLETO                 2.792 0.005271 ** 
## data2006$ufAL                                    1.209 0.226854    
## data2006$ufAM                                    1.572 0.116039    
## data2006$ufAP                                   -0.321 0.747874    
## data2006$ufBA                                    3.729 0.000195 ***
## data2006$ufCE                                    3.278 0.001058 ** 
## data2006$ufDF                                    0.734 0.462982    
## data2006$ufES                                    1.533 0.125280    
## data2006$ufGO                                    1.947 0.051652 .  
## data2006$ufMA                                    1.348 0.177869    
## data2006$ufMG                                    2.353 0.018686 *  
## data2006$ufMS                                    1.055 0.291340    
## data2006$ufMT                                    1.335 0.181874    
## data2006$ufPA                                    2.283 0.022508 *  
## data2006$ufPB                                    1.883 0.059780 .  
## data2006$ufPE                                    3.143 0.001686 ** 
## data2006$ufPI                                    1.664 0.096227 .  
## data2006$ufPR                                    1.846 0.064931 .  
## data2006$ufRJ                                    1.607 0.108161    
## data2006$ufRN                                    2.937 0.003336 ** 
## data2006$ufRO                                    0.332 0.739557    
## data2006$ufRR                                   -0.442 0.658532    
## data2006$ufRS                                    1.996 0.046016 *  
## data2006$ufSC                                    1.938 0.052704 .  
## data2006$ufSE                                    1.738 0.082249 .  
## data2006$ufSP                                    2.489 0.012854 *  
## data2006$ufTO                                    0.348 0.728113    
## data2006$sequencial_candidato                   -3.687 0.000230 ***
## data2006$estado_civilDIVORCIADO(A)              -2.238 0.025288 *  
## data2006$estado_civilSEPARADO(A) JUDICIALMENTE  -0.540 0.589550    
## data2006$estado_civilSOLTEIRO(A)                -3.790 0.000153 ***
## data2006$estado_civilVIÚVO(A)                   -0.622 0.533847    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43980 on 3397 degrees of freedom
## Multiple R-squared:  0.07508,    Adjusted R-squared:  0.06474 
## F-statistic: 7.257 on 38 and 3397 DF,  p-value: < 2.2e-16
    ggplot(voto.model2006Ruim, aes(x = predict(voto.model2006Ruim), y = residuals(voto.model2006Ruim))) + geom_point()

Observando o modelo para 2010:

  voto.model2010 <- lm(formula = votos ~ data2010$total_despesa + data2010$total_receita , data2010 %>% select(-cargo), na.action = na.omit)
    summary(voto.model2010)
## 
## Call:
## lm(formula = votos ~ data2010$total_despesa + data2010$total_receita, 
##     data = data2010 %>% select(-cargo), na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -265288   -8608   -7813   -3348 1303811 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             8.742e+03  6.517e+02  13.413   <2e-16 ***
## data2010$total_despesa  8.527e-02  8.793e-03   9.697   <2e-16 ***
## data2010$total_receita -1.752e-02  7.716e-03  -2.270   0.0232 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 38210 on 4037 degrees of freedom
## Multiple R-squared:  0.4059, Adjusted R-squared:  0.4056 
## F-statistic:  1379 on 2 and 4037 DF,  p-value: < 2.2e-16
    ggplot(voto.model2010, aes(x = predict(voto.model2010), y = residuals(voto.model2010))) + geom_point()

Assim como para os dados de 2006, analisando o plot dos resíduos vemos que os resíduos se encontram aglomerados, próximos de zero, com exceção de alguns poucos, mostrando que há pouca diferença entre o modelo original da variação dos votos e o modelo da variação dos votos sendo explicados por nossas variáveis. Assim, vemos que nosso modelo explica bem os votos.

Além disso, observando o R² e o R ajustado vemos que não há diferença entre os valores dos mesmos (0.4059 e 0,4056, respectivamente), indicando também que as variáveis escolhidas explicam bem a variação dos votos. Vemos também que o valor do RSE não é um valor alto.

A semelhança de como fizemos para os dados de 2006, para 2010, analisando o modelo agora para variáveis menos explicativas (sexo, grau, estado, sequencial do candidato, estado civil), observa-se no plot de resíduos que os mesmos se encontram com razoável distância a zero e com certo espalhamento, indicando razoável grau de erro. O valor do RSE se apresenta alto e os valores de R² e R ajustado com uma considerável diferença (0.0701 e 0.061, respectivamente), indicando que as variáveis do modelo explicam mal os votos.

  voto.model2010Ruim <- lm(formula = votos ~ data2010$sexo + data2010$grau + data2010$uf + data2010$sequencial_candidato + data2010$estado_civil, data2010 %>% select(-cargo), na.action = na.omit)
    summary(voto.model2010Ruim)
## 
## Call:
## lm(formula = votos ~ data2010$sexo + data2010$grau + data2010$uf + 
##     data2010$sequencial_candidato + data2010$estado_civil, data = data2010 %>% 
##     select(-cargo), na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
##  -75682  -22380  -12126    2642 1297758 
## 
## Coefficients: (1 not defined because of singularities)
##                                                Estimate Std. Error t value
## (Intercept)                                       -5070       8976  -0.565
## data2010$sexoMASCULINO                             6991       2123   3.294
## data2010$grauENSINO FUNDAMENTAL INCOMPLETO        -5272       5825  -0.905
## data2010$grauENSINO MÉDIO COMPLETO                -1064       3467  -0.307
## data2010$grauENSINO MÉDIO INCOMPLETO              -3436       5343  -0.643
## data2010$grauLÊ E ESCREVE                         41209       9928   4.151
## data2010$grauSUPERIOR COMPLETO                    17428       3208   5.432
## data2010$grauSUPERIOR INCOMPLETO                   5802       3798   1.528
## data2010$ufAL                                     17133      10822   1.583
## data2010$ufAM                                     23872      11025   2.165
## data2010$ufAP                                     -2230      10316  -0.216
## data2010$ufBA                                     25203       9006   2.798
## data2010$ufCE                                     37415       9801   3.817
## data2010$ufDF                                      7571       9941   0.762
## data2010$ufES                                     15062      10066   1.496
## data2010$ufGO                                     20737       9608   2.158
## data2010$ufMA                                     13454       9312   1.445
## data2010$ufMG                                     14066       8549   1.645
## data2010$ufMS                                     11639      10146   1.147
## data2010$ufMT                                     16104      10374   1.552
## data2010$ufPA                                     25980       9644   2.694
## data2010$ufPB                                     16719      10066   1.661
## data2010$ufPE                                     27528       9372   2.937
## data2010$ufPI                                     14174      10088   1.405
## data2010$ufPR                                     14878       8846   1.682
## data2010$ufRJ                                      6091       8487   0.718
## data2010$ufRN                                     26884      10920   2.462
## data2010$ufRO                                      3872      10166   0.381
## data2010$ufRR                                     -4576      10764  -0.425
## data2010$ufRS                                     19619       8863   2.213
## data2010$ufSC                                     15083       9205   1.639
## data2010$ufSE                                     13936      11025   1.264
## data2010$ufSP                                     12932       8392   1.541
## data2010$ufTO                                      6498      11340   0.573
## data2010$sequencial_candidato                        NA         NA      NA
## data2010$estado_civilDIVORCIADO(A)                -4333       2565  -1.689
## data2010$estado_civilSEPARADO(A) JUDICIALMENTE    -9581       4135  -2.317
## data2010$estado_civilSOLTEIRO(A)                 -10649       1925  -5.533
## data2010$estado_civilVIÚVO(A)                     -9556       5741  -1.665
##                                                Pr(>|t|)    
## (Intercept)                                    0.572183    
## data2010$sexoMASCULINO                         0.000998 ***
## data2010$grauENSINO FUNDAMENTAL INCOMPLETO     0.365538    
## data2010$grauENSINO MÉDIO COMPLETO             0.759077    
## data2010$grauENSINO MÉDIO INCOMPLETO           0.520182    
## data2010$grauLÊ E ESCREVE                      3.38e-05 ***
## data2010$grauSUPERIOR COMPLETO                 5.90e-08 ***
## data2010$grauSUPERIOR INCOMPLETO               0.126653    
## data2010$ufAL                                  0.113450    
## data2010$ufAM                                  0.030422 *  
## data2010$ufAP                                  0.828862    
## data2010$ufBA                                  0.005159 ** 
## data2010$ufCE                                  0.000137 ***
## data2010$ufDF                                  0.446336    
## data2010$ufES                                  0.134650    
## data2010$ufGO                                  0.030964 *  
## data2010$ufMA                                  0.148583    
## data2010$ufMG                                  0.099990 .  
## data2010$ufMS                                  0.251385    
## data2010$ufMT                                  0.120652    
## data2010$ufPA                                  0.007095 ** 
## data2010$ufPB                                  0.096795 .  
## data2010$ufPE                                  0.003330 ** 
## data2010$ufPI                                  0.160056    
## data2010$ufPR                                  0.092645 .  
## data2010$ufRJ                                  0.473024    
## data2010$ufRN                                  0.013863 *  
## data2010$ufRO                                  0.703283    
## data2010$ufRR                                  0.670753    
## data2010$ufRS                                  0.026921 *  
## data2010$ufSC                                  0.101387    
## data2010$ufSE                                  0.206271    
## data2010$ufSP                                  0.123396    
## data2010$ufTO                                  0.566653    
## data2010$sequencial_candidato                        NA    
## data2010$estado_civilDIVORCIADO(A)             0.091236 .  
## data2010$estado_civilSEPARADO(A) JUDICIALMENTE 0.020552 *  
## data2010$estado_civilSOLTEIRO(A)               3.35e-08 ***
## data2010$estado_civilVIÚVO(A)                  0.096087 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 48010 on 4002 degrees of freedom
## Multiple R-squared:  0.0702, Adjusted R-squared:  0.06161 
## F-statistic: 8.167 on 37 and 4002 DF,  p-value: < 2.2e-16
    ggplot(voto.model2010Ruim, aes(x = predict(voto.model2010Ruim), y = residuals(voto.model2010Ruim))) + geom_point()

QUESTÃO 3) Todas as variáveis são úteis para os modelos de regressão? Há variáveis redudantes?

Nem todas as variáveis são úteis para os modelos de regressão. Existem variáveis de apenas um nível, ou seja, variáveis que não apresentam variações no seu conteúdo. Como exemplo dessas temos o ano e cargo. Há também variáveis que existem em função de outras, onde também podemos chamá-las de redundantes. Como exemplo dessas, temos a média das receitas e média das despesas, que existem por conta das variáveis total de receitas e total de despesas, respectivamente.

QUESTÃO 4) No caso de haver variáveis pouco explicativas e/ou redudantes, construa um novo modelo sem essas variáveis e o compare ao modelo com todas as variáveis (e.g. em termos de R2 e RSE). Faça isso para 2006 e 2010 separadamente.

Escolhendo variáveis que são explicativas, tomamos o total de despesa e a quantidade de despesa, pelo fato de que, quanto mais se gasta em uma campanha política no Brasil, mais chances se tem de ser eleito. Assim, temos o seguinte modelo:

  voto.model2006 <- lm(formula = votos ~ data2006$total_despesa + data2006$quantidade_despesas, data2006 %>% select(-cargo), na.action = na.omit)
  summary(voto.model2006)
## 
## Call:
## lm(formula = votos ~ data2006$total_despesa + data2006$quantidade_despesas, 
##     data = data2006 %>% select(-cargo), na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -308934   -9807   -8503    -704  642240 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   1.025e+04  6.331e+02  16.184  < 2e-16 ***
## data2006$total_despesa        1.474e-01  3.629e-03  40.604  < 2e-16 ***
## data2006$quantidade_despesas -2.498e+01  3.139e+00  -7.956 2.39e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33950 on 3433 degrees of freedom
## Multiple R-squared:  0.4429, Adjusted R-squared:  0.4426 
## F-statistic:  1365 on 2 and 3433 DF,  p-value: < 2.2e-16

Observando os valores de R² e R ajustado (0.4429 e 0.4426, respectivamente), vemos que os valores são praticamente idênticos, mostrando que, de fato, as variáveis escolhidas pro modelo explicam bem os votos. Podemos ver o mesmo modelo, com as mesmas variáveis, para 2010:

  voto.model2010 <- lm(formula = votos ~ data2010$total_despesa + data2010$quantidade_despesas, data2010 %>% select(-cargo), na.action = na.omit)
  summary(voto.model2010)
## 
## Call:
## lm(formula = votos ~ data2010$total_despesa + data2010$quantidade_despesas, 
##     data = data2010 %>% select(-cargo), na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -273985   -8620   -7800   -3323 1303942 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   8.802e+03  6.504e+02   13.53  < 2e-16 ***
## data2010$total_despesa        7.104e-02  1.857e-03   38.25  < 2e-16 ***
## data2010$quantidade_despesas -7.182e+00  1.787e+00   -4.02 5.93e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 38160 on 4037 degrees of freedom
## Multiple R-squared:  0.4075, Adjusted R-squared:  0.4072 
## F-statistic:  1388 on 2 and 4037 DF,  p-value: < 2.2e-16

Para 2010, observamos os valores de R² e R ajustado (0.4075 e 0.4072, respectivamente), valores quase idêticos, e, assim como para 2006, vemos que as variáveis escolhidas pro modelo explicam bem os votos. Fazendo agora o modelo com todas as variáveis, temos:

  #voto.model2006 <- lm(formula = votos ~ . , data2006 %>% select(-cargo), na.action = na.omit)
  #voto.model2010 <- lm(formula = votos ~ . , data2010 %>% select(-cargo), na.action = na.omit)

  #summary(voto.model2006)
  #summary(voto.model2010)
  
      ggplot(voto.model2006, aes(x = predict(voto.model2006), y = residuals(voto.model2006))) + geom_point()

Vemos que, para os dois modelos, os valores de R² e R ajustado (R² = 1 e R ajusatdo = NaN) sao muito diferentes um do outro. Pelo plot dos resíduos do modelo, vemos que todos os resíduos simplesmente estão posicionados no 0, não possuem variação, mostrando que o modelo é não apresenta consistência e coerência para explicar os votos.

QUESTÃO 5) Construa agora uma regressão considerando os anos 2006 e 2010 em conjunto. Que diferenças/semelhanças você percebe em relação aos modelos individuais por ano? Veja a questão 2 para sugestões que você usar para comparação.

Escolhendo as variáveis do modelo dos dados de 2006 e 2010 em conjunto, tomamos as mesmas utilizadas na questão 2, como aquelas que melhor explicam os votos. As variáveis foram o total das despesas e o total das receitas.

eleicoes_data <- lm(formula = votos ~ eleicoes_data$total_despesa + eleicoes_data$total_receita, eleicoes_data %>% select(-cargo), na.action = na.omit)
    summary(eleicoes_data)
## 
## Call:
## lm(formula = votos ~ eleicoes_data$total_despesa + eleicoes_data$total_receita, 
##     data = eleicoes_data %>% select(-cargo), na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -311490  -10462   -9385   -2824 1295977 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  1.071e+04  4.694e+02  22.811  < 2e-16 ***
## eleicoes_data$total_despesa  1.061e-01  7.440e-03  14.258  < 2e-16 ***
## eleicoes_data$total_receita -2.799e-02  6.531e-03  -4.287 1.84e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 37700 on 7473 degrees of freedom
## Multiple R-squared:  0.3762, Adjusted R-squared:  0.3761 
## F-statistic:  2254 on 2 and 7473 DF,  p-value: < 2.2e-16

De semelhança, os modelos possuem os valores R² e R ajustado bem semelhantes, tanto no modelo de 2006 quanto no modelo de 2010 e nos dois em conjunto, indicando que os modelos explicam bem os votos. Como diferença podemos enxergar os valores de RSE. Os resíduos para os modelos dos dados de 2006 e 2010 são maiores que os do modelo de 2006 e 2010 em conjunto.