Last updated: 2022-03-24

Checks: 7 0

Knit directory: cogstruct/analysis/

This reproducible R Markdown analysis was created with workflowr (version 1.7.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20220104) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 130a821. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .Rhistory
    Ignored:    .Rproj.user/
    Ignored:    _targets.yaml
    Ignored:    analysis/_targets.yaml
    Ignored:    bnu/_targets.R
    Ignored:    bnu/_targets/
    Ignored:    bnu/_targets_r/
    Ignored:    bnu/archived/
    Ignored:    bnu/images/
    Ignored:    sicnu/_targets.R
    Ignored:    sicnu/_targets/
    Ignored:    sicnu/_targets_r/
    Ignored:    sicnu_pilot/_targets/

Untracked files:
    Untracked:  code/TOL.Rmd
    Untracked:  code/TOL.html
    Untracked:  code/TOL_files/
    Untracked:  code/config/
    Untracked:  code/diagnose.Rmd
    Untracked:  code/difficulty.xlsx
    Untracked:  code/difficulty_digit_reasoning.xlsx
    Untracked:  code/explore_structure.Rmd
    Untracked:  code/extract_reliability.R
    Untracked:  code/extract_reliability_sicnu_pilot.R
    Untracked:  code/items.xlsx
    Untracked:  code/items_new_score.xlsx
    Untracked:  code/reliability.xlsx
    Untracked:  code/reliability_simple.xlsx
    Untracked:  code/test_checking_bnu.Rmd
    Untracked:  code/test_checking_sicnu_pilot.Rmd
    Untracked:  config/selected_indices.xlsx
    Untracked:  output/prob_rl.tsv
    Untracked:  output/racer.tsv
    Untracked:  output/reliability.xlsx
    Untracked:  output/reliability_simple.xlsx
    Untracked:  sicnu-check/

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/test_checking.Rmd) and HTML (docs/test_checking.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 130a821 Liang Zhang 2022-03-24 wflow_publish("analysis/*.Rmd")
html 735d015 Liang Zhang 2022-03-24 Build site.
Rmd 136e354 Liang Zhang 2022-03-24 wflow_publish("analysis/*.Rmd")
Rmd cb367ff Liang Zhang 2022-03-15 remove obsolete docs
html cb367ff Liang Zhang 2022-03-15 remove obsolete docs
Rmd 9b6ae7e Liang Zhang 2022-03-15 wflow_publish("analysis/*.Rmd")
html 1d582c7 Liang Zhang 2022-02-12 Build site.
html 00ed634 Liang Zhang 2022-02-11 Build site.
Rmd 5838ea5 Liang Zhang 2022-02-11 wflow_publish("analysis/*.Rmd")
html ff94f48 Liang Zhang 2022-02-11 Build site.
html f505f76 Liang Zhang 2022-01-19 Build site.
Rmd 76a75d1 Liang Zhang 2022-01-19 wflow_publish("analysis/*.Rmd")
html 94f7d3d Liang Zhang 2022-01-19 Build site.
html 011d01c Liang Zhang 2022-01-19 Build site.
Rmd 4e6f38d Liang Zhang 2022-01-19 wflow_publish("analysis/*.Rmd")
html 9690cf9 Liang Zhang 2022-01-19 Build site.
Rmd 433c01b Liang Zhang 2022-01-19 wflow_publish("analysis/*.Rmd")
html 655f04c Liang Zhang 2022-01-19 Build site.
Rmd 5afb062 Liang Zhang 2022-01-19 wflow_publish("analysis/*.Rmd")
html ddaae03 Liang Zhang 2022-01-19 Build site.
Rmd ce3f503 Liang Zhang 2022-01-19 wflow_publish("analysis/test_checking.Rmd")
html 22b9029 Liang Zhang 2022-01-19 Build site.
Rmd 02fac49 Liang Zhang 2022-01-19 wflow_publish("analysis/test_checking.Rmd")

indices_bnu <- withr::with_dir(here::here("bnu"), tar_read(indices_clean))
indices_sicnu <- withr::with_dir(here::here("sicnu"), tar_read(indices_clean))
indices_clean <- bind_rows(indices_bnu, indices_sicnu) |> 
  group_by(game_name) |> 
  filter(game_version == max(game_version)) |> 
  ungroup()
tests_included <- deframe(distinct(indices_clean, game_name_abbr, game_name))
render_content <- function(file, ...) {
  knitr::knit(
    text = knitr::knit_expand(file, ...),
    quiet = TRUE
  )
}
purrr::imap_chr(
  tests_included,
  ~ render_content(
    file = here::here("archetypes/child_check_index.Rmd"),
    game_name_abbr = .x,
    game_name = .y
  )
) |> 
  str_c(collapse = "\n\n") |> 
  cat()

快速归类PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "CRTPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: CRTPro
  • Sample Size: 372
  • Index Names:
    • nc
    • mrt
    • rtsd

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

捉虫高级简版

data <- indices_clean |>
  filter(
    game_name_abbr == "TOVAS",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: TOVAS
  • Sample Size: 374
  • Index Names:
    • nc
    • mrt
    • rtsd
    • dprime
    • c
    • commissions
    • omissions

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

塔罗牌

data <- indices_clean |>
  filter(
    game_name_abbr == "WxPred",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: WxPred
  • Sample Size: 374
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

数字卡片

data <- indices_clean |>
  filter(
    game_name_abbr == "Digit3back",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Digit3back
  • Sample Size: 365
  • Index Names:
    • pc
    • mrt
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

格子卡片

data <- indices_clean |>
  filter(
    game_name_abbr == "Grid2back",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Grid2back
  • Sample Size: 367
  • Index Names:
    • pc
    • mrt
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

美术卡片

data <- indices_clean |>
  filter(
    game_name_abbr == "Paint2back",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Paint2back
  • Sample Size: 367
  • Index Names:
    • pc
    • mrt
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

文字卡片

data <- indices_clean |>
  filter(
    game_name_abbr == "Verbal3back",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Verbal3back
  • Sample Size: 369
  • Index Names:
    • pc
    • mrt
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

魔术师高级

data <- indices_clean |>
  filter(
    game_name_abbr == "Nback3",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Nback3
  • Sample Size: 99
  • Index Names:
    • pc
    • mrt
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

多彩文字PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "ColStrpPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: ColStrpPro
  • Sample Size: 373
  • Index Names:
    • mrt_inc
    • mrt_con
    • pc_inc
    • pc_con
    • cong_eff_rt
    • cong_eff_pc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

候鸟迁徙PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "BirdsPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: BirdsPro
  • Sample Size: 374
  • Index Names:
    • mrt_repeat
    • mrt_switch
    • pc_repeat
    • pc_switch
    • switch_cost_rt_spe
    • switch_cost_pc_spe
    • mrt_inc
    • mrt_con
    • pc_inc
    • pc_con
    • cong_eff_rt
    • cong_eff_pc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

方向临摹

data <- indices_clean |>
  filter(
    game_name_abbr == "JLO",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: JLO
  • Sample Size: 373
  • Index Names:
    • nc
    • mean_ang_err
    • mean_log_err

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

按图索骥

data <- indices_clean |>
  filter(
    game_name_abbr == "HOP",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: HOP
  • Sample Size: 373
  • Index Names:
    • mean_dist_err_allo
    • mean_dist_err_both
    • mean_dist_err_ego
    • mean_log_err_allo
    • mean_log_err_both
    • mean_log_err_ego

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

萤火虫PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "MOTPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: MOTPro
  • Sample Size: 373
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

火眼金睛

data <- indices_clean |>
  filter(
    game_name_abbr == "AttSrc",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: AttSrc
  • Sample Size: 373
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

位置记忆PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "SSTMPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: SSTMPro
  • Sample Size: 373
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

宇宙黑洞

data <- indices_clean |>
  filter(
    game_name_abbr == "LocMemStd",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: LocMemStd
  • Sample Size: 401
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

过目不忘PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "FWSPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: FWSPro
  • Sample Size: 401
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

人工语言-中级

data <- indices_clean |>
  filter(
    game_name_abbr == "AscLanMd",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: AscLanMd
  • Sample Size: 355
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

各得其所

data <- indices_clean |>
  filter(
    game_name_abbr == "LdnTwr",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: LdnTwr
  • Sample Size: 399
  • Index Names:
    • prop_perfect
    • mrt_init

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

连点成画PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "FPTPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: FPTPro
  • Sample Size: 373
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

蝴蝶照相机

data <- indices_clean |>
  filter(
    game_name_abbr == "SCSpan",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: SCSpan
  • Sample Size: 102
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

超级秒表PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "SRTPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: SRTPro
  • Sample Size: 375
  • Index Names:
    • mrt
    • rtsd

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

一心二用PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "DualTaskPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: DualTaskPro
  • Sample Size: 375
  • Index Names:
    • nc
    • mrt
    • rtsd
    • dprime
    • c
    • commissions
    • omissions

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

连续再认

data <- indices_clean |>
  filter(
    game_name_abbr == "ConRec",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: ConRec
  • Sample Size: 376
  • Index Names:
    • nc
    • mrt
    • rtsd
    • dprime
    • c
    • commissions
    • omissions

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

图片记忆

data <- indices_clean |>
  filter(
    game_name_abbr == "BPS",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: BPS
  • Sample Size: 375
  • Index Names:
    • pc
    • p_sim_foil
    • p_sim_lure
    • p_sim_target
    • bps_score

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

言语记忆

data <- indices_clean |>
  filter(
    game_name_abbr == "DRM",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: DRM
  • Sample Size: 374
  • Index Names:
    • tm_dprime
    • tm_bias
    • fm_dprime
    • fm_bias

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

强化学习

data <- indices_clean |>
  filter(
    game_name_abbr == "ProbRL",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: ProbRL
  • Sample Size: 374
  • Index Names:
    • pc_approach
    • pc_avoid
    • pc_test

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

语义判断

data <- indices_clean |>
  filter(
    game_name_abbr == "Seman",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Seman
  • Sample Size: 372
  • Index Names:
    • nc
    • mrt
    • rtsd
    • dprime
    • c
    • commissions
    • omissions

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

声调判断

data <- indices_clean |>
  filter(
    game_name_abbr == "Tone",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Tone
  • Sample Size: 374
  • Index Names:
    • nc
    • mrt
    • rtsd
    • dprime
    • c
    • commissions
    • omissions

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

太空飞船PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "FlkrPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: FlkrPro
  • Sample Size: 375
  • Index Names:
    • mrt_inc
    • mrt_con
    • pc_inc
    • pc_con
    • cong_eff_rt
    • cong_eff_pc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

察颜观色PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "FacesPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: FacesPro
  • Sample Size: 373
  • Index Names:
    • mrt_repeat
    • mrt_switch
    • pc_repeat
    • pc_switch
    • switch_cost_rt_spe
    • switch_cost_pc_spe
    • mrt_inc
    • mrt_con
    • pc_inc
    • pc_con
    • cong_eff_rt
    • cong_eff_pc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

顺背数PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "FDSPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: FDSPro
  • Sample Size: 371
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

图形推理

data <- indices_clean |>
  filter(
    game_name_abbr == "NVR",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: NVR
  • Sample Size: 371
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

数字推理

data <- indices_clean |>
  filter(
    game_name_abbr == "DR",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: DR
  • Sample Size: 399
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

文字推理

data <- indices_clean |>
  filter(
    game_name_abbr == "VR",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: VR
  • Sample Size: 399
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

三维心理旋转测试

data <- indices_clean |>
  filter(
    game_name_abbr == "MR3D",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: MR3D
  • Sample Size: 371
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

时长分辨

data <- indices_clean |>
  filter(
    game_name_abbr == "DD",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: DD
  • Sample Size: 373
  • Index Names:
    • thresh_peak_valley
    • thresh_last_block

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

时间顺序判断

data <- indices_clean |>
  filter(
    game_name_abbr == "TOJ",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: TOJ
  • Sample Size: 373
  • Index Names:
    • thresh_peak_valley
    • thresh_last_block

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

专注大师_中级

data <- indices_clean |>
  filter(
    game_name_abbr == "CalcSpdMed",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: CalcSpdMed
  • Sample Size: 371
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

眼耳并用

data <- indices_clean |>
  filter(
    game_name_abbr == "Dual2back",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Dual2back
  • Sample Size: 374
  • Index Names:
    • pc_aud
    • pc_both
    • pc_vis
    • mrt_aud
    • mrt_both
    • mrt_vis
    • dprime_aud
    • dprime_both
    • dprime_vis

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

变戏法

data <- indices_clean |>
  filter(
    game_name_abbr == "AntiSac",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: AntiSac
  • Sample Size: 374
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

欢乐餐厅

data <- indices_clean |>
  filter(
    game_name_abbr == "AscMem",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: AscMem
  • Sample Size: 370
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

图形折叠

data <- indices_clean |>
  filter(
    game_name_abbr == "FR",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: FR
  • Sample Size: 352
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

远距离联想

data <- indices_clean |>
  filter(
    game_name_abbr == "RAT",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: RAT
  • Sample Size: 348
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

打靶场

data <- indices_clean |>
  filter(
    game_name_abbr == "RSpan",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: RSpan
  • Sample Size: 370
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

雪花收藏家

data <- indices_clean |>
  filter(
    game_name_abbr == "DirectSrc",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: DirectSrc
  • Sample Size: 370
  • Index Names:
    • nc_cor

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

舒尔特方格(中级)

data <- indices_clean |>
  filter(
    game_name_abbr == "SchulteMed",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: SchulteMed
  • Sample Size: 317
  • Index Names:
    • nc_cor

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

我是大厨

data <- indices_clean |>
  filter(
    game_name_abbr == "MSynWin",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: MSynWin
  • Sample Size: 299
  • Index Names:
    • score_total
    • score_aud
    • score_mem
    • score_vis

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

登陆月球(中级)

data <- indices_clean |>
  filter(
    game_name_abbr == "NLEMed",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: NLEMed
  • Sample Size: 299
  • Index Names:
    • mean_abs_err
    • mean_log_err

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

幸运小球

data <- indices_clean |>
  filter(
    game_name_abbr == "OCSpan",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: OCSpan
  • Sample Size: 299
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

密码箱

data <- indices_clean |>
  filter(
    game_name_abbr == "KeepTrack",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: KeepTrack
  • Sample Size: 299
  • Index Names:
    • nc
    • max_span
    • mean_span_pcu
    • mean_span_anu

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

数感

data <- indices_clean |>
  filter(
    game_name_abbr == "NsymNCmp",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: NsymNCmp
  • Sample Size: 320
  • Index Names:
    • pc
    • mrt
    • w

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

变色魔块PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "StopSigPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: StopSigPro
  • Sample Size: 320
  • Index Names:
    • pc_all
    • pc_go
    • pc_stop
    • rt_nth
    • ssrt

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

卡片分类PRO

data <- indices_clean |>
  filter(
    game_name_abbr == "CardSortPro",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: CardSortPro
  • Sample Size: 318
  • Index Names:
    • mrt_repeat
    • mrt_switch
    • pc_repeat
    • pc_switch
    • switch_cost_rt_spe
    • switch_cost_pc_spe

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

节奏感知

data <- indices_clean |>
  filter(
    game_name_abbr == "RP",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: RP
  • Sample Size: 320
  • Index Names:
    • thresh_peak_valley
    • thresh_last_block

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

魔术师终极

data <- indices_clean |>
  filter(
    game_name_abbr == "Nback4",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Nback4
  • Sample Size: 274
  • Index Names:
    • pc
    • mrt
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

速算师(中级)

data <- indices_clean |>
  filter(
    game_name_abbr == "CalcMed",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: CalcMed
  • Sample Size: 240
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

小狗回家

data <- indices_clean |>
  filter(
    game_name_abbr == "Racer",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: Racer
  • Sample Size: 249
  • Index Names:
    • mean_pro_ratio
    • dprime

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}

瑞文高级推理

data <- indices_clean |>
  filter(
    game_name_abbr == "RAPM",
    if_all(contains("test"), ~ !is.infinite(.x)),
    !(is.na(test) & is.na(retest))
  ) |>
  group_by(index_name) |>
  mutate(
    across(
      contains("test"),
      list(
        is_outlier = ~ .x %in% boxplot.stats(.x)$out
      )
    )
  ) |>
  ungroup() |>
  mutate(
    is_outlier = test_is_outlier | retest_is_outlier,
    .keep = "unused"
  )
n_indices <- n_distinct(data$index_name)

Basic Information

  • Abbreviation: RAPM
  • Sample Size: 266
  • Index Names:
    • nc

Pairwise Correlation of indices

data |>
  pivot_wider(
    id_cols = user_id,
    names_from = index_name,
    values_from = test
  ) |>
  select(-user_id) |>
  GGally::ggpairs()

Test-Retest

data_test_retest <- drop_na(data)
if (nrow(data_test_retest) == 0) {
  grid::grid.text(
    "No retest samples.",
    gp = grid::gpar(fontsize = 20)
  )
} else {
  reliability <- data_test_retest |>
    group_by(index_name) |>
    group_modify(
      ~ tibble(
        n = nrow(.x),
        n_no_outlier = .x |>
          filter(!is_outlier) |>
          nrow(),
        icc = .x |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        icc_no_outlier = .x |>
          filter(!is_outlier) |>
          select(contains("test")) |>
          psych::ICC() |>
          pluck("results", "ICC", 2),
        r = cor(.x$test, .x$retest),
        r_no_outlier = .x |>
          filter(!is_outlier) |>
          summarise(r = cor(test, retest)) |>
          pull(r)
      )
    ) |>
    ungroup()
  data_test_retest |>
    ggpubr::ggscatter("test", "retest", color = "is_outlier") +
    geom_text(
      data = reliability,
      aes(
        x = -Inf, y = Inf,
        label = str_glue(
          "N = {n} ({n_no_outlier})\n",
          "r = {round(r, 2)} ({round(r_no_outlier, 2)})\n",
          "icc = {round(icc, 2)} ({round(icc_no_outlier, 2)})"
        )
      ),
      hjust = -0.1, vjust = 1.1
    ) +
    scale_color_grey() +
    facet_wrap(~ index_name, ncol = 1, scales = "free") +
    theme(aspect.ratio = 1) +
    labs(
      color = "Outlier",
      caption = "Values in brackets are those without outliers."
    )
}


sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936 
[2] LC_CTYPE=Chinese (Simplified)_China.936   
[3] LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C                              
[5] LC_TIME=Chinese (Simplified)_China.936    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] targets_0.11.0  forcats_0.5.1   stringr_1.4.0   dplyr_1.0.8    
 [5] purrr_0.3.4     readr_2.1.2     tidyr_1.2.0     tibble_3.1.6   
 [9] ggplot2_3.3.5   tidyverse_1.3.1 workflowr_1.7.0

loaded via a namespace (and not attached):
  [1] minqa_1.2.4         colorspace_2.0-3    ggsignif_0.6.3     
  [4] ellipsis_0.3.2      rprojroot_2.0.2     fs_1.5.2           
  [7] rstudioapi_0.13     ggpubr_0.4.0        farver_2.1.0       
 [10] fansi_1.0.2         lubridate_1.8.0     xml2_1.3.3         
 [13] codetools_0.2-18    splines_4.1.3       mnormt_2.0.2       
 [16] knitr_1.37          jsonlite_1.8.0      nloptr_2.0.0       
 [19] broom_0.7.12        dbplyr_2.1.1        compiler_4.1.3     
 [22] httr_1.4.2          backports_1.4.1     assertthat_0.2.1   
 [25] Matrix_1.4-0        fastmap_1.1.0       cli_3.2.0          
 [28] later_1.3.0         htmltools_0.5.2     tools_4.1.3        
 [31] igraph_1.2.11       gtable_0.3.0        glue_1.6.2         
 [34] Rcpp_1.0.8.3        carData_3.0-5       cellranger_1.1.0   
 [37] jquerylib_0.1.4     vctrs_0.3.8         nlme_3.1-155       
 [40] psych_2.2.3         xfun_0.30           ps_1.6.0           
 [43] lme4_1.1-28         rvest_1.0.2         lifecycle_1.0.1    
 [46] rstatix_0.7.0       getPass_0.2-2       MASS_7.3-55        
 [49] scales_1.1.1        hms_1.1.1           promises_1.2.0.1   
 [52] parallel_4.1.3      RColorBrewer_1.1-2  qs_0.25.3          
 [55] yaml_2.3.5          sass_0.4.0          reshape_0.8.8      
 [58] stringi_1.7.6       highr_0.9           boot_1.3-28        
 [61] rlang_1.0.2         pkgconfig_2.0.3     evaluate_0.15      
 [64] lattice_0.20-45     labeling_0.4.2      processx_3.5.2     
 [67] tidyselect_1.1.2    here_1.0.1          GGally_2.1.2       
 [70] plyr_1.8.6          magrittr_2.0.2      R6_2.5.1           
 [73] generics_0.1.2      base64url_1.4       DBI_1.1.2          
 [76] pillar_1.7.0        haven_2.4.3         whisker_0.4        
 [79] withr_2.5.0         abind_1.4-5         modelr_0.1.8       
 [82] crayon_1.5.0        car_3.0-12          utf8_1.2.2         
 [85] tmvnsim_1.0-2       RApiSerialize_0.1.0 tzdb_0.2.0         
 [88] rmarkdown_2.13      grid_4.1.3          readxl_1.3.1       
 [91] data.table_1.14.2   callr_3.7.0         git2r_0.30.1       
 [94] reprex_2.0.1        digest_0.6.29       httpuv_1.6.5       
 [97] RcppParallel_5.1.5  munsell_0.5.0       stringfish_0.15.5  
[100] bslib_0.3.1