- [[250409_145028 twitter multiverse analysis results]] # multiverse summary plan ![[20250408153834.png]] ```r campaigns/multiverse/src/combinations.R # for trucker hashtag exp (R1) ../../multiverse/data/clean/combinations_trucker.csv # for all exp ../../multiverse/data/clean/combinations_all_exps.csv # for meta-analysis ../../multiverse/data/clean/combinations_meta.csv ``` 654 exp-level combinations - [x] 162 (each exp) x 4 exp = 648 combinations for all exp - [x] exp R1 (non-prereg) - [x] exp R2 (trucker) - [x] exp R3 (deepstate) - [x] exp NR - [x] 12 combinations for trucker study (hashtags only analysis - only count/frac and different winsorization) meta-analytic combinations - [x] 162 combinations - new combinations - [x] trucker study: domain/hashtag (162x2 = 324) - [ ] maybe? non-registered study: exclude/include - [ ] maybe? EXPNR: exclude/include - [ ] total of 1296 combinations for meta-analysis # directories - campaigns/campaign0003 (non-prereg, R1) - code-v29-combi - campaigns/campaign0004 (excluded exp NR) - src-v23-combi - campaigns/campaign0005 (trucker hashtags, R2) - src-v27-tags-combi - src-v28-domains-combi - campaigns/campaign0006 (deepstate, R3) - src-v18-combi # exp-level output ```r term, estimate, std.error, statistic, p.value, se_type, day, r2 combinations ``` script sections to modify ```r # add library library(here) paths <- split_path(here()) currentdir <- paths$name # parameters to loop through dt_combi <- fread("../../multiverse/data/clean/combinations_all_exps.csv") dt_combi[, outcomes := paste0("_", outcomes, "_")] outcomes <- unique(dt_combi$outcomes) winsorize_values <- unique(dt_combi$winsorizes) impute <- c("zero") se_type <- c("clustblock") if (!is.na(winsorize_value)) { if (winsorize_value > .999999) { print(glue("winsorize_value: {winsorize_value}, no winsorization")) } else { print(glue("winsorize: {winsorize_value}")) # winsorize BEFORE imputing (Dean's suggestion?) # winsorize (but probably only makes sense for sum and count, not mean or frac?) dt1[!is.na(t0) & t0 > 0, t0 := Winsorize(t0, probs = c(0, winsorize_value))] dt1[!is.na(t1) & t1 > 0, t1 := Winsorize(t1, probs = c(0, winsorize_value))] } } # save processed data fname <- gsub(srcdir, glue("{srcdir}-processed"), f) fname <- gsub("_day", glue("{outcome}winsorize{format(winsorize_value, nsmall=2)}_impute-{imp}_se-{p_vals$se_type}.csv"), fname) outdir <- gsub("src-", "../data-", currentdir) (fname <- gsub(srcdir, outdir, fname)) split_path(fname, make_parents = TRUE) fwrite(dt1, fname) # pluralize column names dt2[, `:=` (outcomes = outcome, winsorizes = winsorize_value, impute = imp, thresholds = dt1$threshold[1], dv = dt1$dv[1], tweet_type = dt1$tweet_type[1], se_type = p_vals$se_type, # exp_type = p_vals$expose_type, day = length(days), r2 = r2(m)[1] )] print(dt2) # save results fname <- f fname <- gsub("_day", glue("{outcome}winsorize{format(winsorize_value, nsmall=2)}_impute-{imp}_se-{p_vals$se_type}.csv"), fname) outdir <- gsub("src-", "../models-", currentdir) (fname <- gsub(srcdir, outdir, fname)) split_path(fname, make_parents = TRUE) fwrite(dt2, fname) ```