library(here)        # for file directory
library(tidyr)       # for pivot_wider
library(rio)         # to load in data
library(dplyr)       # general wrangling
library(rempsyc)     # simple slopes analysis
library(Hmisc)       # correlation matrix
library(psych)       # fisher's z transformation
library(lme4)        # linear mixed model   
library(lmerTest)    # linear mixed model significance test
library(lavaan)      # RI-CLPM
library(semPlot)     # semPaths
library(kableExtra)  # for styling and scroll_box

# source the helper file
source("00_helpers.R")

options(digits = 3)

Meta Data

This is the analytic report for the Early Dating dataset.

# load in data
data_yw <- rio::import(paste0(here(), "/data/cleaned_data_yw.RDS"))

# example data
data_yw %>%
  arrange(couple) %>%
  head() %>% 
  knitr::kable(
    caption = "Example first 6 rows of the Early Dating dataset"
  ) %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Example first 6 rows of the Early Dating dataset
couple time ethnic_black_2 ethnic_black_1 ethnic_asian_2 ethnic_asian_1 ethnic_white_2 ethnic_white_1 ethnic_hisp_2 ethnic_hisp_1 ethnic_other_2 ethnic_other_1 ethnic_other_txt_2 ethnic_other_txt_1 age_2 age_1 duration_2 duration_1 rela_status_2 rela_status_1 neuroticism_self_2 neuroticism_self_1 agreeableness_self_2 agreeableness_self_1 conscientiousness_self_2 conscientiousness_self_1 extraversion_self_2 extraversion_self_1 openness_self_2 openness_self_1 neuroticism_partner_2 neuroticism_partner_1 agreeableness_partner_2 agreeableness_partner_1 conscientiousness_partner_2 conscientiousness_partner_1 extraversion_partner_2 extraversion_partner_1 openness_partner_2 openness_partner_1 avoidance_2 avoidance_1 anxiety_2 anxiety_1 resp_2 resp_1 trust_2 trust_1 prqc_overall_2 prqc_overall_1
1 0 0 0 0 0 1 1 0 0 0 0 NA NA 23 21 13 13 1 1 1.75 2.70 4.45 4.10 4.40 3.45 3.45 3.20 3.90 4.05 1.75 2.12 4.88 3.62 3.62 3.88 3.25 3.38 3.38 3.00 4.50 2.88 1.33 3.11 8.72 8.17 5.88 5.41 7.00 7.00
1 8 0 0 0 0 1 1 0 0 0 0 NA NA 23 21 13 13 1 1 1.50 2.25 4.38 3.50 4.25 3.50 4.25 3.12 3.75 3.50 2.00 2.25 5.00 3.50 3.75 4.00 3.25 3.62 4.25 3.12 3.38 2.00 2.00 2.89 8.89 8.17 5.88 6.24 7.00 7.00
1 16 0 0 0 0 1 1 0 0 0 0 NA NA 23 21 13 13 1 1 2.00 3.38 4.75 3.50 4.38 3.75 4.00 3.25 3.62 3.25 2.00 2.25 5.00 3.62 3.50 3.50 3.38 3.25 4.50 3.00 3.00 3.25 1.89 2.56 8.89 7.89 6.06 6.35 7.00 6.50
2 0 0 0 0 1 1 0 0 0 0 0 NA NA 30 18 NA 8 1 1 3.30 3.50 3.75 4.50 3.00 3.45 4.15 3.20 4.00 3.60 3.62 3.38 2.75 3.12 3.00 3.62 2.88 3.62 3.38 3.00 5.88 4.38 4.89 4.44 6.72 5.28 3.88 3.94 5.00 5.00
3 0 0 0 0 0 1 1 0 0 0 0 NA NA 29 31 13 12 1 1 2.10 3.50 4.05 4.60 3.20 2.30 4.35 2.40 4.50 4.35 2.75 4.62 4.88 2.00 3.00 2.25 3.12 4.12 4.88 2.50 3.00 3.88 2.56 3.56 8.00 7.56 6.00 4.71 6.33 6.17
4 0 0 0 0 0 1 1 0 0 0 0 NA NA 22 18 7 7 1 1 2.50 3.30 3.55 4.05 3.20 3.30 3.95 3.35 4.20 4.00 2.50 3.62 4.12 3.88 3.75 2.50 3.75 2.88 4.12 3.50 3.00 2.88 2.56 4.78 8.67 7.33 6.24 4.88 7.00 6.67

Missingness Analysis

miss_analysis(ID = "couple", var = c("agreeableness_self_1", "agreeableness_self_2"), 
              var_demo = c(
                paste0(rep(c("ethnic_black_", "ethnic_asian_", "ethnic_white_", 
                             "ethnic_hisp_", "ethnic_other_"), each = 2), 
                       rep(c(1,2), times = 5)),
                "age_1", "age_2",
                "duration_1", "duration_2",
                paste0(rep(c("agreeableness_self_", "conscientiousness_self_", 
                             "extraversion_self_", "neuroticism_self_", "openness_self_"), 
                           each = 2),
                       rep(c(1,2), times = 5))
              ),
              var_rela = 
                paste0(rep(c("prqc_overall_", "avoidance_", "anxiety_",
                             "resp_", "trust_"), each = 2),
                       rep(c(1,2), times = 5)),
              data = data_yw)
ethnic_black_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.07 0.362 -8.500 0.000
ethnic_black_1 -14.49 2284.102 -0.006 0.995
ethnic_black_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.06 0.362 -8.466 0.000
ethnic_black_2 -14.50 1769.258 -0.008 0.993
ethnic_asian_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.92 0.363 -8.058 0.000
ethnic_asian_1 -16.64 2069.611 -0.008 0.994
ethnic_asian_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.135 0.386 -8.121 0.000
ethnic_asian_2 0.427 1.103 0.388 0.698
ethnic_white_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.664 1.01 -3.618 0.000
ethnic_white_1 0.689 1.08 0.636 0.525
ethnic_white_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.862 0.727 -3.937 0.000
ethnic_white_2 -0.295 0.838 -0.352 0.725
ethnic_hisp_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.07 0.362 -8.500 0.000
ethnic_hisp_1 -14.49 2284.102 -0.006 0.995
ethnic_hisp_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.18 0.386 -8.26 0.000
ethnic_hisp_2 1.24 1.136 1.09 0.276
ethnic_other_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.01 0.362 -8.306 0.000
ethnic_other_1 -15.56 1743.249 -0.009 0.993
ethnic_other_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.03 0.362 -8.360 0.000
ethnic_other_2 -15.54 1966.650 -0.008 0.994
age_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.363 3.827 -0.095 0.924
age_1 -0.142 0.193 -0.737 0.461
age_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.695 3.463 0.201 0.841
age_2 -0.188 0.171 -1.103 0.270
duration_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.084 0.545 -5.661 0.000
duration_1 -0.014 0.043 -0.318 0.751
duration_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.904 0.744 -3.904 0.000
duration_2 -0.033 0.077 -0.434 0.664
agreeableness_self_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.839 3.410 -0.832 0.405
agreeableness_self_1 -0.097 0.856 -0.114 0.910
agreeableness_self_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.237 3.74 -0.063 0.950
agreeableness_self_2 -0.968 1.04 -0.930 0.352
conscientiousness_self_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.90 2.798 -2.46 0.014
conscientiousness_self_1 1.03 0.747 1.38 0.169
conscientiousness_self_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.394 2.967 0.133 0.894
conscientiousness_self_2 -1.325 0.979 -1.354 0.176
extraversion_self_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.623 2.949 -2.25 0.025
extraversion_self_1 0.892 0.743 1.20 0.230
extraversion_self_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.345 3.484 -1.535 0.125
extraversion_self_2 0.421 0.914 0.461 0.645
neuroticism_self_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.252 1.905 -2.232 0.026
neuroticism_self_1 0.347 0.617 0.562 0.574
neuroticism_self_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.674 2.214 -2.111 0.035
neuroticism_self_2 0.356 0.842 0.423 0.672
openness_self_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.408 2.603 -0.541 0.589
openness_self_1 -0.501 0.723 -0.693 0.488
openness_self_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.881 3.918 -1.50 0.133
openness_self_2 0.548 0.997 0.55 0.583
prqc_overall_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -7.422 4.573 -1.623 0.105
prqc_overall_1 0.659 0.702 0.939 0.348
prqc_overall_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.925 5.030 -1.178 0.239
prqc_overall_2 0.345 0.785 0.439 0.661
avoidance_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.59 1.345 -2.669 0.008
avoidance_1 0.11 0.378 0.292 0.770
avoidance_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.437 1.617 -0.889 0.374
avoidance_2 -0.825 0.618 -1.335 0.182
anxiety_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.483 1.261 -1.968 0.049
anxiety_1 -0.229 0.387 -0.592 0.554
anxiety_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.128 1.878 -2.198 0.028
anxiety_2 0.115 0.562 0.206 0.837
resp_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.478 3.230 -1.696 0.090
resp_1 0.296 0.412 0.718 0.473
resp_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -10.405 5.459 -1.91 0.057
resp_2 0.859 0.677 1.27 0.204
trust_1 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.980 2.521 -1.579 0.114
trust_1 0.143 0.466 0.308 0.758
trust_2 predicting missingness
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.348 3.67 -1.455 0.146
trust_2 0.305 0.68 0.448 0.654

Research Question 1. Evidence of Assortative Mating

H1. Baseline similarity

At baseline, romantic partners are similar in their personality such that their scale scores are significantly and positively correlated

var_list <- c(
  # traits
  paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self"),
  
  # CA
  "avoidance", "anxiety", "resp", "trust",
  
  # relationship quality - not for hypothesis testing, just for slope later
  "prqc_overall"
)

prof_list <- data.frame(
  bigfive = paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self")
)

# run function for h1
h1_results <- h1_function(var_list = var_list, prof_list = prof_list, 
                          df = data_yw[which(data_yw$time == 0),], time = 0)

# results
h1_results$bivariate %>% 
  filter(variable != "prqc_overall") %>%
  knitr::kable(caption = "Bivariate between-partner correlation") %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Bivariate between-partner correlation
variable n correlation p_value LL UL
neuroticism_self 179 0.069 0.362 -0.079 0.213
agreeableness_self 179 0.191 0.010 0.046 0.328
conscientiousness_self 179 0.155 0.039 0.008 0.295
extraversion_self 179 0.025 0.745 -0.123 0.171
openness_self 179 0.246 0.001 0.103 0.379
avoidance 174 0.074 0.329 -0.075 0.221
anxiety 174 0.153 0.043 0.005 0.295
resp 174 0.455 0.000 0.329 0.566
trust 171 0.236 0.002 0.089 0.373
h1_results$profile %>% 
  knitr::kable(caption = "Proportion of signficant between-partner profile correlations in traits") %>% 
  kableExtra::kable_styling()
Proportion of signficant between-partner profile correlations in traits
time profile raw centered standardized
0 bigfive 0.15084 0.05028 0.05028
data_yw <- merge(data_yw, h1_results$profile_df, all = TRUE)

summary(data_yw %>%
          filter(time == 0) %>%
          select(starts_with("bigfive"))) %>% 
  knitr::kable(caption = "Descriptive summary of trait profile correlations at baseline") %>% 
  kableExtra::kable_styling()
Descriptive summary of trait profile correlations at baseline
bigfive_raw_r bigfive_centered_r bigfive_std_r
Min. :-0.96 Min. :-0.99 Min. :-0.99
1st Qu.: 0.12 1st Qu.:-0.23 1st Qu.:-0.21
Median : 0.55 Median : 0.08 Median : 0.12
Mean : 0.39 Mean : 0.11 Mean : 0.12
3rd Qu.: 0.79 3rd Qu.: 0.55 3rd Qu.: 0.53
Max. : 0.98 Max. : 0.99 Max. : 0.96
NA’s :5 NA’s :5 NA’s :5

H2. Difference in correlations

At baseline, romantic partners are more similar in their characteristic adaptations than in their personality traits.

# run function on simulated data
h2_function(cor_tab = h1_results$bivariate) %>% 
  filter(V1 != "prqc_overall" & V2 != "prqc_overall") %>%
  arrange(desc(abs(z_stat))) %>%
  knitr::kable(caption = "Comparisons of bivariate correlations of personality traits vs CAs") %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Comparisons of bivariate correlations of personality traits vs CAs
V1 V2 V1_cor V2_cor z_stat sig
extraversion_self resp 0.025 [-0.123 - 0.171] 0.455 [0.329 - 0.566] -4.340 TRUE
neuroticism_self resp 0.069 [-0.079 - 0.213] 0.455 [0.329 - 0.566] -3.929 TRUE
avoidance resp 0.074 [-0.075 - 0.221] 0.455 [0.329 - 0.566] -3.854 TRUE
conscientiousness_self resp 0.155 [0.008 - 0.295] 0.455 [0.329 - 0.566] -3.117 TRUE
anxiety resp 0.153 [0.005 - 0.295] 0.455 [0.329 - 0.566] -3.114 TRUE
agreeableness_self resp 0.191 [0.046 - 0.328] 0.455 [0.329 - 0.566] -2.772 TRUE
resp trust 0.455 [0.329 - 0.566] 0.236 [0.089 - 0.373] 2.306 TRUE
openness_self resp 0.246 [0.103 - 0.379] 0.455 [0.329 - 0.566] -2.234 TRUE
extraversion_self openness_self 0.025 [-0.123 - 0.171] 0.246 [0.103 - 0.379] -2.121 TRUE
extraversion_self trust 0.025 [-0.123 - 0.171] 0.236 [0.089 - 0.373] -1.998 TRUE
neuroticism_self openness_self 0.069 [-0.079 - 0.213] 0.246 [0.103 - 0.379] -1.708 FALSE
openness_self avoidance 0.246 [0.103 - 0.379] 0.074 [-0.075 - 0.221] 1.649 FALSE
neuroticism_self trust 0.069 [-0.079 - 0.213] 0.236 [0.089 - 0.373] -1.589 FALSE
agreeableness_self extraversion_self 0.191 [0.046 - 0.328] 0.025 [-0.123 - 0.171] 1.579 FALSE
avoidance trust 0.074 [-0.075 - 0.221] 0.236 [0.089 - 0.373] -1.532 FALSE
conscientiousness_self extraversion_self 0.155 [0.008 - 0.295] 0.025 [-0.123 - 0.171] 1.231 FALSE
extraversion_self anxiety 0.025 [-0.123 - 0.171] 0.153 [0.005 - 0.295] -1.203 FALSE
neuroticism_self agreeableness_self 0.069 [-0.079 - 0.213] 0.191 [0.046 - 0.328] -1.166 FALSE
agreeableness_self avoidance 0.191 [0.046 - 0.328] 0.074 [-0.075 - 0.221] 1.110 FALSE
openness_self anxiety 0.246 [0.103 - 0.379] 0.153 [0.005 - 0.295] 0.903 FALSE
conscientiousness_self openness_self 0.155 [0.008 - 0.295] 0.246 [0.103 - 0.379] -0.890 FALSE
neuroticism_self conscientiousness_self 0.069 [-0.079 - 0.213] 0.155 [0.008 - 0.295] -0.818 FALSE
anxiety trust 0.153 [0.005 - 0.295] 0.236 [0.089 - 0.373] -0.795 FALSE
neuroticism_self anxiety 0.069 [-0.079 - 0.213] 0.153 [0.005 - 0.295] -0.793 FALSE
conscientiousness_self trust 0.155 [0.008 - 0.295] 0.236 [0.089 - 0.373] -0.781 FALSE
conscientiousness_self avoidance 0.155 [0.008 - 0.295] 0.074 [-0.075 - 0.221] 0.765 FALSE
avoidance anxiety 0.074 [-0.075 - 0.221] 0.153 [0.005 - 0.295] -0.740 FALSE
agreeableness_self openness_self 0.191 [0.046 - 0.328] 0.246 [0.103 - 0.379] -0.542 FALSE
extraversion_self avoidance 0.025 [-0.123 - 0.171] 0.074 [-0.075 - 0.221] -0.458 FALSE
agreeableness_self trust 0.191 [0.046 - 0.328] 0.236 [0.089 - 0.373] -0.437 FALSE
neuroticism_self extraversion_self 0.069 [-0.079 - 0.213] 0.025 [-0.123 - 0.171] 0.414 FALSE
agreeableness_self anxiety 0.191 [0.046 - 0.328] 0.153 [0.005 - 0.295] 0.365 FALSE
agreeableness_self conscientiousness_self 0.191 [0.046 - 0.328] 0.155 [0.008 - 0.295] 0.348 FALSE
openness_self trust 0.246 [0.103 - 0.379] 0.236 [0.089 - 0.373] 0.098 FALSE
neuroticism_self avoidance 0.069 [-0.079 - 0.213] 0.074 [-0.075 - 0.221] -0.047 FALSE
conscientiousness_self anxiety 0.155 [0.008 - 0.295] 0.153 [0.005 - 0.295] 0.019 FALSE

H3. Longitudinal similarity

Longitudinally, romantic partners show a similar change trajectory in self-reported personality across the first two years of parenthood such that their slopes are significantly and positively correlated.

var_list <- c(
  paste0(
    c("agreeableness", "conscientiousness", "extraversion", "openness", "neuroticism"),
    rep(c("_self", "_partner"), each = 5)),
  "avoidance", "anxiety", "resp", "trust",
  "prqc_overall"
)

# longitudinal data to only include full data
data_yw_full <- table(data_yw$couple)[table(data_yw$couple) == 3] %>% names()
data_yw_full <- data_yw %>%
  filter(couple %in% data_yw_full)

# run function
h3_results <- h3_function(var_list = var_list, baseline = 0, df = data_yw_full)

# view longitudinal trends
h3_results$slopes_tab %>% 
  filter(variable != "prqc_overall") %>%
  knitr::kable(caption = "Longitudinal trends in personality variables") %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Longitudinal trends in personality variables
gender variable slope SE df t_value p_value
female agreeableness_self -0.002 0.004 66 -0.691 0.492
male agreeableness_self 0 0.003 65.596 0.001 0.999
female conscientiousness_self 0.004 0.004 66 0.991 0.325
male conscientiousness_self 0.004 0.004 61.865 1.101 0.275
female extraversion_self 0.002 0.004 66 0.44 0.661
male extraversion_self 0.005 0.004 64.597 1.256 0.214
female openness_self -0.009 0.004 66 -2.424 0.018
male openness_self -0.013 0.004 115.389 -3.518 0.001
female neuroticism_self -0.004 0.005 65.999 -0.793 0.431
male neuroticism_self -0.002 0.004 65.49 -0.366 0.716
female agreeableness_partner -0.006 0.004 66.03 -1.598 0.115
male agreeableness_partner -0.006 0.004 97.276 -1.343 0.182
female conscientiousness_partner -0.005 0.005 66.051 -1.074 0.287
male conscientiousness_partner -0.003 0.004 62.498 -0.666 0.508
female extraversion_partner 0.002 0.004 65.882 0.41 0.683
male extraversion_partner 0.003 0.003 118.127 0.952 0.343
female openness_partner 0 0.004 64.446 0.073 0.942
male openness_partner -0.008 0.005 66.265 -1.578 0.119
female neuroticism_partner 0 0.006 64.893 -0.006 0.995
male neuroticism_partner -0.003 0.005 129.305 -0.602 0.548
female avoidance -0.006 0.007 66.069 -0.832 0.409
male avoidance 0.004 0.006 63.983 0.719 0.474
female anxiety -0.015 0.006 131.737 -2.465 0.015
male anxiety 0.008 0.006 65.46 1.266 0.21
female resp -0.003 0.007 116.181 -0.36 0.72
male resp -0.006 0.009 66.294 -0.635 0.528
female trust 0.007 0.005 125.122 1.419 0.158
male trust -0.009 0.006 65.108 -1.415 0.162
# view longitudinal similarity 
h3_results$cor_tab %>% 
  filter(variable != "prqc_overall") %>%
  knitr::kable(caption = "Bivariate between-partner slope correlations") %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Bivariate between-partner slope correlations
variable n correlation p_value LL UL
agreeableness_self 67 -0.230 0.061 -0.446 0.010
conscientiousness_self 67 0.039 0.752 -0.203 0.277
extraversion_self 67 -0.205 0.096 -0.424 0.037
openness_self 67 0.416 0.000 0.196 0.597
neuroticism_self 67 0.051 0.680 -0.191 0.288
agreeableness_partner 67 -0.002 0.987 -0.242 0.238
conscientiousness_partner 67 -0.088 0.478 -0.322 0.155
extraversion_partner 67 0.126 0.310 -0.118 0.355
openness_partner 67 0.093 0.453 -0.150 0.326
neuroticism_partner 67 -0.085 0.494 -0.319 0.158
avoidance 67 -0.037 0.769 -0.274 0.205
anxiety 67 -0.034 0.784 -0.272 0.208
resp 67 0.511 0.000 0.309 0.669
trust 67 0.376 0.002 0.149 0.565
# store slopes for later analyses in main dataframe
data_yw <- merge(data_yw, h3_results$slope_df, all.x = TRUE)
data_yw_full <- merge(data_yw_full, h3_results$slope_df, all.x = TRUE)

Research Question 2. Benefit of Assortative Mating

H4. Baseline benefit

At baseline, partner similarity in self-reported personality is associated with enhanced relationship quality.

var_list <- c(
  # traits
  paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self"),
  # CA
  "avoidance", "anxiety", "resp", "trust"
)

prof_list <- c("bigfive")

quality_list <- "prqc_overall"

# run function
h4_results <- h4_function(var_list = var_list, 
                          quality_list = quality_list, 
                          prof_list = prof_list,
                          time = 0,
                          df = data_yw)

h4_results$interaction_tab %>% 
  arrange(int_pval) %>%
  knitr::kable(
    caption = "Multiple regression results with interaction terms predicting relationship quality"
  ) %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Multiple regression results with interaction terms predicting relationship quality
quality personality gender actor_est actor_tval actor_pval partner_est partner_tval partner_pval int_est int_tval int_pval
prqc_overall agreeableness_self male 3.248 3.023 0.003 2.71 2.726 0.007 -0.709 -2.651 0.009
prqc_overall neuroticism_self male 0.602 1.314 0.191 0.494 1.325 0.187 -0.288 -1.835 0.068
prqc_overall extraversion_self female 1.112 1.852 0.066 1.193 1.931 0.055 -0.254 -1.576 0.117
prqc_overall resp male 0.081 0.382 0.703 -0.181 -0.937 0.35 0.042 1.504 0.135
prqc_overall openness_self female -0.922 -1.099 0.273 -1.066 -1.279 0.203 0.3 1.356 0.177
prqc_overall resp female 0.224 1.139 0.256 -0.22 -1.019 0.31 0.031 1.099 0.274
prqc_overall agreeableness_self female -0.698 -0.651 0.516 -0.96 -0.826 0.41 0.263 0.912 0.363
prqc_overall trust male 0.709 1.976 0.05 0.434 1.217 0.225 -0.056 -0.813 0.417
prqc_overall trust female 0.696 1.875 0.063 0.41 1.099 0.273 -0.058 -0.802 0.424
prqc_overall avoidance female -0.075 -0.386 0.7 0.057 0.311 0.757 -0.044 -0.794 0.428
prqc_overall anxiety male -0.343 -1.628 0.105 -0.313 -1.733 0.085 0.044 0.762 0.447
prqc_overall openness_self male -0.339 -0.421 0.674 -0.35 -0.432 0.666 0.131 0.616 0.539
prqc_overall extraversion_self male 0.014 0.024 0.981 -0.219 -0.383 0.702 0.092 0.596 0.552
prqc_overall neuroticism_self female -0.466 -1.189 0.236 -0.367 -0.765 0.445 0.092 0.559 0.577
prqc_overall avoidance male -0.207 -1.2 0.232 -0.026 -0.145 0.885 -0.017 -0.331 0.741
prqc_overall conscientiousness_self female 0.267 0.47 0.639 0.061 0.106 0.916 -0.027 -0.16 0.873
prqc_overall conscientiousness_self male 0.14 0.244 0.808 0.173 0.308 0.758 -0.015 -0.09 0.928
prqc_overall anxiety female -0.305 -1.724 0.087 -0.118 -0.573 0.567 -0.001 -0.024 0.981
h4_results$difference_tab %>% 
  arrange(diff_pval) %>%
  knitr::kable(
    caption = "Simple regression results with difference scores predicting relationship quality"
  ) %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Simple regression results with difference scores predicting relationship quality
quality personality gender diff_est diff_tval diff_pval
prqc_overall resp female -0.249 -3.667 0
prqc_overall resp male -0.365 -5.79 0
prqc_overall anxiety female -0.17 -2.405 0.017
prqc_overall extraversion_self male -0.256 -2.281 0.024
prqc_overall neuroticism_self female -0.218 -2.144 0.033
prqc_overall avoidance male -0.125 -1.85 0.066
prqc_overall conscientiousness_self female 0.187 1.394 0.165
prqc_overall openness_self female -0.181 -1.198 0.233
prqc_overall openness_self male -0.131 -0.892 0.373
prqc_overall avoidance female -0.058 -0.827 0.409
prqc_overall extraversion_self female -0.087 -0.744 0.458
prqc_overall agreeableness_self female -0.112 -0.74 0.46
prqc_overall agreeableness_self male -0.102 -0.687 0.493
prqc_overall anxiety male -0.034 -0.489 0.625
prqc_overall conscientiousness_self male 0.063 0.486 0.628
prqc_overall trust female 0.043 0.468 0.641
prqc_overall neuroticism_self male 0.033 0.328 0.743
prqc_overall trust male 0.001 0.009 0.992
h4_results$profile_tab %>% 
  knitr::kable(
    caption = "Simple regression results with profile correlations predicting relationship quality"
  ) %>% 
  kableExtra::kable_styling()
Simple regression results with profile correlations predicting relationship quality
quality profile gender raw_est raw_tval raw_pval cen_est cen_tval cen_pval std_est std_tval std_pval
prqc_overall bigfive female -0.119 -1.575 0.117 -0.147 -1.812 0.072 -0.134 -1.576 0.117
prqc_overall bigfive male -0.042 -0.581 0.562 -0.118 -1.494 0.137 -0.121 -1.462 0.146

Simple slope analysis for significant interaction effects

# agreeableness - male quality
nice_slopes(
  data = data_yw[data_yw$time == 0,],
  response = "prqc_overall_2",
  predictor = "agreeableness_self_2",
  moderator = "agreeableness_self_1") %>%
  knitr::kable(
    caption = "Simple slope analysis"
  ) %>% 
  kableExtra::kable_styling()
Simple slope analysis
Dependent Variable Predictor (+/-1 SD) df B t p sr2 CI_lower CI_upper
prqc_overall_2 agreeableness_self_2 (LOW-agreeableness_self_1) 170 0.479 4.402 0.000 0.101 0.017 0.185
prqc_overall_2 agreeableness_self_2 (MEAN-agreeableness_self_1) 170 0.275 3.746 0.000 0.073 0.000 0.146
prqc_overall_2 agreeableness_self_2 (HIGH-agreeableness_self_1) 170 0.070 0.671 0.503 0.002 0.000 0.016

H5. Baseline benefit with longitudinal predictors

Longitudinally, partner similarity in change trajectories of self-reported personality is associated with enhanced relationship quality at baseline.

var_list <- c(
  # traits
  paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self"),
  # CA
  "avoidance", "anxiety", "resp", "trust"
)

quality_list <- "prqc_overall"

# run function
h5_results <- h5_function(var_list = var_list, 
                          quality_list = quality_list, 
                          time = 0,
                          df = data_yw) 
h5_results$interaction_tab %>% 
  arrange(int_pval) %>%
  knitr::kable(
    caption = "Longitudinal predictors: Multiple regression results with interaction terms of predicting relationship quality"
  ) %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Longitudinal predictors: Multiple regression results with interaction terms of predicting relationship quality
quality personality_slope gender actor_est actor_tval actor_pval partner_est partner_tval partner_pval int_est int_tval int_pval
prqc_overall resp female 19.646 3.346 0.001 -1.341 -0.661 0.511 -261.798 -3.514 0.001
prqc_overall neuroticism_self male -48.614 -3.367 0.001 -28.788 -2.827 0.006 -4271.2 -2.818 0.006
prqc_overall avoidance male 8.366 0.5 0.619 -10.154 -2.106 0.039 2012.604 2.614 0.011
prqc_overall trust female 29.522 1.828 0.072 11.41 2.508 0.015 -1177.42 -2.173 0.034
prqc_overall agreeableness_self female 2.739 0.25 0.804 0.192 0.01 0.992 -4303.308 -1.952 0.055
prqc_overall extraversion_self female 2.13 0.205 0.839 -23.67 -2.208 0.031 -1429.031 -1.315 0.193
prqc_overall trust male 16.783 3.817 0 11.972 0.77 0.444 -593.5 -1.138 0.259
prqc_overall neuroticism_self female -19.219 -1.668 0.1 -18.639 -1.141 0.258 -1766.678 -1.03 0.307
prqc_overall avoidance female -8.904 -1.815 0.074 -0.364 -0.021 0.983 647.269 0.816 0.417
prqc_overall anxiety male 30.398 0.578 0.565 135.982 2.462 0.017 2840.595 0.8 0.427
prqc_overall anxiety female 187.362 3.367 0.001 26.43 0.498 0.62 1995.717 0.556 0.58
prqc_overall agreeableness_self male 22.889 1.212 0.23 6.275 0.564 0.575 -756.097 -0.341 0.734
prqc_overall openness_self male 31.386 1.897 0.062 -1.62 -0.092 0.927 -316.361 -0.29 0.773
prqc_overall conscientiousness_self male 21.174 1.808 0.075 2.712 0.26 0.796 -255.021 -0.248 0.805
prqc_overall extraversion_self male -26.731 -2.538 0.014 -6.186 -0.605 0.548 -221.068 -0.206 0.838
prqc_overall conscientiousness_self female -6.336 -0.584 0.561 4.347 0.368 0.714 170.818 0.16 0.873
prqc_overall resp male 11.517 6.126 0 9.656 1.768 0.082 9.382 0.136 0.892
prqc_overall openness_self female 8.857 0.477 0.635 15.695 0.967 0.337 62.44 0.056 0.956
h5_results$difference_tab %>% 
  arrange(diff_pval) %>%
  knitr::kable(
    caption = "Longitudinal predictors: Simple regression results with difference-slope scores predicting relationship quality"
  ) %>% 
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Longitudinal predictors: Simple regression results with difference-slope scores predicting relationship quality
quality personality_slope gender diff_est diff_tval diff_pval
prqc_overall resp male -15.434 -4.999 0
prqc_overall trust male -19.294 -4.329 0
prqc_overall anxiety male -13.876 -2.286 0.026
prqc_overall trust female -11.067 -2.241 0.028
prqc_overall neuroticism_self female 24.988 1.847 0.069
prqc_overall neuroticism_self male 22.249 1.665 0.101
prqc_overall resp female -5.84 -1.608 0.113
prqc_overall avoidance male -6.134 -1.356 0.18
prqc_overall agreeableness_self female 16.449 1.266 0.21
prqc_overall conscientiousness_self male 12.301 0.995 0.324
prqc_overall avoidance female 4.505 0.976 0.333
prqc_overall anxiety female -5.86 -0.919 0.361
prqc_overall extraversion_self male -4.375 -0.424 0.673
prqc_overall agreeableness_self male 5.01 0.389 0.699
prqc_overall openness_self male -3.82 -0.271 0.787
prqc_overall openness_self female -1.339 -0.1 0.921
prqc_overall conscientiousness_self female -0.46 -0.037 0.97
prqc_overall extraversion_self female -0.093 -0.009 0.993

Simple slope analysis for significant interaction effects

# responsiveness - female quality
nice_slopes(
  data = data_yw[data_yw$time == 0,],
  response = "prqc_overall_1",
  predictor = "slope_resp_1",
  moderator = "slope_resp_2") %>%
  knitr::kable(
    caption = "Simple slope analysis"
  ) %>% 
  kableExtra::kable_styling()
Simple slope analysis
Dependent Variable Predictor (+/-1 SD) df B t p sr2 CI_lower CI_upper
prqc_overall_1 slope_resp_1 (LOW-slope_resp_2) 63 0.585 6.27 0.000 0.291 0.127 0.455
prqc_overall_1 slope_resp_1 (MEAN-slope_resp_2) 63 0.392 3.72 0.000 0.103 0.001 0.207
prqc_overall_1 slope_resp_1 (HIGH-slope_resp_2) 63 0.198 1.42 0.161 0.015 0.000 0.055
# neuroticism - male quality
nice_slopes(
  data = data_yw[data_yw$time == 0,],
  response = "prqc_overall_2",
  predictor = "slope_neuroticism_self_2",
  moderator = "slope_neuroticism_self_1") %>%
  knitr::kable(
    caption = "Simple slope analysis"
  ) %>% 
  kableExtra::kable_styling()
Simple slope analysis
Dependent Variable Predictor (+/-1 SD) df B t p sr2 CI_lower CI_upper
prqc_overall_2 slope_neuroticism_self_2 (LOW-slope_neuroticism_self_1) 62 0.032 0.215 0.830 0.001 0.000 0.011
prqc_overall_2 slope_neuroticism_self_2 (MEAN-slope_neuroticism_self_1) 62 -0.240 -2.288 0.026 0.065 0.001 0.169
prqc_overall_2 slope_neuroticism_self_2 (HIGH-slope_neuroticism_self_1) 62 -0.512 -3.831 0.000 0.182 0.017 0.346
# avoidance - male quality
nice_slopes(
  data = data_yw[data_yw$time == 0,],
  response = "prqc_overall_2",
  predictor = "slope_avoidance_2",
  moderator = "slope_avoidance_1") %>%
  knitr::kable(
    caption = "Simple slope analysis"
  ) %>% 
  kableExtra::kable_styling()
Simple slope analysis
Dependent Variable Predictor (+/-1 SD) df B t p sr2 CI_lower CI_upper
prqc_overall_2 slope_avoidance_2 (LOW-slope_avoidance_1) 62 -0.403 -2.096 0.040 0.064 0.001 0.176
prqc_overall_2 slope_avoidance_2 (MEAN-slope_avoidance_1) 62 -0.024 -0.209 0.835 0.001 0.000 0.012
prqc_overall_2 slope_avoidance_2 (HIGH-slope_avoidance_1) 62 0.356 2.023 0.047 0.059 0.001 0.168

H6. Longitudinal benefit

Longitudinally, partner similarity in change trajectories of self-reported personality is associated with an increase in relationship quality

var_list <- c(
  # traits
  paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self"),
  # CA
  "avoidance", "anxiety", "resp", "trust"
)

quality_list <- "prqc_overall"

# run function
h6_results <- h6_function(var_list = var_list, 
                          quality_list = quality_list, 
                          baseline = 0,
                          df = data_yw_full) 
h6_results$interaction_tab %>% 
  arrange(int_pval) %>%
  knitr::kable(
    caption = "Longitudinal predictors: Multiple regression results with interaction terms predicting longitudinal relationship quality"
  ) %>% kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Longitudinal predictors: Multiple regression results with interaction terms predicting longitudinal relationship quality
quality_slope personality_slope gender actor_est actor_tval actor_pval partner_est partner_tval partner_pval int_est int_tval int_pval
prqc_overall neuroticism_self male -2.812 -5.041 0 -1.58 -4.017 0 -196.669 -3.358 0.001
prqc_overall anxiety female 1.452 1.189 0.239 3.062 2.628 0.011 213.454 2.71 0.009
prqc_overall trust female 0.36 0.975 0.333 0.236 2.266 0.027 -29.23 -2.357 0.022
prqc_overall trust male 0.924 5.277 0 0.024 0.039 0.969 -37.043 -1.777 0.08
prqc_overall neuroticism_self female -0.867 -3.762 0 -0.473 -1.449 0.152 -58.081 -1.694 0.095
prqc_overall avoidance male -0.771 -1.061 0.293 -0.148 -0.723 0.472 55.222 1.67 0.1
prqc_overall conscientiousness_self female 0.234 1.005 0.319 0.122 0.483 0.631 -30.47 -1.332 0.188
prqc_overall anxiety male 1.981 0.942 0.35 5.924 2.687 0.009 184.866 1.3 0.198
prqc_overall extraversion_self female -0.008 -0.036 0.971 -0.21 -0.878 0.383 -31.063 -1.281 0.205
prqc_overall avoidance female -0.156 -1.491 0.141 -0.647 -1.741 0.087 20.708 1.224 0.226
prqc_overall openness_self female -0.172 -0.443 0.659 0.265 0.785 0.435 -28.071 -1.2 0.234
prqc_overall extraversion_self male -1.291 -2.927 0.005 -0.3 -0.702 0.486 -43.818 -0.98 0.331
prqc_overall agreeableness_self male 1.306 1.629 0.108 0.17 0.364 0.717 80.721 0.862 0.392
prqc_overall conscientiousness_self male 0.629 1.275 0.207 0.004 0.009 0.993 -34.59 -0.777 0.44
prqc_overall resp male 0.59 9.227 0 0.147 0.795 0.43 -1.74 -0.741 0.461
prqc_overall openness_self male 1.098 1.694 0.095 0.016 0.021 0.983 -26.396 -0.589 0.558
prqc_overall agreeableness_self female 0.615 2.649 0.01 0.281 0.704 0.484 -16.397 -0.351 0.727
prqc_overall resp female 0.517 3.649 0.001 0.12 2.444 0.017 0.627 0.348 0.729
h6_results$difference_tab %>% 
  arrange(diff_pval) %>%
  knitr::kable(
    caption = "Longitudinal predictors: Simple regression results with difference scores predicting longitudinal relationship quality"
  ) %>% kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Longitudinal predictors: Simple regression results with difference scores predicting longitudinal relationship quality
quality_slope personality_slope gender diff_est diff_tval diff_pval
prqc_overall resp male -0.808 -6.739 0
prqc_overall trust male -0.996 -5.613 0
prqc_overall anxiety male -0.888 -3.592 0.001
prqc_overall resp female -0.196 -2.567 0.013
prqc_overall trust female -0.243 -2.272 0.026
prqc_overall avoidance male -0.272 -1.406 0.165
prqc_overall neuroticism_self male 0.762 1.318 0.192
prqc_overall conscientiousness_self female 0.343 1.298 0.199
prqc_overall conscientiousness_self male 0.491 0.95 0.346
prqc_overall anxiety female -0.127 -0.921 0.36
prqc_overall agreeableness_self male -0.487 -0.883 0.38
prqc_overall neuroticism_self female 0.159 0.531 0.597
prqc_overall openness_self male 0.157 0.277 0.782
prqc_overall avoidance female 0.027 0.273 0.786
prqc_overall extraversion_self female 0.06 0.267 0.791
prqc_overall extraversion_self male -0.079 -0.181 0.857
prqc_overall agreeableness_self female -0.015 -0.054 0.957
prqc_overall openness_self female 0.007 0.022 0.982

Simple slope analysis for significant interaction effects

# neuroticism - male quality
nice_slopes(
  data = data_yw[data_yw$time == 0,],
  response = "slope_prqc_overall_2",
  predictor = "slope_neuroticism_self_2",
  moderator = "slope_neuroticism_self_1") %>%
  knitr::kable(
    caption = "Simple slope analysis"
  ) %>% 
  kableExtra::kable_styling()
Simple slope analysis
Dependent Variable Predictor (+/-1 SD) df B t p sr2 CI_lower CI_upper
slope_prqc_overall_2 slope_neuroticism_self_2 (LOW-slope_neuroticism_self_1) 63 -0.072 -0.504 0.616 0.002 0.000 0.021
slope_prqc_overall_2 slope_neuroticism_self_2 (MEAN-slope_neuroticism_self_1) 63 -0.379 -3.796 0.000 0.141 0.006 0.277
slope_prqc_overall_2 slope_neuroticism_self_2 (HIGH-slope_neuroticism_self_1) 63 -0.686 -5.404 0.000 0.287 0.111 0.462
# anxiety - female quality
nice_slopes(
  data = data_yw[data_yw$time == 0,],
  response = "slope_prqc_overall_1",
  predictor = "slope_anxiety_1",
  moderator = "slope_anxiety_2") %>%
  knitr::kable(
    caption = "Simple slope analysis"
  ) %>% 
  kableExtra::kable_styling()
Simple slope analysis
Dependent Variable Predictor (+/-1 SD) df B t p sr2 CI_lower CI_upper
slope_prqc_overall_1 slope_anxiety_1 (LOW-slope_anxiety_2) 63 -0.003 -0.018 0.986 0.000 0.000 0.001
slope_prqc_overall_1 slope_anxiety_1 (MEAN-slope_anxiety_2) 63 0.328 2.905 0.005 0.107 0.001 0.241
slope_prqc_overall_1 slope_anxiety_1 (HIGH-slope_anxiety_2) 63 0.658 3.889 0.000 0.192 0.023 0.361

H7. Cross-lagged effects

Longitudinally, there may be cross-lagged effects such that partner similarity in personality at each time point is associated with relationship quality at a subsequent time point, and vice versa. This is an exploratory analysis with no hypothesized direction.

Figure 1. General structure for the random-intercept cross-lagged panel model
Figure 1. General structure for the random-intercept cross-lagged panel model

Many of these models either did not converge or had estimation warnings.

#TODO: many did not converge or had estimation warnings
# create a cross-lagged dataset from timepoints 1->3 instead of 0->16
data_riclpm <- data_yw %>%
  mutate(time = case_when(
    time == 0 ~ 1,
    time == 8 ~ 2,
    time == 16 ~ 3)
)
var_list <- c(
  # traits
  paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self"),
  # CA
  "avoidance", "anxiety", "resp", "trust"
)

prof_list <- c("bigfive")

quality_list <- "prqc_overall"
# run function 
h7_results <- h7_function(var_list = var_list, prof_list = prof_list,
                          quality_list = quality_list, df = data_riclpm)
h7_results$fit_df %>%
  knitr::kable(
    caption = "Fit statistics for models of univariate personality difference") %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")

h7_results$est_df %>%
  knitr::kable(
    caption = "Standardized solutions for models of univariate personality difference") %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")

h7_results$fitprof_df %>%
  knitr::kable(
    caption = "Fit statistics for models of personality profile correlation") %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")

h7_results$estprof_df %>%
  knitr::kable(
    caption = "Standardized solutions for models of personality profile correlation") %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")

Research Question 3. Actor/Partner/Perceived/Similarity

H8. Actor/partner effect on quality

At baseline, self-reported characteristic adaptations are most strongly associated with self-reported relationship quality, more so than the effect of partner-reported and similarity on these variables.

Figure 2. General structure for the actor-partner interdependence model at baseline - Actual similarity
Figure 2. General structure for the actor-partner interdependence model at baseline - Actual similarity
var_list <- c(
  # traits
  paste0(
    c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness"),
    "_self"),
  # CA
  "avoidance", "anxiety", "resp", "trust"
)

quality_list <- "prqc_overall"

# run function
h8_results <- h8_function(var_list = var_list,
                          quality_list = quality_list,
                          time = 0, df = data_yw)
h8_results %>%
  knitr::kable(
    caption = "Standardized solutions for APIM models with actual similarity"
  ) %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Standardized solutions for APIM models with actual similarity
lhs op rhs label est.std se z pvalue ci.lower ci.upper
prqc_overall_1 ~ neuroticism_self_1 a1 -0.267 0.057 -4.646 0.000 -0.379 -0.154
prqc_overall_2 ~ neuroticism_self_2 a2 -0.253 0.052 -4.851 0.000 -0.355 -0.151
prqc_overall_2 ~ neuroticism_self_1 p12 -0.272 0.055 -4.907 0.000 -0.381 -0.164
prqc_overall_1 ~ neuroticism_self_2 p21 -0.087 0.055 -1.572 0.116 -0.195 0.021
prqc_overall_1 ~ neuroticism_self_diff d1 0.039 0.061 0.635 0.526 -0.081 0.160
prqc_overall_2 ~ neuroticism_self_diff d2 0.106 0.060 1.788 0.074 -0.010 0.223
prqc_overall_1 ~ agreeableness_self_1 a1 0.239 0.051 4.714 0.000 0.140 0.339
prqc_overall_2 ~ agreeableness_self_2 a2 0.327 0.050 6.507 0.000 0.229 0.426
prqc_overall_2 ~ agreeableness_self_1 p12 0.089 0.051 1.763 0.078 -0.010 0.188
prqc_overall_1 ~ agreeableness_self_2 p21 0.085 0.054 1.564 0.118 -0.022 0.192
prqc_overall_1 ~ agreeableness_self_diff d1 0.002 0.054 0.035 0.972 -0.104 0.108
prqc_overall_2 ~ agreeableness_self_diff d2 0.053 0.052 1.023 0.306 -0.049 0.156
prqc_overall_1 ~ conscientiousness_self_1 a1 0.118 0.052 2.270 0.023 0.016 0.220
prqc_overall_2 ~ conscientiousness_self_2 a2 0.172 0.053 3.257 0.001 0.068 0.275
prqc_overall_2 ~ conscientiousness_self_1 p12 0.026 0.052 0.499 0.618 -0.077 0.129
prqc_overall_1 ~ conscientiousness_self_2 p21 0.103 0.052 1.967 0.049 0.000 0.206
prqc_overall_1 ~ conscientiousness_self_diff d1 0.102 0.052 1.955 0.051 0.000 0.204
prqc_overall_2 ~ conscientiousness_self_diff d2 0.083 0.052 1.574 0.116 -0.020 0.185
prqc_overall_1 ~ extraversion_self_1 a1 0.228 0.049 4.648 0.000 0.132 0.324
prqc_overall_2 ~ extraversion_self_2 a2 0.267 0.049 5.432 0.000 0.171 0.364
prqc_overall_2 ~ extraversion_self_1 p12 0.126 0.050 2.522 0.012 0.028 0.224
prqc_overall_1 ~ extraversion_self_2 p21 0.185 0.050 3.688 0.000 0.087 0.284
prqc_overall_1 ~ extraversion_self_diff d1 -0.017 0.051 -0.331 0.741 -0.117 0.083
prqc_overall_2 ~ extraversion_self_diff d2 -0.061 0.051 -1.191 0.234 -0.161 0.039
prqc_overall_1 ~ openness_self_1 a1 0.207 0.052 4.022 0.000 0.106 0.308
prqc_overall_2 ~ openness_self_2 a2 0.187 0.053 3.547 0.000 0.084 0.290
prqc_overall_2 ~ openness_self_1 p12 0.123 0.053 2.334 0.020 0.020 0.226
prqc_overall_1 ~ openness_self_2 p21 0.097 0.053 1.840 0.066 -0.006 0.200
prqc_overall_1 ~ openness_self_diff d1 -0.101 0.051 -2.004 0.045 -0.200 -0.002
prqc_overall_2 ~ openness_self_diff d2 -0.050 0.051 -0.979 0.328 -0.151 0.050
prqc_overall_1 ~ avoidance_1 a1 -0.254 0.048 -5.253 0.000 -0.349 -0.159
prqc_overall_2 ~ avoidance_2 a2 -0.389 0.045 -8.557 0.000 -0.478 -0.300
prqc_overall_2 ~ avoidance_1 p12 -0.064 0.048 -1.320 0.187 -0.159 0.031
prqc_overall_1 ~ avoidance_2 p21 -0.182 0.050 -3.607 0.000 -0.281 -0.083
prqc_overall_1 ~ avoidance_diff d1 -0.019 0.051 -0.379 0.705 -0.119 0.080
prqc_overall_2 ~ avoidance_diff d2 -0.093 0.048 -1.915 0.056 -0.188 0.002
prqc_overall_1 ~ anxiety_1 a1 -0.348 0.047 -7.353 0.000 -0.441 -0.255
prqc_overall_2 ~ anxiety_2 a2 -0.272 0.047 -5.811 0.000 -0.363 -0.180
prqc_overall_2 ~ anxiety_1 p12 -0.301 0.049 -6.183 0.000 -0.396 -0.205
prqc_overall_1 ~ anxiety_2 p21 -0.154 0.048 -3.212 0.001 -0.249 -0.060
prqc_overall_1 ~ anxiety_diff d1 -0.084 0.051 -1.653 0.098 -0.183 0.015
prqc_overall_2 ~ anxiety_diff d2 -0.010 0.051 -0.200 0.841 -0.109 0.089
prqc_overall_1 ~ resp_1 a1 0.650 0.034 18.904 0.000 0.583 0.717
prqc_overall_2 ~ resp_2 a2 0.688 0.036 18.996 0.000 0.617 0.759
prqc_overall_2 ~ resp_1 p12 0.103 0.039 2.653 0.008 0.027 0.179
prqc_overall_1 ~ resp_2 p21 0.125 0.046 2.698 0.007 0.034 0.216
prqc_overall_1 ~ resp_diff d1 0.012 0.041 0.297 0.766 -0.069 0.094
prqc_overall_2 ~ resp_diff d2 -0.060 0.038 -1.552 0.121 -0.135 0.016
prqc_overall_1 ~ trust_1 a1 0.424 0.043 9.838 0.000 0.339 0.508
prqc_overall_2 ~ trust_2 a2 0.508 0.040 12.702 0.000 0.430 0.587
prqc_overall_2 ~ trust_1 p12 0.187 0.044 4.268 0.000 0.101 0.273
prqc_overall_1 ~ trust_2 p21 0.173 0.048 3.599 0.000 0.079 0.268
prqc_overall_1 ~ trust_diff d1 0.072 0.047 1.539 0.124 -0.020 0.165
prqc_overall_2 ~ trust_diff d2 -0.002 0.044 -0.037 0.971 -0.088 0.085

H9. Perceived/actual similarity comparison

At baseline, perceived similarity in personality traits and characteristic adaptations is stronger than actual similarity. That is, the correlation between each partner’s self-perception and perception of their partner is stronger than the correlation between two partners’ self-perceptions.

perception_list <- c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness")

# run function
h9_results <- h9_function(perception_list = perception_list,
                          time = 0, df = data_yw)

h9_results$similarity_df %>%
  knitr::kable(
    caption = "Actual and perceived similarities as bivariate correlations") %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Actual and perceived similarities as bivariate correlations
similarity personality correlation p-value
actual neuroticism 0.069 [-0.079 - 0.213] 0.362
female-perceived neuroticism 0.151 [0.006 - 0.29] 0.042
male-perceived neuroticism 0.119 [-0.03 - 0.263] 0.116
actual agreeableness 0.191 [0.046 - 0.328] 0.01
female-perceived agreeableness 0.33 [0.194 - 0.454] 0
male-perceived agreeableness 0.338 [0.199 - 0.463] 0
actual conscientiousness 0.155 [0.008 - 0.295] 0.039
female-perceived conscientiousness 0.217 [0.074 - 0.352] 0.003
male-perceived conscientiousness 0.034 [-0.115 - 0.181] 0.657
actual extraversion 0.025 [-0.123 - 0.171] 0.745
female-perceived extraversion 0.171 [0.026 - 0.309] 0.021
male-perceived extraversion 0.119 [-0.029 - 0.263] 0.115
actual openness 0.246 [0.103 - 0.379] 0.001
female-perceived openness 0.375 [0.243 - 0.494] 0
male-perceived openness 0.499 [0.379 - 0.603] 0
h9_results$compare_df %>%
  knitr::kable(
    caption = "Comparison between actual and perceived similarities") %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Comparison between actual and perceived similarities
V1 V2 personality z_stat sig
actual female-perceived neuroticism -0.789 FALSE
actual male-perceived neuroticism -0.478 FALSE
female-perceived male-perceived neuroticism 0.304 FALSE
actual female-perceived agreeableness -1.411 FALSE
actual male-perceived agreeableness -1.476 FALSE
female-perceived male-perceived agreeableness -0.079 FALSE
actual female-perceived conscientiousness -0.610 FALSE
actual male-perceived conscientiousness 1.140 FALSE
female-perceived male-perceived conscientiousness 1.750 FALSE
actual female-perceived extraversion -1.398 FALSE
actual male-perceived extraversion -0.891 FALSE
female-perceived male-perceived extraversion 0.495 FALSE
actual female-perceived openness -1.354 FALSE
actual male-perceived openness -2.775 TRUE
female-perceived male-perceived openness -1.440 FALSE

H10. Perceived/actual similarity effects

At baseline, each partner’s perceived similarity is more strongly associated with self-reported relationship quality than actual similarity is.

Figure 3. General structure for the actor-partner interdependence model at baseline - Perceived similarity
Figure 3. General structure for the actor-partner interdependence model at baseline - Perceived similarity
perception_list <- c("neuroticism", "agreeableness", "conscientiousness", "extraversion", "openness")

quality_list <- "prqc_overall"

# run function
h10_results <- h10_function(perception_list = perception_list,
                            quality_list = quality_list,
                            timepoint = 0, df = data_yw)

h10_results$est_df_p1 %>%
  knitr::kable(
    caption = "Standardized solutions for APIM models with female-perceived similarity"
  ) %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Standardized solutions for APIM models with female-perceived similarity
perception lhs op rhs label est.std se z pvalue ci.lower ci.upper
female prqc_overall_1 ~ neuroticism_self_1 a1 -0.147 0.079 -1.850 0.064 -0.302 0.009
female prqc_overall_2 ~ neuroticism_partner_1 ap1 -0.156 0.079 -1.988 0.047 -0.310 -0.002
female prqc_overall_2 ~ neuroticism_self_1 p12 -0.118 0.083 -1.421 0.155 -0.282 0.045
female prqc_overall_1 ~ neuroticism_partner_1 p21 -0.280 0.073 -3.825 0.000 -0.423 -0.136
female prqc_overall_1 ~ neuroticism_diff_p1 d1 -0.058 0.082 -0.704 0.481 -0.218 0.103
female prqc_overall_2 ~ neuroticism_diff_p1 d2 -0.075 0.085 -0.877 0.380 -0.242 0.093
female prqc_overall_1 ~ agreeableness_self_1 a1 0.088 0.080 1.107 0.268 -0.068 0.244
female prqc_overall_2 ~ agreeableness_partner_1 ap1 0.227 0.100 2.263 0.024 0.030 0.423
female prqc_overall_2 ~ agreeableness_self_1 p12 0.032 0.087 0.375 0.707 -0.137 0.202
female prqc_overall_1 ~ agreeableness_partner_1 p21 0.308 0.090 3.400 0.001 0.130 0.485
female prqc_overall_1 ~ agreeableness_diff_p1 d1 -0.115 0.089 -1.297 0.195 -0.289 0.059
female prqc_overall_2 ~ agreeableness_diff_p1 d2 0.009 0.097 0.093 0.926 -0.181 0.200
female prqc_overall_1 ~ conscientiousness_self_1 a1 0.114 0.075 1.524 0.127 -0.033 0.261
female prqc_overall_2 ~ conscientiousness_partner_1 ap1 0.115 0.077 1.488 0.137 -0.036 0.266
female prqc_overall_2 ~ conscientiousness_self_1 p12 0.081 0.076 1.069 0.285 -0.068 0.230
female prqc_overall_1 ~ conscientiousness_partner_1 p21 0.086 0.076 1.141 0.254 -0.062 0.235
female prqc_overall_1 ~ conscientiousness_diff_p1 d1 -0.029 0.074 -0.395 0.693 -0.175 0.116
female prqc_overall_2 ~ conscientiousness_diff_p1 d2 -0.034 0.075 -0.457 0.647 -0.182 0.113
female prqc_overall_1 ~ extraversion_self_1 a1 0.103 0.072 1.443 0.149 -0.037 0.244
female prqc_overall_2 ~ extraversion_partner_1 ap1 0.234 0.073 3.217 0.001 0.091 0.376
female prqc_overall_2 ~ extraversion_self_1 p12 0.074 0.074 1.008 0.313 -0.070 0.219
female prqc_overall_1 ~ extraversion_partner_1 p21 0.287 0.069 4.178 0.000 0.153 0.422
female prqc_overall_1 ~ extraversion_diff_p1 d1 0.033 0.072 0.464 0.643 -0.107 0.174
female prqc_overall_2 ~ extraversion_diff_p1 d2 0.007 0.074 0.093 0.926 -0.139 0.153
female prqc_overall_1 ~ openness_self_1 a1 0.076 0.078 0.983 0.326 -0.076 0.228
female prqc_overall_2 ~ openness_partner_1 ap1 0.132 0.081 1.628 0.104 -0.027 0.291
female prqc_overall_2 ~ openness_self_1 p12 0.082 0.079 1.031 0.302 -0.074 0.238
female prqc_overall_1 ~ openness_partner_1 p21 0.197 0.078 2.533 0.011 0.045 0.350
female prqc_overall_1 ~ openness_diff_p1 d1 -0.098 0.073 -1.345 0.178 -0.241 0.045
female prqc_overall_2 ~ openness_diff_p1 d2 -0.031 0.076 -0.404 0.686 -0.179 0.118
h10_results$est_df_p2 %>%
  knitr::kable(
    caption = "Standardized solutions for APIM models with male-perceived similarity"
  ) %>%
  kableExtra::kable_styling() %>%
  scroll_box(height = "300px")
Standardized solutions for APIM models with male-perceived similarity
perception lhs op rhs label est.std se z pvalue ci.lower ci.upper
male prqc_overall_2 ~ neuroticism_self_2 a2 -0.204 0.068 -3.016 0.003 -0.336 -0.071
male prqc_overall_1 ~ neuroticism_partner_2 ap2 -0.026 0.088 -0.299 0.765 -0.198 0.146
male prqc_overall_1 ~ neuroticism_self_2 p21 -0.193 0.052 -3.696 0.000 -0.295 -0.090
male prqc_overall_2 ~ neuroticism_partner_2 p21 -0.251 0.068 -3.693 0.000 -0.385 -0.118
male prqc_overall_1 ~ neuroticism_diff_p2 d1 -0.149 0.094 -1.581 0.114 -0.333 0.036
male prqc_overall_2 ~ neuroticism_diff_p2 d2 -0.083 0.086 -0.958 0.338 -0.252 0.086
male prqc_overall_2 ~ agreeableness_self_2 a2 0.249 0.061 4.097 0.000 0.130 0.368
male prqc_overall_1 ~ agreeableness_partner_2 ap2 0.065 0.069 0.949 0.343 -0.070 0.201
male prqc_overall_1 ~ agreeableness_self_2 p21 0.189 0.041 4.591 0.000 0.108 0.270
male prqc_overall_2 ~ agreeableness_partner_2 p21 0.258 0.056 4.586 0.000 0.147 0.368
male prqc_overall_1 ~ agreeableness_diff_p2 d1 0.013 0.075 0.176 0.860 -0.135 0.161
male prqc_overall_2 ~ agreeableness_diff_p2 d2 0.014 0.070 0.203 0.840 -0.123 0.152
male prqc_overall_2 ~ conscientiousness_self_2 a2 0.144 0.070 2.055 0.040 0.007 0.281
male prqc_overall_1 ~ conscientiousness_partner_2 ap2 0.138 0.074 1.873 0.061 -0.006 0.282
male prqc_overall_1 ~ conscientiousness_self_2 p21 0.131 0.048 2.725 0.006 0.037 0.224
male prqc_overall_2 ~ conscientiousness_partner_2 p21 0.155 0.058 2.662 0.008 0.041 0.270
male prqc_overall_1 ~ conscientiousness_diff_p2 d1 0.048 0.078 0.619 0.536 -0.105 0.202
male prqc_overall_2 ~ conscientiousness_diff_p2 d2 0.099 0.076 1.299 0.194 -0.050 0.249
male prqc_overall_2 ~ extraversion_self_2 a2 0.285 0.063 4.551 0.000 0.162 0.408
male prqc_overall_1 ~ extraversion_partner_2 ap2 0.021 0.073 0.292 0.770 -0.122 0.165
male prqc_overall_1 ~ extraversion_self_2 p21 0.214 0.050 4.310 0.000 0.116 0.311
male prqc_overall_2 ~ extraversion_partner_2 p21 0.221 0.051 4.317 0.000 0.121 0.322
male prqc_overall_1 ~ extraversion_diff_p2 d1 -0.068 0.078 -0.874 0.382 -0.221 0.085
male prqc_overall_2 ~ extraversion_diff_p2 d2 0.025 0.073 0.343 0.732 -0.118 0.167
male prqc_overall_2 ~ openness_self_2 a2 0.057 0.067 0.849 0.396 -0.074 0.188
male prqc_overall_1 ~ openness_partner_2 ap2 -0.064 0.071 -0.906 0.365 -0.203 0.075
male prqc_overall_1 ~ openness_self_2 p21 0.162 0.047 3.418 0.001 0.069 0.255
male prqc_overall_2 ~ openness_partner_2 p21 0.200 0.058 3.414 0.001 0.085 0.314
male prqc_overall_1 ~ openness_diff_p2 d1 -0.037 0.077 -0.476 0.634 -0.187 0.114
male prqc_overall_2 ~ openness_diff_p2 d2 -0.093 0.073 -1.278 0.201 -0.237 0.050