Generosity vs Justice V8

Author

Marcus + Lizy + Nadia

Published

September 6, 2023

Overview and Methodology

  • Study of third party judgments of donors motivated by a justice or generosity virtue when the information is shared either from a third person perspective
  • Data collected September 22, 2023
  • N = 300

Setup

Libraries and functions

Code
knitr::opts_chunk$set(warning = FALSE, message = FALSE) 

Mypackages <-
  c("lme4","tidyverse","effects","ggplot2","psych",
    "MASS","Rmisc","lmerTest","ggthemes", "knitr",
    "lsmeans","pastecs","sjstats","car","ordinal",
    "Rcpp","corrplot", "ggpubr", "EnvStats",
    "easyStats", "cowplot","see","datawizard", "ggcorrplot", 
    "RColorBrewer", "lavaan")

#install.packages(Mypackages) #you must remove the # in this comment if you need to install the packages! 
lapply(Mypackages,
       require,
       character.only = TRUE)

options(knitr.kable.NA = '—')
set.seed(1)  

Load Data

Code
gjg_raw <-read.csv("/Users/mtrenfield17/Desktop/Research/Boston College Research/Morality Lab Research/Generosity Vs Justice Project/just_vs_gen_v8/Generosity vs Justice V8.csv")

Reshaping data

Code
gjg <- gjg_raw %>%
  filter(consent == 5, attn_bucket_num == 1, Finished == 1, attn_self >= 3)

# Explanation:
# filter() function is used to filter rows based on specified conditions.
# Rows are kept where consent is 5, attn_bucket_num is 1, Finished is 1, and attn_self is 3 or greater.

# changing appropriate DVs to numeric
cols_to_convert <- c("Age", "Income", "SES", "Political_overall", "Political_social", "Political_economic", "attn_self", "PID",
                     "Religiosity", "Education")
gjg[cols_to_convert] <- lapply(gjg[cols_to_convert], as.numeric)



gjg <- gjg %>%
  mutate(
    norm_signal_just = ifelse(vigFirstVirtue == "justice", norm_signal_10,
                                    ifelse(vigFirstVirtue == "generosity", norm_signal_11, NA)),
    norm_signal_gen = ifelse(vigFirstVirtue == "generosity", norm_signal_10,
                                   ifelse(vigFirstVirtue == "justice", norm_signal_11, NA))
  )

gjg <- gjg %>%
  mutate(
    reputation_signal_just = ifelse(vigFirstVirtue == "justice", reputation_signal_1,
                                    ifelse(vigFirstVirtue == "generosity", reputation_signal_2, NA)),
    reputation_signal_gen = ifelse(vigFirstVirtue == "generosity", reputation_signal_1,
                                   ifelse(vigFirstVirtue == "justice", reputation_signal_2, NA))
  )


gjg <- gjg %>%
  mutate(
    approval_just = ifelse(vigFirstVirtue == "justice", approval_1,
                                    ifelse(vigFirstVirtue == "generosity", approval_2, NA)),
    approval_gen = ifelse(vigFirstVirtue == "generosity", approval_1,
                                   ifelse(vigFirstVirtue == "justice", approval_2, NA))
  )


gjg <- gjg %>%
  mutate(
    moral_just = ifelse(vigFirstVirtue == "justice", moral_1,
                                    ifelse(vigFirstVirtue == "generosity", moral_2, NA)),
    moral_gen = ifelse(vigFirstVirtue == "generosity", moral_1,
                                   ifelse(vigFirstVirtue == "justice", moral_2, NA))
  )


gjg <- gjg %>%
  mutate(
    genuine_just = ifelse(vigFirstVirtue == "justice", genuine_1,
                                    ifelse(vigFirstVirtue == "generosity", genuine_2, NA)),
    genuine_gen = ifelse(vigFirstVirtue == "generosity", genuine_1,
                                   ifelse(vigFirstVirtue == "justice", genuine_2, NA))
  )


gjg <- gjg %>%
  mutate(
    deliberate_just = ifelse(vigFirstVirtue == "justice", deliberate_1,
                                    ifelse(vigFirstVirtue == "generosity", deliberate_2, NA)),
    deliberate_gen = ifelse(vigFirstVirtue == "generosity", deliberate_1,
                                   ifelse(vigFirstVirtue == "justice", deliberate_2, NA))
  )


gjg <- gjg %>%
  mutate(
    spontaneous_just = ifelse(vigFirstVirtue == "justice", spontaneous_1,
                                    ifelse(vigFirstVirtue == "generosity", spontaneous_2, NA)),
    spontaneous_gen = ifelse(vigFirstVirtue == "generosity", spontaneous_1,
                                   ifelse(vigFirstVirtue == "justice", spontaneous_2, NA))
  )


gjg <- gjg %>%
  mutate(
    emotion_just = ifelse(vigFirstVirtue == "justice", emotion_1,
                                    ifelse(vigFirstVirtue == "generosity", emotion_2, NA)),
    emotion_gen = ifelse(vigFirstVirtue == "generosity", emotion_1,
                                   ifelse(vigFirstVirtue == "justice", emotion_2, NA))
  )



gjg <- gjg %>%
  mutate(
    logic_just = ifelse(vigFirstVirtue == "justice", logic_1,
                                    ifelse(vigFirstVirtue == "generosity", logic_2, NA)),
    logic_gen = ifelse(vigFirstVirtue == "generosity", logic_1,
                                   ifelse(vigFirstVirtue == "justice", logic_2, NA))
  )


gjg <- gjg %>%
  mutate(
    quick_just = ifelse(vigFirstVirtue == "justice", quick_1,
                                    ifelse(vigFirstVirtue == "generosity", quick_2, NA)),
    quick_gen = ifelse(vigFirstVirtue == "generosity", quick_1,
                                   ifelse(vigFirstVirtue == "justice", quick_2, NA))
  )



gjg <- gjg %>%
  mutate(
    slow_just = ifelse(vigFirstVirtue == "justice", slow_1,
                                    ifelse(vigFirstVirtue == "generosity", slow_2, NA)),
    slow_gen = ifelse(vigFirstVirtue == "generosity", slow_1,
                                   ifelse(vigFirstVirtue == "justice", slow_2, NA))
  )


gjg <- gjg %>%
  mutate(
    warm_just = ifelse(vigFirstVirtue == "justice", warm_1,
                                    ifelse(vigFirstVirtue == "generosity", warm_2, NA)),
    warm_gen = ifelse(vigFirstVirtue == "generosity", warm_1,
                                   ifelse(vigFirstVirtue == "justice", warm_2, NA))
  )



gjg <- gjg %>%
  mutate(
    good_natured_just = ifelse(vigFirstVirtue == "justice", good.natured_1,
                                    ifelse(vigFirstVirtue == "generosity", good.natured_2, NA)),
    good_natured_gen = ifelse(vigFirstVirtue == "generosity", good.natured_1,
                                   ifelse(vigFirstVirtue == "justice", good.natured_2, NA))
  )

gjg <- gjg %>%
  mutate(
    tolerant_just = ifelse(vigFirstVirtue == "justice", tolerant_1,
                                    ifelse(vigFirstVirtue == "generosity", tolerant_2, NA)),
    tolerant_gen = ifelse(vigFirstVirtue == "generosity", tolerant_1,
                                   ifelse(vigFirstVirtue == "justice", tolerant_2, NA))
  )


gjg <- gjg %>%
  mutate(
    sincere_just = ifelse(vigFirstVirtue == "justice", sincere_1,
                                    ifelse(vigFirstVirtue == "generosity", sincere_2, NA)),
    sincere_gen = ifelse(vigFirstVirtue == "generosity", sincere_1,
                                   ifelse(vigFirstVirtue == "justice", sincere_2, NA))
  )


gjg <- gjg %>%
  mutate(
    competent_just = ifelse(vigFirstVirtue == "justice", competent_1,
                                    ifelse(vigFirstVirtue == "generosity", competent_2, NA)),
    competent_gen = ifelse(vigFirstVirtue == "generosity", competent_1,
                                   ifelse(vigFirstVirtue == "justice", competent_2, NA))
  )


gjg <- gjg %>%
  mutate(
    confident_just = ifelse(vigFirstVirtue == "justice", confident_1,
                                    ifelse(vigFirstVirtue == "generosity", confident_2, NA)),
    confident_gen = ifelse(vigFirstVirtue == "generosity", confident_1,
                                   ifelse(vigFirstVirtue == "justice", confident_2, NA))
  )


gjg <- gjg %>%
  mutate(
    independent_just = ifelse(vigFirstVirtue == "justice", independent_1,
                                    ifelse(vigFirstVirtue == "generosity", independent_2, NA)),
    independent_gen = ifelse(vigFirstVirtue == "generosity", independent_1,
                                   ifelse(vigFirstVirtue == "justice", independent_2, NA))
  )


gjg <- gjg %>%
  mutate(
    competitive_just = ifelse(vigFirstVirtue == "justice", competitive_1,
                                    ifelse(vigFirstVirtue == "generosity", competitive_2, NA)),
    competitive_gen = ifelse(vigFirstVirtue == "generosity", competitive_1,
                                   ifelse(vigFirstVirtue == "justice", competitive_2, NA))
  )


gjg <- gjg %>%
  mutate(
    intelligent_just = ifelse(vigFirstVirtue == "justice", intelligent_1,
                                    ifelse(vigFirstVirtue == "generosity", intelligent_2, NA)),
    intelligent_gen = ifelse(vigFirstVirtue == "generosity", intelligent_1,
                                   ifelse(vigFirstVirtue == "justice", intelligent_2, NA))
  )

gjg <- gjg %>%
  mutate(
    politics_just = ifelse(vigFirstVirtue == "justice", politics_1,
                                    ifelse(vigFirstVirtue == "generosity", politics_2, NA)),
    politics_gen = ifelse(vigFirstVirtue == "generosity", politics_1,
                                   ifelse(vigFirstVirtue == "justice", politics_2, NA))
  )

gjg <- gjg %>%
  mutate(
    first_text = ifelse(grepl("Value", vigOrder, ignore.case = TRUE), "value", 
                             ifelse(grepl("Commit", vigOrder, ignore.case = TRUE), "commit", NA))
    )

Attention check

Code
# filtering out failures/nonresponses to attention checks
length(gjg_raw$PID)

gjg_raw_filter <- gjg_raw %>%
  filter(consent == 5)
length(gjg_raw_filter$PID)

gjg_raw_filter <- gjg_raw_filter %>%
  filter(!is.na(attn_bucket), attn_self>2, attn_bucket_num == 1)
length(gjg_raw_filter$PID)

1 participants failed the bot check.

Demographics

Code
# Analyzing numeric variables 
# Specify the variables you want to include in the table
vars_to_include <- c("Age", "Income", "Education", "SES", "Political_overall", "Political_social", "Political_economic", "Religiosity")

# Create an empty data frame to store the summary
summary_table <- data.frame(Variable = character(0), 
                             Mean = numeric(0), 
                             Median = numeric(0),
                             Min = numeric(0), 
                             Max = numeric(0),
                             N = numeric(0))

# Loop through each variable and calculate summary statistics
for (var in vars_to_include) {
  summary_stats <- summary(gjg[[var]])
  var_data <- data.frame(Variable = var,
                         Mean = mean(gjg[[var]], na.rm = TRUE),
                         Median = median(gjg[[var]], na.rm = TRUE),
                         Min = min(gjg[[var]], na.rm = TRUE),
                         Max = max(gjg[[var]], na.rm = TRUE),
                         N = length(gjg[[var]]))
  summary_table <- rbind(summary_table, var_data)
}

# Print the summary table
print(summary_table)


# Analyzing categorical demos
# Subset your data frame to include only the demographic columns
demo_gjg <- gjg[, c("Gender_TEXT", "Race_Ethnicity_TEXT", "Income_TEXT", "Education_TEXT", "Political_party_TEXT")]

# Loop through each demographic column and calculate frequency counts
freq_tables <- list()

for (col in names(demo_gjg)) {
  {
    freq_table <- as.data.frame(table(demo_gjg[[col]]))
    freq_table$Percent <- round(freq_table$Freq / sum(freq_table$Freq) * 100, 2)
    freq_tables[[col]] <- freq_table
  }
}

# Print the frequency tables
for (i in seq_along(freq_tables)) {
  if (!is.null(freq_tables[[i]])) {
    cat("\nTable of frequencies for", names(freq_tables)[i], ":\n")
    print(freq_tables[[i]])
  }
}

Correlation

Code
cols_to_convert <- c("reputation_signal_just", "reputation_signal_gen", "norm_signal_just", "norm_signal_gen", "approval_just", "approval_gen", "moral_just", "moral_gen", "genuine_just", "genuine_gen", "deliberate_just", "deliberate_gen", "spontaneous_just", "spontaneous_gen", "emotion_just", "emotion_gen", "logic_just", "logic_gen", "quick_just", "quick_gen", "slow_just", "slow_gen", "warm_just", "warm_gen", "good_natured_just", "good_natured_gen", "tolerant_just", "tolerant_gen", "sincere_just", "sincere_gen", "competent_just", "competent_gen", "confident_just", "confident_gen", "independent_just", "independent_gen", "competitive_just", "competitive_gen", "intelligent_just", "intelligent_gen", "politics_just", "politics_gen", "Age", "SES", "Political_overall", "Political_social", "Political_economic")

gjg[cols_to_convert] <- lapply(gjg[cols_to_convert], as.numeric)

DVs <- gjg[c("reputation_signal_just", "reputation_signal_gen", "norm_signal_just", "norm_signal_gen", "approval_just", "approval_gen", "moral_just", "moral_gen", "genuine_just", "genuine_gen", "deliberate_just", "deliberate_gen", "spontaneous_just", "spontaneous_gen", "emotion_just", "emotion_gen", "logic_just", "logic_gen", "quick_just", "quick_gen", "slow_just", "slow_gen", "warm_just", "warm_gen", "good_natured_just", "good_natured_gen", "tolerant_just", "tolerant_gen", "sincere_just", "sincere_gen", "competent_just", "competent_gen", "confident_just", "confident_gen", "independent_just", "independent_gen", "competitive_just", "competitive_gen", "intelligent_just", "intelligent_gen", "politics_just", "politics_gen", "Age", "SES", "Political_overall", "Political_social", "Political_economic")]

# Compute pairwise correlations
corr_DVs <- cor(DVs, use = "pairwise.complete.obs")

# Plot the correlation matrix
corrplot(corr_DVs, is.corr = TRUE, type = "lower", lower = "circle", tl.cex = 0.7, insig = "label_sig", diag = TRUE)

Code
# New columns for composite of warmth and competence, moral goodness
gjg <- gjg %>%
  mutate(warmth_just=(warm_just+good_natured_just+tolerant_just+sincere_just)/4)%>%
  mutate(warmth_gen=(warm_gen+good_natured_gen+tolerant_gen+sincere_gen)/4)%>%
  mutate(competence_just=(competent_just+confident_just+independent_just+competitive_just+
                            intelligent_just)/5)%>%
  mutate(competence_gen=(competent_gen+confident_gen+independent_gen+competitive_gen+
                            intelligent_gen)/5) %>%
  mutate(moralGoodness_just=(approval_just+moral_just+genuine_just)/3)%>%
  mutate(moralGoodness_gen=(approval_gen+moral_gen+genuine_gen)/3) %>%
  mutate(decisionSpeed_just=(quick_just+spontaneous_just)/2)%>%
  mutate(decisionSpeed_gen=(quick_gen+spontaneous_gen)/2)

# DVs 2
DVs_2 <- gjg[c("reputation_signal_just", "reputation_signal_gen", "norm_signal_just", "norm_signal_gen", "approval_just", "approval_gen", "moral_just", "moral_gen", "genuine_just", "genuine_gen", "deliberate_just", "deliberate_gen", "spontaneous_just", "spontaneous_gen", "emotion_just", "emotion_gen", "logic_just", "logic_gen", "quick_just", "quick_gen", "slow_just", "slow_gen", "warmth_just", "warmth_gen", "competence_just", "competence_gen", "moralGoodness_just", "moralGoodness_gen", "decisionSpeed_just", "decisionSpeed_gen", "politics_just", "politics_gen", "Age", "SES", "Political_overall", "Political_social", "Political_economic")]


# Compute pairwise correlations
corr_DVs_2 <- cor(DVs_2, use = "pairwise.complete.obs")

# Plot the correlation matrix
corrplot(corr_DVs_2, is.corr = TRUE, type = "lower", lower = "circle", tl.cex = 0.7, insig = "label_sig", diag = TRUE)

Code
# DVs just
DVs_just <- gjg[c("reputation_signal_just", "norm_signal_just", "approval_just", "moral_just", "genuine_just", "deliberate_just", "spontaneous_just", "emotion_just", "logic_just", "quick_just", "slow_just", "warmth_just", "competence_just", "politics_just", "Age", "SES", "Political_overall", "Political_social", "Political_economic")]

# Compute pairwise correlations
corr_DVs_just <- cor(DVs_just, use = "pairwise.complete.obs")

# Plot the correlation matrix
corrplot(corr_DVs_just, is.corr = TRUE, type = "lower", lower = "circle", tl.cex = 0.7, insig = "label_sig", diag = TRUE)

Code
# DVs gen
DVs_gen <- gjg[c("reputation_signal_gen", "norm_signal_gen", "approval_gen", "moral_gen", "genuine_gen", "deliberate_gen", "spontaneous_gen", "emotion_gen", "logic_gen", "quick_gen", "slow_gen", "warmth_gen", "competence_gen", "politics_gen", "Age", "SES", "Political_overall", "Political_social", "Political_economic")]

# Compute pairwise correlations
corr_DVs_gen <- cor(DVs_gen, use = "pairwise.complete.obs")

# Plot the correlation matrix
corrplot(corr_DVs_gen, is.corr = TRUE, type = "lower", lower = "circle", tl.cex = 0.7, insig = "label_sig", diag = TRUE)

Code
# DVs collapsed

# renaming DVs with underscores in name
gjg <- gjg %>%
  dplyr::rename("reputationSignal_just"="reputation_signal_just",
         "reputationSignal_gen"="reputation_signal_gen",
         "normSignal_just"="norm_signal_just", 
         "normSignal_gen"="norm_signal_gen",
         "goodNatured_gen"="good_natured_gen",
         "goodNatured_just"="good_natured_just")

gjg_long<-gjg %>% gather(DV, resp, "reputationSignal_just","reputationSignal_gen","normSignal_just","normSignal_gen","approval_just","approval_gen","moral_just","moral_gen","genuine_just","genuine_gen","deliberate_just","deliberate_gen","spontaneous_just","spontaneous_gen","emotion_just","emotion_gen","logic_just","logic_gen","quick_just","quick_gen","slow_just","slow_gen","warm_just","warm_gen","goodNatured_just","goodNatured_gen","tolerant_just","tolerant_gen","sincere_just","sincere_gen","competent_just","competent_gen","confident_just","confident_gen", "independent_just","independent_gen","competitive_just","competitive_gen","intelligent_just","intelligent_gen","warmth_just","warmth_gen","competence_just","competence_gen", "moralGoodness_just", "moralGoodness_gen", "decisionSpeed_just", "decisionSpeed_gen", "politics_just", "politics_gen")

gjg_long<-gjg_long %>%
  separate(DV, into= c("DV", "motive"), sep="_")

gjg_long <- spread(gjg_long, DV, resp)

DVs_col <- gjg_long[c("reputationSignal","normSignal", "approval", "moral", "genuine", "deliberate", "spontaneous", "emotion", "logic", "quick", "slow", "warm", "goodNatured", "tolerant", "sincere", "competent", "confident", "independent", "competitive", "intelligent", "warmth", "competence","politics", "Age", "SES", "Political_overall", "Political_social", "Political_economic")]

# Compute pairwise correlations
corr_DVs_col <- cor(DVs_col, use = "pairwise.complete.obs")

# Plot the correlation matrix
corrplot(corr_DVs_col, is.corr = TRUE, type = "lower", lower = "circle", tl.cex = 0.7, insig = "label_sig", diag = TRUE)

EFA

Evaluating the correlation matrix

Code
factorCor <- cor(factorDVs, use = "complete.obs")

# Assuming you have a correlation matrix named "correlation_matrix"
correlation_threshold <- 0.8
high_correlations <- which(factorCor > correlation_threshold & upper.tri(factorCor, diag = FALSE), arr.ind = TRUE)

# Extract the row and column indices of high correlations
row_indices <- high_correlations[, 1]
column_indices <- high_correlations[, 2]

# Extract the correlations greater than 0.8
high_correlation_values <- factorCor[high_correlations]

# Print the results
high_correlation_results <- data.frame(row_indices, column_indices, high_correlation_values)
print(high_correlation_results)
[1] row_indices             column_indices          high_correlation_values
<0 rows> (or 0-length row.names)
Code
# removing one from all pairs of overcorrelated variables
# overcorrelated <- c("")
# efaDVs <- factorDVs[ ,!(names(factorDVs) %in% overcorrelated)]
efaDVs <- factorDVs

Determining number of factors

  • Eigenvalues suggests 5 factors

  • Scree plot suggests 2 or 5 factors

  • Parallel Analysis suggests 5

Code
## evaluating data
corr_DVs = cor(efaDVs, use="complete.obs")
KMO(efaDVs)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = efaDVs)
Overall MSA =  0.91
MSA for each item = 
reputationSignal       normSignal         approval            moral 
            0.63             0.76             0.94             0.95 
         genuine       deliberate      spontaneous          emotion 
            0.93             0.86             0.63             0.89 
           logic            quick             slow             warm 
            0.90             0.66             0.45             0.93 
     goodNatured         tolerant          sincere        competent 
            0.92             0.96             0.95             0.93 
       confident      independent      competitive      intelligent 
            0.93             0.95             0.70             0.92 
Code
cortest.bartlett(efaDVs) #tests correlations between variables
$chisq
[1] 5683.612

$p.value
[1] 0

$df
[1] 190
Code
##
ev<-eigen(corr_DVs) #gets eigenvalues (variance explained by each component)
ev$values
 [1] 7.2056694 2.1095754 1.4027546 1.2223850 1.0755615 0.9411119 0.7833228
 [8] 0.7265738 0.5666645 0.5216163 0.5021067 0.4705338 0.4314072 0.4111397
[15] 0.3758325 0.2976609 0.2631783 0.2431150 0.2371411 0.2126496
Code
scree(factorDVs, pc = FALSE) #number of factors until plot levels off

Code
fa.parallel(factorDVs, fa="fa") #checks eigenvalues of factors against eigenvalues of identity (no correlation) matrix

Parallel analysis suggests that the number of factors =  5  and the number of components =  NA 
Code
dat_fa <- na.omit(DVs)

5 Factors

Code
fit <- factanal(na.omit(efaDVs), factors=5, rotation="promax", scores = "regression")
print(fit, digits = 2, cutoff = .3, sort = TRUE)

Call:
factanal(x = na.omit(efaDVs), factors = 5, scores = "regression",     rotation = "promax")

Uniquenesses:
reputationSignal       normSignal         approval            moral 
            0.54             0.75             0.30             0.31 
         genuine       deliberate      spontaneous          emotion 
            0.23             0.79             0.64             0.80 
           logic            quick             slow             warm 
            0.68             0.31             0.84             0.30 
     goodNatured         tolerant          sincere        competent 
            0.23             0.43             0.28             0.29 
       confident      independent      competitive      intelligent 
            0.49             0.50             0.62             0.22 

Loadings:
                 Factor1 Factor2 Factor3 Factor4 Factor5
warm              0.70                                  
goodNatured       0.82                                  
tolerant          0.64                                  
competent         0.37    0.70                          
confident                 0.59                          
independent               0.57                          
intelligent       0.37    0.70                          
approval                          0.53                  
genuine                           0.68                  
spontaneous                               0.57          
quick                                     0.85          
reputationSignal                                  0.68  
normSignal                                        0.42  
moral             0.31            0.50                  
deliberate                0.39                          
emotion                                                 
logic                     0.39                          
slow                                              0.42  
sincere           0.43            0.32                  
competitive                                       0.47  

               Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings       2.40    2.32    1.41    1.22    1.15
Proportion Var    0.12    0.12    0.07    0.06    0.06
Cumulative Var    0.12    0.24    0.31    0.37    0.43

Factor Correlations:
        Factor1 Factor2 Factor3 Factor4 Factor5
Factor1   1.000   -0.52   -0.23    0.48  -0.069
Factor2  -0.518    1.00    0.21   -0.52   0.115
Factor3  -0.232    0.21    1.00   -0.30  -0.238
Factor4   0.478   -0.52   -0.30    1.00   0.157
Factor5  -0.069    0.11   -0.24    0.16   1.000

Test of the hypothesis that 5 factors are sufficient.
The chi square statistic is 275.26 on 100 degrees of freedom.
The p-value is 2.69e-18 
Code
loads <- fit$loadings
fa.diagram(loads)

Code
## Cronbach's Alpha
f1 <- efaDVs[ , c("approval", "moral", "genuine", "sincere", "deliberate", "emotion", "logic")]
f2 <- efaDVs[ , c("competent", "confident", "independent", "intelligent")]
f3 <- efaDVs[ , c("warm", "goodNatured", "tolerant")]
f4 <- efaDVs[ , c("quick", "spontaneous")]
f5 <- efaDVs[ , c("reputationSignal", "normSignal", "competitive")]
alpha(f1)

Reliability analysis   
Call: alpha(x = f1)

  raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd median_r
      0.82      0.83    0.83       0.4 4.8 0.011    4 0.69      0.3

    95% confidence boundaries 
         lower alpha upper
Feldt      0.8  0.82  0.84
Duhachek   0.8  0.82  0.84

 Reliability if an item is dropped:
           raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
approval        0.77      0.78    0.78      0.37 3.5    0.014 0.032  0.28
moral           0.77      0.78    0.78      0.37 3.5    0.014 0.034  0.28
genuine         0.77      0.77    0.77      0.36 3.4    0.015 0.032  0.25
sincere         0.77      0.78    0.78      0.37 3.5    0.014 0.037  0.25
deliberate      0.83      0.84    0.84      0.46 5.2    0.011 0.044  0.39
emotion         0.84      0.84    0.84      0.47 5.4    0.010 0.040  0.39
logic           0.82      0.82    0.83      0.43 4.5    0.012 0.052  0.28

 Item statistics 
             n raw.r std.r r.cor r.drop mean   sd
approval   600  0.81  0.81  0.81   0.72  4.2 0.97
moral      600  0.81  0.81  0.80   0.72  4.0 0.95
genuine    600  0.82  0.83  0.83   0.74  4.1 0.97
sincere    600  0.81  0.81  0.80   0.72  4.0 0.98
deliberate 600  0.51  0.52  0.38   0.35  4.2 0.93
emotion    600  0.50  0.49  0.34   0.31  3.8 1.02
logic      600  0.64  0.62  0.51   0.47  3.5 1.10

Non missing response frequency for each item
              1    2    3    4    5 miss
approval   0.03 0.04 0.12 0.34 0.48    0
moral      0.02 0.04 0.20 0.38 0.36    0
genuine    0.02 0.06 0.13 0.41 0.38    0
sincere    0.02 0.06 0.18 0.35 0.39    0
deliberate 0.01 0.04 0.15 0.30 0.50    0
emotion    0.02 0.09 0.24 0.34 0.31    0
logic      0.04 0.14 0.27 0.34 0.20    0
Code
alpha(f2)

Reliability analysis   
Call: alpha(x = f2)

  raw_alpha std.alpha G6(smc) average_r S/N    ase mean   sd median_r
      0.85      0.85    0.82      0.59 5.7 0.0099  3.9 0.75     0.58

    95% confidence boundaries 
         lower alpha upper
Feldt     0.83  0.85  0.87
Duhachek  0.83  0.85  0.87

 Reliability if an item is dropped:
            raw_alpha std.alpha G6(smc) average_r S/N alpha se  var.r med.r
competent        0.78      0.78    0.71      0.54 3.6    0.015 0.0048  0.58
confident        0.84      0.85    0.80      0.65 5.5    0.011 0.0103  0.59
independent      0.84      0.84    0.79      0.63 5.1    0.011 0.0129  0.58
intelligent      0.77      0.77    0.70      0.53 3.4    0.016 0.0039  0.56

 Item statistics 
              n raw.r std.r r.cor r.drop mean   sd
competent   600  0.87  0.87  0.84   0.76  3.9 0.91
confident   600  0.77  0.78  0.65   0.61  3.9 0.85
independent 600  0.80  0.79  0.68   0.63  3.9 0.94
intelligent 600  0.88  0.88  0.85   0.78  3.8 0.91

Non missing response frequency for each item
               1    2    3    4    5 miss
competent   0.01 0.04 0.29 0.36 0.30    0
confident   0.00 0.04 0.28 0.41 0.26    0
independent 0.01 0.05 0.29 0.33 0.32    0
intelligent 0.01 0.05 0.32 0.38 0.24    0
Code
alpha(f3)

Reliability analysis   
Call: alpha(x = f3)

  raw_alpha std.alpha G6(smc) average_r S/N  ase mean   sd median_r
      0.86      0.86     0.8      0.67   6 0.01  3.7 0.88     0.65

    95% confidence boundaries 
         lower alpha upper
Feldt     0.84  0.86  0.88
Duhachek  0.84  0.86  0.88

 Reliability if an item is dropped:
            raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
warm             0.79      0.79    0.65      0.65 3.7    0.017    NA  0.65
goodNatured      0.76      0.76    0.62      0.62 3.2    0.019    NA  0.62
tolerant         0.85      0.85    0.73      0.73 5.5    0.013    NA  0.73

 Item statistics 
              n raw.r std.r r.cor r.drop mean   sd
warm        600  0.89  0.89  0.81   0.74  3.8 1.00
goodNatured 600  0.90  0.90  0.83   0.77  3.9 0.98
tolerant    600  0.86  0.86  0.73   0.68  3.6 1.00

Non missing response frequency for each item
               1    2    3    4    5 miss
warm        0.02 0.09 0.28 0.35 0.27    0
goodNatured 0.02 0.06 0.26 0.34 0.32    0
tolerant    0.03 0.09 0.35 0.32 0.21    0
Code
alpha(f4)

Reliability analysis   
Call: alpha(x = f4)

  raw_alpha std.alpha G6(smc) average_r S/N   ase mean  sd median_r
      0.65      0.66    0.49      0.49 1.9 0.028  2.8 1.1     0.49

    95% confidence boundaries 
         lower alpha upper
Feldt     0.59  0.65  0.71
Duhachek  0.60  0.65  0.71

 Reliability if an item is dropped:
            raw_alpha std.alpha G6(smc) average_r  S/N alpha se var.r med.r
quick            0.47      0.49    0.24      0.49 0.95       NA     0  0.49
spontaneous      0.51      0.49    0.24      0.49 0.95       NA     0  0.49

 Item statistics 
              n raw.r std.r r.cor r.drop mean  sd
quick       600  0.86  0.86   0.6   0.49  3.0 1.2
spontaneous 600  0.87  0.86   0.6   0.49  2.7 1.3

Non missing response frequency for each item
               1    2    3    4    5 miss
quick       0.14 0.22 0.34 0.18 0.13    0
spontaneous 0.21 0.25 0.27 0.16 0.10    0
Code
alpha(f5)

Reliability analysis   
Call: alpha(x = f5)

  raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd median_r
      0.53      0.53    0.44      0.27 1.1 0.033    3 0.93     0.31

    95% confidence boundaries 
         lower alpha upper
Feldt     0.46  0.53  0.59
Duhachek  0.47  0.53  0.60

 Reliability if an item is dropped:
                 raw_alpha std.alpha G6(smc) average_r  S/N alpha se var.r
reputationSignal      0.31      0.31    0.18      0.18 0.45    0.056    NA
normSignal            0.48      0.49    0.32      0.32 0.94    0.042    NA
competitive           0.48      0.48    0.31      0.31 0.91    0.043    NA
                 med.r
reputationSignal  0.18
normSignal        0.32
competitive       0.31

 Item statistics 
                   n raw.r std.r r.cor r.drop mean  sd
reputationSignal 600  0.77  0.76  0.57   0.41  2.8 1.3
normSignal       600  0.69  0.70  0.42   0.31  3.5 1.3
competitive      600  0.69  0.70  0.43   0.31  2.8 1.2

Non missing response frequency for each item
                    1    2    3    4    5 miss
reputationSignal 0.22 0.24 0.22 0.18 0.14    0
normSignal       0.09 0.16 0.20 0.29 0.27    0
competitive      0.20 0.20 0.34 0.15 0.11    0

CFA

Factor 1: Warmth

  • Significant
Code
plot_cooker <- function(dv, iv, Title, x_axis_labs, y_label, sample_size) {
  part1 <- ggviolin(gjg_long, x = dv, y = iv, color = dv,
                    alpha = 0.1, fill = dv, xlab = "Motive",
                    trim = TRUE, ylab = y_label) +
    stat_summary(fun.data = "mean_cl_normal", geom = "crossbar", fatten = 1) +
    scale_y_continuous(breaks = c(1:5)) +
    labs(title = paste0(Title, " (n = ", sample_size, ")")) +
    scale_x_discrete(labels = x_axis_labs) +
    theme(panel.background = element_rect(fill = "transparent"), 
          legend.position = "right",  ## Consider “gray97” for fill
          plot.title = element_text(face = "bold", hjust = 0.5, size = 16), 
          plot.subtitle = element_text(hjust = 0.5),
          panel.grid.major.y = element_line(color='grey75'), 
          axis.text.x = element_text(face = "plain", size = 13, color = "black"),
          axis.text.y = element_text(face = "plain", size = 13, color = "black"),
          axis.title.y = element_text(face = "plain", size = 13, color = "black", 
                                       margin = margin(t = 0, r = 10, b = 0, l = 0)), ## lower X axis title
          panel.border = element_rect(color = "black", fill = NA, size = 1))
  ggpar(part1, legend = "none")
}

gjg_long$motive <- as.factor(gjg_long$motive)

plot_cooker("motive", "warmth", "Warmth", c("Generosity", "Justice")," ", 300)

Inferential Tests

Code
mod_warmth <- lmer(warmth ~ motive + (1 | PID), data = gjg_long)
summary(mod_warmth)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: warmth ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1429.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9576 -0.4158  0.0324  0.4777  2.9803 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3289   0.5735  
 Residual             0.3792   0.6158  
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   3.95917    0.04859 491.88213  81.489  < 2e-16 ***
motivejust   -0.27250    0.05028 299.00000  -5.419 1.23e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.517
Code
mod_warmth_pol <- lmer(warmth ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_warmth_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: warmth ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1418.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9388 -0.4295  0.0424  0.4928  2.9528 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3280   0.5727  
 Residual             0.3791   0.6157  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                               Estimate Std. Error         df t value Pr(>|t|)
(Intercept)                    3.972572   0.101248 483.877492  39.236  < 2e-16
motivejust                    -0.302169   0.104842 294.000002  -2.882  0.00424
Political_overall             -0.003146   0.028653 483.877492  -0.110  0.91263
motivejust:Political_overall   0.008397   0.029670 294.000002   0.283  0.77735
                                
(Intercept)                  ***
motivejust                   ** 
Political_overall               
motivejust:Political_overall    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.518              
Poltcl_vrll -0.876  0.453       
mtvjst:Plt_  0.453 -0.876 -0.518

Factor 2: Competence

  • Significant
Code
plot_cooker("motive", "competence", "Competence", c("Generosity", "Justice")," ", 300)

Inferential Tests

Code
mod_comp <- lmer(competence ~ motive + (1 | PID), data = gjg_long)
summary(mod_comp)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: competence ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 933.1

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.4617 -0.3075 -0.0059  0.3412  3.5515 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.35730  0.5977  
 Residual             0.09263  0.3043  
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   3.61400    0.03873 366.72517  93.320  < 2e-16 ***
motivejust    0.08267    0.02485 299.00001   3.327 0.000989 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.321
Code
mod_comp_pol <- lmer(competence ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_comp_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: competence ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 926.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.4713 -0.3179 -0.0232  0.3273  3.5068 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.35380  0.5948  
 Residual             0.09202  0.3034  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                              Estimate Std. Error        df t value Pr(>|t|)
(Intercept)                    3.46480    0.08039 360.78276  43.099   <2e-16
motivejust                     0.12806    0.05165 294.00001   2.479   0.0137
Political_overall              0.04893    0.02275 360.78276   2.151   0.0322
motivejust:Political_overall  -0.01496    0.01462 294.00001  -1.024   0.3068
                                
(Intercept)                  ***
motivejust                   *  
Political_overall            *  
motivejust:Political_overall    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.321              
Poltcl_vrll -0.876  0.281       
mtvjst:Plt_  0.281 -0.876 -0.321

Factor 3: Moral Goodness

Code
plot_cooker("motive", "moralGoodness", "Moral Goodness", c("Generosity", "Justice")," ", 300)

Inferential Tests

Code
mod_moral <- lmer(moralGoodness ~ motive + (1 | PID), data = gjg_long)
summary(mod_moral)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: moralGoodness ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1442

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.8538 -0.3048  0.0608  0.4122  2.6901 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3892   0.6239  
 Residual             0.3603   0.6002  
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   4.14000    0.04998 470.98074  82.829   <2e-16 ***
motivejust   -0.07222    0.04901 299.00000  -1.474    0.142    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.490
Code
mod_moral_pol <- lmer(moralGoodness ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_moral_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: moralGoodness ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1435.2

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.8472 -0.3194  0.0495  0.4330  2.7302 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3891   0.6238  
 Residual             0.3637   0.6031  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                              Estimate Std. Error        df t value Pr(>|t|)
(Intercept)                    4.22096    0.10447 464.02621  40.405   <2e-16
motivejust                    -0.12260    0.10269 294.00000  -1.194    0.233
Political_overall             -0.02446    0.02956 464.02621  -0.827    0.408
motivejust:Political_overall   0.01487    0.02906 294.00000   0.512    0.609
                                
(Intercept)                  ***
motivejust                      
Political_overall               
motivejust:Political_overall    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.491              
Poltcl_vrll -0.876  0.430       
mtvjst:Plt_  0.430 -0.876 -0.491

Factor 4: Decision Speed

  • Significant main effect

  • Interaction w/ participants’ pol leaning – conservatives think generous donor decision time is significantly longer

Code
plot_cooker("motive", "decisionSpeed", "decisionSpeed", c("Generosity", "Justice")," ", 300)

Code
pol_line <- function(data, iv, dv) {
  ggplot(data, aes(x = {{iv}}, y = {{dv}}, color = motive)) +
  stat_summary(fun.data = "mean_cl_normal", geom = "line") +
  geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.5) +
  labs(x = "Political Leaning", color = "Motive")
}

pol_line(gjg_long, Political_overall, decisionSpeed)

Inferential Tests

Code
mod_speed <- lmer(decisionSpeed ~ motive + (1 | PID), data = gjg_long)
summary(mod_speed)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: decisionSpeed ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1548.9

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.4189 -0.3634 -0.0201  0.2733  3.4741 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.8195   0.9053  
 Residual             0.3021   0.5497  
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   2.94333    0.06115 389.87527  48.135  < 2e-16 ***
motivejust   -0.23500    0.04488 299.00000  -5.236  3.1e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.367
Code
mod_speed_pol <- lmer(decisionSpeed ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_speed_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: decisionSpeed ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1519.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3779 -0.3692 -0.0263  0.3041  3.3915 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.7950   0.8916  
 Residual             0.2936   0.5419  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                              Estimate Std. Error        df t value Pr(>|t|)
(Intercept)                    2.58439    0.12562 383.48199  20.573   <2e-16
motivejust                    -0.05524    0.09226 294.00000  -0.599   0.5498
Political_overall              0.11301    0.03555 383.48199   3.179   0.0016
motivejust:Political_overall  -0.05639    0.02611 294.00000  -2.160   0.0316
                                
(Intercept)                  ***
motivejust                      
Political_overall            ** 
motivejust:Political_overall *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.367              
Poltcl_vrll -0.876  0.322       
mtvjst:Plt_  0.322 -0.876 -0.367

Factor 5: Signaling

  • Significant Norm Signaling

  • Marginal Reputation Signaling

Code
plot_cooker("motive", "reputationSignal", "Reputation Signaling", c("Generosity", "Justice")," ", 300)

Code
plot_cooker("motive", "normSignal", "Norm Signaling", c("Generosity", "Justice")," ", 300)

Inferential Tests

Code
mod_rep <- lmer(reputationSignal ~ motive + (1 | PID), data = gjg_long)
summary(mod_rep)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: reputationSignal ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1938

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.3295 -0.4503 -0.1520  0.4446  2.4637 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 1.0743   1.036   
 Residual             0.7448   0.863   
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   2.84333    0.07787 443.36922  36.514   <2e-16 ***
motivejust   -0.13667    0.07047 299.00000  -1.939   0.0534 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.452
Code
mod_rep_pol <- lmer(reputationSignal ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_rep_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: reputationSignal ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1916.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.3214 -0.4864 -0.1422  0.4647  2.4197 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 1.0844   1.0413  
 Residual             0.7357   0.8577  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                              Estimate Std. Error        df t value Pr(>|t|)
(Intercept)                    2.79984    0.16243 433.95770  17.237   <2e-16
motivejust                    -0.17325    0.14605 294.00001  -1.186    0.236
Political_overall              0.01119    0.04597 433.95771   0.243    0.808
motivejust:Political_overall   0.01778    0.04133 294.00001   0.430    0.667
                                
(Intercept)                  ***
motivejust                      
Political_overall               
motivejust:Political_overall    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.450              
Poltcl_vrll -0.876  0.394       
mtvjst:Plt_  0.394 -0.876 -0.450
Code
mod_norm <- lmer(normSignal ~ motive + (1 | PID), data = gjg_long)
summary(mod_norm)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: normSignal ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1890.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.64583 -0.42563  0.02321  0.42911  2.30083 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.8652   0.9302  
 Residual             0.7428   0.8619  
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   3.36333    0.07321 463.74371  45.940  < 2e-16 ***
motivejust    0.26333    0.07037 299.00000   3.742 0.000219 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.481
Code
mod_norm_pol <- lmer(normSignal ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_norm_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: normSignal ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1865.7

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.75846 -0.45423  0.02795  0.45370  2.20534 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.8495   0.9217  
 Residual             0.7372   0.8586  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                               Estimate Std. Error         df t value Pr(>|t|)
(Intercept)                   3.154e+00  1.517e-01  4.570e+02  20.797   <2e-16
motivejust                    2.649e-01  1.462e-01  2.940e+02   1.812   0.0710
Political_overall             7.140e-02  4.292e-02  4.570e+02   1.664   0.0969
motivejust:Political_overall -4.393e-04  4.137e-02  2.940e+02  -0.011   0.9915
                                
(Intercept)                  ***
motivejust                   .  
Political_overall            .  
motivejust:Political_overall    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.482              
Poltcl_vrll -0.876  0.422       
mtvjst:Plt_  0.422 -0.876 -0.482

Factor 6: Emotion

Code
plot_cooker("motive", "emotion", "Emotion", c("Generosity", "Justice")," ", 300)

Inferential Tests

Code
mod_emotion <- lmer(emotion ~ motive + (1 | PID), data = gjg_long)
summary(mod_emotion)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: emotion ~ motive + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1705.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.8816 -0.5202  0.1051  0.7067  1.8530 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3317   0.5759  
 Residual             0.7173   0.8470  
Number of obs: 600, groups:  PID, 300

Fixed effects:
             Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)   3.83333    0.05913 543.65500  64.826   <2e-16 ***
motivejust    0.01000    0.06915 299.00000   0.145    0.885    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
           (Intr)
motivejust -0.585
Code
mod_emotion_pol <- lmer(emotion ~ motive*Political_overall + (1 | PID), data = gjg_long)
summary(mod_emotion_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: emotion ~ motive * Political_overall + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1682.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.95898 -0.51229  0.09721  0.69506  1.89113 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3374   0.5809  
 Residual             0.7005   0.8369  
Number of obs: 592, groups:  PID, 296

Fixed effects:
                              Estimate Std. Error        df t value Pr(>|t|)
(Intercept)                    3.76379    0.12266 531.79880  30.685   <2e-16
motivejust                     0.02590    0.14251 294.00000   0.182    0.856
Political_overall              0.02175    0.03471 531.79880   0.626    0.531
motivejust:Political_overall  -0.00182    0.04033 294.00000  -0.045    0.964
                                
(Intercept)                  ***
motivejust                      
Political_overall               
motivejust:Political_overall    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) mtvjst Pltcl_
motivejust  -0.581              
Poltcl_vrll -0.876  0.509       
mtvjst:Plt_  0.509 -0.876 -0.581

Factors by Text Order

Factor 1: Warmth

Code
gjg_long <- gjg_long %>%
  mutate(
    motive_long = ifelse(motive == "just", "justice",
                                    ifelse(motive == "gen", "generosity", NA))
  )
# 
# gjg_long %>% mutate(
#     type = case_when(
#       height > 200 | mass > 200 ~ "large",
#       species == "Droid" ~ "robot",
#       .default = "other"
#     )
#   )
 
lizy_cooker <- function(dv, iv, facet, Title, x_axis_labs, y_label, sample_size, coln, rown) {
  part1 <- ggviolin(gjg_long, x = dv, y = iv, color = dv,
                    alpha = 0.1, fill = dv, xlab = "Motive",
                    trim = TRUE, ylab = y_label) +
    stat_summary(fun.data = "mean_cl_normal", geom = "crossbar", fatten = 1) +
    scale_y_continuous(breaks = c(1:7)) +
    labs(title = paste0(Title, " (n = ", sample_size, ")")) +
    theme(panel.background = element_rect(fill = "transparent"), 
          legend.position = "right",  ## Consider “gray97” for fill
          plot.title = element_text(face = "bold", hjust = 0.5, size = 16), 
          plot.subtitle = element_text(hjust = 0.5),
          panel.grid.major.y = element_line(color='grey75'), 
          axis.text.x = element_text(face = "plain", size = 13, color = "black"),
          axis.text.y = element_text(face = "plain", size = 13, color = "black"),
          axis.title.y = element_text(face = "plain", size = 13, color = "black", 
                                       margin = margin(t = 0, r = 10, b = 0, l = 0)), ## lower X axis title
          panel.border = element_rect(color = "black", fill = NA, size = 1)) +
  scale_color_discrete(name = "Condition") +
  facet_wrap(~ vigOrder, ncol = coln, nrow = rown, scales = "free", as.table = TRUE)
  ggpar(part1, legend = "none")
}

lizy_cooker("motive", "warmth", "vigOrder", "Warmth", c("Generosity", "Justice")," ", 300, 2, 2)

Inferential Tests

Code
# mod_warmth_vigOrder <- lmer(warmth ~ motive*first_text + (1 | PID), data = gjg_long)
# summary(mod_warmth_vigOrder)
# view(gjg_long)

Factor 2: Competence

Code
lizy_cooker("motive", "competence", "vigOrder", "Competence", c("Generosity", "Justice")," ", 300, 2, 2)

Code
mod_competence_vigOrder <- lmer(competence ~ motive*vigOrder + (1 | PID), data = gjg_long)
summary(mod_competence_vigOrder)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: competence ~ motive * vigOrder + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 945.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.4636 -0.3054 -0.0235  0.3266  3.5548 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.35154  0.5929  
 Residual             0.09345  0.3057  
Number of obs: 600, groups:  PID, 300

Fixed effects:
                                        Estimate Std. Error         df t value
(Intercept)                             3.677333   0.077027 364.509982  47.741
motivejust                              0.093333   0.049920 296.000006   1.870
vigOrdergenValueFirst                  -0.198386   0.108574 364.509981  -1.827
vigOrderjusticeCommitFirst             -0.082596   0.108574 364.509981  -0.761
vigOrderjusticeValueFirst               0.032256   0.109677 364.509981   0.294
motivejust:vigOrdergenValueFirst       -0.035439   0.070364 296.000006  -0.504
motivejust:vigOrderjusticeCommitFirst  -0.009123   0.070364 296.000006  -0.130
motivejust:vigOrderjusticeValueFirst    0.002557   0.071079 296.000006   0.036
                                      Pr(>|t|)    
(Intercept)                             <2e-16 ***
motivejust                              0.0625 .  
vigOrdergenValueFirst                   0.0685 .  
vigOrderjusticeCommitFirst              0.4473    
vigOrderjusticeValueFirst               0.7689    
motivejust:vigOrdergenValueFirst        0.6149    
motivejust:vigOrderjusticeCommitFirst   0.8969    
motivejust:vigOrderjusticeValueFirst    0.9713    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
                 (Intr) mtvjst vgOrdrgVF vgOrCF vgOrdrjVF mtvjst:vgOrdrgVF
motivejust       -0.324                                                   
vgOrdrgnVlF      -0.709  0.230                                            
vgOrdrjstCF      -0.709  0.230  0.503                                     
vgOrdrjstVF      -0.702  0.228  0.498     0.498                           
mtvjst:vgOrdrgVF  0.230 -0.709 -0.324    -0.163 -0.161                    
mtvjst:vOCF       0.230 -0.709 -0.163    -0.324 -0.161     0.503          
mtvjst:vgOrdrjVF  0.228 -0.702 -0.161    -0.161 -0.324     0.498          
                 mt:OCF
motivejust             
vgOrdrgnVlF            
vgOrdrjstCF            
vgOrdrjstVF            
mtvjst:vgOrdrgVF       
mtvjst:vOCF            
mtvjst:vgOrdrjVF  0.498

Factor 3: Moral Goodness

Code
lizy_cooker("motive", "moralGoodness", "vigOrder", "Moral Goodness", c("Generosity", "Justice")," ", 300, 2, 2)

Code
mod_moral_vigOrder <- lmer(moralGoodness ~ motive*vigOrder + (1 | PID), data = gjg_long)
summary(mod_moral_vigOrder)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: moralGoodness ~ motive * vigOrder + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1449.9

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.8183 -0.3179  0.1033  0.4578  2.6414 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3847   0.6202  
 Residual             0.3616   0.6013  
Number of obs: 600, groups:  PID, 300

Fixed effects:
                                        Estimate Std. Error         df t value
(Intercept)                             4.164444   0.099750 467.734082  41.749
motivejust                             -0.115556   0.098198 296.000004  -1.177
vigOrdergenValueFirst                  -0.151287   0.140604 467.734083  -1.076
vigOrderjusticeCommitFirst              0.107485   0.140604 467.734083   0.764
vigOrderjusticeValueFirst              -0.054855   0.142031 467.734083  -0.386
motivejust:vigOrdergenValueFirst       -0.002865   0.138416 296.000004  -0.021
motivejust:vigOrderjusticeCommitFirst   0.019064   0.138416 296.000004   0.138
motivejust:vigOrderjusticeValueFirst    0.161218   0.139821 296.000004   1.153
                                      Pr(>|t|)    
(Intercept)                             <2e-16 ***
motivejust                               0.240    
vigOrdergenValueFirst                    0.282    
vigOrderjusticeCommitFirst               0.445    
vigOrderjusticeValueFirst                0.700    
motivejust:vigOrdergenValueFirst         0.983    
motivejust:vigOrderjusticeCommitFirst    0.891    
motivejust:vigOrderjusticeValueFirst     0.250    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
                 (Intr) mtvjst vgOrdrgVF vgOrCF vgOrdrjVF mtvjst:vgOrdrgVF
motivejust       -0.492                                                   
vgOrdrgnVlF      -0.709  0.349                                            
vgOrdrjstCF      -0.709  0.349  0.503                                     
vgOrdrjstVF      -0.702  0.346  0.498     0.498                           
mtvjst:vgOrdrgVF  0.349 -0.709 -0.492    -0.248 -0.245                    
mtvjst:vOCF       0.349 -0.709 -0.248    -0.492 -0.245     0.503          
mtvjst:vgOrdrjVF  0.346 -0.702 -0.245    -0.245 -0.492     0.498          
                 mt:OCF
motivejust             
vgOrdrgnVlF            
vgOrdrjstCF            
vgOrdrjstVF            
mtvjst:vgOrdrgVF       
mtvjst:vOCF            
mtvjst:vgOrdrjVF  0.498

Factor 4: Decision Speed

Code
lizy_cooker("motive", "decisionSpeed", "vigOrder", "Decision Speed", c("Generosity", "Justice")," ", 300, 2, 2)

Code
mod_speed_vigOrder <- lmer(decisionSpeed ~ motive*vigOrder + (1 | PID), data = gjg_long)
summary(mod_speed_vigOrder)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: decisionSpeed ~ motive * vigOrder + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1549

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.2667 -0.3659 -0.0252  0.3138  3.3950 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.7932   0.8906  
 Residual             0.3026   0.5501  
Number of obs: 600, groups:  PID, 300

Fixed effects:
                                       Estimate Std. Error        df t value
(Intercept)                             3.14667    0.12087 388.45681  26.033
motivejust                             -0.20000    0.08983 296.00000  -2.226
vigOrdergenValueFirst                  -0.53482    0.17038 388.45681  -3.139
vigOrderjusticeCommitFirst             -0.14667    0.17038 388.45681  -0.861
vigOrderjusticeValueFirst              -0.12612    0.17211 388.45681  -0.733
motivejust:vigOrdergenValueFirst        0.03553    0.12662 296.00000   0.281
motivejust:vigOrderjusticeCommitFirst  -0.02368    0.12662 296.00000  -0.187
motivejust:vigOrderjusticeValueFirst   -0.15616    0.12790 296.00000  -1.221
                                      Pr(>|t|)    
(Intercept)                            < 2e-16 ***
motivejust                             0.02673 *  
vigOrdergenValueFirst                  0.00182 ** 
vigOrderjusticeCommitFirst             0.38986    
vigOrderjusticeValueFirst              0.46413    
motivejust:vigOrdergenValueFirst       0.77923    
motivejust:vigOrderjusticeCommitFirst  0.85175    
motivejust:vigOrderjusticeValueFirst   0.22307    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
                 (Intr) mtvjst vgOrdrgVF vgOrCF vgOrdrjVF mtvjst:vgOrdrgVF
motivejust       -0.372                                                   
vgOrdrgnVlF      -0.709  0.264                                            
vgOrdrjstCF      -0.709  0.264  0.503                                     
vgOrdrjstVF      -0.702  0.261  0.498     0.498                           
mtvjst:vgOrdrgVF  0.264 -0.709 -0.372    -0.187 -0.185                    
mtvjst:vOCF       0.264 -0.709 -0.187    -0.372 -0.185     0.503          
mtvjst:vgOrdrjVF  0.261 -0.702 -0.185    -0.185 -0.372     0.498          
                 mt:OCF
motivejust             
vgOrdrgnVlF            
vgOrdrjstCF            
vgOrdrjstVF            
mtvjst:vgOrdrgVF       
mtvjst:vOCF            
mtvjst:vgOrdrjVF  0.498

Factor 5: Signaling

Code
lizy_cooker("motive", "reputationSignal", "vigOrder", "Reputation Signaling", c("Generosity", "Justice")," ", 300, 2, 2)

Code
mod_rep_vigOrder <- lmer(reputationSignal ~ motive*vigOrder + (1 | PID), data = gjg_long)
summary(mod_rep_vigOrder)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: reputationSignal ~ motive * vigOrder + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1942.1

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.2355 -0.5032 -0.1269  0.5050  2.3341 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 1.0854   1.0418  
 Residual             0.7409   0.8608  
Number of obs: 600, groups:  PID, 300

Fixed effects:
                                       Estimate Std. Error        df t value
(Intercept)                             2.80000    0.15605 437.47780  17.943
motivejust                              0.06667    0.14056 296.00000   0.474
vigOrdergenValueFirst                   0.10789    0.21996 437.47780   0.491
vigOrderjusticeCommitFirst             -0.11579    0.21996 437.47780  -0.526
vigOrderjusticeValueFirst               0.18630    0.22219 437.47780   0.838
motivejust:vigOrdergenValueFirst       -0.34298    0.19813 296.00000  -1.731
motivejust:vigOrderjusticeCommitFirst  -0.11930    0.19813 296.00000  -0.602
motivejust:vigOrderjusticeValueFirst   -0.35434    0.20014 296.00000  -1.770
                                      Pr(>|t|)    
(Intercept)                             <2e-16 ***
motivejust                              0.6356    
vigOrdergenValueFirst                   0.6240    
vigOrderjusticeCommitFirst              0.5989    
vigOrderjusticeValueFirst               0.4022    
motivejust:vigOrdergenValueFirst        0.0845 .  
motivejust:vigOrderjusticeCommitFirst   0.5476    
motivejust:vigOrderjusticeValueFirst    0.0777 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
                 (Intr) mtvjst vgOrdrgVF vgOrCF vgOrdrjVF mtvjst:vgOrdrgVF
motivejust       -0.450                                                   
vgOrdrgnVlF      -0.709  0.320                                            
vgOrdrjstCF      -0.709  0.320  0.503                                     
vgOrdrjstVF      -0.702  0.316  0.498     0.498                           
mtvjst:vgOrdrgVF  0.320 -0.709 -0.450    -0.227 -0.224                    
mtvjst:vOCF       0.320 -0.709 -0.227    -0.450 -0.224     0.503          
mtvjst:vgOrdrjVF  0.316 -0.702 -0.224    -0.224 -0.450     0.498          
                 mt:OCF
motivejust             
vgOrdrgnVlF            
vgOrdrjstCF            
vgOrdrjstVF            
mtvjst:vgOrdrgVF       
mtvjst:vOCF            
mtvjst:vgOrdrjVF  0.498
Code
lizy_cooker("motive", "normSignal", "vigOrder", "Norm Signaling", c("Generosity", "Justice")," ", 300, 2, 2)

Code
mod_norm_vigOrder <- lmer(normSignal ~ motive*vigOrder + (1 | PID), data = gjg_long)
summary(mod_norm_vigOrder)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: normSignal ~ motive * vigOrder + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1897.7

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.55379 -0.51409  0.06033  0.51881  2.21345 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.8775   0.9368  
 Residual             0.7431   0.8620  
Number of obs: 600, groups:  PID, 300

Fixed effects:
                                       Estimate Std. Error        df t value
(Intercept)                             3.29333    0.14700 457.78603  22.404
motivejust                              0.42667    0.14077 296.00000   3.031
vigOrdergenValueFirst                   0.10140    0.20720 457.78604   0.489
vigOrderjusticeCommitFirst              0.03561    0.20720 457.78604   0.172
vigOrderjusticeValueFirst               0.14502    0.20931 457.78604   0.693
motivejust:vigOrdergenValueFirst       -0.22930    0.19843 296.00000  -1.156
motivejust:vigOrderjusticeCommitFirst  -0.11088    0.19843 296.00000  -0.559
motivejust:vigOrderjusticeValueFirst   -0.31708    0.20044 296.00000  -1.582
                                      Pr(>|t|)    
(Intercept)                            < 2e-16 ***
motivejust                             0.00265 ** 
vigOrdergenValueFirst                  0.62480    
vigOrderjusticeCommitFirst             0.86361    
vigOrderjusticeValueFirst              0.48874    
motivejust:vigOrdergenValueFirst       0.24878    
motivejust:vigOrderjusticeCommitFirst  0.57673    
motivejust:vigOrderjusticeValueFirst   0.11474    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
                 (Intr) mtvjst vgOrdrgVF vgOrCF vgOrdrjVF mtvjst:vgOrdrgVF
motivejust       -0.479                                                   
vgOrdrgnVlF      -0.709  0.340                                            
vgOrdrjstCF      -0.709  0.340  0.503                                     
vgOrdrjstVF      -0.702  0.336  0.498     0.498                           
mtvjst:vgOrdrgVF  0.340 -0.709 -0.479    -0.241 -0.239                    
mtvjst:vOCF       0.340 -0.709 -0.241    -0.479 -0.239     0.503          
mtvjst:vgOrdrjVF  0.336 -0.702 -0.239    -0.239 -0.479     0.498          
                 mt:OCF
motivejust             
vgOrdrgnVlF            
vgOrdrjstCF            
vgOrdrjstVF            
mtvjst:vgOrdrgVF       
mtvjst:vOCF            
mtvjst:vgOrdrjVF  0.498

Factor 6: Emotion

Code
lizy_cooker("motive", "emotion", "Emotion", "Reputation Signaling", c("Generosity", "Justice")," ", 300, 2, 2)

Code
mod_emotion_vigOrder <- lmer(emotion ~ motive*vigOrder + (1 | PID), data = gjg_long)
summary(mod_emotion_vigOrder)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: emotion ~ motive * vigOrder + (1 | PID)
   Data: gjg_long

REML criterion at convergence: 1715.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.94378 -0.52161  0.09132  0.68010  1.95486 

Random effects:
 Groups   Name        Variance Std.Dev.
 PID      (Intercept) 0.3321   0.5763  
 Residual             0.7227   0.8501  
Number of obs: 600, groups:  PID, 300

Fixed effects:
                                        Estimate Std. Error         df t value
(Intercept)                            3.813e+00  1.186e-01  5.386e+02  32.155
motivejust                            -2.380e-17  1.388e-01  2.960e+02   0.000
vigOrdergenValueFirst                 -1.160e-01  1.672e-01  5.386e+02  -0.694
vigOrderjusticeCommitFirst             1.209e-01  1.672e-01  5.386e+02   0.723
vigOrderjusticeValueFirst              7.708e-02  1.689e-01  5.386e+02   0.456
motivejust:vigOrdergenValueFirst       1.053e-01  1.957e-01  2.960e+02   0.538
motivejust:vigOrderjusticeCommitFirst -6.579e-02  1.957e-01  2.960e+02  -0.336
motivejust:vigOrderjusticeValueFirst   3.001e-17  1.977e-01  2.960e+02   0.000
                                      Pr(>|t|)    
(Intercept)                             <2e-16 ***
motivejust                               1.000    
vigOrdergenValueFirst                    0.488    
vigOrderjusticeCommitFirst               0.470    
vigOrderjusticeValueFirst                0.648    
motivejust:vigOrdergenValueFirst         0.591    
motivejust:vigOrderjusticeCommitFirst    0.737    
motivejust:vigOrderjusticeValueFirst     1.000    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
                 (Intr) mtvjst vgOrdrgVF vgOrCF vgOrdrjVF mtvjst:vgOrdrgVF
motivejust       -0.585                                                   
vgOrdrgnVlF      -0.709  0.415                                            
vgOrdrjstCF      -0.709  0.415  0.503                                     
vgOrdrjstVF      -0.702  0.411  0.498     0.498                           
mtvjst:vgOrdrgVF  0.415 -0.709 -0.585    -0.295 -0.292                    
mtvjst:vOCF       0.415 -0.709 -0.295    -0.585 -0.292     0.503          
mtvjst:vgOrdrjVF  0.411 -0.702 -0.292    -0.292 -0.585     0.498          
                 mt:OCF
motivejust             
vgOrdrgnVlF            
vgOrdrjstCF            
vgOrdrjstVF            
mtvjst:vgOrdrgVF       
mtvjst:vOCF            
mtvjst:vgOrdrjVF  0.498