library(bruceR)
## Warning: package 'bruceR' was built under R version 4.3.3
##
## bruceR (v2024.6)
## Broadly Useful Convenient and Efficient R functions
##
## Packages also loaded:
## ✔ data.table ✔ emmeans
## ✔ dplyr ✔ lmerTest
## ✔ tidyr ✔ effectsize
## ✔ stringr ✔ performance
## ✔ ggplot2 ✔ interactions
##
## Main functions of `bruceR`:
## cc() Describe() TTEST()
## add() Freq() MANOVA()
## .mean() Corr() EMMEANS()
## set.wd() Alpha() PROCESS()
## import() EFA() model_summary()
## print_table() CFA() lavaan_summary()
##
## For full functionality, please install all dependencies:
## install.packages("bruceR", dep=TRUE)
##
## Online documentation:
## https://psychbruce.github.io/bruceR
##
## To use this package in publications, please cite:
## Bao, H.-W.-S. (2024). bruceR: Broadly useful convenient and efficient R functions (Version 2024.6) [Computer software]. https://CRAN.R-project.org/package=bruceR
set.wd()
## ✔ Set working directory to "C:/Users/psyuser/Desktop/ARWA analysis"
set.seed(6)
rm(list = ls())
library(tidyverse)
## Warning: package 'readr' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.5
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ data.table::between() masks dplyr::between()
## ✖ Matrix::expand() masks tidyr::expand()
## ✖ dplyr::filter() masks stats::filter()
## ✖ data.table::first() masks dplyr::first()
## ✖ lubridate::hour() masks data.table::hour()
## ✖ lubridate::isoweek() masks data.table::isoweek()
## ✖ dplyr::lag() masks stats::lag()
## ✖ data.table::last() masks dplyr::last()
## ✖ lubridate::mday() masks data.table::mday()
## ✖ lubridate::minute() masks data.table::minute()
## ✖ lubridate::month() masks data.table::month()
## ✖ Matrix::pack() masks tidyr::pack()
## ✖ lubridate::quarter() masks data.table::quarter()
## ✖ lubridate::second() masks data.table::second()
## ✖ purrr::transpose() masks data.table::transpose()
## ✖ Matrix::unpack() masks tidyr::unpack()
## ✖ lubridate::wday() masks data.table::wday()
## ✖ lubridate::week() masks data.table::week()
## ✖ lubridate::yday() masks data.table::yday()
## ✖ lubridate::year() masks data.table::year()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(mice)
## Warning: package 'mice' was built under R version 4.3.3
## Registered S3 methods overwritten by 'broom':
## method from
## tidy.glht jtools
## tidy.summary.glht jtools
##
## Attaching package: 'mice'
##
## The following object is masked from 'package:bruceR':
##
## cc
##
## The following object is masked from 'package:stats':
##
## filter
##
## The following objects are masked from 'package:base':
##
## cbind, rbind
library(naniar)
## Warning: package 'naniar' was built under R version 4.3.3
data <- read.csv("./data/EEG_RS_lanExp.csv")
# Select the relevant columns and drop rows with NA values
education_income_data <- data %>%
select(EEGID, FatherEducation, MotherEducation, Income) %>%
drop_na()
# Perform PCA
pca_result <- prcomp(education_income_data %>% select(-EEGID), scale. = TRUE)
# Extract the first principal component and add SubjectID
pca_scores <- education_income_data %>%
select(EEGID) %>%
mutate(EducationIncomeFactor = -pca_result$x[, 1]) # add minus so that higher scores indicate higher SES
# Merge the PCA scores back into the original data
data_income <- data %>%
left_join(pca_scores, by = "EEGID") %>%
# Reorder columns to move FatherEducation, MotherEducation, Income, and EducationIncomeFactor to the first four columns
dplyr::select(EEGID, FatherEducation, MotherEducation, Income, EducationIncomeFactor, everything()) %>%
mutate(Age_EEG_yr = Age_EEG / 12) %>% # convert Age_EEG from months to years
# keep unique EEGID values
distinct(EEGID, .keep_all = TRUE) %>%
dplyr::select(CWR, CDICT, ARITH, EWR, EDICT, PW, CMOI, EMOI, EducationIncomeFactor, Age_EEG_yr, FID, EEGID)
## Warning in left_join(., pca_scores, by = "EEGID"): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 20 of `x` matches multiple rows in `y`.
## ℹ Row 15 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
## "many-to-many"` to silence this warning.
# Test if the missing data is random using Little's MCAR test
mcar_test <- naniar::mcar_test(data_income[, c("CMOI", "EMOI", "EducationIncomeFactor")])
print(mcar_test)
## # A tibble: 1 × 4
## statistic df p.value missing.patterns
## <dbl> <dbl> <dbl> <int>
## 1 1.71 3 0.634 4
# If the missing data is random, perform imputation using the mice package
if (mcar_test$p.value > 0.05) {
print("The missing data is at random.")
imputed_data <- mice(data_income[, c("CMOI", "EMOI", "EducationIncomeFactor")], method = "norm.predict", m = 5, maxit = 50, seed = 500)
completed_data <- complete(imputed_data, 1)
# Replace the original columns with the imputed data
data_income$CMOI <- completed_data$CMOI
data_income$EMOI <- completed_data$EMOI
data_income$EducationIncomeFactor <- completed_data$EducationIncomeFactor
} else {
print("The missing data is not completely at random.")
}
## [1] "The missing data is at random."
##
## iter imp variable
## 1 1 CMOI EMOI EducationIncomeFactor
## 1 2 CMOI EMOI EducationIncomeFactor
## 1 3 CMOI EMOI EducationIncomeFactor
## 1 4 CMOI EMOI EducationIncomeFactor
## 1 5 CMOI EMOI EducationIncomeFactor
## 2 1 CMOI EMOI EducationIncomeFactor
## 2 2 CMOI EMOI EducationIncomeFactor
## 2 3 CMOI EMOI EducationIncomeFactor
## 2 4 CMOI EMOI EducationIncomeFactor
## 2 5 CMOI EMOI EducationIncomeFactor
## 3 1 CMOI EMOI EducationIncomeFactor
## 3 2 CMOI EMOI EducationIncomeFactor
## 3 3 CMOI EMOI EducationIncomeFactor
## 3 4 CMOI EMOI EducationIncomeFactor
## 3 5 CMOI EMOI EducationIncomeFactor
## 4 1 CMOI EMOI EducationIncomeFactor
## 4 2 CMOI EMOI EducationIncomeFactor
## 4 3 CMOI EMOI EducationIncomeFactor
## 4 4 CMOI EMOI EducationIncomeFactor
## 4 5 CMOI EMOI EducationIncomeFactor
## 5 1 CMOI EMOI EducationIncomeFactor
## 5 2 CMOI EMOI EducationIncomeFactor
## 5 3 CMOI EMOI EducationIncomeFactor
## 5 4 CMOI EMOI EducationIncomeFactor
## 5 5 CMOI EMOI EducationIncomeFactor
## 6 1 CMOI EMOI EducationIncomeFactor
## 6 2 CMOI EMOI EducationIncomeFactor
## 6 3 CMOI EMOI EducationIncomeFactor
## 6 4 CMOI EMOI EducationIncomeFactor
## 6 5 CMOI EMOI EducationIncomeFactor
## 7 1 CMOI EMOI EducationIncomeFactor
## 7 2 CMOI EMOI EducationIncomeFactor
## 7 3 CMOI EMOI EducationIncomeFactor
## 7 4 CMOI EMOI EducationIncomeFactor
## 7 5 CMOI EMOI EducationIncomeFactor
## 8 1 CMOI EMOI EducationIncomeFactor
## 8 2 CMOI EMOI EducationIncomeFactor
## 8 3 CMOI EMOI EducationIncomeFactor
## 8 4 CMOI EMOI EducationIncomeFactor
## 8 5 CMOI EMOI EducationIncomeFactor
## 9 1 CMOI EMOI EducationIncomeFactor
## 9 2 CMOI EMOI EducationIncomeFactor
## 9 3 CMOI EMOI EducationIncomeFactor
## 9 4 CMOI EMOI EducationIncomeFactor
## 9 5 CMOI EMOI EducationIncomeFactor
## 10 1 CMOI EMOI EducationIncomeFactor
## 10 2 CMOI EMOI EducationIncomeFactor
## 10 3 CMOI EMOI EducationIncomeFactor
## 10 4 CMOI EMOI EducationIncomeFactor
## 10 5 CMOI EMOI EducationIncomeFactor
## 11 1 CMOI EMOI EducationIncomeFactor
## 11 2 CMOI EMOI EducationIncomeFactor
## 11 3 CMOI EMOI EducationIncomeFactor
## 11 4 CMOI EMOI EducationIncomeFactor
## 11 5 CMOI EMOI EducationIncomeFactor
## 12 1 CMOI EMOI EducationIncomeFactor
## 12 2 CMOI EMOI EducationIncomeFactor
## 12 3 CMOI EMOI EducationIncomeFactor
## 12 4 CMOI EMOI EducationIncomeFactor
## 12 5 CMOI EMOI EducationIncomeFactor
## 13 1 CMOI EMOI EducationIncomeFactor
## 13 2 CMOI EMOI EducationIncomeFactor
## 13 3 CMOI EMOI EducationIncomeFactor
## 13 4 CMOI EMOI EducationIncomeFactor
## 13 5 CMOI EMOI EducationIncomeFactor
## 14 1 CMOI EMOI EducationIncomeFactor
## 14 2 CMOI EMOI EducationIncomeFactor
## 14 3 CMOI EMOI EducationIncomeFactor
## 14 4 CMOI EMOI EducationIncomeFactor
## 14 5 CMOI EMOI EducationIncomeFactor
## 15 1 CMOI EMOI EducationIncomeFactor
## 15 2 CMOI EMOI EducationIncomeFactor
## 15 3 CMOI EMOI EducationIncomeFactor
## 15 4 CMOI EMOI EducationIncomeFactor
## 15 5 CMOI EMOI EducationIncomeFactor
## 16 1 CMOI EMOI EducationIncomeFactor
## 16 2 CMOI EMOI EducationIncomeFactor
## 16 3 CMOI EMOI EducationIncomeFactor
## 16 4 CMOI EMOI EducationIncomeFactor
## 16 5 CMOI EMOI EducationIncomeFactor
## 17 1 CMOI EMOI EducationIncomeFactor
## 17 2 CMOI EMOI EducationIncomeFactor
## 17 3 CMOI EMOI EducationIncomeFactor
## 17 4 CMOI EMOI EducationIncomeFactor
## 17 5 CMOI EMOI EducationIncomeFactor
## 18 1 CMOI EMOI EducationIncomeFactor
## 18 2 CMOI EMOI EducationIncomeFactor
## 18 3 CMOI EMOI EducationIncomeFactor
## 18 4 CMOI EMOI EducationIncomeFactor
## 18 5 CMOI EMOI EducationIncomeFactor
## 19 1 CMOI EMOI EducationIncomeFactor
## 19 2 CMOI EMOI EducationIncomeFactor
## 19 3 CMOI EMOI EducationIncomeFactor
## 19 4 CMOI EMOI EducationIncomeFactor
## 19 5 CMOI EMOI EducationIncomeFactor
## 20 1 CMOI EMOI EducationIncomeFactor
## 20 2 CMOI EMOI EducationIncomeFactor
## 20 3 CMOI EMOI EducationIncomeFactor
## 20 4 CMOI EMOI EducationIncomeFactor
## 20 5 CMOI EMOI EducationIncomeFactor
## 21 1 CMOI EMOI EducationIncomeFactor
## 21 2 CMOI EMOI EducationIncomeFactor
## 21 3 CMOI EMOI EducationIncomeFactor
## 21 4 CMOI EMOI EducationIncomeFactor
## 21 5 CMOI EMOI EducationIncomeFactor
## 22 1 CMOI EMOI EducationIncomeFactor
## 22 2 CMOI EMOI EducationIncomeFactor
## 22 3 CMOI EMOI EducationIncomeFactor
## 22 4 CMOI EMOI EducationIncomeFactor
## 22 5 CMOI EMOI EducationIncomeFactor
## 23 1 CMOI EMOI EducationIncomeFactor
## 23 2 CMOI EMOI EducationIncomeFactor
## 23 3 CMOI EMOI EducationIncomeFactor
## 23 4 CMOI EMOI EducationIncomeFactor
## 23 5 CMOI EMOI EducationIncomeFactor
## 24 1 CMOI EMOI EducationIncomeFactor
## 24 2 CMOI EMOI EducationIncomeFactor
## 24 3 CMOI EMOI EducationIncomeFactor
## 24 4 CMOI EMOI EducationIncomeFactor
## 24 5 CMOI EMOI EducationIncomeFactor
## 25 1 CMOI EMOI EducationIncomeFactor
## 25 2 CMOI EMOI EducationIncomeFactor
## 25 3 CMOI EMOI EducationIncomeFactor
## 25 4 CMOI EMOI EducationIncomeFactor
## 25 5 CMOI EMOI EducationIncomeFactor
## 26 1 CMOI EMOI EducationIncomeFactor
## 26 2 CMOI EMOI EducationIncomeFactor
## 26 3 CMOI EMOI EducationIncomeFactor
## 26 4 CMOI EMOI EducationIncomeFactor
## 26 5 CMOI EMOI EducationIncomeFactor
## 27 1 CMOI EMOI EducationIncomeFactor
## 27 2 CMOI EMOI EducationIncomeFactor
## 27 3 CMOI EMOI EducationIncomeFactor
## 27 4 CMOI EMOI EducationIncomeFactor
## 27 5 CMOI EMOI EducationIncomeFactor
## 28 1 CMOI EMOI EducationIncomeFactor
## 28 2 CMOI EMOI EducationIncomeFactor
## 28 3 CMOI EMOI EducationIncomeFactor
## 28 4 CMOI EMOI EducationIncomeFactor
## 28 5 CMOI EMOI EducationIncomeFactor
## 29 1 CMOI EMOI EducationIncomeFactor
## 29 2 CMOI EMOI EducationIncomeFactor
## 29 3 CMOI EMOI EducationIncomeFactor
## 29 4 CMOI EMOI EducationIncomeFactor
## 29 5 CMOI EMOI EducationIncomeFactor
## 30 1 CMOI EMOI EducationIncomeFactor
## 30 2 CMOI EMOI EducationIncomeFactor
## 30 3 CMOI EMOI EducationIncomeFactor
## 30 4 CMOI EMOI EducationIncomeFactor
## 30 5 CMOI EMOI EducationIncomeFactor
## 31 1 CMOI EMOI EducationIncomeFactor
## 31 2 CMOI EMOI EducationIncomeFactor
## 31 3 CMOI EMOI EducationIncomeFactor
## 31 4 CMOI EMOI EducationIncomeFactor
## 31 5 CMOI EMOI EducationIncomeFactor
## 32 1 CMOI EMOI EducationIncomeFactor
## 32 2 CMOI EMOI EducationIncomeFactor
## 32 3 CMOI EMOI EducationIncomeFactor
## 32 4 CMOI EMOI EducationIncomeFactor
## 32 5 CMOI EMOI EducationIncomeFactor
## 33 1 CMOI EMOI EducationIncomeFactor
## 33 2 CMOI EMOI EducationIncomeFactor
## 33 3 CMOI EMOI EducationIncomeFactor
## 33 4 CMOI EMOI EducationIncomeFactor
## 33 5 CMOI EMOI EducationIncomeFactor
## 34 1 CMOI EMOI EducationIncomeFactor
## 34 2 CMOI EMOI EducationIncomeFactor
## 34 3 CMOI EMOI EducationIncomeFactor
## 34 4 CMOI EMOI EducationIncomeFactor
## 34 5 CMOI EMOI EducationIncomeFactor
## 35 1 CMOI EMOI EducationIncomeFactor
## 35 2 CMOI EMOI EducationIncomeFactor
## 35 3 CMOI EMOI EducationIncomeFactor
## 35 4 CMOI EMOI EducationIncomeFactor
## 35 5 CMOI EMOI EducationIncomeFactor
## 36 1 CMOI EMOI EducationIncomeFactor
## 36 2 CMOI EMOI EducationIncomeFactor
## 36 3 CMOI EMOI EducationIncomeFactor
## 36 4 CMOI EMOI EducationIncomeFactor
## 36 5 CMOI EMOI EducationIncomeFactor
## 37 1 CMOI EMOI EducationIncomeFactor
## 37 2 CMOI EMOI EducationIncomeFactor
## 37 3 CMOI EMOI EducationIncomeFactor
## 37 4 CMOI EMOI EducationIncomeFactor
## 37 5 CMOI EMOI EducationIncomeFactor
## 38 1 CMOI EMOI EducationIncomeFactor
## 38 2 CMOI EMOI EducationIncomeFactor
## 38 3 CMOI EMOI EducationIncomeFactor
## 38 4 CMOI EMOI EducationIncomeFactor
## 38 5 CMOI EMOI EducationIncomeFactor
## 39 1 CMOI EMOI EducationIncomeFactor
## 39 2 CMOI EMOI EducationIncomeFactor
## 39 3 CMOI EMOI EducationIncomeFactor
## 39 4 CMOI EMOI EducationIncomeFactor
## 39 5 CMOI EMOI EducationIncomeFactor
## 40 1 CMOI EMOI EducationIncomeFactor
## 40 2 CMOI EMOI EducationIncomeFactor
## 40 3 CMOI EMOI EducationIncomeFactor
## 40 4 CMOI EMOI EducationIncomeFactor
## 40 5 CMOI EMOI EducationIncomeFactor
## 41 1 CMOI EMOI EducationIncomeFactor
## 41 2 CMOI EMOI EducationIncomeFactor
## 41 3 CMOI EMOI EducationIncomeFactor
## 41 4 CMOI EMOI EducationIncomeFactor
## 41 5 CMOI EMOI EducationIncomeFactor
## 42 1 CMOI EMOI EducationIncomeFactor
## 42 2 CMOI EMOI EducationIncomeFactor
## 42 3 CMOI EMOI EducationIncomeFactor
## 42 4 CMOI EMOI EducationIncomeFactor
## 42 5 CMOI EMOI EducationIncomeFactor
## 43 1 CMOI EMOI EducationIncomeFactor
## 43 2 CMOI EMOI EducationIncomeFactor
## 43 3 CMOI EMOI EducationIncomeFactor
## 43 4 CMOI EMOI EducationIncomeFactor
## 43 5 CMOI EMOI EducationIncomeFactor
## 44 1 CMOI EMOI EducationIncomeFactor
## 44 2 CMOI EMOI EducationIncomeFactor
## 44 3 CMOI EMOI EducationIncomeFactor
## 44 4 CMOI EMOI EducationIncomeFactor
## 44 5 CMOI EMOI EducationIncomeFactor
## 45 1 CMOI EMOI EducationIncomeFactor
## 45 2 CMOI EMOI EducationIncomeFactor
## 45 3 CMOI EMOI EducationIncomeFactor
## 45 4 CMOI EMOI EducationIncomeFactor
## 45 5 CMOI EMOI EducationIncomeFactor
## 46 1 CMOI EMOI EducationIncomeFactor
## 46 2 CMOI EMOI EducationIncomeFactor
## 46 3 CMOI EMOI EducationIncomeFactor
## 46 4 CMOI EMOI EducationIncomeFactor
## 46 5 CMOI EMOI EducationIncomeFactor
## 47 1 CMOI EMOI EducationIncomeFactor
## 47 2 CMOI EMOI EducationIncomeFactor
## 47 3 CMOI EMOI EducationIncomeFactor
## 47 4 CMOI EMOI EducationIncomeFactor
## 47 5 CMOI EMOI EducationIncomeFactor
## 48 1 CMOI EMOI EducationIncomeFactor
## 48 2 CMOI EMOI EducationIncomeFactor
## 48 3 CMOI EMOI EducationIncomeFactor
## 48 4 CMOI EMOI EducationIncomeFactor
## 48 5 CMOI EMOI EducationIncomeFactor
## 49 1 CMOI EMOI EducationIncomeFactor
## 49 2 CMOI EMOI EducationIncomeFactor
## 49 3 CMOI EMOI EducationIncomeFactor
## 49 4 CMOI EMOI EducationIncomeFactor
## 49 5 CMOI EMOI EducationIncomeFactor
## 50 1 CMOI EMOI EducationIncomeFactor
## 50 2 CMOI EMOI EducationIncomeFactor
## 50 3 CMOI EMOI EducationIncomeFactor
## 50 4 CMOI EMOI EducationIncomeFactor
## 50 5 CMOI EMOI EducationIncomeFactor
# Check if CMOI and EMOI are normally distributed
shapiro_test_cmo <- shapiro.test(data_income$CMOI)
shapiro_test_emo <- shapiro.test(data_income$EMOI)
print(shapiro_test_cmo)
##
## Shapiro-Wilk normality test
##
## data: data_income$CMOI
## W = 0.71853, p-value < 2.2e-16
print(shapiro_test_emo)
##
## Shapiro-Wilk normality test
##
## data: data_income$EMOI
## W = 0.70176, p-value < 2.2e-16
# Analyze the pattern of missing data
missing_pattern <- naniar::miss_var_summary(data_income)
print(missing_pattern)
## # A tibble: 12 × 3
## variable n_miss pct_miss
## <chr> <int> <num>
## 1 PW 16 7.92
## 2 CWR 5 2.48
## 3 EDICT 4 1.98
## 4 CDICT 3 1.49
## 5 ARITH 3 1.49
## 6 EWR 3 1.49
## 7 Age_EEG_yr 3 1.49
## 8 FID 3 1.49
## 9 CMOI 0 0
## 10 EMOI 0 0
## 11 EducationIncomeFactor 0 0
## 12 EEGID 0 0
# Print the results of the normality tests
if (shapiro_test_cmo$p.value < 0.05) {
print("CMOI is not normally distributed.")
} else {
print("CMOI is normally distributed.")
}
## [1] "CMOI is not normally distributed."
if (shapiro_test_emo$p.value < 0.05) {
print("EMOI is not normally distributed.")
} else {
print("EMOI is normally distributed.")
}
## [1] "EMOI is not normally distributed."
# Choose imputation method based on normality test results
imputation_method <- ifelse(shapiro_test_cmo$p.value < 0.05 | shapiro_test_emo$p.value < 0.05, "pmm", "norm.predict")
# Perform imputation using the mice package
imputed_data <- mice(data_income[, c("CMOI", "EMOI", "EducationIncomeFactor")], method = imputation_method, m = 5, maxit = 50, seed = 500)
##
## iter imp variable
## 1 1
## 1 2
## 1 3
## 1 4
## 1 5
## 2 1
## 2 2
## 2 3
## 2 4
## 2 5
## 3 1
## 3 2
## 3 3
## 3 4
## 3 5
## 4 1
## 4 2
## 4 3
## 4 4
## 4 5
## 5 1
## 5 2
## 5 3
## 5 4
## 5 5
## 6 1
## 6 2
## 6 3
## 6 4
## 6 5
## 7 1
## 7 2
## 7 3
## 7 4
## 7 5
## 8 1
## 8 2
## 8 3
## 8 4
## 8 5
## 9 1
## 9 2
## 9 3
## 9 4
## 9 5
## 10 1
## 10 2
## 10 3
## 10 4
## 10 5
## 11 1
## 11 2
## 11 3
## 11 4
## 11 5
## 12 1
## 12 2
## 12 3
## 12 4
## 12 5
## 13 1
## 13 2
## 13 3
## 13 4
## 13 5
## 14 1
## 14 2
## 14 3
## 14 4
## 14 5
## 15 1
## 15 2
## 15 3
## 15 4
## 15 5
## 16 1
## 16 2
## 16 3
## 16 4
## 16 5
## 17 1
## 17 2
## 17 3
## 17 4
## 17 5
## 18 1
## 18 2
## 18 3
## 18 4
## 18 5
## 19 1
## 19 2
## 19 3
## 19 4
## 19 5
## 20 1
## 20 2
## 20 3
## 20 4
## 20 5
## 21 1
## 21 2
## 21 3
## 21 4
## 21 5
## 22 1
## 22 2
## 22 3
## 22 4
## 22 5
## 23 1
## 23 2
## 23 3
## 23 4
## 23 5
## 24 1
## 24 2
## 24 3
## 24 4
## 24 5
## 25 1
## 25 2
## 25 3
## 25 4
## 25 5
## 26 1
## 26 2
## 26 3
## 26 4
## 26 5
## 27 1
## 27 2
## 27 3
## 27 4
## 27 5
## 28 1
## 28 2
## 28 3
## 28 4
## 28 5
## 29 1
## 29 2
## 29 3
## 29 4
## 29 5
## 30 1
## 30 2
## 30 3
## 30 4
## 30 5
## 31 1
## 31 2
## 31 3
## 31 4
## 31 5
## 32 1
## 32 2
## 32 3
## 32 4
## 32 5
## 33 1
## 33 2
## 33 3
## 33 4
## 33 5
## 34 1
## 34 2
## 34 3
## 34 4
## 34 5
## 35 1
## 35 2
## 35 3
## 35 4
## 35 5
## 36 1
## 36 2
## 36 3
## 36 4
## 36 5
## 37 1
## 37 2
## 37 3
## 37 4
## 37 5
## 38 1
## 38 2
## 38 3
## 38 4
## 38 5
## 39 1
## 39 2
## 39 3
## 39 4
## 39 5
## 40 1
## 40 2
## 40 3
## 40 4
## 40 5
## 41 1
## 41 2
## 41 3
## 41 4
## 41 5
## 42 1
## 42 2
## 42 3
## 42 4
## 42 5
## 43 1
## 43 2
## 43 3
## 43 4
## 43 5
## 44 1
## 44 2
## 44 3
## 44 4
## 44 5
## 45 1
## 45 2
## 45 3
## 45 4
## 45 5
## 46 1
## 46 2
## 46 3
## 46 4
## 46 5
## 47 1
## 47 2
## 47 3
## 47 4
## 47 5
## 48 1
## 48 2
## 48 3
## 48 4
## 48 5
## 49 1
## 49 2
## 49 3
## 49 4
## 49 5
## 50 1
## 50 2
## 50 3
## 50 4
## 50 5
completed_data <- complete(imputed_data, 1)
# Replace the original columns with the imputed data
data_income$CMOI <- completed_data$CMOI
data_income$EMOI <- completed_data$EMOI
data_income$EducationIncomeFactor <- completed_data$EducationIncomeFactor
# output the data_income to csv
write.csv(data_income, file = "./data/EEG_RS_lanExp_income.csv", row.names = FALSE)
{r demography summary} # # Load the data # data_income <- read.csv("./data/EEG_RS_lanExp_income.csv") # # demo_info <- read.csv("./data/assessment-resting-state-v8-200-drop-duplicated.csv") # # # left join data_income with demo_info by selected column age gender # demo_data_summary <- data_income %>% # left_join(demo_info %>% select(EEGID, Gender), by = "EEGID", suffix = c("", "")) %>% # # keep unique EEGID values # distinct(EEGID, .keep_all = TRUE) %>% # summarise(count = n(), # mean_age = mean(Age_EEG_yr, na.rm = TRUE), # gender_count = list(table(Gender)) # ) # # knitr::kable(demo_data_summary) # #
# library(lme4)
library(tidyverse)
library(lmerTest)
library(conflicted)
data_income <- read.csv("./data/EEG_RS_lanExp_income.csv")
# Center the variables
data_income <- data_income %>%
mutate(
PW_c = scale(PW, center = TRUE, scale = FALSE),
CMOI_c = scale(CMOI, center = TRUE, scale = FALSE),
EMOI_c = scale(EMOI, center = TRUE, scale = FALSE),
Age_EEG_yr_c = scale(Age_EEG_yr, center = TRUE, scale = FALSE),
EducationIncomeFactor_c = scale(EducationIncomeFactor, center = TRUE, scale = FALSE)
)
# keep only the columns data for the analysis
data_income <- data_income %>%
select(CWR, CDICT, ARITH, EWR, EDICT, PW_c, CMOI_c, EMOI_c, Age_EEG_yr_c, EducationIncomeFactor_c, FID, EEGID, Age_EEG_yr) %>%
drop_na()
demo_info <- read.csv("./data/assessment-resting-state-v8-200-drop-duplicated.csv")
# left join data_income with demo_info by selected column age gender
demo_data_summary <- data_income %>%
left_join(demo_info %>% select(EEGID, Gender), by = "EEGID", suffix = c("", "")) %>%
summarise(count = n(),
mean_age = mean(Age_EEG_yr, na.rm = TRUE),
gender_count = list(table(Gender))
)
knitr::kable(demo_data_summary)
count | mean_age | gender_count |
---|---|---|
180 | 8.135648 | 73, 107 |
# Fit separate models for each response variable
model_CWR <- lmerTest::lmer(CWR ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID), data = data_income)
model_CDICT <- lmerTest::lmer(CDICT ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID), data = data_income)
model_ARITH <- lmerTest::lmer(ARITH ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID), data = data_income)
model_EWR <- lmerTest::lmer(EWR ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID), data = data_income)
model_EDICT <- lmerTest::lmer(EDICT ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID), data = data_income)
# Print the model summaries
summary(model_CWR)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CWR ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1617.6
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.66337 -0.46309 -0.00466 0.40140 2.42105
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 574.8 23.98
## Residual 195.3 13.97
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 75.4111 2.6219 96.9877 28.762 < 2e-16 ***
## PW_c 200.5039 65.7885 149.0858 3.048 0.00273 **
## Age_EEG_yr_c 21.3516 2.6161 103.3772 8.162 8.44e-13 ***
## EducationIncomeFactor_c 0.9246 1.8191 95.6296 0.508 0.61243
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c A_EEG_
## PW_c 0.015
## Ag_EEG_yr_c -0.007 0.030
## EdctnIncmF_ 0.044 0.044 0.014
summary(model_CDICT)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CDICT ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1177
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.3134 -0.4650 0.1276 0.5167 2.0347
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 36.23 6.019
## Residual 19.62 4.430
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 25.4176 0.6900 95.0368 36.838 < 2e-16 ***
## PW_c 46.0197 19.4240 164.3523 2.369 0.019 *
## Age_EEG_yr_c 3.7492 0.6920 99.8161 5.418 4.19e-07 ***
## EducationIncomeFactor_c 0.5989 0.4780 93.0759 1.253 0.213
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c A_EEG_
## PW_c 0.013
## Ag_EEG_yr_c -0.013 0.031
## EdctnIncmF_ 0.042 0.049 0.014
summary(model_ARITH)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: ARITH ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 930
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.7752 -0.4137 -0.0315 0.4065 3.8456
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 8.983 2.997
## Residual 4.792 2.189
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.9050 0.3430 99.1549 23.049 < 2e-16 ***
## PW_c 21.7304 9.6224 164.9365 2.258 0.02524 *
## Age_EEG_yr_c 3.9298 0.3439 103.9156 11.427 < 2e-16 ***
## EducationIncomeFactor_c 0.7501 0.2376 97.2327 3.157 0.00212 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c A_EEG_
## PW_c 0.013
## Ag_EEG_yr_c -0.012 0.031
## EdctnIncmF_ 0.042 0.049 0.014
summary(model_EWR)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EWR ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1310.8
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.3100 -0.4046 -0.0303 0.3870 3.0218
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 88.44 9.404
## Residual 37.97 6.162
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 19.0732 1.0508 97.0017 18.151 < 2e-16 ***
## PW_c 67.9001 28.0224 157.6519 2.423 0.0165 *
## Age_EEG_yr_c 7.1820 1.0514 102.4592 6.831 6.17e-10 ***
## EducationIncomeFactor_c 5.0735 0.7285 95.3628 6.964 4.21e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c A_EEG_
## PW_c 0.014
## Ag_EEG_yr_c -0.010 0.031
## EdctnIncmF_ 0.043 0.047 0.014
summary(model_EDICT)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EDICT ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1054.1
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.4018 -0.4165 -0.1115 0.4186 2.7087
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 18.010 4.244
## Residual 9.762 3.124
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.5961 0.4865 98.0526 15.613 < 2e-16 ***
## PW_c 30.6696 13.6988 165.1002 2.239 0.0265 *
## Age_EEG_yr_c 3.4423 0.4880 102.7893 7.054 2.08e-10 ***
## EducationIncomeFactor_c 2.1842 0.3370 96.1024 6.481 3.91e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c A_EEG_
## PW_c 0.013
## Ag_EEG_yr_c -0.013 0.031
## EdctnIncmF_ 0.042 0.049 0.014
# Fit the models with centered variables
moderate_CWR_MOI <- lmerTest::lmer(CWR ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_CDICT_MOI <- lmerTest::lmer(CDICT ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
# moderate_ARITH_MOI <- lmerTest::lmer(ARITH ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_EWR_MOI <- lmerTest::lmer(EWR ~ PW_c * EMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_EDICT_MOI <- lmerTest::lmer(EDICT ~ PW_c * EMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
# Print the model summaries
summary(moderate_CWR_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CWR ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1600.8
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.69087 -0.46606 -0.00007 0.39241 2.40964
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 532.1 23.07
## Residual 200.5 14.16
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 75.398 2.544 95.330 29.636 < 2e-16 ***
## PW_c 193.321 65.749 152.863 2.940 0.00379 **
## CMOI_c 4.270 3.389 160.168 1.260 0.20949
## Age_EEG_yr_c 21.997 2.590 104.159 8.492 1.52e-13 ***
## PW_c:CMOI_c 172.594 89.080 124.414 1.938 0.05495 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c CMOI_c A_EEG_
## PW_c 0.014
## CMOI_c -0.023 -0.067
## Ag_EEG_yr_c -0.013 0.016 0.190
## PW_c:CMOI_c 0.018 -0.011 0.036 0.023
summary(moderate_CDICT_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CDICT ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1168.7
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.26060 -0.48491 0.08296 0.50103 2.05906
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 37.14 6.095
## Residual 19.75 4.444
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 25.3761 0.6969 94.0757 36.415 < 2e-16 ***
## PW_c 44.6227 19.5443 163.3865 2.283 0.0237 *
## CMOI_c 0.0635 0.9638 151.7237 0.066 0.9476
## Age_EEG_yr_c 3.7427 0.7135 101.7779 5.246 8.5e-07 ***
## PW_c:CMOI_c -5.8959 26.9743 131.8553 -0.219 0.8273
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c CMOI_c A_EEG_
## PW_c 0.012
## CMOI_c -0.026 -0.048
## Ag_EEG_yr_c -0.018 0.020 0.200
## PW_c:CMOI_c 0.019 -0.007 -0.008 0.017
# summary(moderate_ARITH_MOI)
summary(moderate_EWR_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EWR ~ PW_c * EMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1320.5
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.3687 -0.3550 -0.0730 0.3404 3.4710
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 135.48 11.640
## Residual 32.69 5.718
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 18.894 1.241 98.298 15.228 < 2e-16 ***
## PW_c 66.808 28.301 138.640 2.361 0.0196 *
## EMOI_c 6.607 1.473 165.316 4.485 1.36e-05 ***
## Age_EEG_yr_c 5.797 1.259 110.085 4.603 1.12e-05 ***
## PW_c:EMOI_c -14.207 34.907 110.457 -0.407 0.6848
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EMOI_c A_EEG_
## PW_c 0.015
## EMOI_c 0.020 0.102
## Ag_EEG_yr_c -0.008 0.006 -0.206
## PW_c:EMOI_c -0.017 0.004 0.070 -0.037
summary(moderate_EDICT_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EDICT ~ PW_c * EMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1062.7
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.3211 -0.3965 -0.1422 0.3931 2.4105
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 26.074 5.106
## Residual 8.787 2.964
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.5106 0.5577 98.9073 13.466 < 2e-16 ***
## PW_c 27.1653 14.0002 150.9378 1.940 0.0542 .
## EMOI_c 2.9498 0.6907 156.5172 4.271 3.37e-05 ***
## Age_EEG_yr_c 2.8564 0.5704 108.6713 5.007 2.15e-06 ***
## PW_c:EMOI_c 2.6011 17.6090 118.3345 0.148 0.8828
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EMOI_c A_EEG_
## PW_c 0.015
## EMOI_c 0.022 0.078
## Ag_EEG_yr_c -0.012 0.012 -0.217
## PW_c:EMOI_c -0.019 0.002 0.034 -0.033
For the CMOI and EMOI moderation effect, the results are as follows: For CWR, the moderation effect of CMOI is significant (p = .049) and PW significantly correlates with CWR (p = .01). For CDICT, the moderation effect of CMOI is insignificant (p = .45) but PW significantly correlates with CDICT (p = .01). For EWR, the moderation effect of EMOI is insignificant (p = .39) but PW significantly correlates with EWR (p = .038). For EDICT, the moderation effect of EMOI is also insignificant (p = .85) and PW insignificantly correlates with EDICT (p = .09).
# Fit the model with PW as predictor, EducationIncomeFactor as moderator, and Age_EEG_yr as covariate
moderate_CWR_EIF <- lmerTest::lmer(CWR ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_CDICT_EIF <- lmerTest::lmer(CDICT ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_ARITH_EIF <- lmerTest::lmer(ARITH ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_EWR_EIF <- lmerTest::lmer(EWR ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID), data = data_income)
moderate_EDICT_EIF <- lmerTest::lmer(EDICT ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID), data = data_income)
# Print the model summary
summary(moderate_CWR_EIF)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CWR ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1607.5
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.61950 -0.45175 0.00928 0.38601 2.41085
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 586.3 24.21
## Residual 192.8 13.89
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 75.320 2.643 95.746 28.499 < 2e-16 ***
## PW_c 189.334 67.107 152.963 2.821 0.00542 **
## EducationIncomeFactor_c 1.146 1.855 97.858 0.618 0.53802
## Age_EEG_yr_c 21.379 2.634 102.136 8.117 1.13e-12 ***
## PW_c:EducationIncomeFactor_c -36.401 46.377 134.373 -0.785 0.43391
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EdcIF_ A_EEG_
## PW_c 0.023
## EdctnIncmF_ 0.038 0.010
## Ag_EEG_yr_c -0.007 0.027 0.015
## PW_c:EdcIF_ 0.039 0.206 -0.154 -0.008
summary(moderate_CDICT_EIF)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CDICT ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1168.4
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.25156 -0.49852 0.07274 0.53087 1.93171
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 36.73 6.060
## Residual 19.34 4.397
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 25.3787 0.6931 94.3336 36.618 < 2e-16 ***
## PW_c 41.5259 19.6725 167.2683 2.111 0.0363 *
## EducationIncomeFactor_c 0.7041 0.4874 96.5870 1.445 0.1518
## Age_EEG_yr_c 3.7574 0.6943 99.0175 5.412 4.35e-07 ***
## PW_c:EducationIncomeFactor_c -16.9039 13.8183 151.2339 -1.223 0.2231
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EdcIF_ A_EEG_
## PW_c 0.021
## EdctnIncmF_ 0.034 0.016
## Ag_EEG_yr_c -0.013 0.028 0.016
## PW_c:EdcIF_ 0.044 0.175 -0.177 -0.011
summary(moderate_ARITH_EIF)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: ARITH ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 924.3
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.7554 -0.4124 -0.0420 0.4003 3.8216
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 9.000 3.000
## Residual 4.832 2.198
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.9072 0.3439 99.1579 22.994 < 2e-16 ***
## PW_c 21.9795 9.8011 168.4648 2.243 0.02623 *
## EducationIncomeFactor_c 0.7444 0.2418 101.3822 3.078 0.00268 **
## Age_EEG_yr_c 3.9291 0.3446 103.7210 11.404 < 2e-16 ***
## PW_c:EducationIncomeFactor_c 0.9328 6.8890 154.0762 0.135 0.89247
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EdcIF_ A_EEG_
## PW_c 0.021
## EdctnIncmF_ 0.033 0.016
## Ag_EEG_yr_c -0.013 0.029 0.016
## PW_c:EdcIF_ 0.044 0.174 -0.178 -0.012
summary(moderate_EWR_EIF)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EWR ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1302.1
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.2816 -0.4156 -0.0417 0.3970 2.9949
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 90.93 9.536
## Residual 37.21 6.100
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 19.0344 1.0614 95.1114 17.934 < 2e-16 ***
## PW_c 62.2025 28.4686 160.3710 2.185 0.0303 *
## EducationIncomeFactor_c 5.1879 0.7455 97.3175 6.959 4.01e-10 ***
## Age_EEG_yr_c 7.1816 1.0606 100.5939 6.771 8.69e-10 ***
## PW_c:EducationIncomeFactor_c -18.4894 19.8250 142.2836 -0.933 0.3526
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EdcIF_ A_EEG_
## PW_c 0.022
## EdctnIncmF_ 0.036 0.013
## Ag_EEG_yr_c -0.010 0.028 0.016
## PW_c:EdcIF_ 0.042 0.192 -0.165 -0.010
summary(moderate_EDICT_EIF)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EDICT ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1047.7
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.3899 -0.4141 -0.1204 0.4213 2.7024
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 18.097 4.254
## Residual 9.823 3.134
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.5942 0.4883 96.9140 15.553 < 2e-16 ***
## PW_c 30.4701 13.9484 168.3675 2.184 0.0303 *
## EducationIncomeFactor_c 2.1897 0.3434 99.1538 6.376 5.79e-09 ***
## Age_EEG_yr_c 3.4428 0.4893 101.4828 7.037 2.37e-10 ***
## PW_c:EducationIncomeFactor_c -0.8686 9.8077 153.4727 -0.089 0.9295
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EdcIF_ A_EEG_
## PW_c 0.021
## EdctnIncmF_ 0.033 0.017
## Ag_EEG_yr_c -0.013 0.029 0.016
## PW_c:EdcIF_ 0.044 0.173 -0.178 -0.012
For the CMOI and EMOI moderation effect, the results are as follows: For CWR, the moderation effect of CMOI is significant (p = .049) and PW significantly correlates with CWR (p = .01). For CDICT, the moderation effect of CMOI is insignificant (p = .45) but PW significantly correlates with CDICT (p = .01). For EWR, the moderation effect of EMOI is insignificant (p = .39) but PW significantly correlates with EWR (p = .038). For EDICT, the moderation effect of EMOI is also insignificant (p = .85) and PW insignificantly correlates with EDICT (p = .09).
And for CWR and CDICT, alpha power significantly correlate with then (p = .01 and p = .02, respectively). However, the moderation effect of Education Income Factor (EIF) is not significant for CWR and CDICT (both p > .05). Alpha power did not significantly correlate with ARITH (p = .06) and the moderation effect of EIF is also insignificant (p = .65). Alpha power significantly correlate with then (p = .04 and p = .029, respectively). The moderation effect of EIF is insignificant for EWR and EDICT (both p > .05).
# Fit the models with centered variables
model_CWR_MOI <- lmerTest::lmer(CWR ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
model_CDICT_MOI <- lmerTest::lmer(CDICT ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
# moderate_ARITH_MOI <- lmerTest::lmer(ARITH ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
model_EWR_MOI <- lmerTest::lmer(EWR ~ PW_c + EMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
model_EDICT_MOI <- lmerTest::lmer(EDICT ~ PW_c + EMOI_c + Age_EEG_yr_c + (1 | FID), data = data_income)
#summary
summary(model_CWR_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CWR ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1615.3
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.64158 -0.46000 -0.00332 0.39471 2.39415
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 545.6 23.36
## Residual 202.0 14.21
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 75.308 2.572 94.637 29.283 < 2e-16 ***
## PW_c 194.607 66.169 152.994 2.941 0.00378 **
## CMOI_c 3.978 3.416 163.188 1.164 0.24598
## Age_EEG_yr_c 21.880 2.617 103.831 8.360 3.02e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c CMOI_c
## PW_c 0.014
## CMOI_c -0.023 -0.068
## Ag_EEG_yr_c -0.013 0.016 0.189
summary(model_CDICT_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CDICT ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1177.2
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.26995 -0.48737 0.08494 0.50144 2.06244
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 36.87 6.072
## Residual 19.67 4.435
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 25.37929 0.69445 95.63363 36.546 < 2e-16 ***
## PW_c 44.62582 19.49413 164.97734 2.289 0.0233 *
## CMOI_c 0.06255 0.96095 152.23325 0.065 0.9482
## Age_EEG_yr_c 3.74565 0.71106 103.50859 5.268 7.56e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c CMOI_c
## PW_c 0.012
## CMOI_c -0.026 -0.048
## Ag_EEG_yr_c -0.018 0.020 0.200
summary(model_EWR_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EWR ~ PW_c + EMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1329.6
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.3742 -0.3566 -0.0789 0.3343 3.4770
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 135.51 11.641
## Residual 32.38 5.691
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 18.885 1.240 98.207 15.232 < 2e-16 ***
## PW_c 66.857 28.203 139.432 2.371 0.0191 *
## EMOI_c 6.658 1.467 168.719 4.539 1.07e-05 ***
## Age_EEG_yr_c 5.775 1.258 110.342 4.592 1.17e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EMOI_c
## PW_c 0.015
## EMOI_c 0.021 0.102
## Ag_EEG_yr_c -0.009 0.006 -0.204
summary(model_EDICT_MOI)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: EDICT ~ PW_c + EMOI_c + Age_EEG_yr_c + (1 | FID)
## Data: data_income
##
## REML criterion at convergence: 1070.3
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.3312 -0.4007 -0.1424 0.4011 2.4211
##
## Random effects:
## Groups Name Variance Std.Dev.
## FID (Intercept) 26.021 5.101
## Residual 8.712 2.952
## Number of obs: 180, groups: FID, 101
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 7.5122 0.5568 99.1582 13.493 < 2e-16 ***
## PW_c 27.1341 13.9535 152.0434 1.945 0.0537 .
## EMOI_c 2.9483 0.6887 158.9184 4.281 3.21e-05 ***
## Age_EEG_yr_c 2.8589 0.5692 109.2228 5.023 2.00e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) PW_c EMOI_c
## PW_c 0.015
## EMOI_c 0.023 0.078
## Ag_EEG_yr_c -0.013 0.012 -0.216
# Perform the likelihood ratio test
comparison_CWR <- anova(model_CWR_MOI, moderate_CWR_MOI)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_CWR)
## Data: data_income
## Models:
## model_CWR_MOI: CWR ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID)
## moderate_CWR_MOI: CWR ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_CWR_MOI 6 1649.2 1668.4 -818.62 1637.2
## moderate_CWR_MOI 7 1647.4 1669.8 -816.70 1633.4 3.8228 1 0.05056 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Perform the likelihood ratio test
comparison_CWR_EIF <- anova(model_CWR, moderate_CWR_EIF)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_CWR_EIF)
## Data: data_income
## Models:
## model_CWR: CWR ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## moderate_CWR_EIF: CWR ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_CWR 6 1650.3 1669.5 -819.15 1638.3
## moderate_CWR_EIF 7 1651.7 1674.1 -818.86 1637.7 0.5803 1 0.4462
# Perform the likelihood ratio test
comparison_CDICT <- anova(model_CDICT_MOI, moderate_CDICT_MOI)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_CDICT)
## Data: data_income
## Models:
## model_CDICT_MOI: CDICT ~ PW_c + CMOI_c + Age_EEG_yr_c + (1 | FID)
## moderate_CDICT_MOI: CDICT ~ PW_c * CMOI_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_CDICT_MOI 6 1200.9 1220.0 -594.44 1188.9
## moderate_CDICT_MOI 7 1202.8 1225.2 -594.42 1188.8 0.0415 1 0.8386
# Perform the likelihood ratio test
comparison_CDICT_EIF <- anova(model_CDICT, moderate_CDICT_EIF)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_CDICT_EIF)
## Data: data_income
## Models:
## model_CDICT: CDICT ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## moderate_CDICT_EIF: CDICT ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_CDICT 6 1199.3 1218.4 -593.64 1187.3
## moderate_CDICT_EIF 7 1199.8 1222.1 -592.89 1185.8 1.4913 1 0.222
# Perform the likelihood ratio test
comparison_ARITH_EIF <- anova(model_ARITH, moderate_ARITH_EIF)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_ARITH_EIF)
## Data: data_income
## Models:
## model_ARITH: ARITH ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## moderate_ARITH_EIF: ARITH ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_ARITH 6 946.70 965.85 -467.35 934.70
## moderate_ARITH_EIF 7 948.68 971.03 -467.34 934.68 0.0195 1 0.8888
# Perform the likelihood ratio test
comparison_EWR <- anova(model_EWR_MOI, moderate_EWR_MOI)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_EWR)
## Data: data_income
## Models:
## model_EWR_MOI: EWR ~ PW_c + EMOI_c + Age_EEG_yr_c + (1 | FID)
## moderate_EWR_MOI: EWR ~ PW_c * EMOI_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_EWR_MOI 6 1357.2 1376.3 -672.58 1345.2
## moderate_EWR_MOI 7 1359.0 1381.3 -672.49 1345.0 0.1702 1 0.6799
# Perform the likelihood ratio test
comparison_EWR_EIF <- anova(model_EWR, moderate_EWR_EIF)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_EWR_EIF)
## Data: data_income
## Models:
## model_EWR: EWR ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## moderate_EWR_EIF: EWR ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_EWR 6 1336.3 1355.5 -662.15 1324.3
## moderate_EWR_EIF 7 1337.5 1359.8 -661.75 1323.5 0.8092 1 0.3684
# Perform the likelihood ratio test
comparison_EDICT <- anova(model_EDICT_MOI, moderate_EDICT_MOI)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_EDICT)
## Data: data_income
## Models:
## model_EDICT_MOI: EDICT ~ PW_c + EMOI_c + Age_EEG_yr_c + (1 | FID)
## moderate_EDICT_MOI: EDICT ~ PW_c * EMOI_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_EDICT_MOI 6 1091.8 1110.9 -539.88 1079.8
## moderate_EDICT_MOI 7 1093.7 1116.1 -539.87 1079.7 0.0213 1 0.884
# Perform the likelihood ratio test
comparison_EDICT_EIF <- anova(model_EDICT, moderate_EDICT_EIF)
## refitting model(s) with ML (instead of REML)
# Print the comparison results
print(comparison_EDICT_EIF)
## Data: data_income
## Models:
## model_EDICT: EDICT ~ PW_c + Age_EEG_yr_c + EducationIncomeFactor_c + (1 | FID)
## moderate_EDICT_EIF: EDICT ~ PW_c * EducationIncomeFactor_c + Age_EEG_yr_c + (1 | FID)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## model_EDICT 6 1073.5 1092.7 -530.78 1061.5
## moderate_EDICT_EIF 7 1075.5 1097.9 -530.77 1061.5 0.005 1 0.9436