This script is the main analysis for the of the Onset-Neighbourhood Density Analyses, with trial level proportions used as a control variable.
require(knitr)
## Loading required package: knitr
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
## ✓ tibble 3.0.4 ✓ dplyr 1.0.2
## ✓ tidyr 1.1.2 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(brms)
## Loading required package: Rcpp
## Loading 'brms' package (version 2.13.5). Useful instructions
## can be found by typing help('brms'). A more detailed introduction
## to the package is available through vignette('brms_overview').
##
## Attaching package: 'brms'
## The following object is masked from 'package:stats':
##
## ar
library(lme4)
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
##
## Attaching package: 'lme4'
## The following object is masked from 'package:brms':
##
## ngrps
library(mcmcplots)
## Loading required package: coda
library(tidybayes)
##
## Attaching package: 'tidybayes'
## The following objects are masked from 'package:brms':
##
## dstudent_t, pstudent_t, qstudent_t, rstudent_t
library(ggthemes)
theme_set(theme_minimal())
Open eye-tracking data: There are three separate datasets – one for RTs, one for Proportions and one for pre-onset proportion of looks to target.
LT_30mo <- read_csv("Data_Processing/LT_30mo.csv")
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
## .default = col_double(),
## Target = col_character(),
## ParticipantName = col_character(),
## MediaName = col_character(),
## AOI = col_character(),
## Blind_ID = col_character()
## )
## See spec(...) for full column specifications.
nrow(data.frame(unique(LT_30mo $ParticipantName)))
## [1] 100
RT_30mo <- read_csv("Data_Processing/RT_30mo.csv")
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
## .default = col_double(),
## Target = col_character(),
## ParticipantName = col_character(),
## MediaName = col_character(),
## FirstAOI = col_character(),
## Blind_ID = col_character(),
## TargetSide = col_character()
## )
## See spec(...) for full column specifications.
nrow(data.frame(unique(RT_30mo $ParticipantName)))
## [1] 100
Prior_looks <- read_csv("Data_Processing/Prior_looks.csv")
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
## .default = col_double(),
## Target = col_character(),
## ParticipantName = col_character(),
## MediaName = col_character(),
## AOI = col_character(),
## Blind_ID = col_character()
## )
## See spec(...) for full column specifications.
LT_30mo %>%
group_by(Target) %>%
summarise(
Freq = mean(COCA_Freq_2)
)
## `summarise()` ungrouping output (override with `.groups` argument)
Get average looks to target in pre-onset window, for each word averaged across participants, and participant-specific averages.
Prop_by_target <- Prior_looks %>%
group_by(Target) %>%
dplyr::summarize(
TargetProp = mean(Prop)
)
## `summarise()` ungrouping output (override with `.groups` argument)
Prior_looks_short <- Prior_looks %>%
rename("Pre_Onset_Prop" = "Prop") %>%
select(Pre_Onset_Prop, ParticipantName, MediaName)
RT_30mo <- merge(RT_30mo, Prop_by_target, by="Target")
RT_30mo <- merge(RT_30mo, Prior_looks_short, by=c("ParticipantName", "MediaName"))
LT_30mo <- merge(LT_30mo, Prop_by_target, by="Target")
LT_30mo <- merge(LT_30mo, Prior_looks_short, by=c("ParticipantName", "MediaName"))
Median Split for Subgroup Analyses
RT_30mo$VocabSplit <- ifelse(RT_30mo$VocabTotal < 544, yes=0, no =1)
RT_30mo$VocabSplit <- factor(RT_30mo$VocabSplit, labels = c("low", "high"))
LT_30mo$VocabSplit <- ifelse(LT_30mo$VocabTotal < 544, yes=0, no =1)
LT_30mo$VocabSplit <- factor(LT_30mo$VocabSplit,labels = c("low", "high"))
First, analyse looks to target in pre onset window
Prior_looks %>%
group_by(Target) %>%
summarise(
Prop_mean = mean(Prop, na.rm=TRUE),
Prop_sd = sd(Prop, na.rm=TRUE),
)
## `summarise()` ungrouping output (override with `.groups` argument)
Transform proportions to remove 0s and 1s for beta distribution. Divide variables by 100 (otherwise regression coefficients are all .00)
Prior_looks$Prop2 <- ((Prior_looks$Prop)*(Prior_looks$SamplesTotal-1) + 1/2)/Prior_looks$SamplesTotal
Prior_looks <- mutate(Prior_looks,
Vocab.c100 = (Vocab.c - median(Vocab.c))/100,
Median_Initial.c100 = Median_Initial.c/100,
AoA.c100 = (Percent_75_Amer - mean(Percent_75_Amer))/100,
logfreq.c100 = logfreq.c/100,
TrialNumber.100 = TrialNumber/100)
Beta Regression predicting average proportion of looks to target in the pre-onset window
mpo <- brm(Prop2 ~ 1 + (1 |ParticipantName) + (1 | Target), family=Beta("logit", "log"),
data=Prior_looks,
chains=4,
iter=5000,
cores=8,
file="mpo",
save_all_pars=TRUE)
summary(mpo)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ 1 + (1 | ParticipantName) + (1 | Target)
## Data: Prior_looks (Number of observations: 3534)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.13 0.02 0.08 0.17 1.00 3728 3234
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.44 0.09 0.31 0.65 1.00 2090 3789
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 0.29 0.11 0.08 0.51 1.00 1300 2283
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 3.61 0.08 3.46 3.77 1.00 13695 7202
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
See if proportion of looks pre onset is predicted by substantive or methodological variables.
mpo_baseline <- brm(Prop2 ~ Median_Initial.c100 + Vocab.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 +
(1 + Median_Initial.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 || ParticipantName) +
(1 + First_Instance + Vocab.c100 + TrialNumber.100 || Target),
family=Beta("logit", "log"),
data=Prior_looks,
chains=4,
iter=5000,
cores=8,
file="mpo_baseline",
save_all_pars=TRUE)
summary(mpo_baseline)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 + Vocab.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 + (1 + Median_Initial.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + TrialNumber.100 || Target)
## Data: Prior_looks (Number of observations: 3534)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.04 0.03 0.00 0.10 1.00 2248
## sd(Median_Initial.c100) 0.28 0.20 0.01 0.73 1.00 4140
## sd(AoA.c100) 2.42 1.03 0.24 4.25 1.00 2308
## sd(First_Instance) 0.08 0.04 0.01 0.17 1.00 2324
## sd(TrialNumber.100) 0.78 0.11 0.56 1.00 1.00 4416
## sd(logfreq.c100) 10.53 3.49 1.88 16.47 1.00 1954
## Tail_ESS
## sd(Intercept) 4453
## sd(Median_Initial.c100) 4888
## sd(AoA.c100) 2725
## sd(First_Instance) 3533
## sd(TrialNumber.100) 6259
## sd(logfreq.c100) 1678
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.42 0.11 0.26 0.67 1.00 4507 5033
## sd(First_Instance) 0.10 0.06 0.01 0.22 1.00 2973 4675
## sd(Vocab.c100) 0.08 0.03 0.04 0.14 1.00 3544 3621
## sd(TrialNumber.100) 0.82 0.29 0.29 1.46 1.00 3710 3517
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 0.30 0.12 0.06 0.55 1.00 5475 5592
## Median_Initial.c100 -0.21 1.12 -2.38 2.03 1.00 5644 5490
## Vocab.c100 0.00 0.03 -0.05 0.06 1.00 8401 7562
## AoA.c100 0.63 3.93 -7.07 8.52 1.00 6130 5969
## First_Instance -0.09 0.05 -0.20 0.02 1.00 13842 7965
## TrialNumber.100 0.21 0.31 -0.40 0.84 1.00 8751 7324
## logfreq.c100 -1.19 14.07 -29.34 26.62 1.00 4950 5050
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 3.83 0.09 3.66 4.01 1.00 10210 7399
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
marginal_effects(mpo_baseline, "First_Instance")
## Warning: Method 'marginal_effects' is deprecated. Please use
## 'conditional_effects' instead.
mpo_1<- brm(Prop2 ~ Median_Initial.c100*Vocab.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 +
(1 + Median_Initial.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 || ParticipantName) +
(1 + First_Instance + Vocab.c100 + TrialNumber.100 || Target),
family=Beta("logit", "log"), prior=prior(student_t(3,0,2), class=sd),
data=Prior_looks, chains=4, iter=5000,
file="mpo_1",
cores=8, save_all_pars=TRUE)
summary(mpo_1)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 * Vocab.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 + (1 + Median_Initial.c100 + AoA.c100 + First_Instance + TrialNumber.100 + logfreq.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + TrialNumber.100 || Target)
## Data: Prior_looks (Number of observations: 3534)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.04 0.03 0.00 0.10 1.00 2367
## sd(Median_Initial.c100) 0.28 0.20 0.01 0.73 1.00 4810
## sd(AoA.c100) 2.28 1.03 0.21 4.18 1.00 2334
## sd(First_Instance) 0.09 0.04 0.01 0.17 1.00 2385
## sd(TrialNumber.100) 0.77 0.12 0.55 1.01 1.00 3674
## sd(logfreq.c100) 10.18 3.93 0.89 16.57 1.00 1530
## Tail_ESS
## sd(Intercept) 3568
## sd(Median_Initial.c100) 5194
## sd(AoA.c100) 2986
## sd(First_Instance) 4196
## sd(TrialNumber.100) 5044
## sd(logfreq.c100) 1715
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.42 0.11 0.26 0.67 1.00 5182 5967
## sd(First_Instance) 0.10 0.06 0.01 0.22 1.00 2968 5551
## sd(Vocab.c100) 0.08 0.03 0.04 0.14 1.00 3804 5094
## sd(TrialNumber.100) 0.81 0.29 0.28 1.42 1.00 4276 4148
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat
## Intercept 0.30 0.12 0.06 0.55 1.00
## Median_Initial.c100 -0.20 1.08 -2.35 1.93 1.00
## Vocab.c100 0.00 0.03 -0.05 0.06 1.00
## AoA.c100 0.69 3.84 -6.95 8.21 1.00
## First_Instance -0.09 0.05 -0.19 0.02 1.00
## TrialNumber.100 0.21 0.31 -0.40 0.84 1.00
## logfreq.c100 -1.28 13.76 -28.66 26.00 1.00
## Median_Initial.c100:Vocab.c100 -0.07 0.25 -0.56 0.43 1.00
## Bulk_ESS Tail_ESS
## Intercept 6209 7228
## Median_Initial.c100 7086 6675
## Vocab.c100 8804 6458
## AoA.c100 7516 6589
## First_Instance 14467 7801
## TrialNumber.100 10396 7534
## logfreq.c100 7516 6413
## Median_Initial.c100:Vocab.c100 9853 7400
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 3.83 0.09 3.65 4.01 1.00 8665 6800
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
remove(mpo)
remove(mpo_baseline)
remove(mpo_1)
Analysis of RTs
Get number of trials per participant
##
## 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19
## 1 3 3 6 6 18 17 5 10 10 10 5 1 3 2
Re-scale variables to make coefficients more interpretable
RT_30mo <- mutate(RT_30mo,
Vocab.c100 = Vocab.c/100,
logfreq.c100 = logfreq.c/100,
Median_Initial.c100 = Median_Initial.c/100,
log_Median_Initial.c = (log(Median_Initial) - mean(log(Median_Initial)))/100,
AoA.c100 = (Percent_75_Amer - mean(Percent_75_Amer))/100,
Duration.c100 = (Duration-mean(Duration))/100,
TrialNumber.c100 = (TrialNumber - median(TrialNumber))/100
)
Summary statistics by words
RT_30mo %>%
group_by(Target) %>%
summarise(
RT_mean = mean(RT, na.rm=TRUE),
RT_sd = sd(RT, na.rm=TRUE),
count = n()
)
## `summarise()` ungrouping output (override with `.groups` argument)
Baseline model – main effect of Initial density.
m0 <- brm(RT ~ Median_Initial.c100+ Vocab.c100 + First_Instance + Pre_Onset_Prop + TargetProp + logfreq.c100+ AoA.c100 + First_Instance + Duration.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Duration.c100 + Pre_Onset_Prop + logfreq.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target), prior=prior(student_t(5,0,2), class=sd), family="shifted_lognormal", file="Supp2/m0",
data=RT_30mo, chains=4, iter=5000, cores=8, save_all_pars=TRUE)
m0<- add_criterion(m0, "loo")
tibble(m0_k = m0$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m0_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
pp_check(m0)
## Using 10 posterior samples for ppc type 'dens_overlay' by default.
summary(m0)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 + Vocab.c100 + First_Instance + Pre_Onset_Prop + TargetProp + logfreq.c100 + AoA.c100 + First_Instance + Duration.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Duration.c100 + Pre_Onset_Prop + logfreq.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: RT_30mo (Number of observations: 1181)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.14 0.06 0.01 0.23 1.00 985
## sd(Median_Initial.c100) 0.99 0.31 0.29 1.56 1.00 2516
## sd(First_Instance) 0.10 0.06 0.01 0.21 1.00 1831
## sd(TargetProp) 0.16 0.10 0.01 0.37 1.00 929
## sd(Duration.c100) 0.04 0.02 0.00 0.09 1.00 2530
## sd(Pre_Onset_Prop) 0.14 0.09 0.01 0.35 1.00 2024
## sd(logfreq.c100) 2.24 1.98 0.08 7.54 1.00 5517
## sd(AoA.c100) 1.67 1.00 0.10 3.71 1.00 2821
## Tail_ESS
## sd(Intercept) 1881
## sd(Median_Initial.c100) 2304
## sd(First_Instance) 3580
## sd(TargetProp) 2434
## sd(Duration.c100) 4342
## sd(Pre_Onset_Prop) 3912
## sd(logfreq.c100) 5556
## sd(AoA.c100) 4181
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.06 0.04 0.00 0.17 1.00 3624 6298
## sd(Vocab.c100) 0.03 0.02 0.00 0.08 1.00 4566 5260
## sd(First_Instance) 0.09 0.05 0.00 0.20 1.00 3314 5098
## sd(Pre_Onset_Prop) 0.13 0.08 0.01 0.32 1.00 3593 4070
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 6.31 0.22 5.89 6.76 1.00 10452 7335
## Median_Initial.c100 0.51 0.35 -0.15 1.22 1.00 9081 7483
## Vocab.c100 -0.07 0.03 -0.12 -0.02 1.00 13927 8198
## First_Instance -0.01 0.05 -0.09 0.08 1.00 13817 7527
## Pre_Onset_Prop -0.15 0.11 -0.37 0.06 1.00 17424 8111
## TargetProp -0.93 0.41 -1.79 -0.17 1.00 10959 7001
## logfreq.c100 2.72 4.04 -5.31 10.80 1.00 11509 6901
## AoA.c100 1.22 1.33 -1.35 3.94 1.00 10681 7482
## Duration.c100 0.01 0.03 -0.05 0.07 1.00 9500 6920
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.59 0.03 0.54 0.64 1.00 8337 6997
## ndt 142.29 10.07 120.79 160.08 1.00 10716 6465
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m0, "Median_Initial.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.51 0.35 -0.05 1.08 14.38
## Post.Prob Star
## 1 0.94
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
RT_30mo%>%
mutate(
m0_k = m0$criteria$loo$diagnostics$pareto_k
) %>%
filter(m0_k >= .65)
m0b <- RT_30mo%>%
mutate(
m0_k = m0$criteria$loo$diagnostics$pareto_k
) %>%
filter(m0_k < .65) %>%
brm(RT ~ Median_Initial.c100+Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target), family="shifted_lognormal", file="Supp2/m0b", data=., prior=prior(student_t(5,0,2), class=sd), chains=4, iter=5000, cores=8, save_all_pars=TRUE)
summary(m0b)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: . (Number of observations: 1181)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.14 0.05 0.01 0.23 1.01 707
## sd(Median_Initial.c100) 1.00 0.32 0.27 1.58 1.00 2175
## sd(First_Instance) 0.10 0.06 0.01 0.21 1.01 1280
## sd(TargetProp) 0.15 0.10 0.01 0.36 1.01 733
## sd(Pre_Onset_Prop) 0.14 0.09 0.01 0.34 1.00 1583
## sd(Duration.c100) 0.04 0.02 0.00 0.09 1.00 2511
## sd(logfreq.c100) 2.24 2.02 0.08 7.55 1.00 3979
## sd(AoA.c100) 1.70 1.02 0.09 3.79 1.00 2583
## Tail_ESS
## sd(Intercept) 952
## sd(Median_Initial.c100) 1729
## sd(First_Instance) 3340
## sd(TargetProp) 1919
## sd(Pre_Onset_Prop) 3153
## sd(Duration.c100) 4489
## sd(logfreq.c100) 4477
## sd(AoA.c100) 4031
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.06 0.04 0.00 0.17 1.00 2634 3967
## sd(Vocab.c100) 0.03 0.02 0.00 0.08 1.00 3864 4958
## sd(First_Instance) 0.09 0.05 0.01 0.21 1.00 2433 4254
## sd(Pre_Onset_Prop) 0.13 0.08 0.01 0.32 1.00 2892 4758
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 6.31 0.22 5.88 6.76 1.00 8163 5714
## Median_Initial.c100 0.51 0.35 -0.17 1.22 1.00 7388 5979
## Vocab.c100 -0.07 0.03 -0.12 -0.02 1.00 8713 6752
## First_Instance -0.01 0.05 -0.10 0.08 1.00 9824 7461
## logfreq.c100 2.68 4.03 -5.26 10.65 1.00 7622 6460
## TargetProp -0.94 0.41 -1.77 -0.14 1.00 8277 5686
## Pre_Onset_Prop -0.15 0.11 -0.36 0.06 1.00 12940 7931
## Duration.c100 0.01 0.03 -0.06 0.07 1.00 6726 5682
## AoA.c100 1.24 1.34 -1.27 4.01 1.00 6530 5160
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.59 0.03 0.54 0.64 1.00 6315 6546
## ndt 142.45 9.82 121.21 159.78 1.00 7790 6668
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Add Interaction
m1 <- brm(RT ~ Median_Initial.c100*Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + AoA.c100 + Duration.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + + Duration.c100 + Pre_Onset_Prop + logfreq.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target), family="shifted_lognormal", file="Supp2/m1", data=RT_30mo, prior=prior(student_t(5,0,2), class=sd), chains=4, iter=5000, cores=8, save_all_pars=TRUE)
m1 <- add_criterion(m1, "loo")
summary(m1)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 * Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + AoA.c100 + Duration.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + +Duration.c100 + Pre_Onset_Prop + logfreq.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: RT_30mo (Number of observations: 1181)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.14 0.05 0.02 0.23 1.01 671
## sd(Median_Initial.c100) 0.99 0.32 0.27 1.57 1.00 1935
## sd(First_Instance) 0.10 0.06 0.01 0.21 1.00 1913
## sd(TargetProp) 0.16 0.10 0.01 0.36 1.00 679
## sd(Duration.c100) 0.04 0.02 0.00 0.09 1.00 2416
## sd(Pre_Onset_Prop) 0.14 0.09 0.01 0.34 1.00 1436
## sd(logfreq.c100) 2.24 2.00 0.07 7.63 1.00 4644
## sd(AoA.c100) 1.70 1.02 0.08 3.80 1.00 1935
## Tail_ESS
## sd(Intercept) 1019
## sd(Median_Initial.c100) 1548
## sd(First_Instance) 3664
## sd(TargetProp) 1807
## sd(Duration.c100) 4127
## sd(Pre_Onset_Prop) 2870
## sd(logfreq.c100) 5061
## sd(AoA.c100) 2540
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.07 0.05 0.00 0.17 1.00 2147 3524
## sd(Vocab.c100) 0.03 0.02 0.00 0.07 1.00 4031 3867
## sd(First_Instance) 0.09 0.05 0.00 0.20 1.00 2533 3806
## sd(Pre_Onset_Prop) 0.13 0.09 0.01 0.33 1.00 2731 3779
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat
## Intercept 6.31 0.23 5.86 6.79 1.00
## Median_Initial.c100 0.57 0.35 -0.13 1.26 1.00
## Vocab.c100 -0.08 0.03 -0.13 -0.03 1.00
## First_Instance -0.01 0.05 -0.10 0.08 1.00
## logfreq.c100 2.72 4.07 -5.49 10.73 1.00
## TargetProp -0.93 0.42 -1.82 -0.13 1.00
## Pre_Onset_Prop -0.15 0.11 -0.37 0.07 1.00
## AoA.c100 1.25 1.37 -1.36 4.03 1.00
## Duration.c100 0.01 0.03 -0.06 0.07 1.00
## Median_Initial.c100:Vocab.c100 0.35 0.20 -0.04 0.76 1.00
## Bulk_ESS Tail_ESS
## Intercept 7140 6308
## Median_Initial.c100 6425 6588
## Vocab.c100 7815 6995
## First_Instance 7742 6863
## logfreq.c100 6155 6131
## TargetProp 6616 6202
## Pre_Onset_Prop 10756 7744
## AoA.c100 5829 6179
## Duration.c100 5273 5806
## Median_Initial.c100:Vocab.c100 9045 7367
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.59 0.03 0.54 0.65 1.00 5099 6473
## ndt 142.80 10.05 121.19 160.46 1.00 5751 6202
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m1, "Median_Initial.c100:Vocab.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.35 0.2 0.02 0.69 23.88
## Post.Prob Star
## 1 0.96 *
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
hypothesis(m1, "Median_Initial.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.57 0.35 -0.02 1.15 16.95
## Post.Prob Star
## 1 0.94
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
tibble(m1_k = m1$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m1_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
1 observations had pareto ks above .7.
RT_30mo%>%
mutate(
m1_k = m1$criteria$loo$diagnostics$pareto_k
) %>%
filter(m1_k >= .69)
I have noticed that in some runs, this model has trouble – producing large R hat statistics, small effective sample sizes and Pareto’s Ks of 8 or so. It usually runs fine however and produces output similar to what is discussed in the paper.
m1b <- RT_30mo%>%
mutate(
m1_k = m1$criteria$loo$diagnostics$pareto_k
) %>%
filter(m1_k < .69) %>%
brm(RT ~ Median_Initial.c100*Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target), family="shifted_lognormal", file="Supp2/m1b", data=., prior=prior(student_t(5,0,2), class=sd), chains=4, iter=5000, cores=8, save_all_pars=TRUE)
summary(m1b)
## Warning: There were 1 divergent transitions after warmup. Increasing adapt_delta
## above 0.8 may help. See http://mc-stan.org/misc/warnings.html#divergent-
## transitions-after-warmup
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 * Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: . (Number of observations: 1180)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.15 0.05 0.02 0.24 1.00 800
## sd(Median_Initial.c100) 0.94 0.32 0.21 1.52 1.00 1921
## sd(First_Instance) 0.10 0.06 0.01 0.21 1.00 1892
## sd(TargetProp) 0.15 0.10 0.01 0.36 1.01 742
## sd(Pre_Onset_Prop) 0.14 0.09 0.01 0.33 1.00 1614
## sd(Duration.c100) 0.04 0.03 0.00 0.10 1.00 2587
## sd(logfreq.c100) 2.23 2.01 0.07 7.68 1.00 5148
## sd(AoA.c100) 1.85 1.06 0.11 3.97 1.01 2006
## Tail_ESS
## sd(Intercept) 942
## sd(Median_Initial.c100) 1642
## sd(First_Instance) 4084
## sd(TargetProp) 1880
## sd(Pre_Onset_Prop) 3315
## sd(Duration.c100) 4333
## sd(logfreq.c100) 5067
## sd(AoA.c100) 3424
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.07 0.05 0.00 0.17 1.00 2892 4612
## sd(Vocab.c100) 0.03 0.02 0.00 0.08 1.00 4346 5458
## sd(First_Instance) 0.09 0.05 0.00 0.20 1.00 3040 4492
## sd(Pre_Onset_Prop) 0.14 0.09 0.01 0.33 1.00 3317 4787
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat
## Intercept 6.31 0.22 5.90 6.77 1.00
## Median_Initial.c100 0.58 0.36 -0.13 1.29 1.00
## Vocab.c100 -0.08 0.03 -0.14 -0.03 1.00
## First_Instance -0.00 0.05 -0.10 0.09 1.00
## logfreq.c100 2.60 4.09 -5.29 10.71 1.00
## TargetProp -0.95 0.41 -1.82 -0.18 1.00
## Pre_Onset_Prop -0.15 0.11 -0.37 0.07 1.00
## Duration.c100 0.01 0.03 -0.06 0.07 1.00
## AoA.c100 1.27 1.37 -1.36 4.12 1.00
## Median_Initial.c100:Vocab.c100 0.31 0.20 -0.09 0.71 1.00
## Bulk_ESS Tail_ESS
## Intercept 7853 6685
## Median_Initial.c100 7943 6398
## Vocab.c100 8748 7361
## First_Instance 8754 7525
## logfreq.c100 7884 6583
## TargetProp 7728 6792
## Pre_Onset_Prop 12065 8018
## Duration.c100 6197 5287
## AoA.c100 6307 5017
## Median_Initial.c100:Vocab.c100 9485 6858
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.59 0.03 0.54 0.65 1.00 6365 7433
## ndt 143.85 10.09 122.10 161.64 1.00 7538 6987
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m1b, "Median_Initial.c100:Vocab.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.31 0.2 -0.03 0.65 14.77
## Post.Prob Star
## 1 0.94
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
hypothesis(m1b, "Median_Initial.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.58 0.36 0 1.17 19.28
## Post.Prob Star
## 1 0.95 *
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
m1b <- add_criterion(m1b, "loo")
tibble(m1b_k = m1b$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m1b_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
library(patchwork)
p1 <- plot(marginal_effects(m0, "Median_Initial.c100"), points=TRUE)
## Warning: Method 'marginal_effects' is deprecated. Please use
## 'conditional_effects' instead.
p1[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw()|
p1[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw() + ylim(c(200, 1000))
## Warning: Removed 81 rows containing missing values (geom_point).
p2 <- plot(marginal_effects(m1b, "Median_Initial.c100:Vocab.c100"), points=TRUE)
## Warning: Method 'marginal_effects' is deprecated. Please use
## 'conditional_effects' instead.
p2a <- p2[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw() +
scale_colour_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
scale_fill_discrete(name = "Vocab", labels = c("High", "Medium", "Low"))
p2b <- p2[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw() +
scale_colour_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
scale_fill_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
ylim(c(200, 1000))
m1 %>%
posterior_samples %>%
select("b_Median_Initial.c100", "b_Median_Initial.c100:Vocab.c100") %>%
mutate(
Below_Mean = b_Median_Initial.c100 - 1.28839*`b_Median_Initial.c100:Vocab.c100`,
At_Mean = b_Median_Initial.c100 - 0.1901011*`b_Median_Initial.c100:Vocab.c100`,
Above_Mean = b_Median_Initial.c100 + 0.9081879*`b_Median_Initial.c100:Vocab.c100`
) %>%
select(Below_Mean, At_Mean, Above_Mean) %>%
pivot_longer(everything()) %>%
group_by(name) %>%
mean_hdi()
remove(m1)
remove(m1b)
remove(m0)
Split dataset by high and low vocbaulary groups
low_only <- filter(RT_30mo, VocabSplit=="low")
high_only <- filter(RT_30mo, VocabSplit=="high")
m2 <- brm(RT ~ Median_Initial.c100 + First_Instance + logfreq.c100 + TargetProp + Pre_Onset_Prop + Duration.c100 + Vocab.c100+ AoA.c100+ (1 + Median_Initial.c100 + First_Instance + logfreq.c100 + Pre_Onset_Prop + TargetProp + Duration.c100 + AoA.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + Pre_Onset_Prop || Target), family="shifted_lognormal", data=high_only, chains=4, file="Supp2/m2", iter=5000, cores=8, save_all_pars=TRUE)
m2 <- add_criterion(m2, "loo")
## Automatically saving the model object in 'Supp2/m2.rds'
tibble(m2_k = m2$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m2_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
summary(m2)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 + First_Instance + logfreq.c100 + TargetProp + Pre_Onset_Prop + Duration.c100 + Vocab.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + logfreq.c100 + Pre_Onset_Prop + TargetProp + Duration.c100 + AoA.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + Pre_Onset_Prop || Target)
## Data: high_only (Number of observations: 611)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 52)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.13 0.07 0.01 0.26 1.00 1138
## sd(Median_Initial.c100) 0.91 0.45 0.08 1.77 1.00 2462
## sd(First_Instance) 0.09 0.06 0.00 0.23 1.00 2787
## sd(logfreq.c100) 6.27 5.59 0.17 19.42 1.00 2046
## sd(Pre_Onset_Prop) 0.23 0.14 0.01 0.51 1.00 1577
## sd(TargetProp) 0.19 0.12 0.01 0.44 1.00 1226
## sd(Duration.c100) 0.08 0.04 0.01 0.16 1.00 1928
## sd(AoA.c100) 1.95 1.31 0.07 4.81 1.00 2337
## Tail_ESS
## sd(Intercept) 2328
## sd(Median_Initial.c100) 3148
## sd(First_Instance) 4567
## sd(logfreq.c100) 3931
## sd(Pre_Onset_Prop) 3224
## sd(TargetProp) 2755
## sd(Duration.c100) 2225
## sd(AoA.c100) 3582
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.08 0.06 0.00 0.22 1.00 2943 4716
## sd(First_Instance) 0.13 0.08 0.01 0.31 1.00 2242 2942
## sd(Vocab.c100) 0.08 0.06 0.00 0.22 1.00 4017 4042
## sd(Pre_Onset_Prop) 0.15 0.11 0.01 0.40 1.00 3519 4356
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 6.40 0.32 5.79 7.04 1.00 6995 6401
## Median_Initial.c100 0.88 0.50 -0.10 1.87 1.00 5864 6078
## First_Instance -0.07 0.07 -0.20 0.07 1.00 7390 6651
## logfreq.c100 0.84 5.98 -11.25 12.59 1.00 5678 6010
## TargetProp -1.37 0.57 -2.55 -0.27 1.00 6634 6488
## Pre_Onset_Prop -0.11 0.17 -0.43 0.22 1.00 10133 7431
## Duration.c100 -0.00 0.05 -0.10 0.09 1.00 5093 5195
## Vocab.c100 0.04 0.11 -0.17 0.25 1.00 7034 7221
## AoA.c100 1.43 1.92 -2.25 5.30 1.00 5243 4953
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.64 0.04 0.56 0.72 1.00 4772 6137
## ndt 156.24 10.85 132.43 174.37 1.00 5767 6682
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m2, "Median_Initial.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.88 0.5 0.07 1.7 25.25
## Post.Prob Star
## 1 0.96 *
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
high_only%>%
mutate(
m1_k = m2$criteria$loo$diagnostics$pareto_k
) %>%
filter(m1_k > .7)
m2b <- high_only%>%
mutate(
m1_k = m2$criteria$loo$diagnostics$pareto_k
) %>%
filter(m1_k < .7) %>%
brm(RT ~ Median_Initial.c100+ Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target), family="shifted_lognormal", file="Supp2/m2b", data=., prior=prior(student_t(3,0,2), class=sd), chains=4, iter=5000, cores=8, save_all_pars=TRUE)
summary(m2b)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: . (Number of observations: 611)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 52)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.13 0.07 0.01 0.26 1.00 1275
## sd(Median_Initial.c100) 0.88 0.45 0.07 1.76 1.00 2266
## sd(First_Instance) 0.09 0.06 0.00 0.22 1.00 2824
## sd(TargetProp) 0.19 0.12 0.01 0.44 1.00 1506
## sd(Pre_Onset_Prop) 0.23 0.14 0.01 0.51 1.00 1517
## sd(Duration.c100) 0.08 0.04 0.01 0.16 1.00 2506
## sd(logfreq.c100) 4.84 5.04 0.13 17.94 1.00 2688
## sd(AoA.c100) 1.78 1.23 0.08 4.54 1.00 2961
## Tail_ESS
## sd(Intercept) 3084
## sd(Median_Initial.c100) 2726
## sd(First_Instance) 4196
## sd(TargetProp) 3467
## sd(Pre_Onset_Prop) 3348
## sd(Duration.c100) 3123
## sd(logfreq.c100) 3781
## sd(AoA.c100) 4062
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.08 0.06 0.00 0.22 1.00 3200 4603
## sd(Vocab.c100) 0.08 0.06 0.00 0.22 1.00 3721 4477
## sd(First_Instance) 0.13 0.08 0.01 0.31 1.00 2705 3770
## sd(Pre_Onset_Prop) 0.15 0.11 0.01 0.41 1.00 3591 4552
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 6.41 0.32 5.78 7.07 1.00 8054 6735
## Median_Initial.c100 0.88 0.49 -0.06 1.86 1.00 6209 6132
## Vocab.c100 0.04 0.11 -0.17 0.24 1.00 9171 7577
## First_Instance -0.07 0.07 -0.21 0.07 1.00 9061 6896
## logfreq.c100 0.68 5.86 -11.15 12.03 1.00 6677 6860
## TargetProp -1.38 0.59 -2.59 -0.24 1.00 7328 6795
## Pre_Onset_Prop -0.11 0.17 -0.45 0.23 1.00 10618 7939
## Duration.c100 -0.00 0.05 -0.10 0.09 1.00 5589 5545
## AoA.c100 1.41 1.93 -2.31 5.37 1.00 5207 5288
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.64 0.04 0.56 0.72 1.00 4946 5435
## ndt 155.95 11.03 131.80 174.59 1.00 6192 5805
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m2b, "Median_Initial.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.88 0.49 0.09 1.69 29.4
## Post.Prob Star
## 1 0.97 *
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
Low vocabulary participants.
m3 <- brm(RT ~ Median_Initial.c100 + First_Instance+ logfreq.c100 + Vocab.c100 + Pre_Onset_Prop + TargetProp + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + logfreq.c100 + Duration.c100+ Pre_Onset_Prop + TargetProp + AoA.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + Pre_Onset_Prop || Target), family="shifted_lognormal", data=low_only, chains=4, iter=1000, file="Supp2/m3", cores=8, save_all_pars=TRUE)
m3 <- add_criterion(m3, "loo")
## Automatically saving the model object in 'Supp2/m3.rds'
tibble(m3_k = m3$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m3_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
summary(m3)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 + First_Instance + logfreq.c100 + Vocab.c100 + Pre_Onset_Prop + TargetProp + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + logfreq.c100 + Duration.c100 + Pre_Onset_Prop + TargetProp + AoA.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + Pre_Onset_Prop || Target)
## Data: low_only (Number of observations: 570)
## Samples: 4 chains, each with iter = 1000; warmup = 500; thin = 1;
## total post-warmup samples = 2000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 48)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.14 0.06 0.01 0.25 1.01 261
## sd(Median_Initial.c100) 1.05 0.43 0.16 1.88 1.01 321
## sd(First_Instance) 0.12 0.07 0.01 0.26 1.01 391
## sd(logfreq.c100) 2.03 1.80 0.07 6.68 1.00 1275
## sd(Duration.c100) 0.03 0.02 0.00 0.09 1.00 701
## sd(Pre_Onset_Prop) 0.13 0.09 0.00 0.36 1.01 330
## sd(TargetProp) 0.17 0.11 0.01 0.40 1.01 232
## sd(AoA.c100) 1.65 1.12 0.07 4.01 1.00 626
## Tail_ESS
## sd(Intercept) 356
## sd(Median_Initial.c100) 234
## sd(First_Instance) 597
## sd(logfreq.c100) 887
## sd(Duration.c100) 492
## sd(Pre_Onset_Prop) 603
## sd(TargetProp) 726
## sd(AoA.c100) 929
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.07 0.05 0.00 0.21 1.01 439 650
## sd(First_Instance) 0.07 0.05 0.00 0.18 1.01 852 708
## sd(Vocab.c100) 0.03 0.02 0.00 0.09 1.00 889 1143
## sd(Pre_Onset_Prop) 0.16 0.11 0.01 0.42 1.01 502 810
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 6.09 0.29 5.54 6.68 1.01 1035 1081
## Median_Initial.c100 0.12 0.44 -0.77 0.93 1.00 998 1235
## First_Instance 0.05 0.06 -0.06 0.17 1.00 1839 1540
## logfreq.c100 3.95 5.21 -6.39 14.80 1.00 1039 1166
## Vocab.c100 -0.06 0.04 -0.14 0.03 1.00 1189 1478
## Pre_Onset_Prop -0.18 0.15 -0.48 0.13 1.00 1728 1544
## TargetProp -0.47 0.53 -1.60 0.53 1.01 972 899
## Duration.c100 0.03 0.04 -0.05 0.11 1.01 847 875
## AoA.c100 1.16 1.74 -2.02 4.62 1.01 903 795
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.57 0.04 0.50 0.65 1.01 908 1081
## ndt 142.05 15.75 106.90 168.25 1.00 873 1160
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m3, "Median_Initial.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.12 0.44 -0.61 0.77 1.64
## Post.Prob Star
## 1 0.62
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
m3b <- low_only%>%
mutate(
m1_k = m3$criteria$loo$diagnostics$pareto_k
) %>%
filter(m1_k < .7) %>%
brm(RT ~ Median_Initial.c100+ Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop +Duration.c100 + logfreq.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target), family="shifted_lognormal", file="Supp2/m3b", data=., prior=prior(student_t(3,0,2), class=sd), chains=4, iter=1000, cores=8, save_all_pars=TRUE)
summary(m3b)
## Family: shifted_lognormal
## Links: mu = identity; sigma = identity; ndt = identity
## Formula: RT ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + logfreq.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: . (Number of observations: 570)
## Samples: 4 chains, each with iter = 1000; warmup = 500; thin = 1;
## total post-warmup samples = 2000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 48)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.14 0.06 0.01 0.25 1.04 169
## sd(Median_Initial.c100) 1.06 0.45 0.12 1.91 1.01 431
## sd(First_Instance) 0.13 0.07 0.01 0.26 1.02 336
## sd(TargetProp) 0.17 0.11 0.01 0.40 1.02 243
## sd(Pre_Onset_Prop) 0.14 0.09 0.01 0.35 1.00 528
## sd(Duration.c100) 0.03 0.02 0.00 0.08 1.00 920
## sd(logfreq.c100) 1.72 1.58 0.05 5.84 1.00 1175
## sd(AoA.c100) 1.50 1.04 0.06 3.86 1.01 643
## Tail_ESS
## sd(Intercept) 358
## sd(Median_Initial.c100) 385
## sd(First_Instance) 621
## sd(TargetProp) 728
## sd(Pre_Onset_Prop) 731
## sd(Duration.c100) 1136
## sd(logfreq.c100) 836
## sd(AoA.c100) 893
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.07 0.05 0.00 0.19 1.00 676 844
## sd(Vocab.c100) 0.03 0.03 0.00 0.09 1.00 899 1085
## sd(First_Instance) 0.07 0.05 0.00 0.18 1.01 1101 1397
## sd(Pre_Onset_Prop) 0.16 0.11 0.01 0.41 1.00 655 707
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 6.09 0.28 5.55 6.63 1.00 1507 1510
## Median_Initial.c100 0.13 0.44 -0.71 1.02 1.00 1511 1188
## Vocab.c100 -0.06 0.04 -0.14 0.02 1.00 1405 1304
## First_Instance 0.05 0.06 -0.06 0.17 1.00 2084 1402
## logfreq.c100 3.48 4.99 -6.52 13.48 1.00 1484 1162
## TargetProp -0.48 0.51 -1.50 0.51 1.00 1523 1539
## Pre_Onset_Prop -0.18 0.16 -0.50 0.13 1.00 2255 1544
## Duration.c100 0.03 0.04 -0.05 0.11 1.00 1384 983
## AoA.c100 1.04 1.65 -2.13 4.25 1.00 1513 1475
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 0.57 0.04 0.50 0.65 1.00 992 977
## ndt 142.38 15.19 110.45 167.80 1.00 1285 1284
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
remove(m2)
remove(m2b)
remove(m3)
remove(m3b)
Proportion of Looks to Target
LT_30mo$Prop2 <- ((LT_30mo$Prop)*(LT_30mo$SamplesTotal-1) + 1/2)/LT_30mo$SamplesTotal
LT_30mo <- mutate(LT_30mo,
Vocab.c100 = (Vocab.c - median(Vocab.c))/100,
AoA.c100 = (Percent_75_Amer - mean(Percent_75_Amer))/100,
Median_Initial.c100 = Median_Initial.c/100,
logfreq.c100 = logfreq.c/100,
Duration.c100 = (Duration - mean(Duration))/100)
Get descriptive statistics for proportions
LT_30mo %>%
group_by(Target) %>%
summarise(
Prop_mean = mean(Prop, na.rm=TRUE),
Prop_sd = sd(Prop, na.rm=TRUE),
)
## `summarise()` ungrouping output (override with `.groups` argument)
m4 <- brm(Prop2 ~ Median_Initial.c100 + Vocab.c100 + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + TargetProp + Pre_Onset_Prop + logfreq.c100 + Duration.c100 + First_Instance + AoA.c100|| ParticipantName) + (1 + First_Instance + Vocab.c100 + Pre_Onset_Prop || Target),prior=prior(student_t(5,0,2), class=sd), file="Supp2/m4", family=Beta("logit", "log"), data=LT_30mo, chains=4, cores=8, iter=5000, save_all_pars=TRUE)
m4 <- add_criterion(m4, "loo")
## Automatically saving the model object in 'Supp2/m4.rds'
tibble(m4_k = m4$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m4_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
loo(m4)
##
## Computed from 10000 by 3376 log-likelihood matrix
##
## Estimate SE
## elpd_loo 2585.3 77.0
## p_loo 95.8 3.1
## looic -5170.7 154.1
## ------
## Monte Carlo SE of elpd_loo is 0.1.
##
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
summary(m4)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 + Vocab.c100 + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + TargetProp + Pre_Onset_Prop + logfreq.c100 + Duration.c100 + First_Instance + AoA.c100 || ParticipantName) + (1 + First_Instance + Vocab.c100 + Pre_Onset_Prop || Target)
## Data: LT_30mo (Number of observations: 3376)
## Samples: 4 chains, each with iter = 5000; warmup = 2500; thin = 1;
## total post-warmup samples = 10000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.21 0.04 0.11 0.28 1.00 833
## sd(Median_Initial.c100) 0.31 0.22 0.01 0.83 1.00 2766
## sd(TargetProp) 0.12 0.09 0.01 0.32 1.00 719
## sd(Pre_Onset_Prop) 0.09 0.06 0.00 0.24 1.00 1348
## sd(logfreq.c100) 1.84 1.55 0.08 5.90 1.00 5837
## sd(Duration.c100) 0.02 0.01 0.00 0.05 1.00 4125
## sd(First_Instance) 0.07 0.05 0.00 0.18 1.00 1883
## sd(AoA.c100) 1.04 0.76 0.04 2.81 1.00 3262
## Tail_ESS
## sd(Intercept) 623
## sd(Median_Initial.c100) 3086
## sd(TargetProp) 898
## sd(Pre_Onset_Prop) 2278
## sd(logfreq.c100) 5057
## sd(Duration.c100) 3662
## sd(First_Instance) 2939
## sd(AoA.c100) 4352
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.08 0.05 0.00 0.20 1.00 1584 2940
## sd(First_Instance) 0.08 0.05 0.00 0.19 1.00 2922 3922
## sd(Vocab.c100) 0.02 0.01 0.00 0.06 1.00 6310 4854
## sd(Pre_Onset_Prop) 0.13 0.08 0.01 0.31 1.00 1695 3143
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept -0.88 0.26 -1.40 -0.38 1.00 4285 4464
## Median_Initial.c100 -0.57 0.37 -1.31 0.16 1.00 5151 5413
## Vocab.c100 0.01 0.03 -0.05 0.06 1.00 5339 6108
## logfreq.c100 0.47 4.77 -9.46 9.48 1.00 4199 4141
## First_Instance 0.04 0.04 -0.05 0.12 1.00 7933 6033
## TargetProp 2.44 0.47 1.55 3.40 1.00 4077 4619
## Pre_Onset_Prop 1.34 0.10 1.15 1.54 1.00 8134 6734
## Duration.c100 0.00 0.03 -0.07 0.07 1.00 4212 4480
## AoA.c100 -1.08 1.60 -4.42 1.98 1.00 3475 4547
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 2.47 0.06 2.35 2.59 1.00 9433 6657
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pp_check(m4)
## Using 10 posterior samples for ppc type 'dens_overlay' by default.
p3 <- plot(conditional_effects(m4, "Median_Initial.c100"), theme(axis.title.x=element_text(size=2000)), points=TRUE)
p3[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + ylab("Proportion of Looks to Target") |
p3[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)")+ ylab("Proportion of Looks to Target") + ylim(.5, 1)
## Warning: Removed 429 rows containing missing values (geom_point).
hypothesis(m4, "Median_Initial.c100 < 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... < 0 -0.57 0.37 -1.16 0.03 16.09
## Post.Prob Star
## 1 0.94
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
m5 <- brm(Prop2 ~ Median_Initial.c100*Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100+ (1 + Median_Initial.c100 +First_Instance + TargetProp + logfreq.c100 + Pre_Onset_Prop + Duration.c100 + AoA.c100|| ParticipantName) + (1 + Vocab.c100 +First_Instance + Pre_Onset_Prop || Target), ,prior=prior(student_t(5,0,2), class=sd), family=Beta("logit", "log"), data=LT_30mo, chains=4, file="Supp2/m5", iter=2000, cores=8, save_all_pars=TRUE)
m5 <- add_criterion(m5, "loo")
## Automatically saving the model object in 'Supp2/m5.rds'
pp_check(m5)
## Using 10 posterior samples for ppc type 'dens_overlay' by default.
tibble(m5_k = m5$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m5_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
summary(m5)
## Warning: There were 4 divergent transitions after warmup. Increasing adapt_delta
## above 0.8 may help. See http://mc-stan.org/misc/warnings.html#divergent-
## transitions-after-warmup
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 * Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + TargetProp + logfreq.c100 + Pre_Onset_Prop + Duration.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: LT_30mo (Number of observations: 3376)
## Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup samples = 4000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 100)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.21 0.04 0.12 0.28 1.01 504
## sd(Median_Initial.c100) 0.32 0.23 0.01 0.84 1.00 1471
## sd(First_Instance) 0.07 0.05 0.00 0.17 1.00 861
## sd(TargetProp) 0.11 0.08 0.01 0.31 1.02 357
## sd(logfreq.c100) 1.80 1.56 0.07 5.89 1.00 2246
## sd(Pre_Onset_Prop) 0.09 0.06 0.00 0.23 1.00 707
## sd(Duration.c100) 0.02 0.01 0.00 0.05 1.00 2020
## sd(AoA.c100) 1.04 0.77 0.04 2.84 1.00 1244
## Tail_ESS
## sd(Intercept) 350
## sd(Median_Initial.c100) 1600
## sd(First_Instance) 1710
## sd(TargetProp) 356
## sd(logfreq.c100) 1911
## sd(Pre_Onset_Prop) 1141
## sd(Duration.c100) 1440
## sd(AoA.c100) 1441
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.08 0.05 0.00 0.19 1.00 751 1045
## sd(Vocab.c100) 0.02 0.02 0.00 0.06 1.00 2309 2133
## sd(First_Instance) 0.08 0.05 0.00 0.19 1.00 1145 1301
## sd(Pre_Onset_Prop) 0.14 0.08 0.01 0.31 1.00 906 1344
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat
## Intercept -0.88 0.26 -1.44 -0.39 1.00
## Median_Initial.c100 -0.56 0.37 -1.27 0.19 1.00
## Vocab.c100 0.01 0.03 -0.05 0.06 1.00
## First_Instance 0.04 0.04 -0.06 0.12 1.00
## logfreq.c100 0.36 4.53 -9.05 8.97 1.00
## TargetProp 2.46 0.47 1.56 3.44 1.00
## Pre_Onset_Prop 1.34 0.10 1.13 1.53 1.00
## Duration.c100 0.00 0.03 -0.06 0.07 1.00
## AoA.c100 -1.05 1.52 -4.07 1.84 1.00
## Median_Initial.c100:Vocab.c100 0.10 0.18 -0.26 0.46 1.00
## Bulk_ESS Tail_ESS
## Intercept 2046 1676
## Median_Initial.c100 2435 2394
## Vocab.c100 2152 2610
## First_Instance 3016 2443
## logfreq.c100 2352 2249
## TargetProp 1954 1680
## Pre_Onset_Prop 3000 1966
## Duration.c100 2225 1805
## AoA.c100 2030 1999
## Median_Initial.c100:Vocab.c100 4063 2504
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 2.47 0.06 2.36 2.59 1.00 4808 2859
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m5, "Median_Initial.c100:Vocab.c100 > 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... > 0 0.1 0.18 -0.19 0.39 2.41
## Post.Prob Star
## 1 0.71
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
hypothesis(m5, "Median_Initial.c100 < 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... < 0 -0.56 0.37 -1.16 0.04 15.53
## Post.Prob Star
## 1 0.94
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
p1 <- plot(marginal_effects(m4, "Median_Initial.c100"))
## Warning: Method 'marginal_effects' is deprecated. Please use
## 'conditional_effects' instead.
p1[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw()
p2 <- plot(marginal_effects(m5, "Median_Initial.c100:Vocab.c100"), points=TRUE)
## Warning: Method 'marginal_effects' is deprecated. Please use
## 'conditional_effects' instead.
p5<- p2[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw() +
scale_colour_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
scale_fill_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
ylab("Proportion of Looks to Target")
p6<- p2[[1]] + xlab("Onset Neighbourhood Density \n(Centred and divided by 100)") + theme_bw() +
scale_colour_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
scale_fill_discrete(name = "Vocab", labels = c("High", "Medium", "Low")) +
ylab("Proportion of Looks to Target") + ylim(.5, 1)
p5 + p6 + plot_layout(guides = "collect")
## Warning: Removed 429 rows containing missing values (geom_point).
Split by vocabulary
low_only <- filter(LT_30mo, VocabSplit == "low")
high_only <- filter(LT_30mo, VocabSplit == "high")
m6 <- brm(Prop2 ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 +First_Instance + logfreq.c + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 +First_Instance + Pre_Onset_Prop || Target), family=Beta("logit", "log"), data=high_only, iter=2000, file="Supp2/m6", chains=4, cores=8, save_all_pars=TRUE)
m6 <- add_criterion(m6, "loo")
## Automatically saving the model object in 'Supp2/m6.rds'
summary(m6)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + logfreq.c + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: high_only (Number of observations: 1722)
## Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup samples = 4000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 52)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.18 0.07 0.03 0.30 1.01 439
## sd(Median_Initial.c100) 0.36 0.27 0.01 0.99 1.00 1587
## sd(First_Instance) 0.06 0.05 0.00 0.17 1.00 1698
## sd(logfreq.c) 0.07 0.05 0.00 0.17 1.01 877
## sd(TargetProp) 0.16 0.11 0.01 0.41 1.01 391
## sd(Pre_Onset_Prop) 0.11 0.08 0.00 0.31 1.00 812
## sd(Duration.c100) 0.03 0.02 0.00 0.07 1.00 1978
## sd(AoA.c100) 1.34 0.98 0.06 3.61 1.00 1410
## Tail_ESS
## sd(Intercept) 573
## sd(Median_Initial.c100) 1639
## sd(First_Instance) 1903
## sd(logfreq.c) 1182
## sd(TargetProp) 1127
## sd(Pre_Onset_Prop) 1582
## sd(Duration.c100) 2148
## sd(AoA.c100) 1475
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.06 0.04 0.00 0.16 1.00 1772 2284
## sd(Vocab.c100) 0.10 0.06 0.01 0.24 1.00 1183 1785
## sd(First_Instance) 0.10 0.07 0.01 0.25 1.00 1189 1428
## sd(Pre_Onset_Prop) 0.08 0.06 0.00 0.23 1.00 1868 2197
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept -0.96 0.28 -1.53 -0.40 1.00 2397 2907
## Median_Initial.c100 -0.34 0.41 -1.16 0.48 1.00 2333 2254
## Vocab.c100 0.06 0.11 -0.15 0.28 1.00 2577 2668
## First_Instance 0.11 0.06 -0.00 0.24 1.00 4046 3137
## logfreq.c100 3.41 5.29 -6.67 14.16 1.00 2407 2297
## TargetProp 2.42 0.50 1.44 3.44 1.00 2243 2692
## Pre_Onset_Prop 1.38 0.14 1.11 1.66 1.00 4199 2960
## Duration.c100 -0.00 0.04 -0.08 0.07 1.00 2194 2528
## AoA.c100 0.24 1.74 -3.19 3.75 1.00 2178 2011
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 2.49 0.09 2.33 2.67 1.00 3846 2901
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
tibble(m6_k = m6$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m6_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
#saveRDS(m6, "Z:/Analyses/LWL_30mt_after_01_10_19/Subgroup_Analyses/m6.Rds")
summary(m6)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + logfreq.c + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: high_only (Number of observations: 1722)
## Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup samples = 4000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 52)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.18 0.07 0.03 0.30 1.01 439
## sd(Median_Initial.c100) 0.36 0.27 0.01 0.99 1.00 1587
## sd(First_Instance) 0.06 0.05 0.00 0.17 1.00 1698
## sd(logfreq.c) 0.07 0.05 0.00 0.17 1.01 877
## sd(TargetProp) 0.16 0.11 0.01 0.41 1.01 391
## sd(Pre_Onset_Prop) 0.11 0.08 0.00 0.31 1.00 812
## sd(Duration.c100) 0.03 0.02 0.00 0.07 1.00 1978
## sd(AoA.c100) 1.34 0.98 0.06 3.61 1.00 1410
## Tail_ESS
## sd(Intercept) 573
## sd(Median_Initial.c100) 1639
## sd(First_Instance) 1903
## sd(logfreq.c) 1182
## sd(TargetProp) 1127
## sd(Pre_Onset_Prop) 1582
## sd(Duration.c100) 2148
## sd(AoA.c100) 1475
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.06 0.04 0.00 0.16 1.00 1772 2284
## sd(Vocab.c100) 0.10 0.06 0.01 0.24 1.00 1183 1785
## sd(First_Instance) 0.10 0.07 0.01 0.25 1.00 1189 1428
## sd(Pre_Onset_Prop) 0.08 0.06 0.00 0.23 1.00 1868 2197
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept -0.96 0.28 -1.53 -0.40 1.00 2397 2907
## Median_Initial.c100 -0.34 0.41 -1.16 0.48 1.00 2333 2254
## Vocab.c100 0.06 0.11 -0.15 0.28 1.00 2577 2668
## First_Instance 0.11 0.06 -0.00 0.24 1.00 4046 3137
## logfreq.c100 3.41 5.29 -6.67 14.16 1.00 2407 2297
## TargetProp 2.42 0.50 1.44 3.44 1.00 2243 2692
## Pre_Onset_Prop 1.38 0.14 1.11 1.66 1.00 4199 2960
## Duration.c100 -0.00 0.04 -0.08 0.07 1.00 2194 2528
## AoA.c100 0.24 1.74 -3.19 3.75 1.00 2178 2011
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 2.49 0.09 2.33 2.67 1.00 3846 2901
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
hypothesis(m6, "Median_Initial.c100 < 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... < 0 -0.34 0.41 -1 0.34 4.04
## Post.Prob Star
## 1 0.8
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.
m7 <- brm(Prop2 ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100+ (1 + Median_Initial.c100 +First_Instance + logfreq.c100 + TargetProp + Pre_Onset_Prop + Duration.c100+ AoA.c100|| ParticipantName) + (1 + Vocab.c100 +First_Instance + Pre_Onset_Prop || Target), family=Beta("logit", "log"),prior=prior(student_t(5,0,2), class=sd), data=low_only, chains=4, file="Supp2/m7", iter=2000, cores=8, save_all_pars=TRUE)
m7 <- add_criterion(m7, "loo")
## Automatically saving the model object in 'Supp2/m7.rds'
summary(m7)
## Family: beta
## Links: mu = logit; phi = identity
## Formula: Prop2 ~ Median_Initial.c100 + Vocab.c100 + First_Instance + logfreq.c100 + First_Instance + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 + (1 + Median_Initial.c100 + First_Instance + logfreq.c100 + TargetProp + Pre_Onset_Prop + Duration.c100 + AoA.c100 || ParticipantName) + (1 + Vocab.c100 + First_Instance + Pre_Onset_Prop || Target)
## Data: low_only (Number of observations: 1654)
## Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup samples = 4000
##
## Group-Level Effects:
## ~ParticipantName (Number of levels: 48)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## sd(Intercept) 0.19 0.07 0.03 0.31 1.01 584
## sd(Median_Initial.c100) 0.53 0.35 0.02 1.31 1.00 1363
## sd(First_Instance) 0.15 0.08 0.01 0.31 1.00 938
## sd(logfreq.c100) 1.83 1.62 0.05 5.99 1.00 2383
## sd(TargetProp) 0.17 0.12 0.01 0.42 1.01 621
## sd(Pre_Onset_Prop) 0.13 0.09 0.01 0.33 1.00 843
## sd(Duration.c100) 0.03 0.02 0.00 0.09 1.00 2374
## sd(AoA.c100) 1.30 0.96 0.05 3.56 1.00 1786
## Tail_ESS
## sd(Intercept) 595
## sd(Median_Initial.c100) 1958
## sd(First_Instance) 1377
## sd(logfreq.c100) 1408
## sd(TargetProp) 1306
## sd(Pre_Onset_Prop) 1821
## sd(Duration.c100) 1836
## sd(AoA.c100) 2002
##
## ~Target (Number of levels: 18)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 0.10 0.07 0.01 0.25 1.00 1007 1489
## sd(Vocab.c100) 0.03 0.03 0.00 0.09 1.00 2458 2333
## sd(First_Instance) 0.11 0.07 0.01 0.25 1.00 1206 1504
## sd(Pre_Onset_Prop) 0.17 0.11 0.01 0.41 1.00 1044 1458
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept -0.83 0.34 -1.56 -0.16 1.00 2262 2243
## Median_Initial.c100 -0.77 0.50 -1.76 0.23 1.00 2818 2869
## Vocab.c100 -0.01 0.05 -0.11 0.09 1.00 3122 2820
## First_Instance -0.04 0.07 -0.18 0.09 1.00 3788 2888
## logfreq.c100 -0.94 6.04 -13.15 10.81 1.00 2475 2704
## TargetProp 2.45 0.60 1.31 3.71 1.00 2156 2585
## Pre_Onset_Prop 1.28 0.14 0.99 1.55 1.00 4241 2909
## Duration.c100 0.01 0.05 -0.08 0.10 1.00 2359 2310
## AoA.c100 -1.86 2.09 -6.16 2.20 1.00 2356 2460
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## phi 2.50 0.09 2.33 2.68 1.00 4717 2827
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
tibble(m7_k = m7$criteria$loo$diagnostics$pareto_k) %>%
ggplot(aes(x=m7_k)) +
geom_vline(xintercept=.5, linetype=2) +
stat_dots()
hypothesis(m7, "Median_Initial.c100 < 0")
## Hypothesis Tests for class b:
## Hypothesis Estimate Est.Error CI.Lower CI.Upper Evid.Ratio
## 1 (Median_Initial.c... < 0 -0.77 0.5 -1.58 0.04 15.46
## Post.Prob Star
## 1 0.94
## ---
## 'CI': 90%-CI for one-sided and 95%-CI for two-sided hypotheses.
## '*': For one-sided hypotheses, the posterior probability exceeds 95%;
## for two-sided hypotheses, the value tested against lies outside the 95%-CI.
## Posterior probabilities of point hypotheses assume equal prior probabilities.