laniencia = read_csv(here::here("data/leniency.csv"), col_types = 'cdc')

laniencia = laniencia %>% 
  mutate(com_sorriso = if_else(with_smile=='yes', TRUE, FALSE))

glimpse(laniencia)
Rows: 136
Columns: 4
$ smile       <chr> "false smile", "false smile", "false smile", "false smile", "false smile", "false smile", "false sm…
$ leniency    <dbl> 2.5, 5.5, 6.5, 3.5, 3.0, 3.5, 6.0, 5.0, 4.0, 4.5, 5.0, 5.5, 3.5, 6.0, 6.5, 3.0, 8.0, 6.5, 8.0, 6.0,…
$ with_smile  <chr> "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "…
$ com_sorriso <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRU…
boxplot(leniency~with_smile,
data=laniencia,
main="Diferentes boxplot para cada tipo de sorriso",
xlab="Tipo de Sorriso",
ylab="Valores de Leniencia",
col="orange",
border="brown")

Bootstrap com diferença das medias de com sorriso e sem sorriso

s <- function(d, i) {
    a = d[i,] %>% 
          filter(leniency > 0, com_sorriso==TRUE) %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    b = d[i,] %>% 
        filter(leniency > 0, com_sorriso==FALSE) %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    a - b
}

  booted <- boot(data = laniencia, 
               statistic = s, 
               R = 2000)

estimado = tidy(booted, 
                conf.level = .95,
                conf.method = "bca",
                conf.int = TRUE)

glimpse(estimado)
Rows: 1
Columns: 5
$ statistic <dbl> 0.9460784
$ bias      <dbl> -0.005304589
$ std.error <dbl> 0.3066291
$ conf.low  <dbl> 0.337321
$ conf.high <dbl> 1.5049
estimado %>% 
    ggplot(aes(
        ymin = conf.low,
        y = statistic,
        ymax = conf.high,
        x = "cs - ss"
    )) +
    geom_linerange() +
    geom_point(color = "steelblue", size = 2) +
    geom_text(
        aes(
            y = conf.high,
            label = str_glue("[{round(conf.low, 2)}, {round(conf.high, 2)}]")
        ),
        size = 3,
        nudge_x = -.05,
        show.legend = F
    )  +
    scale_y_continuous(limits = c(0, 2)) +
    labs(
        title = "diferença nas medias",
        x = "", y = "Proporção de efeito do laniency") +
    coord_flip()

s <- function(d, i) {
    a = d[i,] %>% 
        filter(leniency > 0, smile=="false smile") %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    b = d[i,] %>% 
        filter(leniency > 0, smile=='no smile (control)') %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    a - b
}

booted <- boot(data = laniencia, 
               statistic = s, 
               R = 2000)

estimado = tidy(booted, 
                conf.level = .95,
                conf.method = "bca",
                conf.int = TRUE)

glimpse(estimado)
Rows: 1
Columns: 5
$ statistic <dbl> 1.25
$ bias      <dbl> 0.005526986
$ std.error <dbl> 0.4046521
$ conf.low  <dbl> 0.4775085
$ conf.high <dbl> 2.027598
estimado %>% 
    ggplot(aes(
        ymin = conf.low,
        y = statistic,
        ymax = conf.high,
        x = "false  s - ns"
    )) +
    geom_linerange() +
    geom_point(color = "steelblue", size = 2) +
    geom_text(
        aes(
            y = conf.high,
            label = str_glue("[{round(conf.low, 2)}, {round(conf.high, 2)}]")
        ),
        size = 3,
        nudge_x = -.05,
        show.legend = F
    )  +
    scale_y_continuous(limits = c(0, 3)) +
    labs(
        title = "Prop entre false smile e no smile",
        x = "", y = "Proporção de efeito do laniency") +
    coord_flip()

s <- function(d, i) {
    a = d[i,] %>% 
        filter(leniency > 0, smile=="felt smile") %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    b = d[i,] %>% 
        filter(leniency > 0, smile=='no smile (control)') %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    a - b
}

booted <- boot(data = laniencia, 
               statistic = s, 
               R = 2000)

estimado = tidy(booted, 
                conf.level = .95,
                conf.method = "bca",
                conf.int = TRUE)

glimpse(estimado)
Rows: 1
Columns: 5
$ statistic <dbl> 0.7941176
$ bias      <dbl> 0.01223155
$ std.error <dbl> 0.3916718
$ conf.low  <dbl> 0.006788182
$ conf.high <dbl> 1.532258
estimado %>% 
    ggplot(aes(
        ymin = conf.low,
        y = statistic,
        ymax = conf.high,
        x = "felt s - no s"
    )) +
    geom_linerange() +
    geom_point(color = "steelblue", size = 2) +
    geom_text(
        aes(
            y = conf.high,
            label = str_glue("[{round(conf.low, 2)}, {round(conf.high, 2)}]")
        ),
        size = 3,
        nudge_x = -.05,
        show.legend = F
    )  +
    scale_y_continuous(limits = c(0, 2)) +
    labs(
        title = "Prop entre felt smile e no smile",
        x = "", y = "Proporção de efeito do laniency") +
    coord_flip()

s <- function(d, i) {
    a = d[i,] %>% 
        filter(leniency > 0, smile=="miserable smile") %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    b = d[i,] %>% 
        filter(leniency > 0, smile=='no smile (control)') %>% 
        summarise(do_grupo = mean(leniency)) %>% 
        pull(do_grupo)
    
    a - b
}

booted <- boot(data = laniencia, 
               statistic = s, 
               R = 2000)

estimado = tidy(booted, 
                conf.level = .95,
                conf.method = "bca",
                conf.int = TRUE)

glimpse(estimado)
Rows: 1
Columns: 5
$ statistic <dbl> 0.7941176
$ bias      <dbl> -0.002849373
$ std.error <dbl> 0.3612944
$ conf.low  <dbl> 0.1101336
$ conf.high <dbl> 1.538426
estimado %>% 
    ggplot(aes(
        ymin = conf.low,
        y = statistic,
        ymax = conf.high,
        x = "miserable s - n s"
    )) +
    geom_linerange() +
    geom_point(color = "steelblue", size = 2) +
    geom_text(
        aes(
            y = conf.high,
            label = str_glue("[{round(conf.low, 2)}, {round(conf.high, 2)}]")
        ),
        size = 3,
        nudge_x = -.05,
        show.legend = F
    )  +
    scale_y_continuous(limits = c(0, 2)) +
    labs(
        title = "Prop entre miserable smile e no smile",
        x = "", y = "Proporção de efeito do laniency") +
    coord_flip()

LS0tCnRpdGxlOiAiU09SUklTTyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoaHJicnRoZW1lcykKdGhlbWVfc2V0KHRoZW1lX2lwc3VtX3JjKCkpCgpsaWJyYXJ5KGJvb3QpCmxpYnJhcnkoYnJvb20pCmBgYAoKYGBge3J9CmxhbmllbmNpYSA9IHJlYWRfY3N2KGhlcmU6OmhlcmUoImRhdGEvbGVuaWVuY3kuY3N2IiksIGNvbF90eXBlcyA9ICdjZGMnKQoKbGFuaWVuY2lhID0gbGFuaWVuY2lhICU+JSAKICBtdXRhdGUoY29tX3NvcnJpc28gPSBpZl9lbHNlKHdpdGhfc21pbGU9PSd5ZXMnLCBUUlVFLCBGQUxTRSkpCgpnbGltcHNlKGxhbmllbmNpYSkKYGBgCgpgYGB7cn0KYm94cGxvdChsZW5pZW5jeX53aXRoX3NtaWxlLApkYXRhPWxhbmllbmNpYSwKbWFpbj0iRGlmZXJlbnRlcyBib3hwbG90IHBhcmEgY2FkYSB0aXBvIGRlIHNvcnJpc28iLAp4bGFiPSJUaXBvIGRlIFNvcnJpc28iLAp5bGFiPSJWYWxvcmVzIGRlIExlbmllbmNpYSIsCmNvbD0ib3JhbmdlIiwKYm9yZGVyPSJicm93biIKKQpgYGAKCkJvb3RzdHJhcCBjb20gZGlmZXJlbsOnYSBkYXMgbWVkaWFzIGRlIGNvbSBzb3JyaXNvIGUgc2VtIHNvcnJpc28KYGBge3J9CnMgPC0gZnVuY3Rpb24oZCwgaSkgewogICAgYSA9IGRbaSxdICU+JSAKICAgICAgICAgIGZpbHRlcihsZW5pZW5jeSA+IDAsIGNvbV9zb3JyaXNvPT1UUlVFKSAlPiUgCiAgICAgICAgc3VtbWFyaXNlKGRvX2dydXBvID0gbWVhbihsZW5pZW5jeSkpICU+JSAKICAgICAgICBwdWxsKGRvX2dydXBvKQogICAgCiAgICBiID0gZFtpLF0gJT4lIAogICAgICAgIGZpbHRlcihsZW5pZW5jeSA+IDAsIGNvbV9zb3JyaXNvPT1GQUxTRSkgJT4lIAogICAgICAgIHN1bW1hcmlzZShkb19ncnVwbyA9IG1lYW4obGVuaWVuY3kpKSAlPiUgCiAgICAgICAgcHVsbChkb19ncnVwbykKICAgIGEgLSBiCn0KCiAgYm9vdGVkIDwtIGJvb3QoZGF0YSA9IGxhbmllbmNpYSwgCiAgICAgICAgICAgICAgIHN0YXRpc3RpYyA9IHMsIAogICAgICAgICAgICAgICBSID0gMjAwMCkKCmVzdGltYWRvID0gdGlkeShib290ZWQsIAogICAgICAgICAgICAgICAgY29uZi5sZXZlbCA9IC45NSwKICAgICAgICAgICAgICAgIGNvbmYubWV0aG9kID0gImJjYSIsCiAgICAgICAgICAgICAgICBjb25mLmludCA9IFRSVUUpCgpnbGltcHNlKGVzdGltYWRvKQpgYGAKCgpgYGB7cn0KZXN0aW1hZG8gJT4lIAogICAgZ2dwbG90KGFlcygKICAgICAgICB5bWluID0gY29uZi5sb3csCiAgICAgICAgeSA9IHN0YXRpc3RpYywKICAgICAgICB5bWF4ID0gY29uZi5oaWdoLAogICAgICAgIHggPSAiY3MgLSBzcyIKICAgICkpICsKICAgIGdlb21fbGluZXJhbmdlKCkgKwogICAgZ2VvbV9wb2ludChjb2xvciA9ICJzdGVlbGJsdWUiLCBzaXplID0gMikgKwogICAgZ2VvbV90ZXh0KAogICAgICAgIGFlcygKICAgICAgICAgICAgeSA9IGNvbmYuaGlnaCwKICAgICAgICAgICAgbGFiZWwgPSBzdHJfZ2x1ZSgiW3tyb3VuZChjb25mLmxvdywgMil9LCB7cm91bmQoY29uZi5oaWdoLCAyKX1dIikKICAgICAgICApLAogICAgICAgIHNpemUgPSAzLAogICAgICAgIG51ZGdlX3ggPSAtLjA1LAogICAgICAgIHNob3cubGVnZW5kID0gRgogICAgKSAgKwogICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgMikpICsKICAgIGxhYnMoCiAgICAgICAgdGl0bGUgPSAiZGlmZXJlbsOnYSBuYXMgbWVkaWFzIiwKICAgICAgICB4ID0gIiIsIHkgPSAiUHJvcG9yw6fDo28gZGUgZWZlaXRvIGRvIGxhbmllbmN5IikgKwogICAgY29vcmRfZmxpcCgpCmBgYAoKCgpgYGB7cn0KcyA8LSBmdW5jdGlvbihkLCBpKSB7CiAgICBhID0gZFtpLF0gJT4lIAogICAgICAgIGZpbHRlcihsZW5pZW5jeSA+IDAsIHNtaWxlPT0iZmFsc2Ugc21pbGUiKSAlPiUgCiAgICAgICAgc3VtbWFyaXNlKGRvX2dydXBvID0gbWVhbihsZW5pZW5jeSkpICU+JSAKICAgICAgICBwdWxsKGRvX2dydXBvKQogICAgCiAgICBiID0gZFtpLF0gJT4lIAogICAgICAgIGZpbHRlcihsZW5pZW5jeSA+IDAsIHNtaWxlPT0nbm8gc21pbGUgKGNvbnRyb2wpJykgJT4lIAogICAgICAgIHN1bW1hcmlzZShkb19ncnVwbyA9IG1lYW4obGVuaWVuY3kpKSAlPiUgCiAgICAgICAgcHVsbChkb19ncnVwbykKICAgIAogICAgYSAtIGIKfQoKYm9vdGVkIDwtIGJvb3QoZGF0YSA9IGxhbmllbmNpYSwgCiAgICAgICAgICAgICAgIHN0YXRpc3RpYyA9IHMsIAogICAgICAgICAgICAgICBSID0gMjAwMCkKCmVzdGltYWRvID0gdGlkeShib290ZWQsIAogICAgICAgICAgICAgICAgY29uZi5sZXZlbCA9IC45NSwKICAgICAgICAgICAgICAgIGNvbmYubWV0aG9kID0gImJjYSIsCiAgICAgICAgICAgICAgICBjb25mLmludCA9IFRSVUUpCgpnbGltcHNlKGVzdGltYWRvKQpgYGAKCmBgYHtyfQplc3RpbWFkbyAlPiUgCiAgICBnZ3Bsb3QoYWVzKAogICAgICAgIHltaW4gPSBjb25mLmxvdywKICAgICAgICB5ID0gc3RhdGlzdGljLAogICAgICAgIHltYXggPSBjb25mLmhpZ2gsCiAgICAgICAgeCA9ICJmYWxzZSAgcyAtIG5zIgogICAgKSkgKwogICAgZ2VvbV9saW5lcmFuZ2UoKSArCiAgICBnZW9tX3BvaW50KGNvbG9yID0gInN0ZWVsYmx1ZSIsIHNpemUgPSAyKSArCiAgICBnZW9tX3RleHQoCiAgICAgICAgYWVzKAogICAgICAgICAgICB5ID0gY29uZi5oaWdoLAogICAgICAgICAgICBsYWJlbCA9IHN0cl9nbHVlKCJbe3JvdW5kKGNvbmYubG93LCAyKX0sIHtyb3VuZChjb25mLmhpZ2gsIDIpfV0iKQogICAgICAgICksCiAgICAgICAgc2l6ZSA9IDMsCiAgICAgICAgbnVkZ2VfeCA9IC0uMDUsCiAgICAgICAgc2hvdy5sZWdlbmQgPSBGCiAgICApICArCiAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAzKSkgKwogICAgbGFicygKICAgICAgICB0aXRsZSA9ICJQcm9wIGVudHJlIGZhbHNlIHNtaWxlIGUgbm8gc21pbGUiLAogICAgICAgIHggPSAiIiwgeSA9ICJQcm9wb3LDp8OjbyBkZSBlZmVpdG8gZG8gbGFuaWVuY3kiKSArCiAgICBjb29yZF9mbGlwKCkKYGBgCgoKYGBge3J9CnMgPC0gZnVuY3Rpb24oZCwgaSkgewogICAgYSA9IGRbaSxdICU+JSAKICAgICAgICBmaWx0ZXIobGVuaWVuY3kgPiAwLCBzbWlsZT09ImZlbHQgc21pbGUiKSAlPiUgCiAgICAgICAgc3VtbWFyaXNlKGRvX2dydXBvID0gbWVhbihsZW5pZW5jeSkpICU+JSAKICAgICAgICBwdWxsKGRvX2dydXBvKQogICAgCiAgICBiID0gZFtpLF0gJT4lIAogICAgICAgIGZpbHRlcihsZW5pZW5jeSA+IDAsIHNtaWxlPT0nbm8gc21pbGUgKGNvbnRyb2wpJykgJT4lIAogICAgICAgIHN1bW1hcmlzZShkb19ncnVwbyA9IG1lYW4obGVuaWVuY3kpKSAlPiUgCiAgICAgICAgcHVsbChkb19ncnVwbykKICAgIAogICAgYSAtIGIKfQoKYm9vdGVkIDwtIGJvb3QoZGF0YSA9IGxhbmllbmNpYSwgCiAgICAgICAgICAgICAgIHN0YXRpc3RpYyA9IHMsIAogICAgICAgICAgICAgICBSID0gMjAwMCkKCmVzdGltYWRvID0gdGlkeShib290ZWQsIAogICAgICAgICAgICAgICAgY29uZi5sZXZlbCA9IC45NSwKICAgICAgICAgICAgICAgIGNvbmYubWV0aG9kID0gImJjYSIsCiAgICAgICAgICAgICAgICBjb25mLmludCA9IFRSVUUpCgpnbGltcHNlKGVzdGltYWRvKQpgYGAKCmBgYHtyfQplc3RpbWFkbyAlPiUgCiAgICBnZ3Bsb3QoYWVzKAogICAgICAgIHltaW4gPSBjb25mLmxvdywKICAgICAgICB5ID0gc3RhdGlzdGljLAogICAgICAgIHltYXggPSBjb25mLmhpZ2gsCiAgICAgICAgeCA9ICJmZWx0IHMgLSBubyBzIgogICAgKSkgKwogICAgZ2VvbV9saW5lcmFuZ2UoKSArCiAgICBnZW9tX3BvaW50KGNvbG9yID0gInN0ZWVsYmx1ZSIsIHNpemUgPSAyKSArCiAgICBnZW9tX3RleHQoCiAgICAgICAgYWVzKAogICAgICAgICAgICB5ID0gY29uZi5oaWdoLAogICAgICAgICAgICBsYWJlbCA9IHN0cl9nbHVlKCJbe3JvdW5kKGNvbmYubG93LCAyKX0sIHtyb3VuZChjb25mLmhpZ2gsIDIpfV0iKQogICAgICAgICksCiAgICAgICAgc2l6ZSA9IDMsCiAgICAgICAgbnVkZ2VfeCA9IC0uMDUsCiAgICAgICAgc2hvdy5sZWdlbmQgPSBGCiAgICApICArCiAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAyKSkgKwogICAgbGFicygKICAgICAgICB0aXRsZSA9ICJQcm9wIGVudHJlIGZlbHQgc21pbGUgZSBubyBzbWlsZSIsCiAgICAgICAgeCA9ICIiLCB5ID0gIlByb3BvcsOnw6NvIGRlIGVmZWl0byBkbyBsYW5pZW5jeSIpICsKICAgIGNvb3JkX2ZsaXAoKQpgYGAKCmBgYHtyfQpzIDwtIGZ1bmN0aW9uKGQsIGkpIHsKICAgIGEgPSBkW2ksXSAlPiUgCiAgICAgICAgZmlsdGVyKGxlbmllbmN5ID4gMCwgc21pbGU9PSJtaXNlcmFibGUgc21pbGUiKSAlPiUgCiAgICAgICAgc3VtbWFyaXNlKGRvX2dydXBvID0gbWVhbihsZW5pZW5jeSkpICU+JSAKICAgICAgICBwdWxsKGRvX2dydXBvKQogICAgCiAgICBiID0gZFtpLF0gJT4lIAogICAgICAgIGZpbHRlcihsZW5pZW5jeSA+IDAsIHNtaWxlPT0nbm8gc21pbGUgKGNvbnRyb2wpJykgJT4lIAogICAgICAgIHN1bW1hcmlzZShkb19ncnVwbyA9IG1lYW4obGVuaWVuY3kpKSAlPiUgCiAgICAgICAgcHVsbChkb19ncnVwbykKICAgIAogICAgYSAtIGIKfQoKYm9vdGVkIDwtIGJvb3QoZGF0YSA9IGxhbmllbmNpYSwgCiAgICAgICAgICAgICAgIHN0YXRpc3RpYyA9IHMsIAogICAgICAgICAgICAgICBSID0gMjAwMCkKCmVzdGltYWRvID0gdGlkeShib290ZWQsIAogICAgICAgICAgICAgICAgY29uZi5sZXZlbCA9IC45NSwKICAgICAgICAgICAgICAgIGNvbmYubWV0aG9kID0gImJjYSIsCiAgICAgICAgICAgICAgICBjb25mLmludCA9IFRSVUUpCgpnbGltcHNlKGVzdGltYWRvKQpgYGAKCmBgYHtyfQplc3RpbWFkbyAlPiUgCiAgICBnZ3Bsb3QoYWVzKAogICAgICAgIHltaW4gPSBjb25mLmxvdywKICAgICAgICB5ID0gc3RhdGlzdGljLAogICAgICAgIHltYXggPSBjb25mLmhpZ2gsCiAgICAgICAgeCA9ICJtaXNlcmFibGUgcyAtIG4gcyIKICAgICkpICsKICAgIGdlb21fbGluZXJhbmdlKCkgKwogICAgZ2VvbV9wb2ludChjb2xvciA9ICJzdGVlbGJsdWUiLCBzaXplID0gMikgKwogICAgZ2VvbV90ZXh0KAogICAgICAgIGFlcygKICAgICAgICAgICAgeSA9IGNvbmYuaGlnaCwKICAgICAgICAgICAgbGFiZWwgPSBzdHJfZ2x1ZSgiW3tyb3VuZChjb25mLmxvdywgMil9LCB7cm91bmQoY29uZi5oaWdoLCAyKX1dIikKICAgICAgICApLAogICAgICAgIHNpemUgPSAzLAogICAgICAgIG51ZGdlX3ggPSAtLjA1LAogICAgICAgIHNob3cubGVnZW5kID0gRgogICAgKSAgKwogICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgMikpICsKICAgIGxhYnMoCiAgICAgICAgdGl0bGUgPSAiUHJvcCBlbnRyZSBtaXNlcmFibGUgc21pbGUgZSBubyBzbWlsZSIsCiAgICAgICAgeCA9ICIiLCB5ID0gIlByb3BvcsOnw6NvIGRlIGVmZWl0byBkbyBsYW5pZW5jeSIpICsKICAgIGNvb3JkX2ZsaXAoKQpgYGAK