Discplina de Análise de Dados 1- Ciência da Computação UFCG - 2016.1

Nessa etapa do problema 3, continuamos nossa análise utlizando os dados sobre verbas alocadas por deputados para municípos, estados, fundações através de emendas parlamentares.

detalhes_emendas <- read.csv("dados/emendas_detalhes_parlamentar.csv")
emendas <- read.csv("dados/emendas_area_parlamentar.csv")

Na tentativa de sumarizar melhor os dados, agrupamos os parlamentares de acordo com seu referido estado e sumarizamos os valores de cada tipo de emenda para o estado corrente. Assim, mudamos o escopo dos dados, de emendas por parlamentar para emendas por estado. Na análise inicial dos dados tivemos alguns problemas em relação aos nomes de alguns parlamentares que estavam nulos, retiramos essas linhas para nossa exploração ficar mais íntegra. Após sumarizar as emendas por estados nosso dataset ficou da seguinte forma:

#tratando os dados
emendas.por.estado <- detalhes_emendas %>%
  select(NOME_PARLAMENTAR, UF_PROPONENTE) %>%
  filter(NOME_PARLAMENTAR != "NA")

emendas.por.estado2 <- emendas.por.estado[!duplicated(emendas.por.estado), ]

emendas.por.estado3 <- left_join(emendas, emendas.por.estado2, by = "NOME_PARLAMENTAR")

#removendo NAs
emendas.por.estado3 <- emendas.por.estado3 %>%
  filter(NOME_PARLAMENTAR != "NA")

#sumarizando estados por ementas
emendas.sumarizadas <- emendas.por.estado3 %>%
  select(-NOME_PARLAMENTAR) %>%
  group_by(UF_PROPONENTE)

emendas.sumarizadas <- summarise_each(emendas.sumarizadas[], funs(sum))

row.names(emendas.sumarizadas)  = emendas.sumarizadas$UF_PROPONENTE

PCA

Iniciando a análise propriamente dita. Vamos rodar o PCA nos dados númericos com scale=TRUE para normalizar os mesmos, evitanto o impacto de discrepâncias dos valores nas variâncias.

#PCA
row.names(emendas.sumarizadas) = make.names(emendas.sumarizadas$UF_PROPONENTE)

emendas2 <- select(emendas.sumarizadas, -UF_PROPONENTE)
pr.out <- prcomp(emendas2, scale=TRUE)

pr.out
## Standard deviations:
##  [1] 2.749441e+00 1.760918e+00 1.268811e+00 1.147990e+00 1.023837e+00
##  [6] 8.695188e-01 7.893302e-01 6.570458e-01 4.703229e-01 4.107991e-01
## [11] 2.952992e-01 2.598838e-01 7.694814e-02 3.976351e-02 2.680914e-02
## [16] 8.743955e-04 2.835660e-17
## 
## Rotation:
##                               PC1           PC2          PC3         PC4
## Agricultura            0.22707104 -0.2310912794  0.192166262 -0.23672211
## Assistência.Social     0.23722236 -0.3018065384  0.346815544 -0.05349536
## Ciência.e.Tecnologia   0.28314444  0.2827951061 -0.026005475 -0.02655580
## Comércio.e.Serviços    0.31037200  0.0153710024  0.056402635 -0.01392594
## Cultura                0.31389987  0.0006566718  0.022618092 -0.03584186
## Defesa.Nacional       -0.09907233 -0.0170550750 -0.273410513 -0.56851095
## Desporto.e.Lazer       0.32661121 -0.1287938738 -0.187124982 -0.06076501
## Direitos.da.Cidadania  0.22371797 -0.1684561587 -0.472865611  0.19505452
## Gestão.Ambiental       0.20957062  0.4318871520  0.065707461  0.07439026
## Indústria              0.20351356  0.4218449124  0.125529055  0.04507664
## Organização.Agrária    0.19055877 -0.2826200307  0.436124028 -0.07716429
## Outros                 0.12786638 -0.0588181024  0.065266263  0.64338351
## Saneamento             0.31385887 -0.1017102936  0.004068106 -0.09517637
## Saúde                  0.14729835  0.4657569524  0.103181045 -0.05312178
## Segurança.Pública      0.22371797 -0.1684561587 -0.472865611  0.19505452
## Trabalho               0.20104841  0.1421574064 -0.236996163 -0.29709737
## Urbanismo              0.31924162 -0.0798099422  0.008956601 -0.09120141
##                                PC5          PC6         PC7         PC8
## Agricultura           -0.358350914  0.192543854 -0.20244000  0.27302741
## Assistência.Social    -0.214223178 -0.192955025  0.07929469 -0.11756840
## Ciência.e.Tecnologia   0.007459045 -0.099858255  0.02550979  0.20986828
## Comércio.e.Serviços    0.256375291  0.342583379  0.27869077 -0.35302664
## Cultura                0.293737995  0.317905120  0.25953359 -0.30223602
## Defesa.Nacional        0.037759279 -0.533626607  0.48524899 -0.09479423
## Desporto.e.Lazer       0.126045738 -0.004151564 -0.08253463  0.01706105
## Direitos.da.Cidadania -0.317103435  0.044077101  0.12692007  0.04970096
## Gestão.Ambiental      -0.212466155 -0.042353730  0.13031885 -0.00828730
## Indústria             -0.239055704 -0.011385648  0.17049278  0.01355591
## Organização.Agrária   -0.277041534 -0.188825603  0.11060811 -0.20356930
## Outros                 0.177322205 -0.550660024 -0.05823843 -0.19566377
## Saneamento             0.345956552 -0.134888671 -0.10679251  0.35779783
## Saúde                 -0.102716034 -0.115314424 -0.03880818  0.13063879
## Segurança.Pública     -0.317103435  0.044077101  0.12692007  0.04970096
## Trabalho              -0.066261808 -0.134917326 -0.66945685 -0.53624316
## Urbanismo              0.331802393 -0.134670874 -0.09898291  0.35323855
##                               PC9         PC10         PC11        PC12
## Agricultura           -0.51897684 -0.363979290 -0.297065688 -0.13747738
## Assistência.Social     0.12947011  0.062975448  0.123740093 -0.02327826
## Ciência.e.Tecnologia   0.56428400 -0.301930597 -0.592148261  0.08263392
## Comércio.e.Serviços   -0.08631860  0.027964001 -0.172878698 -0.11824500
## Cultura               -0.11517892  0.010765321 -0.076814151 -0.06968066
## Defesa.Nacional       -0.19119178 -0.119388680 -0.076772568 -0.05761744
## Desporto.e.Lazer      -0.12755572 -0.180383669  0.220639083  0.82976857
## Direitos.da.Cidadania  0.04138244  0.163129240 -0.009440435 -0.10110700
## Gestão.Ambiental       0.01051559 -0.200393527  0.293703851  0.07280928
## Indústria             -0.05902406 -0.220811281  0.426805926 -0.22033124
## Organização.Agrária    0.27704740  0.254378623 -0.012019398  0.13275808
## Outros                -0.31733925 -0.197901101 -0.191028620 -0.07199767
## Saneamento             0.04862055  0.130385880  0.185107598 -0.22055402
## Saúde                 -0.35730825  0.668741881 -0.276460641  0.19520798
## Segurança.Pública      0.04138244  0.163129240 -0.009440435 -0.10110700
## Trabalho               0.07247288  0.006058285  0.031737157 -0.17382171
## Urbanismo              0.04666809  0.120156491  0.196202100 -0.22134120
##                              PC13         PC14         PC15          PC16
## Agricultura            0.10861424  0.004153410  0.016487543  1.955372e-03
## Assistência.Social    -0.67218671 -0.302140114  0.215756423 -2.456591e-03
## Ciência.e.Tecnologia  -0.11109587  0.064166872 -0.015659836 -7.448207e-04
## Comércio.e.Serviços    0.05143377 -0.458463792 -0.499608323 -1.117968e-02
## Cultura               -0.03924303  0.465066739  0.558098242  1.347717e-02
## Defesa.Nacional        0.03369630 -0.009572290 -0.007160947  2.030906e-04
## Desporto.e.Lazer      -0.07275996  0.061314721 -0.141177691 -5.517748e-03
## Direitos.da.Cidadania  0.01281871  0.006389087  0.002794907 -1.372621e-04
## Gestão.Ambiental       0.39065736 -0.473441892  0.431349802  3.256589e-02
## Indústria             -0.22523446  0.424464020 -0.403060639  1.441433e-03
## Organização.Agrária    0.52315784  0.257897206 -0.148764138  2.064391e-03
## Outros                 0.04697404  0.039467914 -0.018268010  5.547123e-04
## Saneamento             0.08378372 -0.027555866 -0.027167200  7.028352e-01
## Saúde                 -0.12656017  0.005787691  0.003511348  3.574704e-05
## Segurança.Pública      0.01281871  0.006389087  0.002794907 -1.372621e-04
## Trabalho               0.00743783  0.006492205  0.002534340  3.460225e-04
## Urbanismo              0.10365908 -0.030777309  0.010492867 -7.103575e-01
##                                PC17
## Agricultura            0.000000e+00
## Assistência.Social    -2.516592e-16
## Ciência.e.Tecnologia  -2.327885e-17
## Comércio.e.Serviços    2.130806e-16
## Cultura               -3.410506e-16
## Defesa.Nacional        1.710295e-16
## Desporto.e.Lazer      -1.758872e-17
## Direitos.da.Cidadania -7.071068e-01
## Gestão.Ambiental      -1.454855e-16
## Indústria              4.097546e-16
## Organização.Agrária    2.692515e-16
## Outros                 2.740853e-17
## Saneamento             2.147868e-15
## Saúde                 -8.697979e-17
## Segurança.Pública      7.071068e-01
## Trabalho              -8.191980e-18
## Urbanismo             -2.077833e-15
# Porcentagem da variância explicada: 
plot_pve <- function(prout){
  pr.var <- pr.out$sdev^2
  pve <- pr.var / sum(pr.var)
  df = data.frame(x = 1:NROW(pve), y = cumsum(pve))
  ggplot(df, aes(x = x, y = y)) + 
    geom_point(size = 3) + 
    geom_line() + 
    labs(x='Principal Component', y = 'Cumuative Proportion of Variance Explained')
}

plot_pve(pr.out)

autoplot(pr.out, labels=pr.out$UF_PROPONENTE, label=T, main="Estados nas duas primeiras dimensões do PCA")

Para gerar o gráfico acima, utilizamos a função plot_pve, que mostra a porcentagem da variância explicada através do compomentes gerados (essa função foi disponibilizada pelo professor). Analisando o gráfico gerado observamos que os dois primeiros componentes explicam cerca de 64% da variância, e que no segundo gráfico mostrado PC1 e PC2, a maioria dos estados se encontram aglomerados em algumas regiões, temos alguns outliers como por exemplo o estado de Pernambuco, que explicaremos mais adiante.

#PCA

emendas2 <- select(emendas.sumarizadas, -UF_PROPONENTE)
pr.out <- prcomp(emendas2, scale=TRUE)

biplot(pr.out, main = "Variáveis e Indivíduos nas Dimensões")

autoplot(pr.out, label = TRUE, label.size = 4, shape = FALSE, 
         loadings = TRUE, loadings.colour = 'blue',
         loadings.label = TRUE, loadings.label.size = 4)

Ao aplicarmos os vetores de direcionamento com sua respectiva variável (nesse caso, o tipo da emenda), conseguimos ver melhor o comportamento de cada estado a partir dos dois primeiros componentes. Observando o PC1 vemos que os estados se comportam de duas formas distintas, existem aqueles que recebem mais emendas do tipo defesa nacional e os que recebem dos demais tipos. No grupo de estados que mais recebem mais emendas do tipo defesa nacional encontramos os estados que fazem fronteira com outros paises (Amapá, Roraina, Amazonas, Acre, Rondônia, Mato Grosso, Mato Grosso do Sul) e alguns da costa leste (Rio Grande do Norte, Paraíba, Alagoas, Sergipe, Espírito Santo), interessante que no meio desse grupo encontramos o Distrito Federal. Seguindo a lógica dos estados costeiros, era de se esperar que a Bahia (maior extensão de litoral) estivesse presente nesse grupo, porém não está.

Temos dois outliers interessantes de se analisar, o estado de Pernambuco e de São Paulo. Observando o gráfico exibido acima identificamos o estado de Pernambuco bem acima dos outros (tendo como orientação o PC2), pela obsevação feita, vemos que esse estado recebe mais emendas do tipo saúde, fomos ver os dados e realmente o estado de Pernambuco recebeu mais verbas em saúde do que os outros, num total de 144 milhões de reais. Outro ponto interessante é que os estados (nesse caso, Pernambuco) recebem mais verbas do tipo Gestão Ambiental e Indústria, tipos com propósitos distintos. Sobre o estado de São Paulo, os maiores investimentos são em Urbanismo, Saneamento, Lazer que ficam opostos aos de Pernambuco.

t-SNE

Ao realizarmos as análises aplicando o t-SNE observamos o surgimento de três clusters bem definidos, porém para tentarmos chegar a uma conclusão mais sólida sobre os resultados obtivos, rodamos o nosso experimento 5 vezes para comprovar se os estados estariam realmente se agrupando em três grupos.

Na primeira rodada, conseguimos (de forma leve) o surgimento de três grupos distintos. Grupo 1: RO, RR, AC, AP, DF, MA e AL. Nesse grupo obervamos a presença de muitos dos estados da região norte do país, porém com a presença do estado de Alagoas. Grupo 2: PE, CE, RN, PB, AM, TO PA, GO, ES, PA, MT. Esse segundo grupo temos uma mescla dos estados do nordeste com alguns do norte e centro-oeste. Grupo 3: SP, RS, MG, PR, SC, BA, MS, PI, RJ. O terceiro grupo é composto por a maioria dos estados do sul e sudeste com a presença de alguns estados do nordeste.

Experimento 1

#t-SNE

require(Rtsne)
emendas2 = emendas.sumarizadas %>% filter(!duplicated(emendas.sumarizadas))
emendas2 = select(emendas2, -UF_PROPONENTE)

#treino 1
tsne.out = Rtsne(emendas2, perplexity = 5)

df = as.data.frame(tsne.out$Y)
df$UF_PROPONENTE = emendas.sumarizadas$UF_PROPONENTE

ggplot(df, aes(x = V1, y = V2, label = UF_PROPONENTE)) + 
  geom_point(alpha = 0.2, size = 3, color = "tomato") + 
  geom_text(alpha = .7, size = 4, hjust = -.2)

Experimento 2

#t-SNE

#treino 2
tsne.out = Rtsne(emendas2, perplexity = 5)

df = as.data.frame(tsne.out$Y)
df$UF_PROPONENTE = emendas.sumarizadas$UF_PROPONENTE

ggplot(df, aes(x = V1, y = V2, label = UF_PROPONENTE)) + 
  geom_point(alpha = 0.2, size = 3, color = "tomato") + 
  geom_text(alpha = .7, size = 4, hjust = -.2)

Na seunda rodada podemos observar que o mesmo padrão visto na etapa passada.

Experimento 3

#t-SNE

#treino 3
tsne.out = Rtsne(emendas2, perplexity = 5)

df = as.data.frame(tsne.out$Y)
df$UF_PROPONENTE = emendas.sumarizadas$UF_PROPONENTE

ggplot(df, aes(x = V1, y = V2, label = UF_PROPONENTE)) + 
  geom_point(alpha = 0.2, size = 3, color = "tomato") + 
  geom_text(alpha = .7, size = 4, hjust = -.2)

Os mesmos resultas continuam sendo observados.

Experimento 4

#t-SNE

#treino 4
tsne.out = Rtsne(emendas2, perplexity = 5)

df = as.data.frame(tsne.out$Y)
df$UF_PROPONENTE = emendas.sumarizadas$UF_PROPONENTE

ggplot(df, aes(x = V1, y = V2, label = UF_PROPONENTE)) + 
  geom_point(alpha = 0.2, size = 3, color = "tomato") + 
  geom_text(alpha = .7, size = 4, hjust = -.2)

Dessa vez os estados ficaram mais espalhados pelo gráfico, porém conseguimos observar que os estados que pertenciam aos grupos 1, 2, 3 continuam próximos uns dos outros.

Experimento 5:

#t-SNE

#treino 5
tsne.out = Rtsne(emendas2, perplexity = 5)

df = as.data.frame(tsne.out$Y)
df$UF_PROPONENTE = emendas.sumarizadas$UF_PROPONENTE

ggplot(df, aes(x = V1, y = V2, label = UF_PROPONENTE)) + 
  geom_point(alpha = 0.2, size = 3, color = "tomato") + 
  geom_text(alpha = .7, size = 4, hjust = -.2)

Na última rodada do nosso experimento chegamos a conclusão que os grupos observados desde a primeira etapa continuam aparecendo sem muitas alterações.

Ao observar os 5 últimos gráficos chegamos a conclusão que os estados brasileiros se agrupam em 3 clusters de acordo as emendas que são destinadas a cada um deles. Sobre essas regiões, percebemos que temos um grupo onde temos a presença da maioria dos estados do norte, e alguns do nordeste. No grupo 2 temos o inverso, a maioria dos componentes do grupo são do norteste, mas temos a presença de alguns do norte. O último grupo é composto pelos estados do sul/sudeste com a prensença de alguns não vizinhos.

A utilização do PCA e do T-SNE mostrou resultados muito interessantes, tanto na divergência de alguns tipos de emendas, como na convergência de outras. Tivemos conclusões que eram de ser esperadas, como a dos estados que mais recebem em defesa nacional que são os estados das fronteiras e os do litoral. Foi interessante observar que Gestão Ambiental e Indústria estão bem relacionados, já Gestão Ambiental e Agricultura são opostos.