Skip to content

Commit e5196eb

Browse files
authored
Merge pull request #1541 from cmu-delphi/ndefries/wave12-new-indicators
[CTIS] New child schooling and child age indicators for Wave 12
2 parents 32496d2 + 11047b7 commit e5196eb

File tree

5 files changed

+179
-12
lines changed

5 files changed

+179
-12
lines changed

facebook/delphiFacebook/R/binary.R

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,13 @@ get_binary_indicators <- function() {
131131
"smoothed_wvaccinate_children", "weight", "v_vaccinate_children", 6, compute_binary_response, jeffreys_binary,
132132
"smoothed_vaccinate_child_oldest", "weight_unif", "v_vaccinate_child_oldest", 6, compute_binary_response, jeffreys_binary,
133133
"smoothed_wvaccinate_child_oldest", "weight", "v_vaccinate_child_oldest", 6, compute_binary_response, jeffreys_binary,
134-
134+
135+
"smoothed_wchild_vaccine_already", "weight", "v_child_vaccine_already", 6, compute_binary_response, jeffreys_multinomial_factory(5),
136+
"smoothed_wchild_vaccine_yes_def", "weight", "v_child_vaccine_yes_def", 6, compute_binary_response, jeffreys_multinomial_factory(5),
137+
"smoothed_wchild_vaccine_yes_prob", "weight", "v_child_vaccine_yes_prob", 6, compute_binary_response, jeffreys_multinomial_factory(5),
138+
"smoothed_wchild_vaccine_no_prob", "weight", "v_child_vaccine_no_prob", 6, compute_binary_response, jeffreys_multinomial_factory(5),
139+
"smoothed_wchild_vaccine_no_def", "weight", "v_child_vaccine_no_def", 6, compute_binary_response, jeffreys_multinomial_factory(5),
140+
135141
"smoothed_try_vaccinate_1m", "weight_unif", "v_try_vaccinate_1m", 6, compute_binary_response, jeffreys_binary,
136142
"smoothed_wtry_vaccinate_1m", "weight", "v_try_vaccinate_1m", 6, compute_binary_response, jeffreys_binary,
137143

@@ -332,11 +338,26 @@ get_binary_indicators <- function() {
332338
"smoothed_inperson_school_parttime", "weight_unif", "s_inperson_school_parttime", 6, compute_binary_response, jeffreys_binary,
333339
"smoothed_winperson_school_parttime", "weight", "s_inperson_school_parttime", 6, compute_binary_response, jeffreys_binary,
334340

335-
"smoothed_inperson_school_fulltime_oldest", "weight_unif", "s_inperson_school_fulltime_oldest", 6, compute_binary_response, jeffreys_binary,
336-
"smoothed_winperson_school_fulltime_oldest", "weight", "s_inperson_school_fulltime_oldest", 6, compute_binary_response, jeffreys_binary,
337-
"smoothed_inperson_school_parttime_oldest", "weight_unif", "s_inperson_school_parttime_oldest", 6, compute_binary_response, jeffreys_binary,
338-
"smoothed_winperson_school_parttime_oldest", "weight", "s_inperson_school_parttime_oldest", 6, compute_binary_response, jeffreys_binary,
339-
341+
"smoothed_inperson_school_fulltime_oldest", "weight_unif", "s_inperson_school_fulltime_oldest", 6, compute_binary_response, jeffreys_multinomial_factory(3),
342+
"smoothed_winperson_school_fulltime_oldest", "weight", "s_inperson_school_fulltime_oldest", 6, compute_binary_response, jeffreys_multinomial_factory(3),
343+
"smoothed_inperson_school_parttime_oldest", "weight_unif", "s_inperson_school_parttime_oldest", 6, compute_binary_response, jeffreys_multinomial_factory(3),
344+
"smoothed_winperson_school_parttime_oldest", "weight", "s_inperson_school_parttime_oldest", 6, compute_binary_response, jeffreys_multinomial_factory(3),
345+
"smoothed_wremote_school_fulltime_oldest", "weight", "s_remote_school_fulltime_oldest", 6, compute_binary_response, jeffreys_multinomial_factory(3),
346+
347+
"smoothed_wschool_safety_measures_mask_students", "weight", "s_school_safety_measures_mask_students", 6, compute_binary_response, jeffreys_binary,
348+
"smoothed_wschool_safety_measures_mask_teachers", "weight", "s_school_safety_measures_mask_teachers", 6, compute_binary_response, jeffreys_binary,
349+
"smoothed_wschool_safety_measures_restricted_entry", "weight", "s_school_safety_measures_restricted_entry", 6, compute_binary_response, jeffreys_binary,
350+
"smoothed_wschool_safety_measures_separators", "weight", "s_school_safety_measures_separators", 6, compute_binary_response, jeffreys_binary,
351+
"smoothed_wschool_safety_measures_extracurricular", "weight", "s_school_safety_measures_extracurricular", 6, compute_binary_response, jeffreys_binary,
352+
"smoothed_wschool_safety_measures_symptom_screen", "weight", "s_school_safety_measures_symptom_screen", 6, compute_binary_response, jeffreys_binary,
353+
"smoothed_wschool_safety_measures_ventilation", "weight", "s_school_safety_measures_ventilation", 6, compute_binary_response, jeffreys_binary,
354+
"smoothed_wschool_safety_measures_testing_staff", "weight", "s_school_safety_measures_testing_staff", 6, compute_binary_response, jeffreys_binary,
355+
"smoothed_wschool_safety_measures_testing_students", "weight", "s_school_safety_measures_testing_students", 6, compute_binary_response, jeffreys_binary,
356+
"smoothed_wschool_safety_measures_vaccine_staff", "weight", "s_school_safety_measures_vaccine_staff", 6, compute_binary_response, jeffreys_binary,
357+
"smoothed_wschool_safety_measures_vaccine_students", "weight", "s_school_safety_measures_vaccine_students", 6, compute_binary_response, jeffreys_binary,
358+
"smoothed_wschool_safety_measures_cafeteria", "weight", "s_school_safety_measures_cafeteria", 6, compute_binary_response, jeffreys_binary,
359+
"smoothed_wschool_safety_measures_dont_know", "weight", "s_school_safety_measures_dont_know", 6, compute_binary_response, jeffreys_binary,
360+
340361
# beliefs
341362
"smoothed_belief_masking_effective", "weight_unif", "b_belief_masking_effective", 6, compute_binary_response, jeffreys_binary,
342363
"smoothed_wbelief_masking_effective", "weight", "b_belief_masking_effective", 6, compute_binary_response, jeffreys_binary,
@@ -396,9 +417,7 @@ get_binary_indicators <- function() {
396417
"smoothed_want_info_employment", "weight_unif", "i_want_info_employment", 6, compute_binary_response, jeffreys_binary,
397418
"smoothed_wwant_info_employment", "weight", "i_want_info_employment", 6, compute_binary_response, jeffreys_binary,
398419
"smoothed_want_info_none", "weight_unif", "i_want_info_none", 6, compute_binary_response, jeffreys_binary,
399-
"smoothed_wwant_info_none", "weight", "i_want_info_none", 6, compute_binary_response, jeffreys_binary,
400-
401-
420+
"smoothed_wwant_info_none", "weight", "i_want_info_none", 6, compute_binary_response, jeffreys_binary
402421
)
403422

404423

facebook/delphiFacebook/R/contingency_indicators.R

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ get_aggs <- function() {
141141
"pct_vaccinate_children", "v_vaccinate_children", compute_binary, jeffreys_binary,
142142
"pct_vaccinate_child_oldest", "v_vaccinate_child_oldest", compute_binary, jeffreys_binary,
143143

144+
"pct_child_vaccine_already", "v_child_vaccine_already", compute_binary, jeffreys_multinomial_factory(5),
145+
"pct_child_vaccine_yes_def", "v_child_vaccine_yes_def", compute_binary, jeffreys_multinomial_factory(5),
146+
"pct_child_vaccine_yes_prob", "v_child_vaccine_yes_prob", compute_binary, jeffreys_multinomial_factory(5),
147+
"pct_child_vaccine_no_prob", "v_child_vaccine_no_prob", compute_binary, jeffreys_multinomial_factory(5),
148+
"pct_child_vaccine_no_def", "v_child_vaccine_no_def", compute_binary, jeffreys_multinomial_factory(5),
149+
144150
"pct_accept_vaccine_defyes", "v_accept_vaccine_defyes", compute_binary, jeffreys_multinomial_factory(4),
145151
"pct_accept_vaccine_probyes", "v_accept_vaccine_probyes", compute_binary, jeffreys_multinomial_factory(4),
146152
"pct_accept_vaccine_probno", "v_accept_vaccine_probno", compute_binary, jeffreys_multinomial_factory(4),
@@ -448,11 +454,39 @@ get_aggs <- function() {
448454

449455
# schooling
450456
"pct_inperson_school_fulltime", "s_inperson_school_fulltime", compute_binary, jeffreys_binary,
451-
"pct_inperson_school_parttime", "s_inperson_school_parttime", compute_binary, jeffreys_binary
457+
"pct_inperson_school_parttime", "s_inperson_school_parttime", compute_binary, jeffreys_binary,
458+
459+
"pct_remote_school_fulltime_oldest", "s_remote_school_fulltime_oldest", compute_binary, jeffreys_multinomial_factory(3),
460+
"pct_inperson_school_fulltime_oldest", "s_inperson_school_fulltime_oldest", compute_binary, jeffreys_multinomial_factory(3),
461+
"pct_inperson_school_parttime_oldest", "s_inperson_school_parttime_oldest", compute_binary, jeffreys_multinomial_factory(3),
462+
463+
"pct_school_safety_measures_mask_students", "s_school_safety_measures_mask_students", compute_binary, jeffreys_binary,
464+
"pct_school_safety_measures_mask_teachers", "s_school_safety_measures_mask_teachers", compute_binary, jeffreys_binary,
465+
"pct_school_safety_measures_restricted_entry", "s_school_safety_measures_restricted_entry", compute_binary, jeffreys_binary,
466+
"pct_school_safety_measures_separators", "s_school_safety_measures_separators", compute_binary, jeffreys_binary,
467+
"pct_school_safety_measures_extracurricular", "s_school_safety_measures_extracurricular", compute_binary, jeffreys_binary,
468+
"pct_school_safety_measures_symptom_screen", "s_school_safety_measures_symptom_screen", compute_binary, jeffreys_binary,
469+
"pct_school_safety_measures_ventilation", "s_school_safety_measures_ventilation", compute_binary, jeffreys_binary,
470+
"pct_school_safety_measures_testing_staff", "s_school_safety_measures_testing_staff", compute_binary, jeffreys_binary,
471+
"pct_school_safety_measures_testing_students", "s_school_safety_measures_testing_students", compute_binary, jeffreys_binary,
472+
"pct_school_safety_measures_vaccine_staff", "s_school_safety_measures_vaccine_staff", compute_binary, jeffreys_binary,
473+
"pct_school_safety_measures_vaccine_students", "s_school_safety_measures_vaccine_students", compute_binary, jeffreys_binary,
474+
"pct_school_safety_measures_cafeteria", "s_school_safety_measures_cafeteria", compute_binary, jeffreys_binary,
475+
"pct_school_safety_measures_dont_know", "s_school_safety_measures_dont_know", compute_binary, jeffreys_binary
452476
)
453477

454478
aggs <- create_aggs_product(regions, groups, indicators)
455-
479+
480+
481+
monthly_indicators <- tribble(
482+
~name, ~metric, ~compute_fn, ~post_fn,
483+
"pct_child_school_public", "s_child_school_public", compute_binary, jeffreys_multinomial_factory(5),
484+
"pct_child_school_private", "s_child_school_private", compute_binary, jeffreys_multinomial_factory(5),
485+
"pct_child_school_homeschool", "s_child_school_homeschool", compute_binary, jeffreys_multinomial_factory(5),
486+
"pct_child_school_not", "s_child_school_not", compute_binary, jeffreys_multinomial_factory(5),
487+
"pct_child_school_other", "s_child_school_other", compute_binary, jeffreys_multinomial_factory(5)
488+
)
489+
monthly_aggs <- create_aggs_product(regions, groups, monthly_indicators)
456490

457491
### Include handful of original public tables not already covered by set above
458492
common_group <- c("agefull", "gender", "race", "hispanic")
@@ -509,7 +543,7 @@ get_aggs <- function() {
509543
aggs <- rbind(aggs, cut1_aggs, cut2_aggs, cut3_aggs, cut456_aggs, cut456_marginal_aggs)
510544

511545
weekly_aggs <- aggs
512-
monthly_aggs <- aggs
546+
monthly_aggs <- rbind(aggs, monthly_aggs)
513547

514548
return(list("week"=weekly_aggs, "month"=monthly_aggs))
515549
}

facebook/delphiFacebook/R/responses.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ load_response_one <- function(input_filename, params, contingency_run) {
193193
input_data <- code_activities(input_data, wave)
194194
input_data <- code_vaccines(input_data, wave)
195195
input_data <- code_schooling(input_data, wave)
196+
input_data <- code_children(input_data, wave)
196197
input_data <- code_beliefs(input_data, wave)
197198
input_data <- code_news_and_info(input_data, wave)
198199
input_data <- code_gender(input_data, wave)

facebook/delphiFacebook/R/variables.R

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,8 +833,20 @@ code_vaccines <- function(input_data, wave) {
833833
input_data$P3 == 5 ~ 1,
834834
TRUE ~ NA_real_
835835
)
836+
837+
input_data$v_child_vaccine_already <- input_data$P3 == 5
838+
input_data$v_child_vaccine_yes_def <- input_data$P3 == 1
839+
input_data$v_child_vaccine_yes_prob <- input_data$P3 == 2
840+
input_data$v_child_vaccine_no_prob <- input_data$P3 == 3
841+
input_data$v_child_vaccine_no_def <- input_data$P3 == 4
842+
836843
} else {
837844
input_data$v_vaccinate_child_oldest <- NA_real_
845+
input_data$v_child_vaccine_already <- NA
846+
input_data$v_child_vaccine_yes_def <- NA
847+
input_data$v_child_vaccine_yes_prob <- NA
848+
input_data$v_child_vaccine_no_prob <- NA
849+
input_data$v_child_vaccine_no_def <- NA
838850
}
839851

840852
if ( "V16" %in% names(input_data) ) {
@@ -906,6 +918,34 @@ code_vaccines <- function(input_data, wave) {
906918
return(input_data)
907919
}
908920

921+
#' Misc children
922+
#'
923+
#' @param input_data input data frame of raw survey data
924+
#' @param wave integer indicating survey version
925+
#'
926+
#' @return augmented data frame
927+
code_children <- function(input_data, wave) {
928+
if ("P2" %in% names(input_data)) {
929+
input_data$ch_has_child_under_18 <- input_data$P1 == 1
930+
} else {
931+
input_data$ch_has_child_under_18 <- NA
932+
}
933+
934+
if ("P2" %in% names(input_data)) {
935+
input_data$ch_oldest_child_under_5 <- input_data$P2 == 1
936+
input_data$ch_oldest_child_5_to_11 <- input_data$P2 == 2
937+
input_data$ch_oldest_child_12_to_15 <- input_data$P2 == 3
938+
input_data$ch_oldest_child_16_to_17 <- input_data$P2 == 4
939+
} else {
940+
input_data$ch_oldest_child_under_5 <- NA
941+
input_data$ch_oldest_child_5_to_11 <- NA
942+
input_data$ch_oldest_child_12_to_15 <- NA
943+
input_data$ch_oldest_child_16_to_17 <- NA
944+
}
945+
946+
return(input_data)
947+
}
948+
909949
#' Schooling
910950
#'
911951
#' @param input_data input data frame of raw survey data
@@ -948,11 +988,65 @@ code_schooling <- function(input_data, wave) {
948988
input_data$P5 != 3 ~ 0,
949989
TRUE ~ NA_real_
950990
)
991+
input_data$s_remote_school_fulltime_oldest <- case_when(
992+
input_data$P5 == 2 ~ 1,
993+
input_data$P5 != 2 ~ 0,
994+
TRUE ~ NA_real_
995+
)
951996

952997
} else {
953998
input_data$s_inperson_school_fulltime_oldest <- NA_real_
954999
input_data$s_inperson_school_parttime_oldest <- NA_real_
1000+
input_data$s_remote_school_fulltime_oldest <- NA_real_
1001+
}
1002+
1003+
if ("P4" %in% names(input_data)) {
1004+
input_data$s_child_school_public <- input_data$P4 == 1
1005+
input_data$s_child_school_private <- input_data$P4 == 2
1006+
input_data$s_child_school_homeschool <- input_data$P4 == 3
1007+
input_data$s_child_school_not <- input_data$P4 == 4
1008+
input_data$s_child_school_other <- input_data$P4 == 5
1009+
} else {
1010+
input_data$s_child_school_public <- NA
1011+
input_data$s_child_school_private <- NA
1012+
input_data$s_child_school_homeschool <- NA
1013+
input_data$s_child_school_not <- NA
1014+
input_data$s_child_school_other <- NA
9551015
}
1016+
1017+
1018+
if ("P6" %in% names(input_data)) {
1019+
safety_measures <- split_options(input_data$P6)
1020+
1021+
input_data$s_school_safety_measures_mask_students <- is_selected(safety_measures, "1")
1022+
input_data$s_school_safety_measures_mask_teachers <- is_selected(safety_measures, "2")
1023+
input_data$s_school_safety_measures_restricted_entry <- is_selected(safety_measures, "6")
1024+
input_data$s_school_safety_measures_separators <- is_selected(safety_measures, "10")
1025+
input_data$s_school_safety_measures_extracurricular <- is_selected(safety_measures, "12")
1026+
input_data$s_school_safety_measures_symptom_screen <- is_selected(safety_measures, "15")
1027+
input_data$s_school_safety_measures_ventilation <- is_selected(safety_measures, "17")
1028+
input_data$s_school_safety_measures_testing_staff <- is_selected(safety_measures, "18")
1029+
input_data$s_school_safety_measures_testing_students <- is_selected(safety_measures, "19")
1030+
input_data$s_school_safety_measures_vaccine_staff <- is_selected(safety_measures, "20")
1031+
input_data$s_school_safety_measures_vaccine_students <- is_selected(safety_measures, "21")
1032+
input_data$s_school_safety_measures_cafeteria <- is_selected(safety_measures, "22")
1033+
input_data$s_school_safety_measures_dont_know <- is_selected(safety_measures, "16")
1034+
} else {
1035+
input_data$s_school_safety_measures_mask_students <- NA
1036+
input_data$s_school_safety_measures_mask_teachers <- NA
1037+
input_data$s_school_safety_measures_restricted_entry <- NA
1038+
input_data$s_school_safety_measures_separators <- NA
1039+
input_data$s_school_safety_measures_extracurricular <- NA
1040+
input_data$s_school_safety_measures_symptom_screen <- NA
1041+
input_data$s_school_safety_measures_ventilation <- NA
1042+
input_data$s_school_safety_measures_testing_staff <- NA
1043+
input_data$s_school_safety_measures_testing_students <- NA
1044+
input_data$s_school_safety_measures_vaccine_staff <- NA
1045+
input_data$s_school_safety_measures_vaccine_students <- NA
1046+
input_data$s_school_safety_measures_cafeteria <- NA
1047+
input_data$s_school_safety_measures_dont_know <- NA
1048+
}
1049+
9561050

9571051
return(input_data)
9581052
}

facebook/delphiFacebook/man/code_children.Rd

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)