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).
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()
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()
Inclua o continente dos países (six_regions) na
visualização.