5 Synthesis

Alright, here I visualize the findings from the analysis section. I’ll create a summary figure for each of the three blocks.

For that, I’ll extract the model estimates of the effects from each model first.

model1 <- read_rds(here("models", "model1.rds"))
model2 <- read_rds(here("models", "model2.rds"))
model3 <- readRDS(here("models", "model3.rds"))
model4 <- read_rds(here("models", "model4.rds"))
model5 <- read_rds(here("models", "model5.rds"))
model6 <- readRDS(here("models", "model6.rds"))
model7 <- readRDS(here("models", "model7.rds"))
model8 <- read_rds(here("models", "model8.rds"))
model9 <- read_rds(here("models", "model9.rds"))

First we get all estimates.

estimates <- 
  tibble(
    block = as.character(),
    model = as.character(),
    predictor = as.character(),
    estimate = as.double(),
    ci_low = as.double(),
    ci_high = as.double(),
    outcome = as.character()
  )

models <- 
  paste0(
    "model",
    1:9
  )

for (model in models) {
  m <- get(model)
  
  dat <- 
    fixef(m) %>% # get fixed effects
    as_tibble(., rownames = "predictor") %>% # turn to tibble and save predictor variable 
    filter(predictor != "Intercept") %>%  # remove intercept
    select(-Est.Error) %>%  # drop variable
    mutate( # add the outcome by turning formula into character and selecting the first section
      outcome = as.character(m$formula)[1] %>% 
        str_replace(., "\n", "") %>% # remove line breaks
        str_remove(., "\\ (.*)") # select the outcome name
    ) %>% 
    rename(
      estimate = Estimate,
      ci_low = `Q2.5`,
      ci_high = `Q97.5`
    ) %>% 
    mutate(
      model = model, # original name
      # block of the RQ
      block = case_when(
        parse_number(model) %in% 1:3 ~ "Personality on smartphone use",
        parse_number(model) %in% 4:6 ~ "Experiences on smartphone use",
        parse_number(model)%in% 7:9 ~ "Smartphone use on well-being"
      )
    )
  
  # bind them all into a tibble
  estimates <-
    bind_rows(
      estimates,
      dat
    )
}

Next, let’s make some cosmetic changes.

estimates <- 
  estimates %>% 
  # get odds for estimates of the gamma models
  mutate(
    across(
      estimate:ci_high,
      ~ case_when(
        str_detect(outcome, "social_media") ~ exp(.x),
        TRUE ~ .x
      )
    )
  ) %>% 
  # create variable that indicates within or between for models on the state level and whether predictors are state or trait
  mutate(
    between_within = case_when(
      str_detect(predictor, "between") ~ "between",
      str_detect(predictor, "within") ~ "within",
      TRUE ~ NA_character_
    ),
    trait_state = case_when(
      block != "Personality on smartphone use" ~ "state",
      TRUE ~ "trait"
    )
  ) %>% 
  # clean up level names
  mutate(
    across(
      c(predictor, outcome),
      ~ case_when(
        str_detect(.x, "objective") ~ "Objective",
        str_detect(.x, "subjective") ~ "Subjective",
        str_detect(.x, "_c$|between|within") ~ str_to_title(str_remove(.x, "_.*")),
        str_detect(.x, "well") ~ "Well-being",
        TRUE ~ str_to_title(.x)
      )
    )
  ) %>% 
  # give a value for the line that signifies no effect
  mutate(
    line = if_else(outcome %in% c("Objective", "Subjective"), 1, 0)
  )

5.1 Numerical model estimates

In the paper, we don’t present numerical estimates because we ran that many models and believe a figure is more adequate to give readers a good idea of our data. Here, we show all estimates from the analysis section in one place.
RQ Estimate Predictor Outcome Lower 95% CI Upper 95% CI Predictor between or within Predictor trait or state
Personality on smartphone use 1.0012650 Openness Objective 0.8561624 1.1682906 NA trait
Personality on smartphone use 0.9928173 Conscientiousness Objective 0.8486894 1.1599741 NA trait
Personality on smartphone use 1.1031411 Extraversion Objective 0.9634127 1.2664122 NA trait
Personality on smartphone use 0.9353134 Agreeableness Objective 0.8010626 1.0910298 NA trait
Personality on smartphone use 1.1220985 Neuroticism Objective 0.9498516 1.3186005 NA trait
Personality on smartphone use 0.9088681 Competence Objective 0.7874181 1.0541874 NA trait
Personality on smartphone use 0.9915935 Relatedness Objective 0.8797513 1.1192422 NA trait
Personality on smartphone use 0.9639844 Autonomy Objective 0.8472285 1.0954242 NA trait
Personality on smartphone use 0.9564898 Openness Subjective 0.8142978 1.1263943 NA trait
Personality on smartphone use 0.9270839 Conscientiousness Subjective 0.7891877 1.0857180 NA trait
Personality on smartphone use 1.0599241 Extraversion Subjective 0.9218669 1.2184596 NA trait
Personality on smartphone use 0.9607391 Agreeableness Subjective 0.8240315 1.1259502 NA trait
Personality on smartphone use 1.0572651 Neuroticism Subjective 0.9030043 1.2374448 NA trait
Personality on smartphone use 0.9560225 Competence Subjective 0.8268558 1.1044105 NA trait
Personality on smartphone use 0.9797460 Relatedness Subjective 0.8650780 1.1079526 NA trait
Personality on smartphone use 0.9098677 Autonomy Subjective 0.7988148 1.0413136 NA trait
Personality on smartphone use -16.8059530 Openness Error -42.6156187 9.7989453 NA trait
Personality on smartphone use -10.9245239 Conscientiousness Error -36.6795446 15.1357417 NA trait
Personality on smartphone use -3.4464908 Extraversion Error -22.7416868 16.0504478 NA trait
Personality on smartphone use -8.8490298 Agreeableness Error -34.3206265 16.6875642 NA trait
Personality on smartphone use -21.8877449 Neuroticism Error -48.2662733 4.5817418 NA trait
Personality on smartphone use 11.3090672 Competence Error -10.3417279 32.5748817 NA trait
Personality on smartphone use -0.7915929 Relatedness Error -18.8548668 16.6994099 NA trait
Personality on smartphone use -2.6627363 Autonomy Error -21.2450482 16.3289309 NA trait
Experiences on smartphone use 0.9782329 Autonomy Objective 0.8430962 1.1319678 between state
Experiences on smartphone use 1.0082515 Competence Objective 0.8776508 1.1577488 between state
Experiences on smartphone use 0.9921151 Relatedness Objective 0.8634949 1.1467975 between state
Experiences on smartphone use 0.9655522 Satisfied Objective 0.8352040 1.1195041 between state
Experiences on smartphone use 1.0466593 Boring Objective 0.9346933 1.1708973 between state
Experiences on smartphone use 1.0051358 Stressful Objective 0.9087241 1.1110273 between state
Experiences on smartphone use 1.0760257 Enjoyable Objective 0.9300967 1.2443189 between state
Experiences on smartphone use 0.9936441 Autonomy Objective 0.8884132 1.1105737 within state
Experiences on smartphone use 0.9428482 Competence Objective 0.8471665 1.0517166 within state
Experiences on smartphone use 1.0119016 Relatedness Objective 0.8983982 1.1367532 within state
Experiences on smartphone use 1.0155899 Satisfied Objective 0.9214768 1.1197386 within state
Experiences on smartphone use 0.9896022 Boring Objective 0.9177769 1.0666320 within state
Experiences on smartphone use 0.9808938 Stressful Objective 0.9154929 1.0519858 within state
Experiences on smartphone use 1.0304687 Enjoyable Objective 0.9404241 1.1300332 within state
Experiences on smartphone use 0.9300347 Autonomy Subjective 0.8007163 1.0780199 between state
Experiences on smartphone use 0.9110952 Competence Subjective 0.7933090 1.0511974 between state
Experiences on smartphone use 1.0069004 Relatedness Subjective 0.8719371 1.1594090 between state
Experiences on smartphone use 0.9078853 Satisfied Subjective 0.7824334 1.0543062 between state
Experiences on smartphone use 1.0990411 Boring Subjective 0.9801975 1.2311815 between state
Experiences on smartphone use 0.9792680 Stressful Subjective 0.8864074 1.0833942 between state
Experiences on smartphone use 1.1221182 Enjoyable Subjective 0.9673823 1.2974436 between state
Experiences on smartphone use 0.9961638 Autonomy Subjective 0.8881633 1.1178577 within state
Experiences on smartphone use 0.9622879 Competence Subjective 0.8586757 1.0773853 within state
Experiences on smartphone use 0.9959550 Relatedness Subjective 0.8811687 1.1249255 within state
Experiences on smartphone use 0.9738658 Satisfied Subjective 0.8838940 1.0750254 within state
Experiences on smartphone use 1.0204638 Boring Subjective 0.9446895 1.1036047 within state
Experiences on smartphone use 0.9762666 Stressful Subjective 0.9079664 1.0490854 within state
Experiences on smartphone use 1.0417190 Enjoyable Subjective 0.9432723 1.1486231 within state
Experiences on smartphone use -3.0436910 Autonomy Error -24.8136383 18.6602039 between state
Experiences on smartphone use -9.9727821 Competence Error -29.5460975 9.6907612 between state
Experiences on smartphone use 5.5548291 Relatedness Error -13.2576986 24.3494590 between state
Experiences on smartphone use -13.0003871 Satisfied Error -35.4784744 9.2554794 between state
Experiences on smartphone use 4.9723429 Boring Error -8.7595478 18.2959361 between state
Experiences on smartphone use -7.5493568 Stressful Error -18.9017106 3.9205180 between state
Experiences on smartphone use 6.8753807 Enjoyable Error -14.5185437 28.8908163 between state
Experiences on smartphone use -0.2548933 Autonomy Error -6.8289289 6.2160828 within state
Experiences on smartphone use -0.3476491 Competence Error -6.5695029 5.9160020 within state
Experiences on smartphone use 0.4799661 Relatedness Error -8.2108490 8.6383165 within state
Experiences on smartphone use -6.0554989 Satisfied Error -12.1136872 0.0585069 within state
Experiences on smartphone use 2.7004403 Boring Error -1.1717077 6.7490586 within state
Experiences on smartphone use -0.4921211 Stressful Error -4.3427572 3.4020066 within state
Experiences on smartphone use 2.6270650 Enjoyable Error -2.3714624 7.6912586 within state
Smartphone use on well-being 0.0065712 Objective Well-being -0.0732838 0.0848080 between state
Smartphone use on well-being -0.0167289 Objective Well-being -0.0903201 0.0577650 within state
Smartphone use on well-being -0.0128997 Subjective Well-being -0.0824097 0.0562883 between state
Smartphone use on well-being -0.0280263 Subjective Well-being -0.0791005 0.0238904 within state
Smartphone use on well-being -0.0232013 Error Well-being -0.1618117 0.1150030 between state
Smartphone use on well-being -0.0284695 Error Well-being -0.1469967 0.0776612 within state

5.2 Personality on smartphone use (trait)

Okay, next I create the first summary figure. We see that none of the trait underlying true trait relations (conditional on our model) exclude zero. Neuroticism and openness might be related to less error in estimating smartphone use, but even their credible interval includes zero.

# function for breaks
my_breaks <- 
  function(x) {
    if (max(x) > 5){
      c(-50, 0, 50)
    } else {
    c(0.8, 1, 1.2)
    }
  }

# function for limits
my_limits <- 
  function(x) {
    if (max(x) > 5){
      c(-50, 50)
    } else {
    c(0.65, 1.35)
    }
  }

# plot
ggplot(
    estimates %>% 
      filter(block == "Personality on smartphone use") %>% 
      mutate(
        outcome = as.factor(outcome),
        outcome = fct_recode(
          outcome,
          "Objective (min)" = "Objective",
          "Subjective (min)" = "Subjective",
          "Accuracy (%)" = "Error"
        ),
        
        # reorder predictors
        predictor = as.factor(predictor),
        predictor = fct_rev(fct_relevel(
          predictor,
          "Autonomy",
          "Competence",
          "Relatedness",
          "Agreeableness",
          "Conscientiousness",
          "Extraversion",
          "Neuroticism",
          "Openness"
        )
      )),
  aes(
    x = estimate,
    y = predictor
  )
) +
  geom_vline(
    aes(
      xintercept = line
    ),
    color = "#999999",
    linetype = "dashed"
  ) +
  geom_pointrange(
    aes(
      xmin = ci_low,
      xmax = ci_high
    )#,
    # position = position_dodge2(.6, reverse = TRUE)
  ) +
  facet_wrap(
    ~ outcome,
    scales = "free_x"
  ) +
  scale_x_continuous(breaks = my_breaks, limits = my_limits) +
  theme(
    axis.title.y = element_blank(),
    axis.title.x = element_blank(),
    axis.ticks.y = element_blank(),
    axis.line.y = element_blank(),
    strip.background.x = element_blank(),
    strip.background.y = element_blank(),
    text = element_text(family = "Corbel")
  ) -> figure4

figure4

ggsave(
  here("figures", "figure4.tiff"),
  plot = figure4,
  width = 21 * 0.8,
  height = 29.7 * 0.4,
  units = "cm",
  dpi = 300
)

5.3 Experiences on smartphone use (state)

I’ll move on to the next block investigating state relations between experiences and smartphone use.

ggplot(
    estimates %>% 
      filter(block == "Experiences on smartphone use") %>% 
      mutate(
        outcome = as.factor(outcome),
        outcome = fct_recode(
          outcome,
          "Objective (min)" = "Objective",
          "Subjective (min)" = "Subjective",
          "Accuracy (%)" = "Error"
        ),
        predictor = as.factor(predictor),
        predictor = fct_rev(fct_relevel(
          predictor,
          "Autonomy",
          "Competence",
          "Relatedness",
          "Boring",
          "Enjoyable",
          "Satisfied",
          "Stressful"
        ))
      ),
  aes(
    x = estimate,
    y = predictor,
    color = between_within
  )
) +
  geom_vline(
    aes(
      xintercept = line
    ),
    color = "#999999",
    linetype = "dashed"
  ) +
  geom_pointrange(
    aes(
      xmin = ci_low,
      xmax = ci_high
    ),
    position = position_dodge2(.6, reverse = TRUE)
  ) +
  facet_wrap(
    ~ outcome,
    scales = "free_x"
  ) +
  scale_x_continuous(breaks = my_breaks, limits = my_limits) +
  scale_color_manual(values = c("#009E73", "#D55E00")) +
  scale_fill_manual(values = c("#009E73", "#D55E00")) +
  theme(
    axis.title.y = element_blank(),
    axis.title.x = element_blank(),
    axis.ticks.y = element_blank(),
    axis.line.y = element_blank(),
    strip.background.x = element_blank(),
    strip.background.y = element_blank(),
    legend.title = element_blank(),
    legend.position = "bottom",
    text = element_text(family = "Corbel")
  ) -> figure5

figure5

ggsave(
  here("figures", "figure5.tiff"),
  plot = figure5,
  width = 21 * 0.8,
  height = 29.7 * 0.4,
  units = "cm",
  dpi = 300
)

5.4 Smartphone use on well-being (state)

I’ll move on to the next block investigating state relations between smartphone use and well-being.

ggplot(
    estimates %>% 
      filter(block == "Smartphone use on well-being") %>% 
      mutate(
        predictor = as.factor(predictor),
        predictor = fct_recode(
          predictor,
          "Objective (h)" = "Objective",
          "Subjective (h)" = "Subjective",
          "Accuracy (%, standardized)" = "Error"
        )
      ),
  aes(
    x = estimate,
    y = predictor,
    color = between_within
  )
) +
  geom_vline(
    aes(
      xintercept = line
    ),
    color = "#999999",
    linetype = "dashed"
  ) +
  geom_pointrange(
    aes(
      xmin = ci_low,
      xmax = ci_high
    ),
    position = position_dodge2(.6, reverse = TRUE)
  ) +
  scale_x_continuous(breaks = c(-0.2, 0, 0.2), limits = c(-0.21, 0.21)) +
  scale_color_manual(values = c("#009E73", "#D55E00")) +
  scale_fill_manual(values = c("#009E73", "#D55E00")) +
  theme(
    axis.title.y = element_blank(),
    axis.title.x = element_blank(),
    axis.ticks.y = element_blank(),
    axis.line.y = element_blank(),
    strip.background.x = element_blank(),
    strip.background.y = element_blank(),
    legend.title = element_blank(),
    legend.position = "bottom",
    text = element_text(family = "Corbel")
  ) -> figure6

figure6

ggsave(
  here("figures", "figure6.tiff"),
  plot = figure6,
  width = 21 * 0.8,
  height = 29.7 * 0.4,
  units = "cm",
  dpi = 300
)