#Load packages
library(lme4)
## Loading required package: Matrix
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ tidyr::expand() masks Matrix::expand()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ tidyr::pack() masks Matrix::pack()
## ✖ tidyr::unpack() masks Matrix::unpack()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(afex)
## ************
## Welcome to afex. For support visit: http://afex.singmann.science/
## - Functions for ANOVAs: aov_car(), aov_ez(), and aov_4()
## - Methods for calculating p-values with mixed(): 'S', 'KR', 'LRT', and 'PB'
## - 'afex_aov' and 'mixed' objects can be passed to emmeans() for follow-up tests
## - Get and set global package options with: afex_options()
## - Set sum-to-zero contrasts globally: set_sum_contrasts()
## - For example analyses see: browseVignettes("afex")
## ************
##
## Attaching package: 'afex'
##
## The following object is masked from 'package:lme4':
##
## lmer
getwd()
## [1] "/Users/maggie/Downloads/bookR"
setwd("/Users/maggie/Downloads/bookR")
#Load data, and name that object "COND1_4.csv"
stimIA_data <- read_csv("Sheet 1-stim_IA_full.csv")
## Rows: 12183 Columns: 183
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (143): RECORDING_SESSION_LABEL, TRIAL_LABEL, IA_LABEL, IA_FIRST_RUN_DWEL...
## dbl (36): TRIAL_INDEX, IA_ID, IA_DWELL_TIME, IA_FIXATION_COUNT, IP_INDEX, A...
## lgl (4): IA_DYNAMIC, IP_END_EVENT_MATCHED, IP_START_EVENT_MATCHED, Trial_R...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#View the first six rows of the data frame
head(stimIA_data)
## # A tibble: 6 × 183
## RECORDING_SESSION_LABEL TRIAL_INDEX TRIAL_LABEL IA_ID IA_LABEL IA_DWELL_TIME
## <chr> <dbl> <chr> <dbl> <chr> <dbl>
## 1 01LYX 1 Trial: 1 5 Her 0
## 2 01LYX 1 Trial: 1 6 collar 0
## 3 01LYX 1 Trial: 1 7 is 0
## 4 01LYX 1 Trial: 1 8 ___ 0
## 5 01LYX 1 Trial: 1 9 all 0
## 6 01LYX 1 Trial: 1 10 the 0
## # ℹ 177 more variables: IA_FIRST_RUN_DWELL_TIME <chr>,
## # IA_SECOND_RUN_DWELL_TIME <chr>, `IA_DWELL_TIME_%` <chr>,
## # IA_FIRST_FIXATION_DURATION <chr>, IA_FIRST_FIXATION_INDEX <chr>,
## # IA_FIRST_FIXATION_X <chr>, IA_FIRST_FIXATION_Y <chr>,
## # IA_FIRST_SACCADE_AMPLITUDE <chr>, IA_FIRST_SACCADE_ANGLE <chr>,
## # IA_FIRST_SACCADE_INDEX <chr>, `IA_FIXATION_%` <chr>,
## # IA_FIXATION_COUNT <dbl>, IP_INDEX <dbl>, IP_LABEL <chr>, ACC <dbl>, …
#Select variables
glimpse(stimIA_data)
## Rows: 12,183
## Columns: 183
## $ RECORDING_SESSION_LABEL <chr> "01LYX", "01LYX", "01LYX", "01LY…
## $ TRIAL_INDEX <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ TRIAL_LABEL <chr> "Trial: 1", "Trial: 1", "Trial: …
## $ IA_ID <dbl> 5, 6, 7, 8, 9, 10, 11, 41, 42, 4…
## $ IA_LABEL <chr> "Her", "collar", "is", "___", "a…
## $ IA_DWELL_TIME <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FIRST_RUN_DWELL_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_DWELL_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_DWELL_TIME_%` <chr> "0.0000", "0.0000", "0.0000", "0…
## $ IA_FIRST_FIXATION_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_INDEX <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_X <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_Y <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_AMPLITUDE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_ANGLE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_INDEX <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_FIXATION_%` <chr> "0.0000", "0.0000", "0.0000", "0…
## $ IA_FIXATION_COUNT <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IP_INDEX <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ IP_LABEL <chr> "Stimuli", "Stimuli", "Stimuli",…
## $ ACC <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ ChoiceMade <chr> "B", "B", "B", "B", "B", "B", "B…
## $ PositionList <chr> "[(146, 437), (528, 437), (146, …
## $ RT <dbl> 6146.020, 6146.020, 6146.020, 61…
## $ conditionid <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ cnPassedLength <dbl> 316, 316, 316, 316, 316, 316, 31…
## $ currentItemIndex <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ enPassedLength <dbl> 372, 372, 372, 372, 372, 372, 37…
## $ enlist <chr> "[Her collar, is neat, all the t…
## $ groupid <chr> "A", "A", "A", "A", "A", "A", "A…
## $ type <chr> "p", "p", "p", "p", "p", "p", "p…
## $ IA_FIRST_SACCADE_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ DATA_FILE <chr> "01LYX.edf", "01LYX.edf", "01LYX…
## $ EYE_USED <chr> "LEFT", "LEFT", "LEFT", "LEFT", …
## $ GROUPING_VARIABLES <chr> "trialid", "trialid", "trialid",…
## $ IA_AREA <dbl> 4300, 5600, 2400, 3200, 3200, 32…
## $ IA_AVERAGE_FIX_PUPIL_SIZE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_BOTTOM <dbl> 225, 225, 225, 225, 225, 225, 22…
## $ IA_DYNAMIC <lgl> FALSE, FALSE, FALSE, FALSE, FALS…
## $ IA_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_PREVIOUS_FIX_IA <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_PREVIOUS_IAREAS <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_RUN_INDEX <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_VISITED_IA_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIX_PROGRESSIVE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_FIRST_RUN_FIXATION_%` <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_FIXATION_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_LANDING_POSITION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_LAUNCH_SITE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_5 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_6 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_7 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_8 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_9 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_10 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_11 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_41 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_42 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_43 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_44 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_51 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_COUNT_52 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_COUNT_53 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_61 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_62 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_63 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_54 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_64 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_5 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_6 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_7 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_8 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_9 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_10 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_11 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_41 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_42 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_43 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_44 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_51 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_DURATION_52 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_DURATION_53 <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_61 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_62 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_63 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_54 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_64 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_GROUP <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_INSTANCES_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_RUN <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_X <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_Y <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_DWELL_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_LAST_RUN_FIXATION_%` <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_FIXATION_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_LANDING_POSITION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_LAUNCH_SITE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_AMPLITUDE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_ANGLE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_INDEX <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LEFT <dbl> 70, 156, 268, 316, 380, 444, 508…
## $ IA_LEGAL <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_LEGAL_IMMEDIATE <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_MAX_FIX_PUPIL_SIZE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_MIN_FIX_PUPIL_SIZE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_POINTS <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_IN <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_IN_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT_FULL <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT_FULL_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_PATH_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_RIGHT <dbl> 156, 268, 316, 380, 444, 508, 62…
## $ IA_RUN_COUNT <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_SECOND_FIXATION_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_RUN <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_X <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_Y <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_SECOND_RUN_FIXATION_%` <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_FIXATION_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_LANDING_POSITION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_LAUNCH_SITE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SELECTIVE_REGRESSION_PATH_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SKIP <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ IA_SPILLOVER <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_RUN <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_X <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_Y <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_DWELL_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_END_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_THIRD_RUN_FIXATION_%` <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_FIXATION_COUNT <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_LANDING_POSITION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_LAUNCH_SITE <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_START_TIME <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_TOP <dbl> 175, 175, 175, 175, 175, 175, 17…
## $ IA_TYPE <chr> "RECTANGLE", "RECTANGLE", "RECTA…
## $ INTEREST_AREA_FIXATION_SEQUENCE <chr> "[0, 51, 0, 52, 0, 53]", "[0, 51…
## $ IP_END_EVENT_MATCHED <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TR…
## $ IP_END_TIME <dbl> 655766, 655766, 655766, 655766, …
## $ IP_START_EVENT_MATCHED <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TR…
## $ IP_START_TIME <dbl> 652825, 652825, 652825, 652825, …
## $ REPORTING_METHOD <chr> "Fixations", "Fixations", "Fixat…
## $ TIME_SCALE <chr> "Trial Relative", "Trial Relativ…
## $ TRIAL_DWELL_TIME <dbl> 2615, 2615, 2615, 2615, 2615, 26…
## $ TRIAL_FIXATION_COUNT <dbl> 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,…
## $ TRIAL_IA_COUNT <dbl> 14, 14, 14, 14, 14, 14, 14, 14, …
## $ TRIAL_START_TIME <dbl> 652739, 652739, 652739, 652739, …
## $ TRIAL_TOTAL_VISITED_IA_COUNT <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…
## $ RandomPostitonIndex <chr> "[3, 0, 2, 1]", "[3, 0, 2, 1]", …
## $ Session_Name_ <chr> "01LYX", "01LYX", "01LYX", "01LY…
## $ Trial_Index_ <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ Trial_Recycled_ <lgl> FALSE, FALSE, FALSE, FALSE, FALS…
## $ audiofile <chr> "p2.wav", "p2.wav", "p2.wav", "p…
## $ choicea <chr> "tidy", "tidy", "tidy", "tidy", …
## $ choiceb <chr> "clean", "clean", "clean", "clea…
## $ choicec <chr> "white", "white", "white", "whit…
## $ choiced <chr> "broken", "broken", "broken", "b…
## $ currentWait <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ discript <chr> "单语", "单语", "单语", "单语", …
## $ fontSize <dbl> 20, 20, 20, 20, 20, 20, 20, 20, …
## $ listLength <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…
## $ questionstring <chr> "Her collar is ___ all the time.…
## $ timelist <chr> "[1033, 882, 960]", "[1033, 882,…
## $ trialid <chr> "p2", "p2", "p2", "p2", "p2", "p…
## $ wordsPass <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
variables <- c("RECORDING_SESSION_LABEL", "trialid","IA_ID",
"IA_DWELL_TIME_%","IA_FIXATION_%","RT",
"ACC","IA_DWELL_TIME","IA_FIRST_FIXATION_DURATION",
"IA_FIRST_FIXATION_INDEX","currentItemIndex","discript",
"conditionid","groupid")
stim1 <- stimIA_data %>%
select(any_of(variables))
glimpse(stim1)
## Rows: 12,183
## Columns: 14
## $ RECORDING_SESSION_LABEL <chr> "01LYX", "01LYX", "01LYX", "01LYX", "01LYX"…
## $ trialid <chr> "p2", "p2", "p2", "p2", "p2", "p2", "p2", "…
## $ IA_ID <dbl> 5, 6, 7, 8, 9, 10, 11, 41, 42, 43, 44, 51, …
## $ `IA_DWELL_TIME_%` <chr> "0.0000", "0.0000", "0.0000", "0.0000", "0.…
## $ `IA_FIXATION_%` <chr> "0.0000", "0.0000", "0.0000", "0.0000", "0.…
## $ RT <dbl> 6146.020, 6146.020, 6146.020, 6146.020, 614…
## $ ACC <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ IA_DWELL_TIME <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 256, …
## $ IA_FIRST_FIXATION_DURATION <chr> ".", ".", ".", ".", ".", ".", ".", ".", "."…
## $ IA_FIRST_FIXATION_INDEX <chr> ".", ".", ".", ".", ".", ".", ".", ".", "."…
## $ currentItemIndex <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
## $ discript <chr> "单语", "单语", "单语", "单语", "单语", "单…
## $ conditionid <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4…
## $ groupid <chr> "A", "A", "A", "A", "A", "A", "A", "A", "A"…
stim1 %>%
count(trialid)
## # A tibble: 72 × 2
## trialid n
## <chr> <int>
## 1 1 93
## 2 10 93
## 3 11 93
## 4 12 93
## 5 13 93
## 6 14 93
## 7 15 93
## 8 16 62
## 9 17 62
## 10 18 93
## # ℹ 62 more rows
view(stim1 %>%
count(trialid))
#delete practice trail
stim2 <- stim1 %>%
filter(trialid != "p1" ) %>%
filter(trialid != "p2" ) %>%
filter(trialid != "p3" ) %>%
filter(trialid != "p4" )
view(stim2 %>%
count(trialid))
#cross tabulate
table(stim2$RECORDING_SESSION_LABEL,stim2$discript)
##
## 单语 双语
## 01LYX 109 222
## 02PQJ 222 109
## 03LSY 109 222
## 04CMY 222 109
## 05MXJ 109 222
## 06HC 222 109
## 07GXJ 109 222
## 08ZYQ 222 109
## 09MZW 109 222
## 10WLH 222 109
## 11LDP 109 222
## 12SCC 222 109
## 13WSR 109 222
## 15ZMZ 109 222
## 16QY 222 109
## 17DSL 109 222
## 18BXY 222 109
## 19WLL 109 222
## 20ZZY 222 109
## 21WYQ 109 222
## 22SYC 222 109
## 23SYH 109 222
## 24MBH 222 109
## 25HYX 109 222
## 26CJ 222 109
## 27YSH 109 222
## 28HYX 222 109
## 29HRE 109 222
## 30YAL 222 109
## 31SWY 109 222
## ZWL 14.00 222 109
table(stim2$RECORDING_SESSION_LABEL,stim2$conditionid)
##
## 1 2 3 4
## 01LYX 53 56 112 110
## 02PQJ 112 110 53 56
## 03LSY 56 53 110 112
## 04CMY 110 112 56 53
## 05MXJ 53 56 112 110
## 06HC 112 110 53 56
## 07GXJ 56 53 110 112
## 08ZYQ 110 112 56 53
## 09MZW 53 56 112 110
## 10WLH 112 110 53 56
## 11LDP 56 53 110 112
## 12SCC 110 112 56 53
## 13WSR 53 56 112 110
## 15ZMZ 56 53 110 112
## 16QY 110 112 56 53
## 17DSL 53 56 112 110
## 18BXY 112 110 53 56
## 19WLL 56 53 110 112
## 20ZZY 110 112 56 53
## 21WYQ 53 56 112 110
## 22SYC 112 110 53 56
## 23SYH 56 53 110 112
## 24MBH 110 112 56 53
## 25HYX 53 56 112 110
## 26CJ 112 110 53 56
## 27YSH 56 53 110 112
## 28HYX 110 112 56 53
## 29HRE 53 56 112 110
## 30YAL 112 110 53 56
## 31SWY 56 53 110 112
## ZWL 14.00 112 110 53 56
table(stim2$groupid,stim2$discript)
##
## 单语 双语
## A 872 1776
## B 1776 872
## C 872 1776
## D 1554 763
table(stim2$groupid,stim2$discript)
##
## 单语 双语
## A 872 1776
## B 1776 872
## C 872 1776
## D 1554 763
# delete outliers by subj
stim3 <- stim2 %>%
group_by(RECORDING_SESSION_LABEL) %>%
filter(RT>150&abs(scale(RT))<=3)
## Warning: Using one column matrices in `filter()` was deprecated in dplyr 1.1.0.
## ℹ Please use one dimensional logical vectors instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
stim3 %>%
group_by(groupid,discript) %>%
summarise(mRT=mean(RT),
SD=sd(RT))
## `summarise()` has grouped output by 'groupid'. You can override using the
## `.groups` argument.
## # A tibble: 8 × 4
## # Groups: groupid [4]
## groupid discript mRT SD
## <chr> <chr> <dbl> <dbl>
## 1 A 单语 4962. 2881.
## 2 A 双语 4634. 2421.
## 3 B 单语 4884. 2414.
## 4 B 双语 5046. 2415.
## 5 C 单语 4408. 2003.
## 6 C 双语 4023. 1783.
## 7 D 单语 4150. 1856.
## 8 D 双语 4242. 1761.
#geom_boxplot
ggplot(stim3,aes(groupid,RT,fill=discript))+
geom_boxplot(notch = TRUE)+
facet_wrap(~discript)

#mixed model
library(lme4)
summary(mix.m0 <- lmer(RT~discript*conditionid+
(1+discript*conditionid|RECORDING_SESSION_LABEL)+
(1|groupid),
data=stim3),cor=F)
## boundary (singular) fit: see help('isSingular')
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula:
## RT ~ discript * conditionid + (1 + discript * conditionid | RECORDING_SESSION_LABEL) +
## (1 | groupid)
## Data: stim3
##
## REML criterion at convergence: 179202.8
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.7858 -0.5959 -0.1528 0.4378 4.4960
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## RECORDING_SESSION_LABEL (Intercept) 618711 786.6
## discript双语 4513964 2124.6 -0.24
## conditionid 685875 828.2 -0.22 0.03
## discript双语:conditionid 713510 844.7 0.30 -0.76
## groupid (Intercept) 0 0.0
## Residual 2857363 1690.4
##
##
##
##
## -0.65
##
##
## Number of obs: 10107, groups: RECORDING_SESSION_LABEL, 31; groupid, 4
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 2291.46 161.83 28.40 14.160 2.14e-14 ***
## discript双语 -1653.51 427.53 30.10 -3.868 0.000546 ***
## conditionid 1552.65 157.02 29.48 9.888 7.17e-11 ***
## discript双语:conditionid -452.74 167.44 29.91 -2.704 0.011195 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
summary(mix.m1 <- lmer(RT~discript*conditionid+
(1+discript+conditionid|RECORDING_SESSION_LABEL)+
(1|groupid),
data=stim3),cor=F)
## boundary (singular) fit: see help('isSingular')
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula:
## RT ~ discript * conditionid + (1 + discript + conditionid | RECORDING_SESSION_LABEL) +
## (1 | groupid)
## Data: stim3
##
## REML criterion at convergence: 179297.2
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.1677 -0.5878 -0.1491 0.4417 4.5680
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## RECORDING_SESSION_LABEL (Intercept) 8.627e+05 9.288e+02
## discript双语 2.001e+06 1.415e+03 -0.14
## conditionid 3.925e+05 6.265e+02 -0.01 -0.92
## groupid (Intercept) 5.393e-04 2.322e-02
## Residual 2.896e+06 1.702e+03
## Number of obs: 10107, groups: RECORDING_SESSION_LABEL, 31; groupid, 4
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 2287.43 184.23 35.47 12.416 1.80e-14 ***
## discript双语 -1685.21 318.96 62.07 -5.283 1.73e-06 ***
## conditionid 1557.90 122.97 35.93 12.669 8.11e-15 ***
## discript双语:conditionid -447.14 71.41 9062.85 -6.262 3.98e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
summary(mix.m2 <- lmer(log(RT)~discript*conditionid+
(1+discript+conditionid|RECORDING_SESSION_LABEL)+
(1|groupid),
data=stim3),cor=F)
## boundary (singular) fit: see help('isSingular')
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: log(RT) ~ discript * conditionid + (1 + discript + conditionid |
## RECORDING_SESSION_LABEL) + (1 | groupid)
## Data: stim3
##
## REML criterion at convergence: 7028.3
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.1095 -0.6576 -0.0378 0.6418 3.7196
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## RECORDING_SESSION_LABEL (Intercept) 0.081940 0.28625
## discript双语 0.030856 0.17566 0.25
## conditionid 0.006868 0.08287 -0.39 -0.85
## groupid (Intercept) 0.000000 0.00000
## Residual 0.113986 0.33762
## Number of obs: 10107, groups: RECORDING_SESSION_LABEL, 31; groupid, 4
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.85108 0.05370 32.42526 146.194 < 2e-16 ***
## discript双语 -0.40825 0.04958 115.19656 -8.234 3.19e-13 ***
## conditionid 0.31923 0.01784 42.28249 17.896 < 2e-16 ***
## discript双语:conditionid -0.07230 0.01415 8854.37250 -5.108 3.32e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
summary(mix.m3 <- lmer(log(RT)~discript*conditionid+
(1+conditionid|RECORDING_SESSION_LABEL)+
(1|groupid),
data=stim3),cor=F)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula:
## log(RT) ~ discript * conditionid + (1 + conditionid | RECORDING_SESSION_LABEL) +
## (1 | groupid)
## Data: stim3
##
## REML criterion at convergence: 7105.8
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.2295 -0.6667 -0.0415 0.6467 3.7404
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## RECORDING_SESSION_LABEL (Intercept) 7.719e-02 2.778e-01
## conditionid 1.886e-03 4.343e-02 -0.35
## groupid (Intercept) 3.609e-09 6.008e-05
## Residual 1.154e-01 3.398e-01
## Number of obs: 10107, groups: RECORDING_SESSION_LABEL, 31; groupid, 4
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.854e+00 5.223e-02 3.372e+01 150.375 < 2e-16 ***
## discript双语 -4.177e-01 3.722e-02 1.007e+04 -11.223 < 2e-16 ***
## conditionid 3.171e-01 1.243e-02 1.411e+02 25.513 < 2e-16 ***
## discript双语:conditionid -6.835e-02 1.367e-02 1.007e+04 -4.999 5.85e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mix.m3,mix.m0,refit=FALSE)
## Data: stim3
## Models:
## mix.m3: log(RT) ~ discript * conditionid + (1 + conditionid | RECORDING_SESSION_LABEL) + (1 | groupid)
## mix.m0: RT ~ discript * conditionid + (1 + discript * conditionid | RECORDING_SESSION_LABEL) + (1 | groupid)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## mix.m3 9 7124 7189 -3553 7106
## mix.m0 16 179235 179350 -89601 179203 0 7 1
#model diagnosis
qqnorm(residuals(mix.m3))
qqline(residuals(mix.m3))

hist(residuals(mix.m3))

MuMIn::r.squaredGLMM(mix.m3)
## Warning: 'r.squaredGLMM' now calculates a revised statistic. See the help page.
## R2m R2c
## [1,] 0.0988961 0.4392971
#fixed and interaction effect obtained
afex::mixed(log(RT)~discript*conditionid+
(1+conditionid|RECORDING_SESSION_LABEL)+
(1|groupid),
REML=FALSE,
method="LRT",
data=stim3)
## Contrasts set to contr.sum for the following variables: discript, RECORDING_SESSION_LABEL, groupid
## Numerical variables NOT centered on 0: conditionid
## If in interactions, interpretation of lower order (e.g., main) effects difficult.
## Warning: Model failed to converge with 1 negative eigenvalue: -7.0e-01
## boundary (singular) fit: see help('isSingular')
## Warning: Model failed to converge with 1 negative eigenvalue: -5.3e+02
## Warning: lme4 reported (at least) the following warnings for 'discript:conditionid':
## * boundary (singular) fit: see help('isSingular')
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: log(RT) ~ discript * conditionid + (1 + conditionid | RECORDING_SESSION_LABEL) +
## Model: (1 | groupid)
## Data: stim3
## Df full model: 9
## Effect df Chisq p.value
## 1 discript 1 124.88 *** <.001
## 2 conditionid 1 112.88 *** <.001
## 3 discript:conditionid 1 24.98 *** <.001
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
#check interaction effect
emmeans::emmeans(mix.m3,specs = pairwise~discript*conditionid)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 10107' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 10107)' or larger];
## but be warned that this may result in large computation time and memory use.
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'lmerTest.limit = 10107' (or larger)
## [or, globally, 'set emm_options(lmerTest.limit = 10107)' or larger];
## but be warned that this may result in large computation time and memory use.
## $emmeans
## discript conditionid emmean SE df asymp.LCL asymp.UCL
## 单语 2.51 8.65 0.0480 Inf 8.55 8.74
## 双语 2.51 8.06 0.0479 Inf 7.97 8.15
##
## Degrees-of-freedom method: asymptotic
## Results are given on the log (not the response) scale.
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate
## 单语 conditionid2.5080637182151 - 双语 conditionid2.5080637182151 0.589
## SE df z.ratio p.value
## 0.0153 Inf 38.389 <.0001
##
## Degrees-of-freedom method: asymptotic
## Results are given on the log (not the response) scale.