This document summarizes the analyses which test for between study moderation.

Model 1
Model 2
Model 3
Variable b CI_l CI_u p b CI_l CI_u p b CI_l CI_u p
Diabetes
intrcpt -0.04 -0.14 0.05 .354 -0.01 -0.11 0.09 .800 -0.02 -0.12 0.08 .668
personality_q 0.01 -0.13 0.16 .846 0.00 -0.15 0.16 .952 0.02 -0.14 0.18 .833
personality_qBFI 0.05 -0.07 0.17 .401 0.03 -0.09 0.16 .598 0.04 -0.09 0.17 .512
personality_qMIDI 0.06 -0.03 0.16 .189 0.03 -0.07 0.14 .548 0.04 -0.06 0.15 .421
personality_qNEO-FFI 0.01 -0.12 0.14 .880 -0.01 -0.15 0.13 .885 0.00 -0.14 0.14 .969
Hypertension
intrcpt -0.04 -0.11 0.02 .196 -0.03 -0.09 0.04 .393 -0.03 -0.09 0.04 .397
personality_q -0.02 -0.14 0.11 .779 -0.03 -0.15 0.09 .637 -0.04 -0.16 0.08 .549
personality_qBFI 0.10 0.01 0.20 .027 0.07 0.00 0.15 .062 0.07 0.00 0.15 .063
personality_qMIDI 0.05 -0.03 0.13 .258 0.01 -0.05 0.08 .697 0.01 -0.06 0.08 .721
personality_qNEO-FFI 0.06 -0.04 0.16 .224 0.04 -0.05 0.13 .404 0.04 -0.05 0.13 .403
Heart Disease
intrcpt -0.09 -0.17 0.00 .047 -0.08 -0.18 0.01 .093 -0.09 -0.19 0.01 .070
personality_q 0.16 0.03 0.29 .019 0.16 0.02 0.30 .023 0.18 0.04 0.32 .011
personality_qBFI 0.04 -0.07 0.15 .498 0.03 -0.08 0.15 .579 0.04 -0.07 0.16 .463
personality_qMIDI 0.10 0.01 0.19 .034 0.08 -0.02 0.18 .122 0.09 -0.01 0.19 .083
personality_qNEO-FFI 0.07 -0.04 0.19 .223 0.08 -0.05 0.20 .238 0.08 -0.05 0.21 .218

Code

The following packages were used to generate this table:

library(tidyverse)
library(metafor)
library(knitr)
library(kableExtra)
library(papaja)
library(here)

First we load and summarize the diabetes data.

load(here("chronic/meta output/diabetes_cross_mods.Rdata"))

diabetes.models = data.frame(model = c("mod1", "mod2", "mod3"))

diabetes.models$output = list(mods.p.mod1, mods.p.mod2, mods.p.mod3)

summary = diabetes.models %>%
  mutate(summary = map(output, function(x) coef(summary(x)))) %>%
  mutate(summary = map(summary, ~mutate(., var = rownames(.)))) %>%
  dplyr::select(-output) %>%
  unnest() %>%
  mutate(outcome = "diabetes")

Next we load and summarize the high blood pressure data.

rm(list = setdiff(ls(), "summary"))

load(here("chronic/meta output/hbp_cross_mods.Rdata"))

hbp.models = data.frame(model = c("mod1", "mod2", "mod3"))

hbp.models$output = list(mods.p.mod1, mods.p.mod2, mods.p.mod3)

summary = hbp.models %>%
  mutate(summary = map(output, function(x) coef(summary(x)))) %>%
  mutate(summary = map(summary, ~mutate(., var = rownames(.)))) %>%
  dplyr::select(-output) %>%
  unnest() %>%
  mutate(outcome = "hbp") %>%
  full_join(summary)

Finally we load and summarize the heart condition data.

rm(list = setdiff(ls(), "summary"))

load(here("chronic/meta output/heart_cross_mods.Rdata"))

heart.models = data.frame(model = c("mod1", "mod2", "mod3"))

heart.models$output = list(mods.p.mod1, mods.p.mod2, mods.p.mod3)

summary = heart.models %>%
  mutate(summary = map(output, function(x) coef(summary(x)))) %>%
  mutate(summary = map(summary, ~mutate(., var = rownames(.)))) %>%
  dplyr::select(-output) %>%
  unnest() %>%
  mutate(outcome = "heart") %>%
  full_join(summary)
summary %>%
  dplyr::select(-se, -zval) %>%
  gather("key", "value", -model, -var, -outcome) %>%
  unite("key", "model", "key", sep="_") %>%
  spread("key", "value") %>%
  arrange(outcome, var) %>%
  dplyr::select(var, 
                mod1_estimate, mod1_ci.lb, mod1_ci.ub, mod1_pval,
                mod2_estimate, mod2_ci.lb, mod2_ci.ub, mod2_pval,
                mod3_estimate, mod3_ci.lb, mod3_ci.ub, mod3_pval) %>%
  mutate(mod1_pval = printp(mod1_pval),
         mod2_pval = printp(mod2_pval),
         mod3_pval = printp(mod3_pval)) %>%
  kable(., digits = 2, booktabs = T, escape = FALSE, 
        col.names = c("Variable", rep(c("b", "CI_l", "CI_u", "p"), 3))) %>%
  kable_styling() %>%
  add_header_above(c(" " = 1, "Model 1" = 4, "Model 2" = 4, "Model 3" = 4)) %>%
  group_rows("Diabetes", 1, 5) %>%
  group_rows("Hypertension", 6, 10) %>%
  group_rows("Heart Disease", 11, 15)