dados = read_csv(
    here::here("C:/LabDadosR/lab03/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.

# Ler o arquivo CSV
data <- read_csv("C:/LabDadosR/lab03/participation-per-country.csv")
## Rows: 157 Columns: 21
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (7): site, country, geo, four_regions, eight_regions, six_regions, Worl...
## dbl (14): PDI, IDV, MAS, UAI, usuarios, responderam_prop, perguntaram_prop, ...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Selecionar as colunas de interesse
data <- data %>% select(country, PDI, Internet, usuarios, comentaram_prop,six_regions) 


# Visualizar os primeiros registros do dataset
head(data)
## # A tibble: 6 × 6
##   country      PDI Internet usuarios comentaram_prop six_regions        
##   <chr>      <dbl>    <dbl>    <dbl>           <dbl> <chr>              
## 1 Argentina     49     51       2798           0.253 america            
## 2 Australia     36     79.5    12313           0.334 east_asia_pacific  
## 3 Austria       11     79.8     2518           0.350 europe_central_asia
## 4 Bangladesh    80      5       2558           0.160 south_asia         
## 5 Belgium       65     78       4275           0.320 europe_central_asia
## 6 Brazil        69     45      10717           0.204 america
# Criar um modelo de regressão linear múltipla
modelo <- lm(comentaram_prop ~ PDI + Internet + usuarios, data = data)

# Resumo do modelo
summary(modelo)
## 
## Call:
## lm(formula = comentaram_prop ~ PDI + Internet + usuarios, data = data)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.177019 -0.031580  0.004823  0.029692  0.273467 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.506e-01  2.559e-02   9.791  < 2e-16 ***
## PDI         -1.074e-03  2.684e-04  -4.002 9.85e-05 ***
## Internet     1.058e-03  2.172e-04   4.869 2.84e-06 ***
## usuarios     3.470e-07  3.890e-07   0.892    0.374    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06032 on 149 degrees of freedom
##   (4 observations deleted due to missingness)
## Multiple R-squared:  0.3755, Adjusted R-squared:  0.3629 
## F-statistic: 29.86 on 3 and 149 DF,  p-value: 3.564e-15
# Agrupar por continente e calcular a média da proporção de comentários
data_continents <- data %>%
 group_by(six_regions) %>%
 summarise(mean_comentaram_prop = mean(comentaram_prop, na.rm = TRUE))

# Plotar a relação entre comentaram_prop e PDI, ajustando para Internet e usuarios
ggplot(data, aes(x = PDI, y = comentaram_prop, size = usuarios, color = Internet)) +
geom_point(alpha = 0.8) +
 geom_smooth(method = "lm", se = FALSE, color = "blue") +
 labs(title = "Relação entre Comentários e PDI",
 x = "Índice de Distância de Poder (PDI)",
 y = "Proporção de Comentários",
 size = "Número de Usuários",
 color = "Acesso à Internet (%)") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'
## Warning: The following aesthetics were dropped during statistical transformation: size.
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?

# Criar um diagrama de colunas para os continentes
ggplot(data_continents, aes(x = reorder(six_regions, mean_comentaram_prop), y = mean_comentaram_prop, fill = six_regions)) +
 geom_col() +
 geom_text(aes(label = round(mean_comentaram_prop, 2)), vjust = -0.5, size = 3.5) +
labs(title = "Proporção Média de Comentários por Continente",
 x = "Continente",
 y = "Proporção Média de Comentários",
 fill = "Continente") +
 theme_minimal()

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.

#Forma01 Gráfico apenas de pontos
ggplot(data, aes(x = PDI, y = comentaram_prop, size = usuarios, color = Internet)) +
 geom_point(alpha = 0.8) 

#Forma02 Gráfico de barras
ggplot(data, aes(x = PDI, y = comentaram_prop, size = usuarios, color = Internet)) +
geom_bar(stat = "identity", position = "dodge") +

geom_text(aes(label = round(comentaram_prop, 2)), 
            position = position_dodge(width = 0.9), 
            vjust = -0.8)

#Forma03 Gráfico de Linha
ggplot(data, aes(x = PDI, y = comentaram_prop, group = country, color = Internet)) +
geom_line() +
geom_point(size = 2) +
labs(title = "Relação entre Comentários e PDI por País",
x = "Índice de Distância de Poder (PDI)",
y = "Proporção de Comentários",
color = "Acesso à Internet (%)") +
theme_classic()

#Forma04 Gráfico de Dispersão tema cinza

ggplot(data, aes(x = PDI, y = comentaram_prop, size = usuarios, color = Internet)) +
geom_point(alpha = 0.2) +
geom_smooth(method = "lm", se = FALSE, color = "Black") +
labs(title = "Relação entre Comentários e PDI",
x = "Índice de Distância de Poder (PDI)",
y = "Proporção de Comentários",
size = "Número de Usuários",
color = "Acesso à Internet (%)") +
theme_gray()
## `geom_smooth()` using formula = 'y ~ x'
## Warning: The following aesthetics were dropped during statistical transformation: size.
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?

#Forma05 diagrama de colunas

ggplot(data, aes(x = reorder(country, comentaram_prop), y = comentaram_prop, fill = Internet)) +
 geom_col() +
 coord_flip() +
 labs(title = "Proporção de Comentários por País",
 x = "País",
 y = "Proporção de Comentários",
 fill = "Acesso à Internet (%)") +
 theme_minimal()

Bônus

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