Setup

Carregando dados

dados_raw = 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()
    )
) %>% janitor::clean_names()

dados = dados_raw %>% 
    filter(site %in% c("StackOverflow"), !is.na(epi + responderam_prop + internet + gni + idv))

glimpse(dados)
## Rows: 49
## Columns: 21
## $ site                         <chr> "StackOverflow", "StackOverflow", "StackO…
## $ country                      <chr> "Austria", "Belgium", "Brazil", "Chile", …
## $ pdi                          <dbl> 11, 65, 69, 63, 80, 67, 35, 57, 18, 78, 7…
## $ idv                          <dbl> 55, 75, 38, 23, 20, 13, 15, 58, 74, 8, 25…
## $ mas                          <dbl> 79, 54, 49, 28, 66, 64, 21, 57, 16, 63, 4…
## $ uai                          <dbl> 70, 94, 76, 86, 30, 80, 86, 74, 23, 67, 8…
## $ usuarios                     <dbl> 2518, 4275, 10717, 1075, 13401, 1224, 431…
## $ responderam_prop             <dbl> 0.6310564, 0.6081871, 0.4826911, 0.483720…
## $ perguntaram_prop             <dbl> 0.5933280, 0.6088889, 0.4658020, 0.484651…
## $ editaram_prop                <dbl> 0.14932486, 0.14666667, 0.08351218, 0.076…
## $ comentaram_prop              <dbl> 0.3502780, 0.3202339, 0.2038817, 0.210232…
## $ gni                          <dbl> 48160, 44990, 11630, 14280, 5680, 6990, 8…
## $ internet                     <dbl> 79.8, 78.0, 45.0, 52.3, 38.3, 40.4, 42.1,…
## $ epi                          <dbl> 63.21, 61.21, 49.96, 48.75, 50.15, 48.54,…
## $ geo                          <chr> "aut", "bel", "bra", "chl", "chn", "col",…
## $ four_regions                 <chr> "europe", "europe", "americas", "americas…
## $ eight_regions                <chr> "europe_west", "europe_west", "america_so…
## $ six_regions                  <chr> "europe_central_asia", "europe_central_as…
## $ latitude                     <dbl> 47.33333, 50.75000, -10.00000, -33.45694,…
## $ longitude                    <dbl> 13.33333, 4.50000, -55.00000, -70.64827, …
## $ world_bank_income_group_2017 <chr> "High income", "High income", "Upper midd…
summary(dados)
##      site             country               pdi           idv       
##  Length:49          Length:49          Min.   : 11   Min.   : 6.00  
##  Class :character   Class :character   1st Qu.: 50   1st Qu.:20.00  
##  Mode  :character   Mode  :character   Median : 66   Median :30.00  
##                                        Mean   : 64   Mean   :40.04  
##                                        3rd Qu.: 78   3rd Qu.:60.00  
##                                        Max.   :104   Max.   :80.00  
##                                                                     
##       mas              uai            usuarios     responderam_prop
##  Min.   :  5.00   Min.   :  8.00   Min.   :  116   Min.   :0.2917  
##  1st Qu.: 37.00   1st Qu.: 58.00   1st Qu.:  673   1st Qu.:0.4496  
##  Median : 45.00   Median : 80.00   Median : 2270   Median :0.5163  
##  Mean   : 47.94   Mean   : 70.06   Mean   : 4839   Mean   :0.5041  
##  3rd Qu.: 63.00   3rd Qu.: 86.00   3rd Qu.: 4275   3rd Qu.:0.5746  
##  Max.   :110.00   Max.   :104.00   Max.   :70970   Max.   :0.6351  
##                                                                    
##  perguntaram_prop editaram_prop     comentaram_prop       gni       
##  Min.   :0.3631   Min.   :0.01724   Min.   :0.0625   Min.   : 1400  
##  1st Qu.:0.4847   1st Qu.:0.06391   1st Qu.:0.1721   1st Qu.: 6990  
##  Median :0.5185   Median :0.09363   Median :0.2346   Median :14200  
##  Mean   :0.5224   Mean   :0.09281   Mean   :0.2355   Mean   :23509  
##  3rd Qu.:0.5814   3rd Qu.:0.11773   3rd Qu.:0.3113   3rd Qu.:41750  
##  Max.   :0.6286   Max.   :0.16864   Max.   :0.3599   Max.   :98860  
##                                                                     
##     internet         epi            geo            four_regions      
##  Min.   : 5.0   Min.   :38.02   Length:49          Length:49         
##  1st Qu.:42.1   1st Qu.:48.75   Class :character   Class :character  
##  Median :61.0   Median :52.80   Mode  :character   Mode  :character  
##  Mean   :58.2   Mean   :53.90                                        
##  3rd Qu.:78.0   3rd Qu.:59.58                                        
##  Max.   :95.0   Max.   :69.30                                        
##                                                                      
##  eight_regions      six_regions           latitude        longitude      
##  Length:49          Length:49          Min.   :-33.46   Min.   :-99.128  
##  Class :character   Class :character   1st Qu.: 14.24   1st Qu.: -7.065  
##  Mode  :character   Mode  :character   Median : 35.69   Median : 15.000  
##                                        Mean   : 29.92   Mean   : 14.766  
##                                        3rd Qu.: 48.54   3rd Qu.: 44.500  
##                                        Max.   : 64.00   Max.   :139.753  
##                                        NA's   :2        NA's   :2        
##  world_bank_income_group_2017
##  Length:49                   
##  Class :character            
##  Mode  :character            
##                              
##                              
##                              
## 

1. a. Construa um modelo 1 com a variável responderam_prop com variável de resposta e fluência em inglês da população (EPI), produto interno bruto do país (GNI) e disponibilidade de internet no país como variáveis de explicação. Comente esse modelo em termos dos coeficientes e do ajuste. Estamos interessados em fazer inferência sobre os coeficientes.

model_1 <- lm(responderam_prop ~ epi + gni + internet, data = dados)

tidy(model_1)
glance(model_1)
model_1 %>%
    augment(dados) %>%
    ggplot(aes(x = .fitted)) + 
    geom_hline(yintercept = 0) +
    geom_point(aes(y = .resid), size = 1, colour = "purple") +
    labs(
        title = "Valor de resposta versus resíduos para modelo 1",
        subtitle = "responderam_prop ~ epi + gni + internet",
        x = "Valor de resposta",
        y = "Resíduos"
    )

model_1 %>%
    tidy(conf.int = T, conf.level = .95) %>%
    select(-p.value)

1. b. Construa um modelo 2 que além das variáveis do modelo 1 tem também o IDV. Esse é um modelo que considera uma variável de cultura. Comparando o modelo 2 com o modelo 1, o que podemos afirmar sobre o efeito do individualismo no comportamento das pessoas de diferentes países no stackoverflow? Há um efeito relevante (lembre-se de considerar a inferência para a população de onde vem os dados)? O modelo é mais explicativo do que sem a variável relacionada a cultura?

model_2 <- lm(responderam_prop ~ epi + gni + internet + idv, data = dados)

tidy(model_2)
glance(model_2)
model_2 %>%
    augment(dados) %>%
    ggplot(aes(x = .fitted)) + 
    geom_hline(yintercept = 0) +
    geom_point(aes(y = .resid), size = 1, colour = "coral") +
    labs(
        title = "Valor de resposta versus resíduos para modelo 2",
        subtitle = "responderam_prop ~ epi + gni + internet + idv",
        x = "Valor de resposta",
        y = "Resíduos"
    )

model_2 %>%
    tidy(conf.int = T, conf.level = .95) %>%
    select(-p.value)