You can use thie Markdown file to help structure your lab.
n_trials=8
n_children=20
m_mono=0.65
sd_mono=0.19
m_bi=0.53
sd_bi=0.28
byers=expand.grid(
n_trials=n_trials,
N=n_children,
Language=c("Monolingual", "Bilingual"),
Simulations=1
)
byers=
byers %>%
mutate(mean=ifelse(Language=="Monolingual", m_mono,m_bi),
sd=ifelse(Language=="Monolingual", sd_mono,sd_bi)) %>%
group_by(Language, n_trials,N,Simulations) %>%
do(subject_prob = rnorm(.$N, .$mean, .$sd)) %>%
unnest(subject_prob) %>%
mutate(subject_prob=replace(subject_prob, subject_prob<0, 0.01),
subject_prob=replace(subject_prob, subject_prob>1, 0.99))
byers = byers %>%
group_by(Language, n_trials, N, Simulations, subject_prob) %>%
do(data = rbinom(1, .$n_trials, .$subject_prob)/.$n_trials) %>%
unnest(data)
print(byers)## # A tibble: 40 x 6
## Language n_trials N Simulations subject_prob data
## <fctr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Monolingual 8 20 1 0.4977493 0.500
## 2 Monolingual 8 20 1 0.5001725 0.500
## 3 Monolingual 8 20 1 0.5446431 0.375
## 4 Monolingual 8 20 1 0.5565332 0.625
## 5 Monolingual 8 20 1 0.5765852 0.875
## 6 Monolingual 8 20 1 0.5809686 0.375
## 7 Monolingual 8 20 1 0.6027235 0.875
## 8 Monolingual 8 20 1 0.6508858 1.000
## 9 Monolingual 8 20 1 0.6625936 0.500
## 10 Monolingual 8 20 1 0.7149683 0.750
## # ... with 30 more rows
byers_means = byers %>%
group_by(Language) %>%
summarize(Mean = mean(data), SE = sd(data)/sqrt(n()))
print(byers_means)## # A tibble: 2 x 3
## Language Mean SE
## <fctr> <dbl> <dbl>
## 1 Monolingual 0.73750 0.04789998
## 2 Bilingual 0.66875 0.05610361
ggplot(byers_means, aes(x=Language, y=Mean, fill=Language))+
geom_bar(stat="identity")+
geom_linerange(aes(ymin=Mean-SE, ymax=Mean+SE))n_trials=8
m_mono=0.65
sd_mono=0.19
m_bi=0.53
sd_bi=0.28
byers=expand.grid(
n_trials=n_trials,
N=seq(from=10,to=100, by=10),
Language=c("Monolingual", "Bilingual"),
Simulations=1:10 #should be 500
)
byers=
byers %>%
mutate(mean=ifelse(Language=="Monolingual", m_mono,m_bi),
sd=ifelse(Language=="Monolingual", sd_mono,sd_bi)) %>%
group_by(Language, n_trials,N,Simulations) %>%
do(subject_prob = rnorm(.$N, .$mean, .$sd)) %>%
unnest(subject_prob) %>%
mutate(subject_prob=replace(subject_prob, subject_prob<0, 0.01),
subject_prob=replace(subject_prob, subject_prob>1, 0.99))
byers %>%
group_by(Language,n_trials,N,Simulations,subject_prob) %>%
do(data=rbinom(1, .$n_trials, .$subject_prob)/.$n_trials) %>%
unnest(data)## # A tibble: 11,000 x 6
## Language n_trials N Simulations subject_prob data
## <fctr> <dbl> <dbl> <int> <dbl> <dbl>
## 1 Monolingual 8 10 1 0.2380610 0.250
## 2 Monolingual 8 10 1 0.3110628 0.375
## 3 Monolingual 8 10 1 0.3611450 0.500
## 4 Monolingual 8 10 1 0.4938448 1.000
## 5 Monolingual 8 10 1 0.5778773 0.750
## 6 Monolingual 8 10 1 0.6021148 0.375
## 7 Monolingual 8 10 1 0.6821869 0.875
## 8 Monolingual 8 10 1 0.6922809 0.875
## 9 Monolingual 8 10 1 0.7289055 0.750
## 10 Monolingual 8 10 1 0.7999781 0.625
## # ... with 10,990 more rows
summarized_byers = byers %>%
select(n_trials,N,Simulations,subject_prob,Language) %>%
group_by(Language,n_trials,N,Simulations, subject_prob) %>%
do(data=rbinom(1, .$n_trials, .$subject_prob)/.$n_trials) %>%
unnest(data) %>%
select(Language,N,data,Simulations,n_trials,subject_prob) %>%
group_by(N,Simulations) %>%
do(p_value = summary(lm(data~Language, data=.))$coefficient[2,4]) %>%
unnest(p_value) %>%
mutate(significant=ifelse(p_value<0.05, 1, 0)) %>%
group_by(N) %>%
summarise(N_sims=length(p_value), proportion_significant=sum(significant)/N_sims)
summarized_byers## # A tibble: 10 x 3
## N N_sims proportion_significant
## <dbl> <int> <dbl>
## 1 10 10 0.1
## 2 20 10 0.3
## 3 30 10 0.2
## 4 40 10 0.5
## 5 50 10 0.7
## 6 60 10 0.6
## 7 70 10 0.8
## 8 80 10 0.8
## 9 90 10 0.8
## 10 100 10 1.0
ggplot(summarized_byers,
aes(x=N,
y=proportion_significant))+
geom_line()