Set-up

Load packages.

# install packages
# devtools::install_github("https://github.com/tdienlin/td@v.0.0.2.5")

# define packages
library(broom.mixed)
library(brms)
library(devtools)
library(GGally)
library(ggplot2)
library(gridExtra)
library(kableExtra)
library(knitr)
library(lavaan)
library(lme4)
library(magrittr)
library(mice)
library(mvnormalTest)
library(PerFit)
library(psych)
library(quanteda.textstats)
library(semTools)
library(tidyverse)
library(td)

# load workspace
load("data/workspace_2.RData")

Robustness analyses

With additional covariates

These models include additional covariates that weren’t preregistered and that weren’t included, mainly because they are likely to be mediators. These are:

  • Trust in ORF

  • Trust in police

  • Trust in parliament

  • Trust in health sector

  • Trust in government

  • Trust in army

  • Media use: Kronen Zeitung oder www.krone.at

  • Media use: Der Standard oder derstandard.at

  • Media use: Die Presse oder diepresse.com

  • Media use: Oesterreich oder oe24.at

  • Media use: Kurier oder kurier.at

  • Media use: Salzburger Nachrichten oder salzburg.at

  • Media use: Sonstige oesterreichische Tageszeitungen

  • Media use: ORF (Nachrichten)

  • Media use: Privatfernsehen (Nachrichten)

  • Satisfaction with democracy

Life satisfaction

model_life_sat_lmer_add <- "
  life_sat ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    med_txt_kro_b + med_txt_sta_b + med_txt_pre_b + med_txt_oes_b + med_txt_kur_b + med_txt_slz_b + med_txt_son_b + 
    med_vid_orf_b + med_vid_pri_b + 
    med_txt_kro_w + med_txt_sta_w + med_txt_pre_w + med_txt_oes_w + med_txt_kur_w + med_txt_slz_w + med_txt_son_w + 
    med_vid_orf_w + med_vid_pri_w + 
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    sat_dem_w + sat_dem_b + 
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b +
    trst_media_w + trst_police_w + trst_media_w + trst_hlthsec_w + trst_gov_w + trst_army_w + 
    trst_media_b + trst_police_b + trst_media_b + trst_hlthsec_b + trst_gov_b + trst_army_b
"

fit_life_sat_lmer_add <- with(d_long_100_mim_mice, 
                              exp = lmerTest::lmer(model_life_sat_lmer_add))
fit_life_sat_lmer_add <- summary(pool(fit_life_sat_lmer_add), conf.int = TRUE)
print_res(fit_life_sat_lmer_add)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-6.17892-7.14023-5.2176< .001
soc_med_read_w0.00682-0.036270.0499.746
soc_med_like_share_w-0.02415-0.059970.0117.178
soc_med_post_w-0.03265-0.071500.0062.096
soc_med_fb_w-0.00506-0.035930.0258.738
soc_med_ig_w0.01209-0.028310.0525.541
soc_med_wa_w-0.01074-0.048720.0272.563
soc_med_yt_w0.02834-0.007800.0645.119
soc_med_tw_w-0.01951-0.061440.0224.347
soc_med_read_b0.00154-0.255160.2582.991

Positive Affect

model_aff_pos_lmer_add <- "
  aff_pos_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    med_txt_kro_b + med_txt_sta_b + med_txt_pre_b + med_txt_oes_b + med_txt_kur_b + med_txt_slz_b + med_txt_son_b + 
    med_vid_orf_b + med_vid_pri_b + 
    med_txt_kro_w + med_txt_sta_w + med_txt_pre_w + med_txt_oes_w + med_txt_kur_w + med_txt_slz_w + med_txt_son_w + 
    med_vid_orf_w + med_vid_pri_w + 
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    sat_dem_w + sat_dem_b + 
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b +
    trst_media_w + trst_police_w + trst_media_w + trst_hlthsec_w + trst_gov_w + trst_army_w + 
    trst_media_b + trst_police_b + trst_media_b + trst_hlthsec_b + trst_gov_b + trst_army_b
"

fit_aff_pos_lmer_add <- with(d_long_100_mim_mice, 
                              exp = lmerTest::lmer(model_aff_pos_lmer_add))
fit_aff_pos_lmer_add <- summary(pool(fit_aff_pos_lmer_add), conf.int = TRUE)
print_res(fit_aff_pos_lmer_add)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-3.60153-4.06175-3.14130< .001
soc_med_read_w-0.03281-0.04877-0.01684< .001
soc_med_like_share_w0.00496-0.011780.02171.547
soc_med_post_w0.019660.002910.03641.023
soc_med_fb_w-0.00095-0.013280.01138.875
soc_med_ig_w-0.00866-0.022950.00564.223
soc_med_wa_w0.00382-0.010030.01766.574
soc_med_yt_w0.00596-0.009640.02156.438
soc_med_tw_w0.00956-0.008410.02753.284
soc_med_read_b-0.62570-0.74118-0.51021< .001

Negative Affect

model_aff_neg_lmer_add <- "
  aff_neg_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    med_txt_kro_b + med_txt_sta_b + med_txt_pre_b + med_txt_oes_b + med_txt_kur_b + med_txt_slz_b + med_txt_son_b + 
    med_vid_orf_b + med_vid_pri_b + 
    med_txt_kro_w + med_txt_sta_w + med_txt_pre_w + med_txt_oes_w + med_txt_kur_w + med_txt_slz_w + med_txt_son_w + 
    med_vid_orf_w + med_vid_pri_w + 
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    sat_dem_w + sat_dem_b + 
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b +
    trst_media_w + trst_police_w + trst_media_w + trst_hlthsec_w + trst_gov_w + trst_army_w + 
    trst_media_b + trst_police_b + trst_media_b + trst_hlthsec_b + trst_gov_b + trst_army_b
"

fit_aff_neg_lmer_add <- with(d_long_100_mim_mice, 
                              exp = lmerTest::lmer(model_aff_neg_lmer_add))
fit_aff_neg_lmer_add <- summary(pool(fit_aff_neg_lmer_add), conf.int = TRUE)
print_res(fit_aff_neg_lmer_add)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)3.814533.519414.109648< .001
soc_med_read_w0.00083-0.012230.013897.896
soc_med_like_share_w0.019050.002440.035673.027
soc_med_post_w0.043000.025990.060001< .001
soc_med_fb_w-0.00221-0.014170.009752.705
soc_med_ig_w-0.00197-0.013860.009924.735
soc_med_wa_w0.00364-0.005640.012914.426
soc_med_yt_w0.011240.000520.021948.041
soc_med_tw_w0.017920.000950.034901.039
soc_med_read_b0.07606-0.001990.154106.056

Without control variables

Let’s inspect how results change when control variables are omitted.

Life satisfaction

model_life_sat_lmer_nco <- "
  life_sat ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b
"
fit_life_sat_lmer_nco <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_life_sat_lmer_nco))
fit_life_sat_lmer_nco <- summary(pool(fit_life_sat_lmer_nco), conf.int = TRUE)
print_res(fit_life_sat_lmer_nco)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)7.928847.5008.35758< .001
soc_med_read_w0.01379-0.0300.05730.518
soc_med_like_share_w-0.02904-0.0690.01107.149
soc_med_post_w-0.13611-0.173-0.09911< .001
soc_med_fb_w0.00065-0.0260.02779.961
soc_med_ig_w0.055620.0160.09513.008
soc_med_wa_w-0.00283-0.0360.02996.860
soc_med_yt_w-0.02043-0.0570.01583.257
soc_med_tw_w-0.03579-0.0730.00095.056
soc_med_read_b-0.17067-0.4380.09703.211

Positive Affect

model_aff_pos_lmer_nco <- "
  aff_pos_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b
"
fit_aff_pos_lmer_nco <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_aff_pos_lmer_nco))
fit_aff_pos_lmer_nco <- summary(pool(fit_aff_pos_lmer_nco), conf.int = TRUE)
print_res(fit_aff_pos_lmer_nco)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)3.99873.7880674.2094< .001
soc_med_read_w-0.0452-0.060507-0.0298< .001
soc_med_like_share_w0.0060-0.0120870.0241.501
soc_med_post_w0.0175-0.0000910.0352.051
soc_med_fb_w0.0031-0.0082590.0144.584
soc_med_ig_w0.0038-0.0081200.0157.520
soc_med_wa_w0.01300.0025960.0234.016
soc_med_yt_w-0.0011-0.0118460.0097.841
soc_med_tw_w0.0123-0.0022100.0268.094
soc_med_read_b-0.4415-0.576849-0.3061< .001

Negative Affect

model_aff_neg_lmer_nco <- "
  aff_neg_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b
"
fit_aff_neg_lmer_nco <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_aff_neg_lmer_nco))
fit_aff_neg_lmer_nco <- summary(pool(fit_aff_neg_lmer_nco), conf.int = TRUE)
print_res(fit_aff_neg_lmer_nco)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-0.0932-0.218440.03202.145
soc_med_read_w-0.0047-0.014940.00557.356
soc_med_like_share_w0.02560.008350.04289.006
soc_med_post_w0.10820.090700.12572< .001
soc_med_fb_w-0.0095-0.019760.00078.069
soc_med_ig_w-0.0098-0.022820.00322.133
soc_med_wa_w0.0100-0.000470.02040.060
soc_med_yt_w0.02560.012840.03833< .001
soc_med_tw_w0.03790.022280.05354< .001
soc_med_read_b0.23750.155500.31955< .001

Preregistered

Some changes were introduced because of feedback from colleagues (multiple imputation, imputation of all participants, inclusion of all variables). In what follows, please find the results as originally planned (but with some necessary deviations; for example not all preregistered variables could be included).

  • Use data-set in which participants with >50% data were removed.
  • Also use factor scores (possible without multiple imputation).

Note that because here no multiple imputation was used, output looks differently.

Life satisfaction

model_life_sat_lmer_pre <- "
  life_sat ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    med_txt_kro_b + med_txt_sta_b + med_txt_pre_b + med_txt_oes_b + med_txt_kur_b + med_txt_slz_b + med_txt_son_b + 
    med_vid_orf_b + med_vid_pri_b + 
    med_txt_kro_w + med_txt_sta_w + med_txt_pre_w + med_txt_oes_w + med_txt_kur_w + med_txt_slz_w + med_txt_son_w + 
    med_vid_orf_w + med_vid_pri_w + 
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    sat_dem_w + sat_dem_b + 
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
    "
fit_life_sat_lmer_pre <- lmerTest::lmer(model_life_sat_lmer_pre, data = d_long_50_imp)
print_res(broom.mixed::tidy(fit_life_sat_lmer_pre, conf.int = T), imputation = FALSE)
ABCDEFGHIJ0123456789
term
<chr>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-4.44509-5.15524-3.7349< .001
soc_med_read_w0.028330.012790.0439< .001
soc_med_like_share_w-0.00628-0.026190.0136.537
soc_med_post_w-0.01483-0.039640.0100.241
soc_med_fb_w0.00620-0.006130.0185.324
soc_med_ig_w-0.01092-0.025550.0037.143
soc_med_wa_w-0.01555-0.02712-0.0040.008
soc_med_yt_w0.030840.015150.0465< .001
soc_med_tw_w-0.01331-0.033860.0073.205
soc_med_read_b0.07906-0.019350.1775.115

Positive Affect

model_aff_pos_lmer_pre <- "
  aff_pos_fs ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    med_txt_kro_b + med_txt_sta_b + med_txt_pre_b + med_txt_oes_b + med_txt_kur_b + med_txt_slz_b + med_txt_son_b + 
    med_vid_orf_b + med_vid_pri_b + 
    med_txt_kro_w + med_txt_sta_w + med_txt_pre_w + med_txt_oes_w + med_txt_kur_w + med_txt_slz_w + med_txt_son_w + 
    med_vid_orf_w + med_vid_pri_w + 
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    sat_dem_w + sat_dem_b + 
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
    "
fit_aff_pos_lmer_pre <- lmerTest::lmer(model_aff_pos_lmer_pre, data = d_long_50_imp)
print_res(broom.mixed::tidy(fit_aff_pos_lmer_pre, conf.int = T), imputation = FALSE)
ABCDEFGHIJ0123456789
term
<chr>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-1.42372-1.715059-1.13239< .001
soc_med_read_w-0.00669-0.011336-0.00205.005
soc_med_like_share_w-0.00047-0.0064190.00547.876
soc_med_post_w0.009240.0018370.01665.014
soc_med_fb_w-0.00045-0.0041270.00324.812
soc_med_ig_w-0.00547-0.009835-0.00110.014
soc_med_wa_w0.003960.0005070.00742.025
soc_med_yt_w0.00166-0.0030280.00634.488
soc_med_tw_w0.00247-0.0036680.00861.430
soc_med_read_b-0.10942-0.148364-0.07048< .001

Negative Affect

model_aff_neg_lmer_pre <- "
  aff_neg_fs ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    med_txt_kro_b + med_txt_sta_b + med_txt_pre_b + med_txt_oes_b + med_txt_kur_b + med_txt_slz_b + med_txt_son_b + 
    med_vid_orf_b + med_vid_pri_b + 
    med_txt_kro_w + med_txt_sta_w + med_txt_pre_w + med_txt_oes_w + med_txt_kur_w + med_txt_slz_w + med_txt_son_w + 
    med_vid_orf_w + med_vid_pri_w + 
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    sat_dem_w + sat_dem_b + 
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
    "
fit_aff_neg_lmer_pre <- lmerTest::lmer(model_aff_neg_lmer_pre, data = d_long_50_imp)
print_res(broom.mixed::tidy(fit_aff_neg_lmer_pre, conf.int = T), imputation = FALSE)
ABCDEFGHIJ0123456789
term
<chr>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)4.457984.263884.652067< .001
soc_med_read_w-0.00285-0.006170.000463.092
soc_med_like_share_w0.010370.006130.014614< .001
soc_med_post_w0.019190.013900.024472< .001
soc_med_fb_w-0.00112-0.003750.001504.402
soc_med_ig_w-0.00179-0.004910.001325.260
soc_med_wa_w0.00133-0.001140.003793.291
soc_med_yt_w0.003780.000430.007119.027
soc_med_tw_w0.018690.014310.023069< .001
soc_med_read_b0.00438-0.021670.030437.742

Without imputation

Final analysis, but now don’t use any imputed data whatsoever. Was preregistered as additional analysis to provide comparison.

Life satisfaction

model_life_sat_lmer_noi <- "
  life_sat ~
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"
fit_life_sat_lmer_noi <- lmerTest::lmer(model_life_sat_lmer_noi, data = d_long_50)
print_res(broom.mixed::tidy(fit_life_sat_lmer_noi, conf.int = T), imputation = FALSE)
ABCDEFGHIJ0123456789
term
<chr>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-2.3402-6.45121.7707.264
soc_med_read_w0.0502-0.17810.2785.666
soc_med_like_share_w-0.1443-0.43650.1479.332
soc_med_post_w0.2097-0.15780.5773.263
soc_med_fb_w-0.0015-0.25290.2499.991
soc_med_ig_w0.38590.08400.6878.012
soc_med_wa_w-0.0623-0.27940.1548.573
soc_med_yt_w0.0569-0.24800.3619.714
soc_med_tw_w-0.1805-0.53260.1715.314
soc_med_read_b-0.0991-0.35170.1536.441

Positive Affect

model_aff_pos_lmer_noi <- "
  aff_pos_fs ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"
fit_aff_pos_lmer_noi <- lmerTest::lmer(model_aff_pos_lmer_noi, data = d_long_50)
print_res(broom.mixed::tidy(fit_aff_pos_lmer_noi, conf.int = T), imputation = FALSE)
ABCDEFGHIJ0123456789
term
<chr>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)1.30096-0.047682.6496.059
soc_med_read_w0.03038-0.045780.1065.433
soc_med_like_share_w-0.01717-0.114350.0800.729
soc_med_post_w0.01504-0.110710.1408.814
soc_med_fb_w0.06078-0.022710.1443.153
soc_med_ig_w0.06648-0.037040.1700.208
soc_med_wa_w-0.01701-0.089980.0560.647
soc_med_yt_w0.03025-0.072930.1334.565
soc_med_tw_w-0.05334-0.179790.0731.408
soc_med_read_b0.01023-0.074880.0953.813

Negative Affect

model_aff_neg_lmer_noi <- "
  aff_neg_fs ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w + soc_med_like_share_w + soc_med_post_w  + 
    soc_med_fb_w + soc_med_ig_w + soc_med_wa_w + soc_med_yt_w + soc_med_tw_w +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"
fit_aff_neg_lmer_noi <- lmerTest::lmer(model_aff_neg_lmer_noi, data = d_long_50)
print_res(broom.mixed::tidy(fit_aff_neg_lmer_noi, conf.int = T), imputation = FALSE)
ABCDEFGHIJ0123456789
term
<chr>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)3.571612.59854.54468< .001
soc_med_read_w-0.02205-0.07790.03383.438
soc_med_like_share_w-0.01022-0.08180.06135.779
soc_med_post_w0.01552-0.07460.10569.735
soc_med_fb_w-0.05933-0.12080.00212.058
soc_med_ig_w0.01081-0.06390.08554.776
soc_med_wa_w-0.00911-0.06190.04368.735
soc_med_yt_w-0.02892-0.10320.04538.445
soc_med_tw_w0.05290-0.03640.14226.245
soc_med_read_b0.03219-0.02940.09374.305

Figure

  • In what follows, see figure with all results combined.
  • Results show that different models are comparable.
  • The model without control variables stands out a bit, showing that controlling for additional varying variables makes a difference.
  • The preregistered model without imputation also has larger confidence intervals, which was to be expected given fewer data.
# get data
dat_fig_results_activity_pub <- get_dat_res(
  fit_aff_neg_lmer_pub, fit_aff_pos_lmer_pub, fit_life_sat_lmer_pub, 
  type = "Activity", analysis = "1. Final, preferred", variance = "within")

dat_fig_results_channel_pub <- get_dat_res(
  fit_aff_neg_lmer_pub, fit_aff_pos_lmer_pub, fit_life_sat_lmer_pub, 
  type = "Channels", analysis = "1. Final, preferred", variance = "within")

dat_fig_results_activity_add <- get_dat_res(
  fit_aff_neg_lmer_add, fit_aff_pos_lmer_add, fit_life_sat_lmer_add, 
  type = "Activity", analysis = "2. Additional covariates", variance = "within")

dat_fig_results_channel_add <- get_dat_res(
  fit_aff_neg_lmer_add, fit_aff_pos_lmer_add, fit_life_sat_lmer_add, 
  type = "Channels", analysis = "2. Additional covariates", variance = "within")

dat_fig_results_activity_nco <- get_dat_res(
  fit_aff_neg_lmer_nco, fit_aff_pos_lmer_nco, fit_life_sat_lmer_nco, 
  type = "Activity", analysis = "3. No covariates", variance = "within")

dat_fig_results_channel_nco <- get_dat_res(
  fit_aff_neg_lmer_nco, fit_aff_pos_lmer_nco, fit_life_sat_lmer_nco, 
  type = "Channels", analysis = "3. No covariates", variance = "within")

dat_fig_results_activity_pre <- get_dat_res(
  fit_aff_neg_lmer_pre, fit_aff_pos_lmer_pre, fit_life_sat_lmer_pre, 
  type = "Activity", analysis = "4. As preregistered", variance = "within")

dat_fig_results_channel_pre <- get_dat_res(
  fit_aff_neg_lmer_pre, fit_aff_pos_lmer_pre, fit_life_sat_lmer_pre, 
  type = "Channels", analysis = "4. As preregistered", variance = "within")

dat_fig_results_activity_noi <- get_dat_res(
  fit_aff_neg_lmer_noi, fit_aff_pos_lmer_noi, fit_life_sat_lmer_noi, 
  type = "Activity", analysis = "5. No imputation", variance = "within")

dat_fig_results_channel_noi <- get_dat_res(
  fit_aff_neg_lmer_noi, fit_aff_pos_lmer_noi, fit_life_sat_lmer_noi, 
  type = "Channels", analysis = "5. No imputation", variance = "within")

dat_fig_results_comp <- rbind(
  dat_fig_results_activity_pub, 
  dat_fig_results_channel_pub,
  dat_fig_results_activity_nco, 
  dat_fig_results_channel_nco,
  dat_fig_results_activity_add, 
  dat_fig_results_channel_add,
  dat_fig_results_activity_pre, 
  dat_fig_results_channel_pre,
  dat_fig_results_activity_noi, 
  dat_fig_results_channel_noi
)

# make figure
fig_results_comp <- make_graph_res(
  dat_fig_results_comp,
  sesoi = "est",
  facet = "type"
  )
fig_results_comp

# safe figure
ggsave("figures/fig_results_comp.png", 
       width = 7, height = 7,
       plot = fig_results_comp)

Exploratory analyses

1 Month interval

Let’s now inspect effects of media use on well-being some time later (i.e., 1 month or 4 months). This is especially relevant for life-satisfaction, which is more stable.

Let’s first format data to introduce lags.

# define waves with 1 month lag to well-being
waves_predictors_1m <- c(5, 11, 18, 24, 29)

# define waves where media use was measured
waves_media_use <- c(1, 8, 17, 23, 28)

waves_include_1m <- c(waves_media_use, waves_predictors_1m)

d_long_100_mim_mice_1m <- 
  d_long_100_mim_mice %>% 
  complete(
    'long', 
    include = TRUE
    ) %>%
  filter(
    wave %in% waves_include_1m
    ) %>% 
  group_by(id) %>% 
  mutate(
    life_sat = lead(life_sat, n = 1, default = NA),
    aff_pos_m = lead(aff_pos_m, n = 1, default = NA), 
    aff_neg_m = lead(aff_neg_m, n = 1, default = NA),
    ) %>%
  ungroup() %>% 
  as.mids() %>% 
  # select waves used for analyses
  filter(
    wave %in% waves_predictors_1m
  )

waves_predictors_4m <- c(13, 15, 21, 25, 32)
waves_include_4m <- c(waves_media_use, waves_predictors_4m)

d_long_100_mim_mice_4m <- 
  d_long_100_mim_mice %>% 
  complete(
    'long', 
    include = TRUE
    ) %>%
  filter(
    wave %in% waves_include_4m
    ) %>% 
  group_by(id) %>% 
  mutate(
    life_sat = lead(life_sat, n = 1, default = NA),
    aff_pos_m = lead(aff_pos_m, n = 1, default = NA), 
    aff_neg_m = lead(aff_neg_m, n = 1, default = NA),
    ) %>%
  ungroup() %>% 
  as.mids() %>% 
  # select waves used for analyses
  filter(
    wave %in% waves_predictors_4m
  )

Life satisfaction

fit_life_sat_lmer_1m <- with(d_long_100_mim_mice_1m, exp = lmerTest::lmer(model_life_sat_lmer_pub))
fit_life_sat_lmer_1m <- summary(pool(fit_life_sat_lmer_1m), conf.int = TRUE)
print_res(fit_life_sat_lmer_1m)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-4.971977-6.41458-3.5294< .001
soc_med_read_w-0.003723-0.051840.0444.877
soc_med_like_share_w-0.001137-0.059540.0573.969
soc_med_post_w-0.004651-0.073300.0640.893
soc_med_fb_w-0.003714-0.042520.0351.849
soc_med_ig_w0.006358-0.036730.0494.769
soc_med_wa_w0.006504-0.032760.0458.742
soc_med_yt_w-0.006680-0.056360.0430.789
soc_med_tw_w0.013799-0.052860.0805.680
soc_med_read_b0.000117-0.434910.43511.000

We find no significant effects.

Positive Affect

fit_aff_pos_lmer_1m <- with(d_long_100_mim_mice_1m, exp = lmerTest::lmer(model_aff_pos_lmer_pub))
fit_aff_pos_lmer_1m <- summary(pool(fit_aff_pos_lmer_1m), conf.int = TRUE)
print_res(fit_aff_pos_lmer_1m)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-3.426678-4.08133-2.7720< .001
soc_med_read_w-0.004061-0.022460.0143.662
soc_med_like_share_w0.002131-0.021090.0254.856
soc_med_post_w0.001574-0.025130.0283.907
soc_med_fb_w-0.002916-0.019570.0137.728
soc_med_ig_w0.000586-0.017610.0188.949
soc_med_wa_w0.004705-0.010830.0202.549
soc_med_yt_w-0.001127-0.021240.0190.912
soc_med_tw_w0.000261-0.027070.0276.985
soc_med_read_b-0.609276-0.80704-0.4115< .001

We find no significant effects.

Negative Affect

fit_aff_neg_lmer_1m <- with(d_long_100_mim_mice_1m, exp = lmerTest::lmer(model_aff_neg_lmer_pub))
fit_aff_neg_lmer_1m <- summary(pool(fit_aff_neg_lmer_1m), conf.int = TRUE)
print_res(fit_aff_neg_lmer_1m)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)4.125043.672754.57733< .001
soc_med_read_w-0.00038-0.017060.01630.963
soc_med_like_share_w0.00099-0.019430.02142.923
soc_med_post_w0.00423-0.020260.02872.731
soc_med_fb_w0.00152-0.010980.01403.809
soc_med_ig_w-0.00057-0.012720.01157.926
soc_med_wa_w-0.00129-0.012750.01017.824
soc_med_yt_w0.00236-0.013900.01863.772
soc_med_tw_w-0.00189-0.020720.01694.842
soc_med_read_b0.186220.041400.33103.012

We find no significant effects.

4 Months Interval

Let’s not see if we find effects looking at longer intervals.

Life satisfaction

fit_life_sat_lmer_4m <- with(d_long_100_mim_mice_4m, exp = lmerTest::lmer(model_life_sat_lmer_pub))
fit_life_sat_lmer_4m <- summary(pool(fit_life_sat_lmer_4m), conf.int = TRUE)
print_res(fit_life_sat_lmer_4m)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-5.033698-6.56205-3.5053< .001
soc_med_read_w-0.000542-0.044760.0437.981
soc_med_like_share_w-0.003085-0.066430.0603.923
soc_med_post_w-0.003511-0.091150.0841.936
soc_med_fb_w-0.001299-0.038950.0363.945
soc_med_ig_w0.006173-0.036930.0493.776
soc_med_wa_w0.005399-0.033950.0448.785
soc_med_yt_w-0.001855-0.051700.0480.941
soc_med_tw_w0.003809-0.054720.0623.897
soc_med_read_b0.070380-0.398040.5388.767

We find no significant effects.

Positive Affect

fit_aff_pos_lmer_4m <- with(d_long_100_mim_mice_4m, exp = lmerTest::lmer(model_aff_pos_lmer_pub))
fit_aff_pos_lmer_4m <- summary(pool(fit_aff_pos_lmer_4m), conf.int = TRUE)
print_res(fit_aff_pos_lmer_4m)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-3.50120-4.15990-2.84251< .001
soc_med_read_w-0.00535-0.026680.01598.618
soc_med_like_share_w0.00187-0.022770.02652.880
soc_med_post_w0.00514-0.023820.03410.725
soc_med_fb_w0.00071-0.014870.01629.928
soc_med_ig_w0.00120-0.016560.01896.894
soc_med_wa_w-0.00115-0.017760.01547.891
soc_med_yt_w0.00163-0.019180.02245.876
soc_med_tw_w-0.00132-0.028270.02562.922
soc_med_read_b-0.58979-0.78982-0.38976< .001

We find no significant effects.

Negative Affect

fit_aff_neg_lmer_4m <- with(d_long_100_mim_mice_4m, exp = lmerTest::lmer(model_aff_neg_lmer_pub))
fit_aff_neg_lmer_4m <- summary(pool(fit_aff_neg_lmer_4m), conf.int = TRUE)
print_res(fit_aff_neg_lmer_4m)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)4.0564423.592784.52010< .001
soc_med_read_w0.000299-0.017200.01780.973
soc_med_like_share_w0.001078-0.019150.02131.915
soc_med_post_w0.003885-0.027630.03540.804
soc_med_fb_w0.001352-0.010560.01326.822
soc_med_ig_w-0.001998-0.015240.01124.765
soc_med_wa_w0.001246-0.008830.01132.807
soc_med_yt_w-0.002123-0.018580.01434.797
soc_med_tw_w0.002872-0.014010.01975.737
soc_med_read_b0.1728300.020120.32554.027

We find no significant effects.

Gender

Let’s next see if effects differ for males and females.

Life satisfaction

model_life_sat_lmer_male <- "
  life_sat ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w * male + soc_med_like_share_w * male + soc_med_post_w * male + 
    soc_med_fb_w * male + soc_med_ig_w * male + soc_med_wa_w * male + soc_med_yt_w * male + soc_med_tw_w * male +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"

fit_life_sat_lmer_male <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_life_sat_lmer_male))
fit_life_sat_lmer_male <- summary(pool(fit_life_sat_lmer_male), conf.int = TRUE)
print_res(fit_life_sat_lmer_male)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-4.62678-5.53276-3.7208< .001
soc_med_read_w0.00871-0.037420.0548.700
male-0.09937-0.201750.0030.057
soc_med_like_share_w-0.02048-0.058370.0174.280
soc_med_post_w-0.04123-0.089940.0075.095
soc_med_fb_w-0.01212-0.044920.0207.455
soc_med_ig_w0.03070-0.009330.0707.127
soc_med_wa_w-0.00289-0.042190.0364.881
soc_med_yt_w0.00345-0.032630.0395.847
soc_med_tw_w-0.01729-0.057870.0233.394

Interaction effects are insignificant, showing that effects don’t differ across genders.

Positive Affect

model_aff_pos_lmer_male <- "
  aff_pos_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w * male + soc_med_like_share_w * male + soc_med_post_w * male + 
    soc_med_fb_w * male + soc_med_ig_w * male + soc_med_wa_w * male + soc_med_yt_w * male + soc_med_tw_w * male +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"

fit_aff_pos_lmer_male <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_aff_pos_lmer_male))
fit_aff_pos_lmer_male <- summary(pool(fit_aff_pos_lmer_male), conf.int = TRUE)
print_res(fit_aff_pos_lmer_male)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)-3.405713-3.8122-2.999255< .001
soc_med_read_w-0.031820-0.0493-0.014359< .001
male0.0756240.02230.128954.006
soc_med_like_share_w0.004729-0.01570.025139.638
soc_med_post_w0.0261580.00610.046182.012
soc_med_fb_w-0.003179-0.01650.010119.628
soc_med_ig_w-0.006689-0.02150.008107.362
soc_med_wa_w0.005986-0.00900.020971.419
soc_med_yt_w0.001774-0.01540.018967.834
soc_med_tw_w0.013572-0.00430.031416.132

Interaction effects are insignificant, showing that effects don’t differ across genders.

Negative Affect

model_aff_neg_lmer_male <- "
  aff_neg_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w * male + soc_med_like_share_w * male + soc_med_post_w * male + 
    soc_med_fb_w * male + soc_med_ig_w * male + soc_med_wa_w * male + soc_med_yt_w * male + soc_med_tw_w * male +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    age + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"

fit_aff_neg_lmer_male <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_aff_neg_lmer_male))
fit_aff_neg_lmer_male <- summary(pool(fit_aff_neg_lmer_male), conf.int = TRUE)
print_res(fit_aff_neg_lmer_male)
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
(Intercept)4.083033.820294.3457565< .001
soc_med_read_w0.00368-0.010190.0175583.589
male-0.04708-0.08013-0.0140206.005
soc_med_like_share_w0.01860-0.000560.0377629.057
soc_med_post_w0.051870.032050.0716908< .001
soc_med_fb_w-0.00250-0.014570.0095652.672
soc_med_ig_w-0.00257-0.016790.0116474.712
soc_med_wa_w0.00387-0.005060.0128012.383
soc_med_yt_w0.016030.004470.0275836.008
soc_med_tw_w0.026960.007460.0464507.009

Interaction effects are insignificant, showing that effects don’t differ across genders.

Age

Let’s next inspect if effects differ across age. We’ll look at generations (Gen Z, Gen Y, …). Let’s first transform data to make age categories.

d_long_100_mim_mice <-
  d_long_100_mim_mice %>% 
  complete(
    'long', 
    include = TRUE
    ) %>%
  mutate(
    age_gen = ifelse(
      age > 2022 - 1946, 
      "Silent",
      ifelse(
        age > 2022 - 1965, 
        "Boomer",
        ifelse(
          age > 2022 - 1981, 
          "Gen X",
          ifelse(
            age > 2022 - 1997, 
            "Gen Y",
            "Gen Z"
            )
          )
        )
      )
    ) %>% 
  mutate(
    age_gen = factor(
      age_gen,
      c("Gen X", "Gen Z", "Gen Y", "Boomer", "Silent")
    )
  ) %>% 
  as.mids()

d_long_100_mim_mice %>% 
  complete(
    'long', 
    include = TRUE
    ) %>%
  select(age_gen) %>% 
  table()
## age_gen
##  Gen X  Gen Z  Gen Y Boomer Silent 
## 595476 721854 763980 469812  48552

Life satisfaction

model_life_sat_lmer_age <- "
  life_sat ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w * age_gen + soc_med_like_share_w * age_gen + soc_med_post_w * age_gen + 
    soc_med_fb_w * age_gen + soc_med_ig_w * age_gen + soc_med_wa_w * age_gen + soc_med_yt_w * age_gen + soc_med_tw_w * age_gen +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"

fit_life_sat_lmer_age <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_life_sat_lmer_age))
fit_life_sat_lmer_age <- summary(pool(fit_life_sat_lmer_age), conf.int = TRUE)
print_res(fit_life_sat_lmer_age) %>% 
  filter(grepl(".*:.*", term))
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
soc_med_read_w:age_genGen Z0.00884-0.0360.053.693
soc_med_read_w:age_genGen Y0.00773-0.0350.050.719
soc_med_read_w:age_genBoomer0.01602-0.0280.060.478
soc_med_read_w:age_genSilent0.02280-0.1050.151.723
age_genGen Z:soc_med_like_share_w-0.00851-0.0600.043.742
age_genGen Y:soc_med_like_share_w0.00593-0.0500.061.832
age_genBoomer:soc_med_like_share_w0.00946-0.0530.071.762
age_genSilent:soc_med_like_share_w0.00503-0.1490.159.949
age_genGen Z:soc_med_post_w-0.02306-0.0870.041.477
age_genGen Y:soc_med_post_w-0.01906-0.0880.050.584

Interaction effects are insignificant, showing that effects don’t differ across generations.

Positive Affect

model_aff_pos_lmer_age <- "
  aff_pos_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w * age_gen + soc_med_like_share_w * age_gen + soc_med_post_w * age_gen + 
    soc_med_fb_w * age_gen + soc_med_ig_w * age_gen + soc_med_wa_w * age_gen + soc_med_yt_w * age_gen + soc_med_tw_w * age_gen +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"

fit_aff_pos_lmer_age <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_aff_pos_lmer_age))
fit_aff_pos_lmer_age <- summary(pool(fit_aff_pos_lmer_age), conf.int = TRUE)
print_res(fit_aff_pos_lmer_age) %>% 
  filter(grepl(".*:.*", term))
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
soc_med_read_w:age_genGen Z-0.004463-0.02390.015.647
soc_med_read_w:age_genGen Y-0.001532-0.02040.017.872
soc_med_read_w:age_genBoomer0.010337-0.00950.030.303
soc_med_read_w:age_genSilent0.001103-0.05200.054.967
age_genGen Z:soc_med_like_share_w0.002181-0.01880.023.837
age_genGen Y:soc_med_like_share_w0.002438-0.02060.026.834
age_genBoomer:soc_med_like_share_w0.004641-0.02250.032.734
age_genSilent:soc_med_like_share_w0.008997-0.05600.074.784
age_genGen Z:soc_med_post_w0.001817-0.02270.026.884
age_genGen Y:soc_med_post_w0.000081-0.02730.028.995

Interaction effects are insignificant, showing that effects don’t differ across generations.

Negative Affect

model_aff_neg_lmer_age <- "
  aff_neg_m ~ 
    (1 | id) + (1 | wave) + 
    soc_med_read_w * age_gen + soc_med_like_share_w * age_gen + soc_med_post_w * age_gen + 
    soc_med_fb_w * age_gen + soc_med_ig_w * age_gen + soc_med_wa_w * age_gen + soc_med_yt_w * age_gen + soc_med_tw_w * age_gen +
    soc_med_read_b + soc_med_like_share_b + soc_med_post_b + 
    soc_med_fb_b + soc_med_ig_b + soc_med_wa_b + soc_med_yt_b + soc_med_tw_b +  
    male + born_aus + born_aus_prnts + edu_fac + employment_fac +
    res_vienna + acc_bal + acc_gar + home_sqm + 
    corona_pos_b + corona_pos_w +
    work_h_b + work_h_w +
    work_homeoff_b +  work_homeoff_w +
    hh_income_b + hh_income_w +
    hh_adults + hh_child18 + hh_child17 + hh_child14 + hh_child5 + hh_child2 + 
    hh_oldfam + hh_outfam + hh_partner +
    home_owner +
    risk_prop_b + risk_prop_w + 
    act_wrk_w + act_spo_w + act_frn_w + act_sho_w + act_pet_w + 
    act_wrk_b + act_spo_b + act_frn_b + act_sho_b + act_pet_b +
    health_w + health_b +
    loc_cntrl_int_m_w + loc_cntrl_int_m_b
"

fit_aff_neg_lmer_age <- with(d_long_100_mim_mice, exp = lmerTest::lmer(model_aff_neg_lmer_age))
fit_aff_neg_lmer_age <- summary(pool(fit_aff_neg_lmer_age), conf.int = TRUE)
fit_aff_neg_lmer_age_tab <- print_res(fit_aff_neg_lmer_age)
fit_aff_neg_lmer_age_tab %>% 
  filter(grepl(".*:.*", term))
ABCDEFGHIJ0123456789
term
<fct>
estimate
<dbl>
2.5 %
<dbl>
97.5 %
<dbl>
p.value
<chr>
soc_med_read_w:age_genGen Z-0.005447-0.020850.0100.481
soc_med_read_w:age_genGen Y-0.003802-0.017590.0100.584
soc_med_read_w:age_genBoomer-0.000348-0.014500.0138.961
soc_med_read_w:age_genSilent0.000419-0.033400.0342.980
age_genGen Z:soc_med_like_share_w0.005835-0.012850.0245.534
age_genGen Y:soc_med_like_share_w0.002629-0.014570.0198.761
age_genBoomer:soc_med_like_share_w-0.006416-0.023980.0111.471
age_genSilent:soc_med_like_share_w-0.004978-0.047000.0370.815
age_genGen Z:soc_med_post_w0.0372570.014510.0600.002
age_genGen Y:soc_med_post_w0.020564-0.000660.0418.057

Interaction effects are insignificant, showing that effects don’t differ across generations. However, there’s one exception: Gen Z differs significantly from Gen X in terms of negative affect experienced when posting more than usual COVID-19 related content.

save.image("data/workspace_3.RData")