- [[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)
```