dados = read_csv(here::here("data/satisfacoes.csv"),
col_types = "cdcc")
dados = dados %>%
filter(scenario != "like/dislike")
glimpse(dados)
## Rows: 92
## Columns: 4
## $ user_id <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", …
## $ satisfaction <dbl> 2.0, 3.0, 1.5, 1.0, 2.0, 2.5, 2.0, 3.0, 2.0, 2.0, 2.0, 2.…
## $ scenario <chr> "baseline", "baseline", "baseline", "baseline", "baseline…
## $ group <chr> "3", "1", "2", "2", "1", "1", "3", "3", "2", "1", "3", "2…
dados_wide = dados %>%
pivot_wider(names_from = "scenario", values_from = satisfaction)
dados_wide = dados_wide %>%
mutate(
combined_baseline = combined - baseline,
updown_baseline = `up/downvoting` - baseline,
skip_baseline = skip - baseline
)
baseline, skip, up/downvoting e combined.
theta <- function(d, i) {
d[i] %>%
mean(na.rm = T)
}
theta(dados_wide$combined_baseline, 1:NROW(dados_wide))
## [1] 1.95
theta(dados_wide$updown_baseline, 1:NROW(dados_wide))
## [1] 2.25
theta(dados_wide$skip_baseline, 1:NROW(dados_wide))
## [1] 0.425
ci_combined = boot(data = dados_wide$combined_baseline,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_combined
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1.95 -0.00321 0.219 1.56 2.4
ci_updown = boot(data = dados_wide$updown_baseline,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_updown
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2.25 -0.00353 0.180 1.92 2.63
ci_skip = boot(data = dados_wide$skip_baseline,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_skip
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.425 0.00442 0.127 0.131 0.65
Qual o tamanho do efeito de cada uma das alternativas do sistema comparada com o baseline? Esse efeito é relevante? Vale à pena para um desenvolvedor implementar alguma delas? Qual/quais?
Tendo essas avaliações sendo obtidadas na escala Likert, onde seu intervalo vai de 1 a 5, sendo 1 muito baixo, e 5 muito alto, adotamos a seguintes criterios.
tendo |x| > 2 uma diferença alta, tendo 1 > |x| < 2, diferença media tendo |x| < 1, diferenca irrelevante
Em relação ao combined: Com 95% de confiança, estimamos que o valor da media das diferenças de satisfação dos usuarios entre combined e baseline é 1.95, com IC[1.529358, 2.394788]. Baseado nos nossos criterios, a media real pode significar uma diferenca alta, ou media, porem ambas são significativas para o sistema
Em relação ao up/downvoting: Com 95% de confiança, estimamos que o valor da media das diferenças de satisfação dos usuarios entre up/downvoting e baseline é 2.25, com IC[1.882353, 2.595238]. Baseado nos mesmos criterios avalitivos, a media real pode significar uma diferença alta ou media, sendo ambas significativas para o sistema. Espera-se que nivel de satisfaçao dos usuarios com o mecanismo up/downvoting tenha melhores resultados do que o combined pelo fato de seu IC estar mais voltado a valores maiores
Em relação ao skip: Com 95% de confiança, estimamos que o valor da media das diferenças de satisfação dos usuarios entre skip e baseline é 0.425, com IC[0.1315789, 0.6458453]. Seguindo nosso criterio de avaliação, afirmamos que os valores esperados pela diferenca dos mecanismos seja irrelevante para a satisfação dos usuarios.
Com base nos dados amostrais, podemos dizer que os mecanismos combined e up/downvoting valem a pena ser implementados, por resultar numa diferença relevante para a satisfação dos usuarios comparados ao baseline.
dados_wide2 = dados_wide %>%
mutate(
baseline_combined = baseline - combined,
updown_combined = `up/downvoting` - combined,
skip_combined = skip - combined
)
theta(dados_wide2$baseline_combined, 1:NROW(dados_wide2))
## [1] -1.95
theta(dados_wide2$updown_combined, 1:NROW(dados_wide2))
## [1] 0.3478261
theta(dados_wide2$skip_combined, 1:NROW(dados_wide2))
## [1] -1.521739
ci_baseline_c = boot(data = dados_wide2$baseline_combined,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_baseline_c
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -1.95 -0.00491 0.217 -2.39 -1.55
ci_updown_c = boot(data = dados_wide2$updown_combined,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_updown_c
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.348 -0.00335 0.158 0.0476 0.676
ci_skip_c = boot(data = dados_wide2$skip_combined,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_skip_c
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -1.52 0.00555 0.174 -1.90 -1.22
Qual o tamanho do efeito da combinação de alternativas (a combined) em relação às alternativas separadas?
Relação entre baseline - combined: Com 95% de confiança, estimamos que o valor da media das diferenças de satisfação dos usuarios entre baseline e combined é -1.95, com IC[-2.43115, -1.575151]. baseado nos mesmos criterios da pergunta anterior, a media real pode significar uma diferenca alta ou media negativa, significando que combined é melhor que baseline.
Relação entre updonw - combined: Com 95% de confiança, estimamos que o valor da media das diferenças de satisfação dos usuarios entre baseline e combined é 0.3478261, com IC[0.04347826, 0.6363636]. Baseado nos mesmos criterios da pergunta anterior, a media real de updown é melhor avaliada que combined, porem sua diferença é irrelevante a partir dos nossos criterios, pois sua media amostral está abaixo de 1.
Relação entre skip - combined: Com 95% de confiança, estimamos que o valor da media das diferenças de satisfação dos usuarios entre baseline e combined é -1.521739, com IC[-1.894782 , -1.2]. baseado nos mesmos criterios da pergunta anterior, a media real pode significar uma diferenca media negativa, significando que combined é melhor que skip.
dados_wide2 = dados_wide %>%
mutate(
updown_skip = `up/downvoting` - skip
)
theta(dados_wide2$updown_skip, 1:NROW(dados_wide2))
## [1] 1.869565
ci_updown_skip = boot(data = dados_wide2$updown_skip,
statistic = theta,
R = 2000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci_updown_skip
## # A tibble: 1 x 5
## statistic bias std.error conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1.87 -0.00452 0.136 1.62 2.16
Considerando a escolha entre skip e up/downvoting, você recomendaria a alguém interessado em aumentar a satisfação de usuários que prefira a implementação de um deles?
Fazendo uma comparação entre up/downvoting e skip, estimamos, com 95% de confiança, que up/downvoting se comporta melhor que o skip, havendo uma melhora , de acordo com o nosso criterio de relevancia, media ou alta, tendo seu IC[1.630435, 1.630435]. Com base nesses dados, recomendamos o uso do mecanismo up/downvoting.
Se implementar a variante combined é a opção mais trabalhosa, em que situação você a recomendaria para implementação?
Se coletarmos mais amostras, fazendo com que o ic seja mais centrado em um valor(mais preciso) e tal melhoria retornar-se um deta maior que 2, tendo todo seu intervalo de confianca maior que 2 , recomendamos tal implementacao