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.

Vamos analisar cada caso separadamente avaliando os coeficientes de correlação, com o intuito de entender os relacionamentos entre as variáveis.

Análise 1 - Comentários por país e Internet

Gráfico

dados %>% ggplot( aes(x=Internet , y=comentaram_prop)) +
    geom_point() +
      labs(title = "Comentarios pais por nivel de Acesso a Internet",
           y = "Proporcao de Comentarios",
           x = "Acesso a Internet") +
    geom_smooth(method = "lm", se = FALSE, color = "red")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

Coeficientes de correlação

dados %>% summarise(
    pearson = cor(Internet,comentaram_prop,method ="pearson", use = "complete.obs"),
    spearman = cor(Internet,comentaram_prop,method ="spearman", use = "complete.obs"),
    kendall = cor(Internet,comentaram_prop, method = "kendall", use = "complete.obs"))
## # A tibble: 1 × 3
##   pearson spearman kendall
##     <dbl>    <dbl>   <dbl>
## 1   0.625    0.629   0.469

Analisando o gráfico e o coeficiente de correlação gerado para a análise 1, percebemos que existe uma relação moderada e positiva entre as variáveis. Vemos que quanto mais acesso a internet os usuários possuem, maior a quantidade de comentários.

Análise 2 - Comentários por país e PDI

Gráfico

dados %>% ggplot( aes(x=PDI , y=comentaram_prop)) +
    geom_point() +
      labs(title = "Comentarios pais por PDI",
           y = "Proporcao de Comentarios",
           x = "PDI") +
    geom_smooth(method = "lm", se = FALSE, color = "red")
## `geom_smooth()` using formula = 'y ~ x'

Coeficientes de correlação

dados %>% summarise(
    pearson = cor(PDI,comentaram_prop,method ="pearson", use = "complete.obs"),
    spearman = cor(PDI,comentaram_prop,method ="spearman", use = "complete.obs"),
    kendall = cor(PDI,comentaram_prop, method = "kendall", use = "complete.obs"))
## # A tibble: 1 × 3
##   pearson spearman kendall
##     <dbl>    <dbl>   <dbl>
## 1  -0.599   -0.608  -0.443

Analisando o gráfico e o coeficiente de correlação gerado para a análise 2, percebemos que quanto menor o PDI, maior a proporção de comentários realizados pelos usuários. Sendo assim, temos uma relação moderada e negativa entre as variáveis.

Análise 3 - Comentários por país e quantidade de usuários

Gráfico

dados %>% ggplot( aes(x=usuarios , y=comentaram_prop)) +
    geom_point() +
      labs(title = "Comentarios pais por PDI",
           y = "Proporcao de Comentarios",
           x = "Quantidade de usuarios") +
    geom_smooth(method = "lm", se = FALSE, color = "red")
## `geom_smooth()` using formula = 'y ~ x'

Coeficientes de correlação

dados %>% summarise(
    pearson = cor(usuarios,comentaram_prop,method ="pearson", use = "complete.obs"),
    spearman = cor(usuarios,comentaram_prop,method ="spearman", use = "complete.obs"),
    kendall = cor(usuarios,comentaram_prop, method = "kendall", use = "complete.obs"))
## # A tibble: 1 × 3
##   pearson spearman kendall
##     <dbl>    <dbl>   <dbl>
## 1   0.136    0.283   0.194

Analisando o gráfico e o coeficiente de correlação gerado para a análise 3, não podemos afirmar que existe uma relação entre as variáveis, pois os coeficientes de correlação estão comvalores baixos. Ademais é perceptível a presença de outliers.

Análise completa

ggplot(na.omit(dados), aes(
    x=PDI , 
    y=comentaram_prop,
    size = log10(usuarios),
    color = Internet)) +
    scale_color_gradient(low = "green", high = "blue") +
    geom_point(alpha=0.7) +
      labs(title = "Relacao entre comentarios, PDI, Internet e usuarios",
           y = "Proporcao de Comentarios",
           x = "PDI",
           size = "Quantidade usuarios")

Realizando uma análise completa percebemos que quanto maior o PDI e menos acesso a internet os usuários possuem, menor o número de comentários realizados. Contudo, quanto menor o PDI e mais acesso a internet os usuários possuem, maior o número de comentários realizados, ou seja, os paízes que apresentam menor deseigualdade social e mais acesso a internet conseguem um número mais elevado de comentários realizados, enquanto que os países com maior desigualdade social e menos acesso a internet, não possuem valores tão elevados de comentários realizados.

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.

Modo menos eficaz 1 - Visualizar comentários na proporção de tamanho

ggplot(na.omit(dados), aes(
    x=PDI , 
    y=log10(usuarios),
    size = comentaram_prop,
    color = Internet)) +
    scale_color_gradient(low = "green", high = "blue") +
    geom_point(alpha=0.7) +
      labs(title = "Relacao entre comentarios, PDI, Internet e usuarios",
           y = "Quantidade usuarios",
           x = "PDI",
           size = "Proporcao de comentarios")

A proporção de comentários possui quase a mesma faxetaria de valores, o que impossibilita uma análise eficaz se utillizar a medida dos tamanhos dos pontos para receber esses valores.

Modo menos eficaz 2 - Pontos com opacidade total

ggplot(na.omit(dados), aes(
    x=PDI , 
    y=comentaram_prop,
    size = log10(usuarios),
    color = Internet)) +
    scale_color_gradient(low = "green", high = "blue") +
    geom_point(alpha=1) +
      labs(title = "Relacao entre comentarios, PDI, Internet e usuarios",
           y = "Proporcao de Comentarios",
           x = "PDI",
           size = "Quantidade usuarios")

Existem pontos que se sobrepõem e isso impossibilita uma boa análise ou até mesmo a visualização deles.

Modo menos eficaz 3 - Correlograma

correlograma <- dados %>% 
    select(comentaram_prop,Internet,PDI,usuarios) %>% 
    filter(!is.na(Internet)) %>% 
    mutate(usuarios = log10(usuarios)) 

ggpairs(correlograma, title="Correlograma")

Muitas informações são fornecidas de uma vez só. Torna a visualização e compreensão mais complexa além de não ser o melhor método disponível para mostrar os dados.

Modo menos eficaz 4 - Uso da variação de cores para denotar a quantidade de usuários

ggplot(na.omit(dados), aes(
    x=PDI, 
    y=comentaram_prop,
    color = log10(usuarios))) +
    scale_color_gradient(low = "green", high = "blue") +
    geom_point(alpha= 0.7) +
      labs(title = "Relacao entre comentarios, PDI, Internet e usuarios",
           y = "Proporcao de Comentarios",
           x = "PDI",
           color = "Qtd usuarios")

Não é a forma mais eficaz de visualizar a quantidade de usuários na relação, pois torna a análise mais abstrata e condiciona a quantidade de usuários à variação de cores existentes.

Modo menos eficaz 5 - Subistituir a variação de tamanho por formas

ggplot(na.omit(dados), aes(
    x=PDI , 
    y=comentaram_prop,
    shape = log10(usuarios),
    color = Internet)) +
    scale_color_gradient(low = "green", high = "blue") +
    geom_point(alpha=1) +
      labs(title = "Relacao entre comentarios, PDI, Internet e usuarios",
           y = "Proporcao de Comentarios",
           x = "PDI",
           shape = "Quantidade usuarios") +
    scale_shape_binned()

Se torna improdutivo realizar uma análise da quantidade de usuários utilizando formas, visto que várias formas são geradas e nehuma delas expressa a real quantidade de usuários.

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 = log10(usuarios),
        color = Internet)) +
    scale_color_gradient(low = "green", high = "blue") +
    geom_point(alpha=0.7) +
    facet_wrap(~ six_regions)

      labs(title = "Relacao entre comentarios, PDI, Internet e usuarios (continente)",
           y = "Proporcao de Comentarios",
           x = "PDI",
           size = "Qtd usuarios",
           color = "Internet")
## $y
## [1] "Proporcao de Comentarios"
## 
## $x
## [1] "PDI"
## 
## $size
## [1] "Qtd usuarios"
## 
## $colour
## [1] "Internet"
## 
## $title
## [1] "Relacao entre comentarios, PDI, Internet e usuarios (continente)"
## 
## attr(,"class")
## [1] "labels"