this script runs a model on our scientific computing cluster
library(dplyr); library(brms)
setwd("/usr/users/rarslan/updated_data/")
args = commandArgs()
dataset = args[6]
uptobyear = args[7]
if (dataset == "swed") {
load("swed1.rdata")
} else {
load(paste0(dataset, ".rdata"))
}
model_data = get(paste0(dataset, ".1")) %>% tbl_df %>%
filter(byear < uptobyear) %>%
group_by(idMere) %>%
mutate(maternalage.mean = mean(maternalage, na.rm = T),
young_mother = if_else(maternalage < 2, 1, 0)) %>%
ungroup() %>%
group_by(idPere) %>%
mutate(paternalage.mean = mean(paternalage, na.rm = T)) %>%
filter(byear < uptobyear) %>%
select(children, birth_cohort, male, maternalage, young_mother, paternalage.mean,maternalage.mean, paternalage, paternal_loss, maternal_loss, older_siblings, nr.siblings, last_born, idPere, idMere) %>%
na.omit()
model_formula = children ~ paternalage + maternalage + young_mother + paternalage.mean + birth_cohort + male + maternalage.mean + paternal_loss + maternal_loss + older_siblings + nr.siblings + last_born + (1 | idPere) + (1 | idMere)
if (dataset == "swed") {
model_prior = c(set_prior("normal(0,5)", class = "b"),
set_prior("student_t(3, 0, 5)", class = "sd"))
model_family = poisson()
} else {
model_prior = c(set_prior("normal(0,5)", class = "b"),
set_prior("normal(0,5)", class = "b", nlpar = "hu"),
set_prior("student_t(3, 0, 5)", class = "sd"))
model_formula_hu = update(model_formula, hu ~ . )
model_formula = bf(model_formula, model_formula_hu)
model_family = hurdle_poisson()
}
model = brm( model_formula,
prior = model_prior,
family = model_family, data = model_data,
chains = 6, iter = 800, warmup = 300, cores = 6, ranef = FALSE)
summary(model)
saveRDS(model,file = paste0("coefs/", dataset, "/r26_separate_parental_age_contributions.rds"))