DADOS:

library(readr)
library(dplyr)
library(ggplot2)
library(tidyverse)
library(GGally)
library(viridis)

df_part <- read.csv("../../fpcc2-lab3-Klaywert/data/participation-per-country.csv")

Estamos interessados na relação entre quanto as pessoas de diferentes países comentam em questões dos outros. A proporção das pessoas do país que comentou nas questões de outros está medido na variável comentaram_prop.

Considerando essa variável, queremos examinar a relação entre ela e o quão hierárquicas são as relações em um país (PDI). Queremos também levar em conta o quanto as pessoas daquele país têm acesso à Internet (Internet) e qual o tamanho da base de dados que detectamos daquele país (usuarios).

Examinando essa relação

Faça uma visualização que usa os princípios de eficácia no projeto de visualizações para facilitar as comparações que você acha que são as mais importantes para entendermos esse contexto.

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(color = Internet, shape=usuarios), alpha = 0.8, size = 3)+
  scale_shape_binned(limits = c(0, 150000), breaks = c(10000, 30000, 70000, 100000, 150000)) +
  scale_color_stepsn(
    colours = viridis(8, direction = -1),
    breaks = c(0, 25, 50, 75, 100),
    limits = c(0, 100),
    labels = scales::number_format(suffix = "%")
  ) +
  theme_bw() +
  ggtitle(expression(atop("Participação de países por comentários na StackExchange por distância do poder", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  labs(color='Internet', shape='Usuários') +
  xlab('Proporção de comentários') + ylab('Power Distance Index (PDI)')

Apesar de uma dispersão considerável, percebe-se uma relação linear negativa. Ou seja, conforme o PDI cresce, a proporção de comentários tende a cair. A grande maioria dos países concentram um número relativamente baixo de usuários, com menos de 10 mil. Sobre a porcentagem do uso da internet, percebe-se alguns padrões: países com as maiores porcentagens figuram com boas proporções de comentários e menos PDI, enquanto os de menores porcentagens de internet possuem PDI bem maior.

Outras formas de ver

Em seguida, faça 5 visualizações que usem as mesmas variáveis e também pontos, mas que sejam menos eficazes que a que você escolheu acima.

Aqui vou colocar as “tentativas” para chegar na visualização escolhida acima.

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(color = Internet, shape=usuarios), alpha = 0.8, size = 3)+
  scale_shape_binned(limits = c(0, 150000), breaks = c(10000, 30000, 70000, 100000, 150000)) +
  theme_bw() +
  ggtitle(expression(atop("Participação de países por comentários na StackExchange por distância do poder", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  xlab('Proporção de comentários') + ylab('Power Distance Index (PDI)')

O gradiente azul do esquema de cores não ajuda muito na percepção do fator porcentagem de internet. Fica difícil diferenciar.

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(size = Internet, shape=usuarios), alpha = 0.6)+
  scale_shape_binned(limits = c(0, 150000), breaks = c(10000, 30000, 70000, 100000, 150000)) +
  theme_bw() +
  ggtitle(expression(atop("Participação de países por comentários na StackExchange por distância do poder", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  xlab('Proporção de comentários') + ylab('Power Distance Index (PDI)')

Aqui, além da falta de cores, utilizamos o size() para quantificar a porcentagem de internet. Pelo número de pontos, fica difícil perceber as diferenças nos tamanhos, impedindo de gerarmos algum tipo de interpretação sobre o dado.

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(size = Internet, shape=usuarios), alpha = 1)+
  scale_shape_binned(limits = c(0, 150000), breaks = c(10000, 30000, 70000, 100000, 150000)) +
  theme_bw() +
  ggtitle(expression(atop("Participação de países por comentários na StackExchange por distância do poder", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  xlab('Proporção de comentários') + ylab('Power Distance Index (PDI)')

Utilizando alpha=1, perdemos muitas informações sobre pontos, uma vez que a opacidade cobre alguns deles.

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(color = Internet, shape=usuarios), alpha = 1, size = 3)+
  scale_shape_binned(limits = c(0, 150000), breaks = c(50000, 100000, 150000)) +
  theme_bw() +
  ggtitle(expression(atop("Participação de países por comentários na StackExchange por distância do poder", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  xlab('Proporção de comentários') + ylab('Power Distance Index (PDI)')

Aqui os intervalos para o número de usuários foram extendidos, condensando e, consequentemente, perdendo muita informação importante sobre a distribuição geral.

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(color = Internet, shape=usuarios), alpha = 0.6, size = 3)+
  scale_shape_binned() +
  theme_bw() +
  ggtitle(expression(atop("Comentários x PDI", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  xlab('Comentários') + ylab('PDI')

Aqui, além de um claro problema com os labels (título e eixos não são claros sobre o que a visualização retrata), temos também uma escolha automática do ggplot em relação aos intervalos para o número de usuários.

Bônus

Inclua o continente dos países (six_regions) na visualização

df_part %>% drop_na(PDI) %>%  drop_na(comentaram_prop) %>%  drop_na(usuarios) %>%  drop_na(Internet) %>% drop_na(six_regions) %>%   ggplot(aes(x=comentaram_prop, y = PDI)) +
  geom_point(aes(color = Internet, shape=usuarios), alpha = 0.8, size = 3)+
  scale_shape_binned(limits = c(0, 150000), breaks = c(10000, 30000, 70000, 100000, 150000)) +
  scale_color_stepsn(
    colours = viridis(8, direction = -1),
    breaks = c(0, 25, 50, 75, 100),
    limits = c(0, 100),
    labels = scales::number_format(suffix = "%")
  ) +
  theme_bw() +
  ggtitle(expression(atop("Participação de países por comentários na StackExchange por distância do poder", atop(italic("Considerando número de usuários e porcentagem de acesso a internet"), "")))) +
  xlab('Proporção de comentários') + ylab('Power Distance Index (PDI)')+
  labs(color='Internet', shape='Usuários') +
  facet_wrap(~six_regions)

A europa e a ásia central concentram as maiores porcentagens de internet. A América detém o maior índice de usuários em um país (muito provavelmente os EUA). Sul da Ásia e África sub-saariana concentram as menores porcentagens de acesso a internet.