data loading, munging
load data.
d_v1 <- read_csv(paste(here("../data/processed_data/polcon_v1_ready_for_ana.csv"))) %>%
mutate(expt = "v1",
trial = substr(trial, 6, 6))
## Parsed with column specification:
## cols(
## subid = col_character(),
## order = col_integer(),
## trial = col_character(),
## speaker = col_character(),
## request_type = col_character(),
## question_type = col_character(),
## correct = col_integer(),
## polite_speaker = col_integer(),
## answer = col_integer(),
## choose_polite = col_integer(),
## sex = col_character(),
## age = col_integer()
## )
d_v2 <- read_csv(paste(here("../data/processed_data/polcon_v2_ready_for_ana.csv"))) %>%
mutate(expt = "v2")
## Parsed with column specification:
## cols(
## subid = col_character(),
## order = col_integer(),
## trial = col_integer(),
## request_type = col_character(),
## question_type = col_character(),
## correct = col_integer(),
## valence = col_character(),
## adjective = col_character(),
## age = col_double(),
## gender = col_character(),
## keepdrop = col_character(),
## experimenter = col_character(),
## site = col_character(),
## age_fct = col_integer()
## )
d_v3 <- read_csv(paste(here("../data/processed_data/polcon_v3_ready_for_ana.csv"))) %>%
mutate(expt = "v3")
## Parsed with column specification:
## cols(
## subid = col_character(),
## order = col_integer(),
## trial = col_integer(),
## request_type = col_character(),
## question_type = col_character(),
## correct = col_integer(),
## age = col_double(),
## gender = col_character(),
## ethnicity = col_character(),
## experimenter = col_character(),
## comments = col_character(),
## age_fct = col_integer()
## )
d_v3_lookit <- read_csv(paste(here("../data/processed_data/polcon_v3_lookit_processed.csv"))) %>%
mutate(expt = "v3_lookit") %>%
mutate(order = case_when(
order_test == "0" ~ "1",
order_test == "1" ~ "2",
TRUE ~ "NA"
)) %>%
rename(trial = trial_num, question_type = question)
## Parsed with column specification:
## cols(
## subid = col_integer(),
## response_conditions = col_character(),
## child_birthday = col_date(format = ""),
## response_exp_data = col_character(),
## order_test = col_integer(),
## dot = col_date(format = ""),
## age = col_double(),
## trial_num = col_integer(),
## choice = col_character(),
## question = col_character(),
## correct_answer = col_character(),
## request_type = col_character(),
## correct = col_integer()
## )
bind all data.
d <- rbind(
d_v1 %>% select(subid, expt, age, order, trial, request_type, question_type, correct),
d_v2 %>% select(subid, expt, age, order, trial, request_type, question_type, correct),
d_v3 %>% select(subid, expt, age, order, trial, request_type, question_type, correct),
d_v3_lookit %>% select(subid, expt, age, order, trial, request_type, question_type, correct)
) %>%
mutate_if(is.character, as.factor) %>%
mutate(age_fct = floor(age)) %>%
mutate(question_type = fct_recode(question_type,
"comp" = "compliance",
"play" = "play_with"
)) %>%
mutate(correct = as.numeric(as.character(correct))) %>%
mutate(question_type = fct_relevel(question_type,
"polite", "rude", "nice", "mean"),
request_type = fct_recode(request_type,
"can you~" = "idq",
"can you please~" = "please_idq"),
request_type = fct_relevel(request_type, "please"))
Version descriptions
v1: facial expressions, voicing cues, and syntactic markers (please/can you). presented in storybook by an experimenter who read it aloud.
v2: recorded voiceovers on tablet. voicing cues and syntactic markers.
v3: same as v2 but no voicing cue, and syntactic markers only (sentences were read in the same way except for markers please/can you).
v3_lookit: same as v3 but presented online. participants went through the study with their parents.
main effect
click for main effect plots
correct ~ question type x age.
ms <- d %>%
group_by(expt, age_fct, question_type, subid) %>%
summarize(
correct = mean(correct, na.rm=TRUE)
) %>%
group_by(expt, age_fct, question_type) %>%
multi_boot_standard(col = "correct", na.rm=TRUE) %>%
ungroup() %>%
mutate(correct = mean,
age_fct = factor(age_fct, labels=c("2-yr-olds", "3-yr-olds", "4-yr-olds")))
p <- ggplot(subset(ms, correct!="NA" & (question_type != "play" & question_type != "comp")),
aes(x=age_fct, y=correct, col=expt))
p +
geom_point(position=position_dodge(width=.3), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.3), stat = "identity") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
facet_grid(.~question_type) +
xlab("Age") +
ylab("Proportion correct") +
ggtitle("Correct answers on questions \"Who was being more _____ ?\"") +
scale_fill_ptol(guide = "none") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
geom_hline(yintercept=.50,lty=4) +
theme_few()

correct ~ request type x age.
ms <- d %>%
filter(question_type != "play" & question_type != "comp") %>%
group_by(expt, age_fct, request_type, subid) %>%
summarize(
correct = mean(correct, na.rm=TRUE)
) %>%
group_by(expt, age_fct, request_type) %>%
multi_boot_standard(col = "correct", na.rm=TRUE) %>%
ungroup() %>%
mutate(correct = mean,
age_fct = factor(age_fct, labels=c("2-yr-olds", "3-yr-olds", "4-yr-olds")))
p <- ggplot(subset(ms, correct!="NA"),
aes(x=age_fct, y=correct, col=expt))
p +
geom_point(position=position_dodge(width=.3), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.3), stat = "identity") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
facet_grid(.~request_type) +
xlab("Age") +
ylab("Proportion correct") +
ggtitle("Correct answers on questions by polite marker type") +
scale_fill_ptol(guide = "none") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
geom_hline(yintercept=.50,lty=4) +
theme_few()

interaction
correct ~ question type x request type x age
ms <- d %>%
filter(question_type != "play" & question_type != "comp") %>%
group_by(expt, age_fct, question_type, request_type, subid) %>%
summarize(
correct = mean(correct, na.rm=TRUE)
) %>%
group_by(expt, age_fct, question_type, request_type) %>%
multi_boot_standard(col = "correct", na.rm=TRUE) %>%
ungroup() %>%
mutate(correct = mean,
age_fct = factor(age_fct, labels=c("2-yr-olds", "3-yr-olds", "4-yr-olds")))
p <- ggplot(subset(ms, correct!="NA"),
aes(x=age_fct, y=correct, col=expt))
p +
geom_point(position=position_dodge(width=.3), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.3), stat = "identity") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
facet_grid(request_type~question_type) +
xlab("Age") +
ylab("Proportion correct") +
ggtitle("Correct answers on questions \"Who was being more _____ ?\"") +
scale_fill_ptol(guide = "none") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
geom_hline(yintercept=.50,lty=4) +
theme_few()

Take-aways:
With age, children improve in correctly saying that a speaker who used a polite word is “polite” and “nice”, whereas a speaker who did not use a polite word is “rude” and “mean”.
Children benefit from facial expression and voicing cue for utterances with “can you~” or “can you please”, but not much for utterances with “please”. This may indicate the strong association between the word “please” and its politeness/niceness that is learned from early on.
play / compliance questions
ms <- d %>%
filter(question_type == "play" | question_type == "comp") %>%
group_by(expt, age_fct, question_type, request_type, subid) %>%
summarize(
correct = mean(correct, na.rm=TRUE)
) %>%
group_by(expt, age_fct, question_type, request_type) %>%
multi_boot_standard(col = "correct", na.rm=TRUE) %>%
ungroup() %>%
mutate(correct = mean,
age_fct = factor(age_fct, labels=c("3-yr-olds", "4-yr-olds")),
question_type = fct_recode(question_type,
"who would you rather play with?" = "play",
"who will [get what they want]?" = "comp"
))
p <- ggplot(subset(ms, correct!="NA"),
aes(x=age_fct, y=correct, col=expt))
p +
geom_point(position=position_dodge(width=.3), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.3), stat = "identity") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
facet_grid(request_type~question_type) +
xlab("Age") +
ylab("Proportion correct") +
# ggtitle("Correct answers on questions \"Who was being more _____ ?\"") +
scale_fill_ptol(guide = "none") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
geom_hline(yintercept=.50,lty=4) +
theme_few()
Even three year olds were mostly able to answer that the polite speaker is a more desirable play partner and will likely get what they want. Four year olds were able to answer the question more consistently.
tablet vs. lookit comparison
ms <- d %>%
filter(expt %in% c("v3", "v3_lookit")) %>%
filter(question_type != "play" & question_type != "comp") %>%
group_by(expt, age_fct, question_type, request_type, subid) %>%
summarize(
correct = mean(correct, na.rm=TRUE)
) %>%
group_by(expt, age_fct, question_type, request_type) %>%
multi_boot_standard(col = "correct", na.rm=TRUE) %>%
ungroup() %>%
mutate(correct = mean,
age_fct = factor(age_fct, labels=c("2-yr-olds", "3-yr-olds", "4-yr-olds")))
p <- ggplot(subset(ms, correct!="NA"),
aes(x=age_fct, y=correct, col=expt))
p +
geom_point(position=position_dodge(width=.3), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.3), stat = "identity") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
facet_grid(request_type~question_type) +
xlab("Age") +
ylab("Proportion correct") +
ggtitle("Correct answers on questions \"Who was being more _____ ?\"") +
scale_fill_ptol(guide = "none") +
# geom_errorbar(position=position_dodge(.9), aes(ymin=ci_lower,ymax=ci_upper,width=.1)) +
geom_hline(yintercept=.50,lty=4) +
theme_few()

Except for the “rude” x “please” responses, responses on lookit look very comparable to responses yielded on tablet by an experimenter!