Os dados fonte desse documento são dados sobre o Engajamento de parlamentares brasileiros no twitter e foram dados carregados de CSVs que podem ser encontrados nesse link. Durante esse documento várias descobertas foram feitas e todas elas estarão grifadas em negrito.
A primeira coisa que se aconselha fazer quando se está trabalhando com um dataset novo é olhar como estão estruturadas as colunas e as linhas, por isso, vamos dar uma olhada nesses dados:
Observations: 608
Variables: 19
$ id_parlamentar <chr> "204554", "204521", "204379", "204560", "204528…
$ casa <chr> "câmara", "câmara", "câmara", "câmara", "câmara…
$ nome_eleitoral <chr> "ABÍLIO SANTANA", "ABOU ANNI", "ACÁCIO FAVACHO"…
$ partido <chr> "PR", "PSL", "PROS", "PSDB", "NOVO", "PP", "PSD…
$ UF <chr> "BA", "SP", "AP", "BA", "SP", "GO", "MG", "BA",…
$ twitter <chr> "AbilioSantana_", "abouannipv", "FavachoAcacio"…
$ seguidores <dbl> NA, NA, NA, NA, 4652, NA, NA, NA, NA, NA, NA, N…
$ segue <dbl> NA, NA, NA, NA, 315, NA, NA, NA, NA, NA, NA, NA…
$ n_proprio <dbl> 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, NA, 49, 21…
$ n_retweet <dbl> 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, NA, 1, 30, …
$ engaj_total <dbl> 0, 0, 0, 0, 7090, 0, 0, 0, 0, 0, 0, 0, NA, 4286…
$ engaj_total_proprio <dbl> 0, 0, 0, 0, 6701, 0, 0, 0, 0, 0, 0, 0, NA, 284,…
$ engaj_total_retweet <dbl> 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, NA, 4002,…
$ engaj_mediano <dbl> 0.0, 0.0, 0.0, 0.0, 26.5, 0.0, 0.0, 0.0, 0.0, 0…
$ engaj_mediano_proprio <dbl> 0.0, 0.0, 0.0, 0.0, 22.5, 0.0, 0.0, 0.0, 0.0, 0…
$ engaj_mediano_retweet <dbl> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.…
$ engaj_max <dbl> 0, 0, 0, 0, 1031, 0, 0, 0, 0, 0, 0, 0, NA, 4002…
$ engaj_max_proprio <dbl> 0, 0, 0, 0, 1031, 0, 0, 0, 0, 0, 0, 0, NA, 38, …
$ engaj_max_retweet <dbl> 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, NA, 4002, …
Podemos ver que temos algumas colunas interessantes que falam tanto do engajamento do parlamentar no twitter (n_retweet, engaj_total, engaj_max), como também temos colunas que falam sobre o parlamentar em si (id_parlamentar, nome_eleitoral, UF). Podemos ver também que colunas como seguidores e como n_proprio possuem muitos dados inexistentes. Para entender melhor essas duas colunas, podemos olhar o sumario delas:
seguidores segue
Min. : 21 Min. : 0.0
1st Qu.: 1886 1st Qu.: 177.8
Median : 5144 Median : 481.0
Mean : 45769 Mean : 1233.1
3rd Qu.: 18126 3rd Qu.: 1080.5
Max. :2558401 Max. :23016.0
NA's :238 NA's :238
Ao olhar o sumário dessas duas colunas, percebemos que a quantidade de dados NA é igual.
seguidores igual a NA terão segue igual a NA?Para descobrir isso, fazemos um filtro e contamos a quantidades de linhas resultantes daquele filtro. Se for zero, não existem parlamentares que possuem seguidores igual a NA e que possuem segue diferente de NA. Se for maior que 0, existe algum parlamentar em que isso ocorre.
Temos um número de linhas igual a zero. Isso quer dizer que a nossa pergunta é SIM! Todos os parlamentares que possuem seguidores igual a NA também possuem segue igual a NA.
NA nessas colunas significa?Vamos olhar os parlamentares que possuem essas colunas igual a NA
Com esse filtro, podemos identificar três tipos de parlamentares:
twitter, seguidores e segue igual a NA: Isso significa que o seguidores e o segue iguais a NA são decorrentes do fato que o parlamentar não possui twitter.twitter diferente de NA mas possuem seguidores e segue igual a NA: Isso pode significar que quando os dados foram coletados, não foram coletados nenhum dado além do twitter desses parlamentares e por isso as coluas seguidores e segue são iguais a NA.twitter, seguidores e segue diferente de NA: Isso significa que os dados sobre esse parlamentar foram coletados normalmente.Com isso, podemos definir o conceito de parlamentar valido na nossa analise, que seria o nosso 3° caso.
seguidores ou segue igual a zero?Essa pergunta poderia ser respondida usando o Sumário, no entanto, vamos dizer que não haviamos olhado o sumário antes e gostariamos de responder a essa pergunta sem olha-lo, como fariamos?
Olhamos se existem parlamentares com seguidores ou segue igual a zero com um filtro bem simples:
O unico parlamentar que possui seguidores ou segue igual a zero, é o parlamentar EUCLYDES PETTERSEN. Nesse caso, ele não segue ninguem mas possui seguidores.
Nesses dados, não existe nenhum parlamentar que segue alguem, mas não tem seguidores.
Vamos olhar mais de perto esse parlamentar, especialmente as colunas relacionadas ao engajamento.
euclydes = atividade %>%
filter(seguidores == 0 | segue == 0)
euclydes %>%
select(nome_eleitoral, n_proprio, n_retweet, engaj_total, engaj_max)Podemos ver que o engaj_total, o engaj_max, o n_proprio e o n_retweet dele são bem baixos.
Isso leva a seguinte pergunta: Será que a quantidade de tweets está relacionado de alguma forma com o engajamento? Como é essa relação?
Para analisar a relação da quantidade de tweets e engajamento do deputado Euclydes, usaremos ele como ponto de referência para a analise conjunta com outros parlamentares.
Para isso, usaremos dados de parlamentares com twiters validos e que possuem atividade no twitter, ou seja, parlamentares que sejam ativos no twitter, e faremos um gráfico que cruza engaj_total e n_proprio.
Primeiramente, filtraremos quais parlamentares importam pra gente:
Após isso, daremos destaque a Euclydes:
E por ultimo, faremos o gráfico:
euclydes_destaque %>%
ggplot(aes(x = n_proprio, y = engaj_total, color = destaque)) +
geom_point() +
scale_x_log10() +
scale_y_log10() +
scale_color_manual(
name = "Parlamentares",
labels = c("Outros", "Euclydes"),
values = c(cp_material_indigo_300, cp_material_red_500)
) +
labs(
title = "Comportamento de Euclydes em relação a outros parlamentares",
subtitle = "Comparação entre número de tweets e engajamento total",
x = "Tweets do parlamentar",
y = "Engajamento total"
)Nesse gráfico pode-se ver que Euclydes possui um número de tweets relativamente alto em relação aos outros parlamentares mas não possui um engajamento total bom.
O que normalmente acontece com os parlamentares, é que quanto mais tweets proprios, mais engajamento eles conseguem.
Isso significa que pode existir uma relação entre engaj_total e n_proprio.
engaj_total e n_proprio no datasetPara descrever essa relação precisamos responder a 4 perguntas:
Essa relação é não linear visto que o formato do gráfico de dispersão se aproxima de uma função exponencial.
OBS: Mesmo usando escalas de log, está se usando essa escala nos dois eixos, com isso, há uma transformação nos dois eixos e a escala de log está ajudando apenas na visualização da relação e não interfere no tipo da relação.
ativos %>%
ggplot(aes(x = n_proprio, y = engaj_total)) +
geom_point(alpha = 0.7, color = cp_material_orange_700) +
geom_smooth(
method = "lm",
formula = (y ~ exp(x)),
se = FALSE,
color = cp_material_indigo_700
) +
scale_x_log10() +
scale_y_log10() +
labs(
title = "Visualização do tipo de relação",
subtitle = "Comparação entre número de tweets e engajamento total",
x = "Tweets do parlamentar",
y = "Engajamento total"
)É uma relação de sinal positivo pois os dados tendem a ter um comportamento crescente, ou seja, quando se aumentam os valores no eixo X, os valores do eixo Y também aumentam.
ativos %>%
ggplot(aes(x = n_proprio, y = engaj_total)) +
geom_point(alpha = 0.7, color = cp_material_orange_700) +
geom_abline(
slope = 2,
color = cp_material_red_700
) +
scale_x_log10() +
scale_y_log10() +
labs(
title = "Visualização do sinal da relação",
subtitle = "Comparação entre número de tweets e engajamento total",
x = "Tweets do parlamentar",
y = "Engajamento total"
)Para ver o quão forte ela é, podemos utilizar um coeficiente de correlação:
ativos %>%
summarise(
cor_pearson = cor(x = n_proprio, y = engaj_total, method = "pearson"),
cor_kendall = cor(x = n_proprio, y = engaj_total, method = "kendall"),
cor_spearman = cor(x = n_proprio, y = engaj_total, method = "spearman")
)Com o coeficiente de correlação de spearman podemos ver que ela é uma relação forte. Usamos o coeficiente de spearman por se tratar de uma relação não linear e que tem um carater exponencial.
Podemos ver que temos pontos extremo onde o engaj_total é bem alto, no entanto não temos um número alto de n_proprio. Vamos identificar esses pontos no gráfico destacando-os:
engaj_total_esperado_max = function(n_proprio) {
1000 ** log(n_proprio, 10)
}
engaj_total_esperado_min = function(n_proprio) {
10 ** log(n_proprio, 10)
}
extremos_destaque = ativos %>%
mutate(destaque = engaj_total > engaj_total_esperado_max(n_proprio) | engaj_total < engaj_total_esperado_min(n_proprio))
extremos_destaque %>%
filter(destaque)extremos_destaque %>%
ggplot(aes(x = n_proprio, y = engaj_total, color = destaque)) +
geom_point(alpha = 0.7) +
scale_x_log10() +
scale_y_log10() +
scale_color_manual(
name = "Tipos de pontos",
labels = c("Esperados", "Extremos"),
values = c(cp_material_amber_500, cp_material_pink_500)
) +
labs(
title = "Visualização de pontos extremos",
subtitle = "Comparação entre número de tweets e engajamento total",
x = "Tweets do parlamentar",
y = "Engajamento total"
)Para identificar esses pontos extremos, fez-se uma comparação entre o engaj_total e as funções engaj_total_esperado_min(n_proprio) e engaj_total_esperado_max(n_proprio), onde se o engaj_total estivesse fora do intervalo definido pelo valor dessas duas funções, ele seria um ponto extremo. Foram usadas funções exponenciais já que se trata de uma relação não linear, onde seu formato se assemelha a uma função exponencial.
Durante essa exploração, tivemos várias descobertas. Todas elas serão listadas aqui:
Pode-se identificar três tipos de parlamentares quanto as colunas seguidores, segue e twitter serem iguais a NA:
twitter, seguidores e segue igual a NA: Isso significa que o seguidores e o segue iguais a NA são decorrentes do fato que o parlamentar não possui twitter.twitter diferente de NA mas possuem seguidores e segue igual a NA: Isso pode significar que quando os dados foram coletados, não foram coletados nenhum dado além do twitter desses parlamentares e por isso as coluas seguidores e segue são iguais a NA.twitter, seguidores e segue diferente de NA: Isso significa que os dados sobre esse parlamentar foram coletados normalmente.segue igual a zero, é o parlamentar EUCLYDES PETTERSENEUCLYDES PETTERSEN, mesmo não seguindo ninguem, possui seguidoressegue alguem, mas não tem seguidores.EUCLYDES PETTERSEN, podemos ver que o engaj_total, o engaj_max, o n_proprio e o n_retweet dele são bem baixos.
EUCLYDES PETTERSEN possui um número de tweets relativamente alto em relação aos outros parlamentares mas não possui um engajamento total bom.Existencia da relação entre n_proprio e engajamento:
extremos_destaque %>%
ggplot(aes(x = n_proprio, y = engaj_total, color = destaque)) +
geom_point(alpha = 0.7) +
scale_x_log10() +
scale_y_log10() +
scale_color_manual(
name = "Tipos de pontos",
labels = c("Esperados", "Extremos"),
values = c(cp_material_amber_500, cp_material_pink_500)
) +
labs(
title = "Visualização de pontos extremos",
subtitle = "Comparação entre número de tweets e engajamento total",
x = "Tweets do parlamentar",
y = "Engajamento total"
)