dados = read_csv(
    here::here("data/participation-per-country.csv"),
    col_types = cols(
        .default = col_double(),
        site = col_character(),
        country = col_character(),
        geo = col_character(),
        four_regions = col_character(),
        eight_regions = col_character(),
        six_regions = col_character(),
        `World bank income group 2017` = col_character()
    )
) %>% 
    filter(usuarios > 200)
glimpse(dados)
## Rows: 121
## Columns: 21
## $ site                           <chr> "StackOverflow", "StackOverflow", "Stac…
## $ country                        <chr> "Argentina", "Australia", "Austria", "B…
## $ PDI                            <dbl> 49, 36, 11, 80, 65, 69, 70, 39, 63, 80,…
## $ IDV                            <dbl> 46, 90, 55, 20, 75, 38, 30, 80, 23, 20,…
## $ MAS                            <dbl> 56, 61, 79, 55, 54, 49, 40, 52, 28, 66,…
## $ UAI                            <dbl> 86, 51, 70, 60, 94, 76, 85, 48, 86, 30,…
## $ usuarios                       <dbl> 2798, 12313, 2518, 2558, 4275, 10717, 1…
## $ responderam_prop               <dbl> 0.5357398, 0.6133355, 0.6310564, 0.3928…
## $ perguntaram_prop               <dbl> 0.5210865, 0.5897832, 0.5933280, 0.4757…
## $ editaram_prop                  <dbl> 0.09256612, 0.14699911, 0.14932486, 0.0…
## $ comentaram_prop                <dbl> 0.25339528, 0.33395598, 0.35027800, 0.1…
## $ GNI                            <dbl> NA, 59570, 48160, 840, 44990, 11630, 68…
## $ Internet                       <dbl> 51.0, 79.5, 79.8, 5.0, 78.0, 45.0, 51.0…
## $ EPI                            <dbl> 59.02, NA, 63.21, NA, 61.21, 49.96, NA,…
## $ geo                            <chr> "arg", "aus", "aut", "bgd", "bel", "bra…
## $ four_regions                   <chr> "americas", "asia", "europe", "asia", "…
## $ eight_regions                  <chr> "america_south", "east_asia_pacific", "…
## $ six_regions                    <chr> "america", "east_asia_pacific", "europe…
## $ Latitude                       <dbl> -34.00000, -25.00000, 47.33333, 24.0000…
## $ Longitude                      <dbl> -64.00000, 135.00000, 13.33333, 90.0000…
## $ `World bank income group 2017` <chr> "Upper middle income", "High income", "…

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.

dados %>%
    ggplot(aes(x = PDI, y = comentaram_prop, color = Internet, size = usuarios)) +
    geom_point(alpha = 0.5) +
    scale_color_viridis() +
    labs(title = "Relação entre PDI e a proporção de comentários",
         x = "PDI",
         y = "Proporção de usuários que comentaram",
         color = "Acesso à Internet",
         size = "Número de usuários") +
    theme_minimal()

pearson_corr_internet_com <- cor(dados$Internet, dados$comentaram_prop, method = "pearson", use = "complete.obs")
spearman_corr_internet_com <- cor(dados$Internet, dados$comentaram_prop, method = "spearman", use = "complete.obs")

correlation_table_internet_com <- tibble(
  Method = c("Pearson", "Spearman"),
  Correlation = c(pearson_corr_internet_com, spearman_corr_internet_com)
)

correlation_table_internet_com
## # A tibble: 2 × 2
##   Method   Correlation
##   <chr>          <dbl>
## 1 Pearson        0.625
## 2 Spearman       0.629

Países com maior acesso à internet tendem a apresentar uma maior proporção de usuários mais ativos com comentários. Utilizando a correlação de Pearson e Spearman entre essas variáveis, verificamos que existe uma correlação positiva. Isso sugere que a infraestrutura digital de um país pode influenciar o engajamento dos usuários em interações colaborativas.

pearson_corr_pdi_com <- cor(dados$PDI, dados$comentaram_prop, method = "pearson", use = "complete.obs")
spearman_corr_pdi_com <- cor(dados$PDI, dados$comentaram_prop, method = "spearman", use = "complete.obs")

correlation_table_pdi_com <- tibble(
  Method = c("Pearson", "Spearman"),
  Correlation = c(pearson_corr_pdi_com, spearman_corr_pdi_com)
)

correlation_table_pdi_com
## # A tibble: 2 × 2
##   Method   Correlation
##   <chr>          <dbl>
## 1 Pearson       -0.599
## 2 Spearman      -0.608

Observa-se uma relação negativa moderada entre comentaram_prop e o índice de distância ao poder (PDI), sugerindo que, em países com relações sociais mais hierárquicas, os usuários tendem a comentar menos nas questões alheias.

pearson_corr_internet_usu <- cor(dados$Internet, dados$usuarios, method = "pearson", use = "complete.obs")
spearman_corr_internet_usu <- cor(dados$Internet, dados$usuarios, method = "spearman", use = "complete.obs")

correlation_table_internet_usu <- tibble(
  Method = c("Pearson", "Spearman"),
  Correlation = c(pearson_corr_internet_usu, spearman_corr_internet_usu)
)

correlation_table_internet_usu
## # A tibble: 2 × 2
##   Method   Correlation
##   <chr>          <dbl>
## 1 Pearson       0.0458
## 2 Spearman      0.260

Os coeficientes de correlação entre Internet e usuarios indicam que não há uma relação forte entre o número de usuários detectados em um país e o nível de acesso à internet da população. Isso é evidenciado pela presença de países com grandes bases de usuários, mas com baixa penetração de internet.

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.

1 - Variando o formato ao invés do tamanho para representar o número de usuários, fica difícil identificar as diferenças nos formatos, especialmente quando estão muito próximos.

dados %>%
    ggplot(aes(x = PDI, y = comentaram_prop, color = Internet, shape = usuarios)) +
    geom_point(alpha = 0.5, size = 4) +
    scale_color_viridis() +
    scale_shape_binned() +
    labs(title = "Relação entre PDI e a proporção de comentários",
         x = "PDI",
         y = "Proporção de usuários que comentaram",
         color = "Acesso à Internet",
         size = "Número de usuários") +
    theme_minimal()

2 - Variando o tamanho de acordo com a porcentagem de acesso à internet e as cores de acordo com a quantidade de usuários, obtemos um resultado ruim, pois há poucos valores altos para a quantidade de usuários e o tamanho varia pouco utilizando o acesso à internet.

dados %>%
    ggplot(aes(x = PDI, y = comentaram_prop, color = usuarios, size = Internet)) +
    geom_point(alpha = 0.5) +
    scale_color_viridis() +
    labs(title = "Relação entre PDI e a proporção de comentários",
         x = "PDI",
         y = "Proporção de usuários que comentaram",
         color = "Número de usuários",
         size = "Acesso à Internet") +
    theme_minimal()
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

3 - Utilizando uma opacidade máxima, fica difícil identificar os valores próximos, podendo haver casos em que um registro com tamanho maior fique por cima de um registro com tamanho menor, impedindo sua visualização.

dados %>%
    ggplot(aes(x = PDI, y = comentaram_prop, color = Internet, size = usuarios)) +
    geom_point(alpha = 1) +
    scale_color_viridis() +
    labs(title = "Relação entre PDI e a proporção de comentários",
         x = "PDI",
         y = "Proporção de usuários que comentaram",
         color = "Acesso à Internet",
         size = "Número de usuários") +
    theme_minimal()

4 - Apenas considera PDI e comentaram_prop, ignorando Internet e usuarios. A falta dessas duas variáveis torna o gráfico menos informativo.

dados %>%
    ggplot(aes(x = PDI, y = comentaram_prop)) +
    geom_point(alpha = 0.5) +
    labs(title = "Relação entre PDI e a proporção de comentários",
         x = "PDI",
         y = "Proporção de usuários que comentaram") +
    theme_minimal()

5 - Este gráfico é menos eficaz porque, embora considere Internet, não leva em conta usuarios. A falta desta variável pode levar a uma interpretação incompleta dos dados.

dados %>%
    ggplot(aes(x = PDI, y = comentaram_prop, color = Internet)) +
    scale_color_viridis() +
    geom_point() +
    labs(title = "Relação entre PDI e a proporção de comentários",
        x = "PDI",
        y = "Proporção de comentários",
        color = "Acesso à Internet") +
    theme_minimal()

Bônus

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

dados %>%
    filter(!is.na(six_regions)) %>%
    ggplot(aes(x = PDI, y = comentaram_prop, size = usuarios, color = Internet)) +
    geom_point(alpha = 0.5) +
    facet_wrap(~six_regions) +
    scale_color_viridis() +
    labs(title = "Relação entre PDI e a proporção de comentários por região",
        x = "PDI",
        y = "Proporção de comentários",
        color = "Acesso à Internet",
        size = "Número de usuários") +
    theme_minimal()