knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(ggplot2)
library(tidyr)
library(plyr)
library(dplyr)
library(outliers)

source("R/brt_append.R") # loading in helper functions
source("R/clean_grade_gender.R")
# note to self: now I am extremely concerned about multiple comparisons... I'll do an FDR using n = n_modules * n_varspermodule
# Please set each of these to TRUE or FALSE depending on whether you would like info on the module printed to the summary document.
BRT_PRINT = TRUE
BOX_PRINT = TRUE
FLANK_PRINT = TRUE
SAAT_PRINT = TRUE
SPAN_PRINT = TRUE
STROOP_PRINT = TRUE
SWITCH_PRINT = TRUE
TNT_PRINT = TRUE

# Please set these to TRUE or FALSE depending on whether you would like outlier checking info or quality control histograms printed for ALL modules or not. Even if these are set to TRUE, they will not print for modules which have been turned off (set as FALSE) in the above block.
OUTLIER_PRINT = TRUE
QC_HIST_PRINT = TRUE

# Please set this to TRUE or FALSE depending on whether you would like ALL continuous x-regressors z-scored. They will always be mean-centered; this just z-scores them by further dividing them by std dev.
Z_SCORE_XREGS = FALSE
load(file = "~/Dropbox/aceR/seacrest_data/clean_data.RData")
purl("markdowns/single_module_md.Rmd")
read_chunk("markdowns/single_module_md.R")

asis_output("#BRT")

brt_raw <- proc_demo$BRT

r if(BRT_PRINT & OUTLIER_PRINT) "##outlier testing"

asis_output("###3rd grade") # setting header
brt_raw %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_mean.right, two.sided = TRUE))

brt_raw %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_mean.left, two.sided = TRUE))
asis_output("No outliers detected for either hand.") # prints to markdown
asis_output("###5th grade")
brt_raw %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_mean.right, two.sided = TRUE))

brt_raw %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_mean.left, two.sided = TRUE))

# when testing MEDIAN RT:
# b016 is high side (slow RT) outlier by Grubbs' two sided test (p = .020)
# no other outliers when b016 excluded
# when testing MEAN RT:
# no outliers found at this threshold (b016 is trending here though)
asis_output("No outliers detected.")
asis_output("###7th grade")
brt_raw %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_mean.right, two.sided = TRUE))

brt_raw %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_mean.left, two.sided = TRUE))
asis_output("No outliers detected.")
brt <- brt_raw %>%
#  filter(pid != "ADMIN-UCSF-b016") %>% not if we are using mean RT she's not an outlier
  clean_grade_gender()

r if(BRT_PRINT & QC_HIST_PRINT) '##quality control histograms'

asis_output("###mean right hand RT")
brt %>%
  ggplot(aes(x = rt_mean.right)) +
  geom_histogram(bins=20)
asis_output("###mean left hand RT")
brt %>%
  ggplot(aes(x = rt_mean.left)) +
  geom_histogram(bins=20)

r if(BRT_PRINT) "##regressions"

asis_output("###right hand")
brt %>%
  with(summary(lm(rt_mean.right ~ grade_num * gender)))

asis_output("###left hand")
brt %>%
  with(summary(lm(rt_mean.left ~ grade_num * gender)))
asis_output("#Boxed")
box_raw <- proc_demo$BOXED
box <- box_raw %>%
  brt_append() %>%
  clean_grade_gender()

r if(BOX_PRINT & OUTLIER_PRINT) "##outlier testing"

asis_output("###3rd grade")
box %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_mean.overall, two.sided = TRUE))
asis_output("No outliers detected.")
asis_output("###5th grade")
box %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_mean.overall, two.sided = TRUE))
# b016 is a high side (slow) outlier on overall mean RT again!
asis_output("b016 is high side outlier (too slow). No other outliers when b016 excluded.")
asis_output("###7th grade")
box %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_mean.overall, two.sided = TRUE))
asis_output("No outliers detected.")

r if(BOX_PRINT) "##regressions"

asis_output("###mean overall RT")
box %>%
  with(summary(lm(rt_mean.overall ~ grade_num * gender + scale(brt_rt_mean.overall, scale = Z_SCORE_XREGS))))

Flanker

flank_raw <- proc_demo$FLANKER
flank <- flank_raw %>%
  brt_append() %>%
  clean_grade_gender()

outlier testing

flank %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
flank %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
flank %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))

regressions

median overall RT

flank %>%
  with(summary(lm(rt_median.overall ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

median overall cost on RT

# for this and subsequent modules, it seems that outlier testing should be done on RT, but cost should be used as the primary outcome var of interest when cost is available?
flank %>%
  with(summary(lm(rt_median.cost ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

SAAT

saat_raw <- proc_demo$SAAT
saat <- saat_raw %>%
  brt_append() %>%
  clean_grade_gender()

outlier testing

saat %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
saat %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
saat %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))

regressions

median overall RT

saat %>%
  with(summary(lm(rt_median.overall ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

Spatial span

span_raw <- proc_demo$SPATIALSPAN
span <- span_raw %>%
  brt_append() %>%
  clean_grade_gender()

outlier testing

span %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
span %>%
  filter(grade == "5th Grade", !(pid %in% c("ADMIN-UCSF-b016", "ADMIN-UCSF-b023"))) %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
# b016 is an outlier here (RT too low aka too FAST) but since she is already excluded from BRT don't need to re-exclude her here
# when b016 excluded, b023 is an outlier (RT too high, aka too SLOW)
span %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
span <- span %>%
  filter(!(pid %in% c("ADMIN-UCSF-b016", "ADMIN-UCSF-b023")))

regressions

median overall RT

span %>%
  with(summary(lm(rt_median.overall ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

object count span

# note here that we are NOT using RT as the outcome var! but we are using it for outlier testing
span %>%
  with(summary(lm(object_count_span.overall ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

Stroop task

stroop_raw <- proc_demo$STROOP
stroop <- stroop_raw %>%
  brt_append() %>%
  clean_grade_gender()

outlier testing

stroop %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
stroop %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
stroop %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))

regressions

median overall RT

stroop %>%
  with(summary(lm(rt_median.overall ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

median overall cost on RT

stroop %>%
  with(summary(lm(rt_median.cost ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

Task switching

switch_raw <- proc_demo$TASKSWITCH
switch <- switch_raw %>%
  brt_append() %>%
  clean_grade_gender()

outlier testing

switch %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
switch %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
# again b016 is an outlier (rt too LONG), she is not doing so hot
switch %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))

regressions

median overall RT

switch %>%
  with(summary(lm(rt_median.overall ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

median overall cost on RT

switch %>%
  with(summary(lm(rt_median.cost ~ grade_num * gender + scale(brt_rt_median.overall, scale = Z_SCORE_XREGS))))

TNT

tnt_raw <- proc_demo$TNT
tnt <- tnt_raw %>%
  brt_append() %>%
  clean_grade_gender()

outlier testing

tnt %>%
  filter(grade == "3rd Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
tnt %>%
  filter(grade == "5th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))
tnt %>%
  filter(grade == "7th Grade") %>%
  with(
    grubbs.test(rt_median.overall, two.sided = TRUE))

regressions

median overall RT

tnt %>%
  with(summary(lm(rt_mean.overall ~ grade_num * gender + scale(brt_rt_mean.overall, scale = Z_SCORE_XREGS))))

median overall cost on RT

tnt %>%
  with(summary(lm(rt_median.cost ~ grade_num * gender + scale(brt_rt_mean.overall, scale = Z_SCORE_XREGS))))


gazzlab/AceScripts documentation built on May 16, 2019, 10:11 p.m.