Replication of HV versus LV conditions
We will run the same set of analsyes as above with data from the two new sets of participants in these conditions, running the same set of glmer() followed by BF analsyes.
Glmers will have the same fixed effects and random effects above, although in the case of non converegence we will reduce the random slopes structure as follows, stopping when one is found that converged:
TRAINING:
FIRST: (postp.ct*session.ct|participant) THEN : (postp.ct*session.ct||participant) THEN: (postp.ct+session.ct||participant) THEN: (postp.ct||participant) AND/OR (session.ct||participant) THEN: (1|participant)
TESTING:
FIRST (postp.ct|participant) THEN: (postp.ct||participant)
Bayes factor analyses will be conducted as before, except that we will not inform using values from within the same data but instead values coming from the previous data (call it dataA). In general, the values we use to inform H1 will therefore be identical to those above - except that whererever we found clear evidence of an effect in in dataA the estimate of the effect from that model is the most direct estimate of our effect.
All the values are given in the table below (those with *** differ from those used above)
analysis = c(rep("Training", 12), rep("Testing Main", 6), rep("Testing (WORD ORDER)", 4),rep("Testing (SPATIAL)", 6))
estimate_of_sd = c( adjusted.coeffs.train.lmer["(Intercept)", "Estimate" ],
summary(train.lmer)$coefficients["condition.ct", "Estimate" ],
summary(train.lmer)$coefficients["postp.ct", "Estimate" ],
adjusted.coeffs.train.lmer["(Intercept)", "Estimate" ],
summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-log(0.25/(1-0.25)),
summary(train.lmer)$coefficients["postp.ct", "Estimate" ]-log(0.25/(1-0.25)),
summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-log(0.25/(1-0.25)),
summary(train.lmer)$coefficients["postp.ct", "Estimate" ]-log(0.25/(1-0.25)),
(summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-log(0.25/(1-0.25)))*2,
(summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-log(0.25/(1-0.25)))*2,
adjusted.coeffs.train.lmer.a["conditionhigh_variability","Estimate" ],
adjusted.coeffs.train.lmer.a["conditionlow_variability","Estimate" ],
adjusted.coeffs.test.lmer["(Intercept)", "Estimate" ],
summary(test.lmer)$coefficients["condition.ct", "Estimate" ],
summary(train.lmer)$coefficients["postp.ct", "Estimate" ],
summary(test.lmer)$coefficients["condition.ct", "Estimate" ]- log(0.25/(1-0.25)),
adjusted.coeffs.test.lmer.a["conditionhigh_variability", "Estimate" ] ,
adjusted.coeffs.test.lmer.a["conditionlow_variability", "Estimate" ] ,
summary(test.lmer.q2)$coefficients["(Intercept)", "Estimate"],
summary( test.lmer.q2)$coefficients["(Intercept)", "Estimate" ],
summary(train.lmer)$coefficients["postp.ct", "Estimate" ],
summary( test.lmer.q2)$coefficients["(Intercept)", "Estimate" ]*2,
summary(test.lmer.q3)$coefficients["(Intercept)", "Estimate"],
summary(test.lmer.q3)$coefficients["condition.ct", "Estimate"],
summary(train.lmer)$coefficients["postp.ct", "Estimate" ],
summary(test.lmer.q3)$coefficients["condition.ct", "Estimate" ],
summary(test.lmer.q3.a)$coefficients["conditionhigh_variability", "Estimate" ],
summary(test.lmer.q3.a)$coefficients["conditionhigh_variability", "Estimate" ])
coefficient = c( "(Intercept)",
"condition.ct",
"postp.ct",
"session.ct",
"condition.ct:postp.ct",
"condition.ct:postp.ct",
"condition.ct:session.ct",
"postp.ct:session.ct",
"condition.ct:postp.ct:session.ct",
"condition.ct:postp.ct:session.ct",
"conditionhigh_variability",
"conditionlow_variability",
"(Intercept)",
"condition.ct",
"postp.ct",
"condition.ct:postp.ct",
"conditionhigh_variability",
"conditionlow_variability",
"(Intercept)",
"condition.ct",
"postp.ct",
"condition.ct:postp.ct",
"(Intercept)",
"condition.ct",
"postp.ct",
"condition.ct:postp.ct",
"conditionhigh_variability",
"conditionlow_variability")
h1_motivation = c( "adjusted intercept from dataA model**",
"condition from dataA model**",
"postp from dataA model**",
"adjusted intercept (i.e. minus chance) from dataA model",
"condition minus chance from dataA model",
"postp minus chance from dataA model",
"condition minus chance from dataA model",
"postp minus chance from dataA model",
"twice condition minus chance from dataA model",
"twice postp minus chance",
"adjusted hv intercept from dataA model**",
"adjusted lv intercept from dataA model**",
"adjusted intercept from dataA model",
"condition from dataA model**",
"estimate of Spatial Postposition in training from dataA model",
"condition minus chance from dataA model",
"adjusted hv intercept from dataA model**",
"adjusted lv intercept from dataA model**",
"intercept from dataA model**",
"intercept from dataA model",
"estimate of Spatial Postposition in training from dataA model",
"condition from dataA model",
"intercept from dataA model**",
"condition from dataA model**",
"estimate of Spatial Postposition in training from dataA model",
"conditionfrom dataA model",
"adjusted hv intercept from dataA model**",
"adjusted lv intercept from dataA model**")
kable(data.frame(cbind(analysis, coefficient , estimate_of_sd, h1_motivation)))
| Training |
(Intercept) |
1.47292504032035 |
adjusted intercept from dataA model** |
| Training |
condition.ct |
1.30888780266562 |
condition from dataA model** |
| Training |
postp.ct |
0.644889129083052 |
postp from dataA model** |
| Training |
session.ct |
1.47292504032035 |
adjusted intercept (i.e. minus chance) from dataA model |
| Training |
condition.ct:postp.ct |
2.40750009133373 |
condition minus chance from dataA model |
| Training |
condition.ct:postp.ct |
1.74350141775116 |
postp minus chance from dataA model |
| Training |
condition.ct:session.ct |
2.40750009133373 |
condition minus chance from dataA model |
| Training |
postp.ct:session.ct |
1.74350141775116 |
postp minus chance from dataA model |
| Training |
condition.ct:postp.ct:session.ct |
4.81500018266746 |
twice condition minus chance from dataA model |
| Training |
condition.ct:postp.ct:session.ct |
4.81500018266746 |
twice postp minus chance |
| Training |
conditionhigh_variability |
0.864900778401958 |
adjusted hv intercept from dataA model** |
| Training |
conditionlow_variability |
2.17379023076295 |
adjusted lv intercept from dataA model** |
| Testing Main |
(Intercept) |
0.760963702361891 |
adjusted intercept from dataA model |
| Testing Main |
condition.ct |
0.716396139915893 |
condition from dataA model** |
| Testing Main |
postp.ct |
0.644889129083052 |
estimate of Spatial Postposition in training from dataA model |
| Testing Main |
condition.ct:postp.ct |
1.815008428584 |
condition minus chance from dataA model |
| Testing Main |
conditionhigh_variability |
1.0944746861169 |
adjusted hv intercept from dataA model** |
| Testing Main |
conditionlow_variability |
0.378077621797879 |
adjusted lv intercept from dataA model** |
| Testing (WORD ORDER) |
(Intercept) |
1.62064756070148 |
intercept from dataA model** |
| Testing (WORD ORDER) |
condition.ct |
1.62064756070148 |
intercept from dataA model |
| Testing (WORD ORDER) |
postp.ct |
0.644889129083052 |
estimate of Spatial Postposition in training from dataA model |
| Testing (WORD ORDER) |
condition.ct:postp.ct |
3.24129512140297 |
condition from dataA model |
| Testing (SPATIAL) |
(Intercept) |
0.422895916776066 |
intercept from dataA model** |
| Testing (SPATIAL) |
condition.ct |
0.806330045035369 |
condition from dataA model** |
| Testing (SPATIAL) |
postp.ct |
0.644889129083052 |
estimate of Spatial Postposition in training from dataA model |
| Testing (SPATIAL) |
condition.ct:postp.ct |
0.806330045035369 |
conditionfrom dataA model |
| Testing (SPATIAL) |
conditionhigh_variability |
0.792175673234309 |
adjusted hv intercept from dataA model** |
| Testing (SPATIAL) |
conditionlow_variability |
0.792175673234309 |
adjusted lv intercept from dataA model** |
NOTE: if we see an effect of session in the model for just skewed data (decribed below), we will use this to inform our estimate of session.ct and the interactions with session. Note that since we don’t include skewed data in this model, this is still and indepdent estimate)
In addition to fitting separate intercepts for condition and spatial postposition, if we find effects ofsession we will fits separate intercepts for each session.
Analsyes of skewed data
Training
Here we look just at the data within this condition, comparing hv and lv within-participant. The prediction here is that they should do better with LV than with HV sentences. This will be a check that our manipulation is working.
We will first run a glmer() model with only the skew data with a similar structure to that used for the hv and lv conditions, except that we will have a within-participants slope for condition i.e. (postp.ct*session.ct*condition.ct|participant) (If this doesn’t converge, we will attempt the following modesl: (postp.ct*session.ct*condition.ct||participant) ((postp.ct*session.ct*condition.ct)-(postp.ct:session.ct:condition.ct)||participant) ((postp.ct*session.ct*condition.ct)-((postp.ct:session.ct:condition.ct)+(postp.ct:session.ct))||participant) ((postp.ct*session.ct*condition.ct)-((postp.ct:session.ct:condition.ct)+(postp.ct:session.ct)+ (session.ct:condition.ct))||participant) ((postp.ct+session.ct+condition.ct)||participant) ((postp.ct+condition.ct)||participant) ((condition.ct)||participant) (1|participant)
For the BFs, we will inform h1’s using the same set of estimates as for the comparison between the hv and lv conditions, except that for condition.ct we will set the sd to be equal to HALF of the value of condition.ct in the previous experiment (because for that contrast, each LV sentence had been heard more frequently than here) so since we use the half normal 2sd=max, so we set the sd to half this value; similarly when fitting a separate intercept for LV we will set the sd to be equal to HALF the value for that condition previously - i.e.
analysis = c(rep("Training", 12))
coefficient = c("(Intercept)",
"condition.ct",
"postp.ct",
"session.ct",
"condition.ct:postp.ct",
"condition.ct:postp.ct",
"condition.ct:session.ct",
"postp.ct:session.ct",
"condition.ct:postp.ct:session.ct",
"condition.ct:postp.ct:session.ct",
"conditionhigh_variability",
"conditionlow_variability")
estimate_of_sd = c(
adjusted.coeffs.train.lmer["(Intercept)", "Estimate" ],
adjusted.coeffs.train.lmer["condition.ct", "Estimate"]/2,
summary(train.lmer)$coefficients["postp.ct", "Estimate" ],
adjusted.coeffs.train.lmer["(Intercept)", "Estimate" ],
summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-chance,
summary(train.lmer)$coefficients["postp.ct", "Estimate" ]-chance,
summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-chance,
summary(train.lmer)$coefficients["postp.ct", "Estimate" ]-chance,
(summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-chance)*2,
(summary(train.lmer)$coefficients["condition.ct", "Estimate" ]-chance)*2,
adjusted.coeffs.train.lmer.a["conditionhigh_variability","Estimate"],
adjusted.coeffs.train.lmer.a["conditionlow_variability","Estimate"]/2 )
h1_motivation = c(
"adjusted intercept from dataA model**",
"half condition from dataA model **",
"postp from dataA model**",
"adjusted intercept (i.e. minus chance) from dataA model",
"condition minus chance from dataA model",
"postp minus chance from dataA model",
"condition minus chance from dataA model",
"postp minus chance from dataA model",
"twice condition minus chance from dataA model",
"twice postp minus chance",
"adjusted hv intercept from dataA model**",
"HALF adjusted hv intercept from dataA model**")
kable(data.frame(cbind(analysis, coefficient , estimate_of_sd, h1_motivation)))
| Training |
(Intercept) |
1.47292504032035 |
adjusted intercept from dataA model** |
| Training |
condition.ct |
0.654443901332811 |
half condition from dataA model ** |
| Training |
postp.ct |
0.644889129083052 |
postp from dataA model** |
| Training |
session.ct |
1.47292504032035 |
adjusted intercept (i.e. minus chance) from dataA model |
| Training |
condition.ct:postp.ct |
2.40750009133373 |
condition minus chance from dataA model |
| Training |
condition.ct:postp.ct |
1.74350141775116 |
postp minus chance from dataA model |
| Training |
condition.ct:session.ct |
2.40750009133373 |
condition minus chance from dataA model |
| Training |
postp.ct:session.ct |
1.74350141775116 |
postp minus chance from dataA model |
| Training |
condition.ct:postp.ct:session.ct |
4.81500018266746 |
twice condition minus chance from dataA model |
| Training |
condition.ct:postp.ct:session.ct |
4.81500018266746 |
twice postp minus chance |
| Training |
conditionhigh_variability |
0.864900778401958 |
adjusted hv intercept from dataA model** |
| Training |
conditionlow_variability |
1.08689511538147 |
HALF adjusted hv intercept from dataA model** |
NOTE: if we see an effect of session in the model for just hv and lv data (decribed above), we will use this to inform our estimate of session.ct and the interactions with session. Note that since we don’t include skewed data in this model, this is still and indepdent estimate)
In addition to fitting separate intercepts for condition and spatial postposition, if we find effects ofsession we will fits separate intercepts for each session.
Generaliation test
Here our predictions concern contrasts with the HV and LV condition.
Specifically we predict that (1) there will be higher peformance performance in the skew condition than in than the LV conditions (2) there will be higher performance in the skew condition than in the HV condition. Of these. Note that the contrast with HV is critical in showing a benefit of skew and not just variability for generalization.
In order to look at this, we will fit three models akin to each of those fit for dataA above (i.e. the main model, followup1-WORDORDER, followup2-SPATIALKNOWELDGE)
However in each case, rather than apply the model to data from two conditions, we will apply it to data from three conditions. In place of the centered factor “condition.ct”, we will use the default factor coding for condition with “skew” as the baseline condition. This will ensure that the (Intercept) reported is just for the skew data and similarly that the effect of spatial postposition is just reported for skew only. In addition, the contrasts between skew and lv and skew and hv will also be reported (coefficients will be labelled “conditionlv” and “conditionhv”) (as well as interactions of these with spatial postposition, the main effect of spatial postposition will be reporteda the level of skew)
The values to inform BF’s will again all come from the previous dataA analyses except that for the main model and for followup2-SPATIALKNOWELDGE we use the effect of condition.ct for dataA (i.e. the contrast between hv and lv) as the estimate of h1 and set sd to be equal to this value in each case. We note that this likely underestimates the value for the contrast with LV (since we expect there to be an even bigger difference with skew than HV) but overesimates in the case of HV (since the difference of having some variability compared to none is likely to be a bigger difference). Note that the later is the key contrast of interest, and in erring in using a larger estimate we are taking a more conservative approach.
For the estimate of the intercept for skew, we base it on the intercept for the HV condition. All the BFs to be used are given below:
analysis = c(rep("Testing Main", 6), rep("Testing (WORD ORDER)", 6),rep("Testing (SPATIAL)", 6))
coefficient = rep(c("(Intercept)", "conditionlv","conditionhv", "postp.ct", "conditionlv:postp.ct","conditionhv:postp.ct"),3)
interpreation_coefficient = rep(c("intercept for skew", "contrast skew and lv ","contrast skew and lv", "postp for skew", "contrast skew and lv by postp","contrast skew and hv by postp"),3)
chance = log(0.25/(1-0.25))
estimate_of_sd =
round(c(
adjusted.coeffs.test.lmer.a["conditionhigh_variability", "Estimate" ],
summary(test.lmer)$coefficients["condition.ct", "Estimate"],
summary(test.lmer)$coefficients["condition.ct", "Estimate"],
summary(train.lmer)$coefficients["postp.ct", "Estimate"],
summary(test.lmer)$coefficients["condition.ct", "Estimate" ]-log(0.25/(1-0.25)),
summary(test.lmer)$coefficients["condition.ct", "Estimate" ]-log(0.25/(1-0.25)),
summary(test.lmer.q2)$coefficients["(Intercept)", "Estimate" ],
summary(test.lmer.q2)$coefficients["(Intercept)", "Estimate" ],
summary(test.lmer.q2)$coefficients["(Intercept)", "Estimate" ],
summary(train.lmer)$coefficients["postp.ct", "Estimate"],
summary(test.lmer.q2)$coefficients["condition.ct", "Estimate" ],
summary(test.lmer.q2)$coefficients["condition.ct", "Estimate" ],
summary(test.lmer.q3.a)$coefficients["conditionhigh_variability", "Estimate" ],
summary(test.lmer.q3)$coefficients["condition.ct", "Estimate"],
summary(test.lmer.q3)$coefficients["condition.ct", "Estimate"],
summary(train.lmer)$coefficients["postp.ct", "Estimate"],
summary(test.lmer.q3)$coefficients["condition.ct", "Estimate" ],
summary(test.lmer.q3)$coefficients["condition.ct", "Estimate" ]
),3)
h1_motivation = c(
"adjusted intercept for hv for dataA model",
"condition (i.e. hv versus lv contrast) from dataA model",
"condition (i.e. hv versus lv contrast) from dataA model",
"estimate of Spatial Postposition in training from dataA model",
"condition minus chance from dataA model",
"condition minus chance from dataA model",
"intercept for hv for dataA model",
"condition (i.e. hv versus lv contrast) from dataA model",
"condition (i.e. hv versus lv contrast) from dataA model",
"estimate of Spatial Postposition in training from dataA model",
"condition minus chance from dataA model",
"condition minus chance from dataA model",
"intercept for hv for dataA model",
"condition (i.e. hv versus lv contrast) from dataA model",
"condition (i.e. hv versus lv contrast) from dataA model",
"estimate of Spatial Postposition in training from dataA model",
"condition minus chance from dataA model",
"condition minus chance from dataA model")
data.frame(cbind(analysis, coefficient ,interpreation_coefficient, estimate_of_sd))
## analysis coefficient interpreation_coefficient
## 1 Testing Main (Intercept) intercept for skew
## 2 Testing Main conditionlv contrast skew and lv
## 3 Testing Main conditionhv contrast skew and lv
## 4 Testing Main postp.ct postp for skew
## 5 Testing Main conditionlv:postp.ct contrast skew and lv by postp
## 6 Testing Main conditionhv:postp.ct contrast skew and hv by postp
## 7 Testing (WORD ORDER) (Intercept) intercept for skew
## 8 Testing (WORD ORDER) conditionlv contrast skew and lv
## 9 Testing (WORD ORDER) conditionhv contrast skew and lv
## 10 Testing (WORD ORDER) postp.ct postp for skew
## 11 Testing (WORD ORDER) conditionlv:postp.ct contrast skew and lv by postp
## 12 Testing (WORD ORDER) conditionhv:postp.ct contrast skew and hv by postp
## 13 Testing (SPATIAL) (Intercept) intercept for skew
## 14 Testing (SPATIAL) conditionlv contrast skew and lv
## 15 Testing (SPATIAL) conditionhv contrast skew and lv
## 16 Testing (SPATIAL) postp.ct postp for skew
## 17 Testing (SPATIAL) conditionlv:postp.ct contrast skew and lv by postp
## 18 Testing (SPATIAL) conditionhv:postp.ct contrast skew and hv by postp
## estimate_of_sd
## 1 1.094
## 2 0.716
## 3 0.716
## 4 0.645
## 5 1.815
## 6 1.815
## 7 1.621
## 8 1.621
## 9 1.621
## 10 0.645
## 11 0.181
## 12 0.181
## 13 0.792
## 14 0.806
## 15 0.806
## 16 0.645
## 17 0.806
## 18 0.806
Data Recruitment Plan and Stoppping Requirement
Data collection starts in the week beginning 18/06/19 via a mixture of opt in and opt out schools recruiment. Children form yr 3 classes will be randomly assigned to one of the three conditions. The same exclusion criteria will be used as above.
Before the end of the school term (July 20th), we aim to collect 20 participants per condition. The data will be inspected at that point (NOTE: we will inspect the data even if we don’t have a suitable number of participants).
If we don’t have BF>3 OR BF<1/3 for our key predictions (i.e. hv>lv and skew>hv in overall analysis of generalization test and/or analsyis of generalization testing probing knowlege of spatial-prepositions we wil continue to collect participants, adding in 10 per condition, checking again etc.
One caveat: for the skew condition, an important check will be whether, in training, there is stronger performance with the repeated sentences than the non repeated sentences. If we do not find stronger performance with the repeated sentences, this might suggest that our skew manipulation may not be working. In that case, we may choose to stop this condition early and attempt a new design.
We acknowledge that increasing the sample in this way affects the interpreation of p values. For that reason, we regard the BF values as our key inferential statistic.