O experimento consiste na inferência. Os dados utilizados para a inferência baseiam-se na avaliação da satisfação de usuários em relação a mecanismos testados pelos mesmos para montagem de playlists compartilhadas em Jukeboxes. Foram coletadas avaliações de 23 usuários, que avaliaram 5 formas diferentes de organizar playlists colaborativas, atribuindo uma nota entre 1 e 5 que equivale ao nível de satisfação em relação ao mecanismo.
Os mecanismos são:
Baseline: Uma fila simples, se uma nova música é adicionada à playlist, ela é colocada no final da fila.
Combined: Todos os macanismos são aplicados juntos.
Like/dislike: Apresenta um recurso que indica aos usuários se os outros usuários estão gostando (Like) ou não (Dislike) das músicas que estão sendo adicionadas.
Skip: Permite que os usuários pulem uma música da playlist. Se determinada quantidade de usuários votarem que querem pular essa música, a proxima da fila é reproduzida.
Up/downvoting: De acordo com as avaliações dos usuários, as músicas mais bem avaliadas são tocadas primeiro e as piores avaliadas são tocadas por último.
Foi utilizado um intervalo de confiança com nível de confiança de 95%;
Foram coletadas 5000 amostras de bootstrap.
Para descobrir qual dos dois mecanismos foi melhor avaliado usaremos a diferença média entre eles, mostrada no gráfico de estimativa.
dados %>%
filter(scenario %in% c("baseline", "combined")) %>%
ggplot(aes(
x = scenario,
y = satisfaction,
color = scenario
)) +
geom_quasirandom() +
geom_violin(fill = NA) +
scale_color_discrete(name = "Mecanismos") +
labs(
title = "Distribuição das avaliações a partir do mecanismo utilizado: ",
x = "Mecanismo",
y = "Avaliação do usuário"
)
A estimativa da diferença média da satisfação do mecanismo Baseline e o Combined é de aproximadamente 1,91. E o intervalo de confiança com nível de confiança de 95% tem o limite inferior de aproximadamente 1,57 e o limite superior de aproximadamente 2,24. Como podemos observar a seguir:
comparacao1 = dados %>%
filter(scenario %in% c("baseline", "combined"))
theta1 <- function(d, i) {
agrupado = d %>%
slice(i) %>%
group_by(scenario) %>%
summarise(media = mean(satisfaction))
b = agrupado %>% filter(scenario == "baseline") %>% pull(media)
c = agrupado %>% filter(scenario == "combined") %>% pull(media)
c - b
}
ci1 = boot(data = comparacao1,
statistic = theta1,
R = 5000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci1 %>%
rename(
'Média' = statistic,
'Limite inferior' = conf.low,
'Limite superior' = conf.high,
)
Diante disso, podemos estimar com um nível de confiança de 95% que a média de satisfação do mecanismo Combined é superior à média do mecanismo Baseline. Dado que, os resultados quantitativos mostram que o intervalo de confiança das diferenças das médias apresenta uma faixa de no mínimo 1,5 e no máximo 2,2, o que é uma diferença média-alta, tendo em vista que a avaliação vai de 1 a 5.
Para descobrir qual dos dois mecanismos foi melhor avaliado usaremos a diferença média entre eles, mostrada no gráfico de estimativa.
dados %>%
filter(scenario %in% c("baseline", "up/downvoting")) %>%
ggplot(aes(
x = scenario,
y = satisfaction,
color = scenario )) +
geom_quasirandom() +
geom_violin(fill = NA) +
scale_color_discrete(name = "Mecanismos") +
labs(
title = "Distribuição das avaliações a partir do mecanismo utilizado: ",
x = "Mecanismo",
y = "Avaliação do usuário"
)
A estimativa da diferença média da satisfação do método Baseline e o Up/downvoting é de aproximadamente 2,26. E o intervalo de confiança com nível de confiança de 95% tem o limite inferior de aproximadamente 1,93 e o limite superior de aproximadamente 2,57. Como podemos observar a seguir:
comparacao2 = dados %>%
filter(scenario %in% c("baseline", "up/downvoting"))
theta2 <- function(d, i) {
agrupado = d %>%
slice(i) %>%
group_by(scenario) %>%
summarise(media = mean(satisfaction))
b = agrupado %>% filter(scenario == "baseline") %>% pull(media)
u = agrupado %>% filter(scenario == "up/downvoting") %>% pull(media)
u - b
}
ci2 = boot(data = comparacao2,
statistic = theta2,
R = 5000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
ci2 %>%
rename(
'Média' = statistic,
'Limite inferior' = conf.low,
'Limite superior' = conf.high,
)
A partir disso, podemos estimar com um nível de confiança de 95% que a média de satisfação do mecanismo Up/downvoting é superior à média do Baseline. Visto que os resultados quantitativos mostram que o intervalo de confiança das diferenças das médias apresenta uma faixa de no mínimo 1,9 e no máximo 2,5, o que é uma diferença alta, tendo em vista que a avaliação vai de 1 a 5.
Para descobrir qual dos mecanismos foi melhor avaliado usaremos a diferença média entre eles, mostrada no gráfico de estimativa.
dados %>%
ggplot(aes(
x = scenario,
# x = scenario,
y = satisfaction,
color = scenario )) +
geom_quasirandom() +
geom_violin(fill = NA) +
scale_color_discrete(name = "Mecanismos") +
labs(
title = "Distribuição das avaliações a partir do mecanismo utilizado: ",
x = "Mecanismo",
y = "Avaliação do usuário"
)
theta3 <- function(d, i) {
d %>%
slice(i) %>%
summarise(media = mean(satisfaction)) %>%
pull(media)
}
bootstrap_satisfacao = function(scenario_bootstrap) {
satisfacoes_scenario = dados %>%
filter(scenario == scenario_bootstrap)
satisfacoes_scenario %>%
boot(statistic = theta3, R = 5000) %>%
tidy(conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
}
tipos_scenario = dados %>%
select(scenario) %>%
unique()
ics_scenarios = tipos_scenario %>%
cbind(map_df(tipos_scenario$scenario, ~ bootstrap_satisfacao(.)))
ics_scenarios %>%
ggplot(aes(
x = scenario,
y = statistic,
ymin = conf.low,
ymax = conf.high,
color = scenario
)) +
geom_point(size = 4) +
geom_errorbar() +
ylim(1,5) +
scale_color_discrete(name = "Mecanismos") +
labs(
title = "Intervalos de confiança a partir da avaliação de um mecanismo:",
x = "Mecanismo",
y = "Avaliação do usuário"
)
ics_scenarios %>%
rename(
'Método' = scenario,
'Média' = statistic,
'Limite inferior' = conf.low,
'Limite superior' = conf.high,
)
A partir da observação, podemos fazer algumas inferências sobre os dados da população com um nível de confiança de 95% que, a média de satisfação dos usuários usando o Basiline e o Skip foram as menores. Os mecanismos com melhor desempenho na média em relação ao Baseline foram o Up/downvoting e o Combined. Em linhas gerais o mecanismo mais bem avaliado no quesito satisfação dos usuários foi o Up/downvoting
No gráfico o mecanismo Up/downvoting foi o mecanismo com valores maiores de satisfação, podemos entender que implementar este mecanismo com elementos singulares possa ser o mais indicado para os desenvolvedores.