Author

Marcus

Setup

Libraries and functions

Code
knitr::opts_chunk$set(warning = FALSE, message = FALSE, fig.width=10, fig.height=8) 

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",
    "corrplot", "effects", "patchwork"
    )

# 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
# read in data files
gjg <-read.csv("/Users/mtrenfield17/Desktop/Research/Boston College Research/Joint Research/Institutional Signaling/Study 3/IVS Action.csv")

Functions

Code
plot_cooker <- function(data, iv, dv, title) {
  part1 <- ggplot(data, aes(x = {{iv}}, y = {{dv}}, fill = {{iv}})) +
    geom_violin(alpha = 0.3, scale = "count") + 
  stat_summary(fun = "mean", geom = "point", size = 3, color = "black") +
    stat_summary(fun.data = mean_cl_normal, geom = "errorbar", width = 0.2,
                 #change to make a data set from allEffects with mean, low CI, high CI
                 size = 1.5, color = "black") +
    theme_classic() +
    xlab("") +
    ylab("") +
    ggtitle(title)
  ggpar(part1, legend = "none")
}

wrapped_plot_cooker <- function(data, iv, dv, title, facet_var) {
  part1 <- ggplot(data, aes(x = {{iv}}, y = {{dv}}, fill = {{iv}})) +
    geom_violin(alpha = 0.3, scale = "count") + 
  stat_summary(fun = "mean", geom = "point", size = 3, color = "black") +
    stat_summary(fun.data = mean_cl_normal, geom = "errorbar", width = 0.2, 
                 size = 1.5, color = "black") +
    theme_classic() +
    xlab("") +
    ylab("") +
    ggtitle(title) +
    facet_wrap(vars({{facet_var}}))
  ggpar(part1, legend = "none")
}

by_line <- function(data, iv, dv, x_label, y_label, color_label, plot_title) {
  ggplot(data, aes(x = {{iv}}, y = {{dv}}, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = x_label, y = y_label, color = color_label, title = plot_title)
}

Reshaping data

Code
# making conservative, liberal, and moderate group 
gjg <- gjg %>%
  mutate(political_group = ifelse(pol < 4, "Conservative",
                                  ifelse(pol > 4, "Liberal", "Moderate")))

# filtering people who failed the attn check
filtered_gjg <- gjg %>% filter(attentionCheck == 3 | attentionCheck == 7)

# make dataset long
gjg_long <- filtered_gjg %>% gather(stim, resp, "B_C_Chic_staticNorm_18":"C_C_Star_riskInact") 

gjg_long<-gjg_long %>%
  separate(stim, into= c("social_issue", "action", "company", "DV"), sep="_")

# shift dataset back to wide format
gjg_long <- spread(gjg_long, DV, resp)
names(gjg_long) # check if i got the right columns
 [1] "StartDate"             "EndDate"               "Status"               
 [4] "IPAddress"             "Progress"              "Duration..in.seconds."
 [7] "Finished"              "RecordedDate"          "ResponseId"           
[10] "RecipientLastName"     "RecipientFirstName"    "RecipientEmail"       
[13] "ExternalReference"     "LocationLatitude"      "LocationLongitude"    
[16] "DistributionChannel"   "UserLanguage"          "participantID"        
[19] "prolificID"            "bot_image_ID"          "consent"              
[22] "B_S_Chic_Prior"        "B_S_Pop_Prior"         "B_S_Fox_Prior"        
[25] "B_S_NBC_Prior"         "L_S_Fox_Prior"         "L_S_Dis_Prior"        
[28] "L_S_CAR_Prior"         "L_S_NBA_Prior"         "T_S_NFL_Prior"        
[31] "T_S_WNBA_Prior"        "T_S_Bud_Prior"         "T_S_Star_Prior"       
[34] "C_S_Bud_Prior"         "C_S_Star_Prior"        "C_S_Wal_Prior"        
[37] "C_S_Tar_Prior"         "attentionCheck"        "inc"                  
[40] "inc_TEXT"              "edu"                   "edu_TEXT"             
[43] "age"                   "age_TEXT"              "gen"                  
[46] "gen_TEXT"              "gen_3_TEXT"            "pol"                  
[49] "pol_TEXT"              "pid"                   "pid_TEXT"             
[52] "area"                  "area_TEXT"             "race"                 
[55] "race_TEXT"             "post_Real_Check"       "openFeedback"         
[58] "confusion"             "attn_self"             "PROLIFIC_PID"         
[61] "STUDY_ID"              "SESSION_ID"            "cluster"              
[64] "political_group"       "social_issue"          "action"               
[67] "company"               "dyNorm"                "noisyMin"             
[70] "OComp"                 "OLike"                 "OMotivate"            
[73] "OTrust"                "peerPress"             "Profit"               
[76] "pubPress"              "Rep"                   "riskInact"            
[79] "SComp"                 "SGen"                  "SImport"              
[82] "SLike"                 "SRelImport"            "staticNorm"           
[85] "STrust"                "surprise"             
Code
# make numeric vars numeric
gjg_long <- gjg_long %>% mutate_at(c("dyNorm", "noisyMin", "OComp", "OLike", "OMotivate", "OTrust", "peerPress", "Profit", "pubPress", "Rep", "riskInact", "SComp", "SGen", "SImport", "SLike", "SRelImport", "staticNorm", "STrust", "surprise","post_Real_Check", "age", "pid", "area", "pol", "edu", "gen", "inc"), as.numeric)

# make a column for company's perceived political leaning 
gjg_long <- gjg_long %>%
  mutate(companyLeaning = case_when(
    company == "Bud" ~ "R",
    company == "CAR" ~ "R",
    company == "Chic" ~ "R",
    company == "Dis" ~ "L",
    company == "Pop" ~ "L",
    company == "Star" ~ "L",
    company == "Tar" ~ "L",
    company == "Wal" ~ "R",
    company == "Fox" ~ "R",
    company == "NBC" ~ "L",
    company == "WNBA" ~ "L",
    company == "NBA" ~ "L",
    company == "NFL" ~ "R",
    TRUE ~ company  # if none of the above conditions are met, keep the original value
  ))

# check that I didnt miss any companies
unique_companyLeaning <- unique(gjg_long$companyLeaning)
print(unique_companyLeaning)
[1] "R" "L"
Code
# creating a condition (pol lean + consistency) column
gjg_long$condition <- paste0(gjg_long$companyLeaning, gjg_long$action)

gjg_long <- gjg_long %>%
  mutate(condition = case_when(
    condition == "LC" ~ "Liberal \n\ Consistent",
    condition == "LI" ~ "Liberal \n\ Inconsistent",
    condition == "RC" ~ "Conservative \n\ Consistent",
    condition == "RI" ~ "Conservative \n\ Inconsistent",
    TRUE ~ condition  # if none of the above conditions are met, keep the original value
  ))

# Renaming variables
gjg_long <- gjg_long %>%
  mutate(companyLeaning = case_when(
    companyLeaning == "R" ~ "Right",
    companyLeaning == "L" ~ "Left",
    TRUE ~ companyLeaning  # if none of the above conditions are met, keep the original value
  ))


gjg_long <- gjg_long %>%
  mutate(company = case_when(
    company == "Bud" ~ "Budweiser",
    company == "CAR" ~ "NASCAR",
    company == "Chic" ~ "Chick-fil-A",
    company == "Dis" ~ "Disney",
    company == "Pop" ~ "Popeyes",
    company == "Star" ~ "Starbucks",
    company == "Tar" ~ "Target",
    company == "Wal" ~ "Walmart",
    TRUE ~ company  # if none of the above conditions are met, keep the original value
  ))

gjg_long$signal <- as.factor(gjg_long$action)
gjg_long <- gjg_long %>%
  mutate(signal = case_when(
    action == "C" ~ "Consistent",
    action == "I" ~ "Inconsistent",
    TRUE ~ signal  # if none of the above conditions are met, keep the original value
  ))

gjg_long$social_issue <- as.factor(gjg_long$social_issue)
gjg_long <- gjg_long %>%
  mutate(social_issue = case_when(
    social_issue == "T" ~ "Transgendered Representation",
    social_issue == "C" ~ "Climate Change",
    social_issue == "L" ~ "LGBTQ Representation",
    social_issue == "B" ~ "BLM",
    TRUE ~ social_issue  # if none of the above conditions are met, keep the original value
  ))

## filter out rows for condition-vignette pairs people DON'T see
gjg_long <- gjg_long %>% filter(is.na(dyNorm) == FALSE)

Attention Check

Code
gjg %>%
  group_by(consent) %>%
  dplyr::summarise(n = n()) %>%
  mutate(freq = n / sum(n))

gjg %>%
  group_by(attentionCheck) %>%
  dplyr::summarise(n = n()) %>%
  mutate(freq = n / sum(n))

22 people did not accept the consent 2/801 people failed the attention check.

Demographics

Code
# Subset your data frame to include only the demographic columns
demo_gjg <- gjg[, c("gen_TEXT", "race_TEXT", "inc_TEXT", "edu_TEXT", "pol_TEXT", "pid_TEXT", "area_TEXT", "political_group")]

# Age
mean(gjg$age, na.rm=TRUE)
[1] 42.80025
Code
sd(gjg$age, na.rm=TRUE)
[1] 14.16845
Code
# 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]])
  }
}

Table of frequencies for gen_TEXT :
            Var1 Freq Percent
1                  22    2.67
2 I identify as:   13    1.58
3            Man  396   48.12
4          Woman  392   47.63

Table of frequencies for race_TEXT :
                                                                                                                                                                                Var1
1                                                                                                                                                                                   
2                                                                                                                                                 American Indian and Native Alaskan
3                                                                                                                                           American Indian and Native Alaskan,Black
4  American Indian and Native Alaskan,Black,East Asian,South Asian,Southeast Asian,Pacific Islander or Native Hawaiian,Hispanic or Latino/a/x,Middle Eastern and North African,White
5                                                                                                                    American Indian and Native Alaskan,Black,Hispanic or Latino/a/x
6                                                                                                                                     American Indian and Native Alaskan,Black,White
7                                                                                                                          American Indian and Native Alaskan,Hispanic or Latino/a/x
8                                                                                                                                           American Indian and Native Alaskan,White
9                                                                                                                                                                              Black
10                                                                                                                                     Black,East Asian,Hispanic or Latino/a/x,White
11                                                                                                                                                Black,Hispanic or Latino/a/x,White
12                                                                                                                                                                       Black,White
13                                                                                                                                                                        East Asian
14                                                                                                                                       East Asian,Middle Eastern and North African
15                                                                                                                                                        East Asian,Southeast Asian
16                                                                                                                                                                  East Asian,White
17                                                                                                                                                            Hispanic or Latino/a/x
18                                                                                                                                                      Hispanic or Latino/a/x,White
19                                                                                                                                                  Middle Eastern and North African
20                                                                                                                                            Middle Eastern and North African,White
21                                                                                                                                                                       South Asian
22                                                                                                                             South Asian,Pacific Islander or Native Hawaiian,White
23                                                                                                                                                                   Southeast Asian
24                                                                                                                         Southeast Asian,Pacific Islander or Native Hawaiian,White
25                                                                                                                                                             Southeast Asian,White
26                                                                                                                                                                             White
   Freq Percent
1    22    2.67
2     1    0.12
3     2    0.24
4     1    0.12
5     1    0.12
6     3    0.36
7     1    0.12
8     8    0.97
9    64    7.78
10    1    0.12
11    3    0.36
12    8    0.97
13   22    2.67
14    2    0.24
15    1    0.12
16    7    0.85
17   27    3.28
18   20    2.43
19    3    0.36
20    3    0.36
21    9    1.09
22    1    0.12
23   12    1.46
24    1    0.12
25    4    0.49
26  596   72.42

Table of frequencies for inc_TEXT :
                 Var1 Freq Percent
1                       22    2.67
2 $100,000 - $149,999  107   13.00
3 $150,000 - $199,999   46    5.59
4   $25,000 - $49,999  205   24.91
5   $50,000 - $74,999  165   20.05
6   $75,000 - $99,999  131   15.92
7   less than $25,000  128   15.55
8  more than $200,000   19    2.31

Table of frequencies for edu_TEXT :
                                                  Var1 Freq Percent
1                                                        22    2.67
2                                    Bachelor's degree  279   33.90
3                  Graduate degree (Masters, PhD, etc)  111   13.49
4                           High school diploma or GED  136   16.52
5 Some college, Technical degree, or Associates degree  271   32.93
6 Some schooling, but no high school diploma or degree    4    0.49

Table of frequencies for pol_TEXT :
                   Var1 Freq Percent
1                         22    2.67
2          Conservative  142   17.25
3               Liberal  110   13.37
4              Moderate  187   22.72
5 Somewhat Conservative   92   11.18
6      Somewhat Liberal   94   11.42
7     Very Conservative   65    7.90
8          Very Liberal  111   13.49

Table of frequencies for pid_TEXT :
                 Var1 Freq Percent
1                       22    2.67
2            Democrat  298   36.21
3 Independent / Other  255   30.98
4          Republican  248   30.13

Table of frequencies for area_TEXT :
      Var1 Freq Percent
1            22    2.67
2    Rural  157   19.08
3 Suburban  439   53.34
4    Urban  205   24.91

Table of frequencies for political_group :
          Var1 Freq Percent
1 Conservative  299   37.33
2      Liberal  315   39.33
3     Moderate  187   23.35

Creating Factors

Code
# Creating Composites
gjg_long$selfCompany <- rowMeans((gjg_long[, c("SGen", "SLike", "STrust", "SComp")])) 

gjg_long$otherCompany <- rowMeans((gjg_long[, c("OLike", "OTrust", "OComp")])) 

gjg_long$externalMotive <- rowMeans((gjg_long[, c("Profit", "Rep", "peerPress", "pubPress", "riskInact", "noisyMin")])) 

gjg_long$socialIssue <- rowMeans(scale(gjg_long[, c("SImport", "SRelImport")])) 

Participant Perception of Company

Plot

  • 7 point agreement scale
Code
selfCompanyP <- ggplot(gjg_long, aes(x = companyLeaning, y = selfCompany, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 2, position = position_dodge(width = 0.25)) +
  geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 0.5) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
    scale_y_continuous(breaks = 1:7, limits = c(1, 7)) +  # Set y-axis to be from 1 to 7
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Consistency of \n\ Message and Action") +
  labs(x = "Company's Political Leaning", y = "Perception of the Company", title = "Participants' Afinity for the Company (N = 769)") +
  theme(
    plot.title = element_text(hjust = 0.5, size = 18),
    axis.text.x = element_text(face = "plain", size = 17, color = "black"),
    axis.text.y = element_text(face = "plain", size = 15, color = "black"),
    axis.title.y = element_text(face = "plain", size = 17, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 15, color = "black"),
    legend.title = element_text(size = 14),  # Increase legend title size
    legend.text = element_text(size = 12)  
  )  +
  geom_signif(
    annotation = "***", 
    y_position = 5.4, 
    xmin = 1, xmax = 2,
    color = "black") +
    geom_signif(
    annotation = "***", 
    y_position = 4.9, 
    xmin = 0.95, xmax = 1.1,
    color = "black") +
    geom_signif(
    annotation = "***", 
    y_position = 4.4, 
    xmin = 1.95, xmax = 2.1,
    color = "black")

# Print the plot
print(selfCompanyP)

Plot by Pol Group

Code
gjg_long$political_group <- factor(gjg_long$political_group, levels = c("Liberal", "Moderate", "Conservative"))

selfCompanyP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = selfCompany, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 2, position = position_dodge(width = 0.25)) +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 0.5) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
    scale_y_continuous(breaks = 1:7, limits = c(1, 7)) +  # Set y-axis to be from 1 to 7
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Consistency of \n\ Message and Action") +
  labs(x = "Company's Political Leaning", y = "Perception of the Company", title = "Participants' Afinity for the Company (N = 799)") +
  theme(
    plot.title = element_text(hjust = 0.5, size = 18),
    axis.text.x = element_text(face = "plain", size = 17, color = "black"),
    axis.text.y = element_text(face = "plain", size = 15, color = "black"),
    axis.title.y = element_text(face = "plain", size = 17, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 15, color = "black"),
    legend.title = element_text(size = 14),  # Increase legend title size
    legend.text = element_text(size = 12)  
  )  +
  facet_wrap("political_group")

# Print the plot
print(selfCompanyP_polGroup)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = selfCompany, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Perception of the Company", color = "Company Political Leaning \n\ & Action Consistency", title = "Participants' Afinity for the Company") + coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7))   

Stats

  • politics matters

  • company’s perceived political leaning matters to libs and mods

  • action consistency matters for liberals

Code
mod_selfCompany_polGroup <- lmer(selfCompany ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_selfCompany_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: selfCompany ~ companyLeaning * action * political_group + (1 |  
    participantID) + (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 11103.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-3.07490 -0.59500  0.01962  0.61869  3.13078 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.91990  0.9591  
 social_issue  (Intercept) 0.03731  0.1931  
 Residual                  1.34447  1.1595  
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                                5.01546    0.12860
companyLeaningRight                                       -1.13200    0.09255
actionI                                                   -0.81732    0.09278
political_groupModerate                                   -0.52437    0.13902
political_groupConservative                               -0.99891    0.12174
companyLeaningRight:actionI                               -0.05506    0.13103
companyLeaningRight:political_groupModerate                0.62961    0.15152
companyLeaningRight:political_groupConservative            1.03601    0.13276
actionI:political_groupModerate                            0.34840    0.15153
actionI:political_groupConservative                        0.59551    0.13267
companyLeaningRight:actionI:political_groupModerate       -0.04622    0.21427
companyLeaningRight:actionI:political_groupConservative    0.10116    0.18773
                                                                df t value
(Intercept)                                                8.57649  39.000
companyLeaningRight                                     2384.97155 -12.231
actionI                                                 2386.36367  -8.809
political_groupModerate                                 2129.96595  -3.772
political_groupConservative                             2130.86366  -8.205
companyLeaningRight:actionI                             2385.61215  -0.420
companyLeaningRight:political_groupModerate             2385.06679   4.155
companyLeaningRight:political_groupConservative         2385.47709   7.803
actionI:political_groupModerate                         2385.08274   2.299
actionI:political_groupConservative                     2385.10241   4.488
companyLeaningRight:actionI:political_groupModerate     2385.03307  -0.216
companyLeaningRight:actionI:political_groupConservative 2385.37436   0.539
                                                        Pr(>|t|)    
(Intercept)                                             5.88e-11 ***
companyLeaningRight                                      < 2e-16 ***
actionI                                                  < 2e-16 ***
political_groupModerate                                 0.000166 ***
political_groupConservative                             3.93e-16 ***
companyLeaningRight:actionI                             0.674398    
companyLeaningRight:political_groupModerate             3.36e-05 ***
companyLeaningRight:political_groupConservative         8.94e-15 ***
actionI:political_groupModerate                         0.021581 *  
actionI:political_groupConservative                     7.51e-06 ***
companyLeaningRight:actionI:political_groupModerate     0.829230    
companyLeaningRight:actionI:political_groupConservative 0.590054    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.360                                                        
actionI     -0.358  0.498                                                 
pltcl_grpMd -0.403  0.333  0.332                                          
pltcl_grpCn -0.461  0.380  0.378  0.426                                   
cmpnyLnnR:I  0.254 -0.706 -0.708 -0.235 -0.268                            
cmpnyLnR:_M  0.220 -0.610 -0.306 -0.545 -0.232  0.432                     
cmpnyLnR:_C  0.251 -0.698 -0.345 -0.231 -0.545  0.491  0.425              
actnI:plt_M  0.220 -0.305 -0.608 -0.545 -0.232  0.430  0.500  0.213       
actnI:plt_C  0.251 -0.349 -0.695 -0.232 -0.545  0.493  0.212  0.500  0.425
cmpnLR:I:_M -0.155  0.432  0.431  0.385  0.164 -0.610 -0.707 -0.301 -0.707
cmpnLR:I:_C -0.177  0.493  0.491  0.164  0.386 -0.696 -0.300 -0.707 -0.300
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.301         
cmpnLR:I:_C -0.707  0.425  
Code
mod_selfCompany_pol <- lmer(selfCompany ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_selfCompany_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: selfCompany ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 11095.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.0392 -0.5960  0.0200  0.6105  3.3060 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.92125  0.9598  
 social_issue  (Intercept) 0.03823  0.1955  
 Residual                  1.33697  1.1563  
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                        3.56068    0.16156   20.33013  22.039
companyLeaningRight                0.36114    0.14012 2388.68188   2.577
actionI                            0.08051    0.14030 2389.49510   0.574
pol                                0.23423    0.02859 2128.96600   8.192
companyLeaningRight:actionI        0.15179    0.19843 2389.41559   0.765
companyLeaningRight:pol           -0.23421    0.03115 2388.84379  -7.518
actionI:pol                       -0.14476    0.03112 2388.25770  -4.652
companyLeaningRight:actionI:pol   -0.04421    0.04405 2388.68983  -1.004
                                Pr(>|t|)    
(Intercept)                     1.15e-15 ***
companyLeaningRight                0.010 *  
actionI                            0.566    
pol                             4.38e-16 ***
companyLeaningRight:actionI        0.444    
companyLeaningRight:pol         7.85e-14 ***
actionI:pol                     3.47e-06 ***
companyLeaningRight:actionI:pol    0.316    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.434                                          
actionI     -0.433  0.501                                   
pol         -0.725  0.496  0.496                            
cmpnyLnnR:I  0.307 -0.707 -0.709 -0.351                     
cmpnyLnngR:  0.395 -0.911 -0.457 -0.545  0.645              
actionI:pol  0.394 -0.456 -0.909 -0.544  0.644  0.500       
cmpnyLnR:I: -0.279  0.644  0.644  0.385 -0.910 -0.707 -0.708

Others’ Perception of Company

Plot

  • 7 point agreement scale
Code
otherCompanyP <- ggplot(gjg_long, aes(x = companyLeaning, y = otherCompany, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 2, position = position_dodge(width = 0.25)) +
     geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 0.5) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
    scale_y_continuous(breaks = 1:7, limits = c(1, 7)) +  # Set y-axis to be from 1 to 7
    scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Consistency of \n\ Message and Action") +
  labs(x = "Company's Political Leaning", y = "Perception of the Company", title = "Participants' Perception of Others' Afinity for the Company (N = 799)") +
  theme(
    plot.title = element_text(hjust = 0.5, size = 18),
    axis.text.x = element_text(face = "plain", size = 17, color = "black"),
    axis.text.y = element_text(face = "plain", size = 15, color = "black"),
    axis.title.y = element_text(face = "plain", size = 17, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 15, color = "black"),
    legend.title = element_text(size = 14),  # Increase legend title size
    legend.text = element_text(size = 12)  
  )  +
  geom_signif(
    annotation = "***", 
    y_position = 6.2, 
    xmin = 1, xmax = 2,
    color = "black") +
    geom_signif(
    annotation = "***", 
    y_position = 5.7, 
    xmin = 0.95, xmax = 1.1,
    color = "black") +
    geom_signif(
    annotation = "***", 
    y_position = 5.3, 
    xmin = 1.95, xmax = 2.1,
    color = "black")

print(otherCompanyP)

Plot by Pol Group

  • Pluralistic ignorance – people think others like companies more than they do
Code
otherCompanyP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = otherCompany, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 2, position = position_dodge(width = 0.25)) +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 0.5) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
    scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Consistency of \n\ Message and Action") +
  labs(x = "Participant's Political Leaning", y = "Perception of the Company", title = "Participants' Perception of Others' Affinity for the Company (N = 799)") +
  theme(
    plot.title = element_text(hjust = 0.5, size = 18),
    axis.text.x = element_text(face = "plain", size = 17, color = "black"),
    axis.text.y = element_text(face = "plain", size = 15, color = "black"),
    axis.title.y = element_text(face = "plain", size = 17, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 15, color = "black"),
    legend.title = element_text(size = 14),  # Increase legend title size
    legend.text = element_text(size = 12)  
  ) +
  facet_wrap("political_group") + coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

# Print the plot
print(otherCompanyP_polGroup)

Code
# Code to combine self + other perception plot
## library(patchwork)
## selfCompanyP + otherCompanyP + plot_layout(guides = 'collect')

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = otherCompany, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Perception of the Company", color = "Company Political Leaning \n\ & Action Consistency", title = "Participants' Perception of Others' Afinity for the Company") + coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

Stats

  • main effect of company leaning and participant political leaning
Code
mod_otherCompany_polGroup <- lmer(otherCompany ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_otherCompany_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: otherCompany ~ companyLeaning * action * political_group + (1 |  
    participantID) + (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 9770.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9583 -0.4217  0.1162  0.5559  3.4393 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.547730 0.74009 
 social_issue  (Intercept) 0.008379 0.09154 
 Residual                  0.905153 0.95140 
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                              5.534e+00  8.199e-02
companyLeaningRight                                     -3.515e-01  7.594e-02
actionI                                                 -1.449e-01  7.611e-02
political_groupModerate                                 -3.099e-01  1.114e-01
political_groupConservative                             -4.469e-01  9.751e-02
companyLeaningRight:actionI                             -6.604e-02  1.075e-01
companyLeaningRight:political_groupModerate              2.448e-02  1.243e-01
companyLeaningRight:political_groupConservative          9.992e-02  1.089e-01
actionI:political_groupModerate                         -3.667e-02  1.243e-01
actionI:political_groupConservative                      2.333e-02  1.089e-01
companyLeaningRight:actionI:political_groupModerate     -8.922e-03  1.758e-01
companyLeaningRight:actionI:political_groupConservative  8.941e-02  1.540e-01
                                                                df t value
(Intercept)                                              2.376e+01  67.491
companyLeaningRight                                      2.384e+03  -4.629
actionI                                                  2.387e+03  -1.903
political_groupModerate                                  2.232e+03  -2.783
political_groupConservative                              2.233e+03  -4.583
companyLeaningRight:actionI                              2.385e+03  -0.614
companyLeaningRight:political_groupModerate              2.384e+03   0.197
companyLeaningRight:political_groupConservative          2.385e+03   0.917
actionI:political_groupModerate                          2.384e+03  -0.295
actionI:political_groupConservative                      2.384e+03   0.214
companyLeaningRight:actionI:political_groupModerate      2.384e+03  -0.051
companyLeaningRight:actionI:political_groupConservative  2.385e+03   0.580
                                                        Pr(>|t|)    
(Intercept)                                              < 2e-16 ***
companyLeaningRight                                     3.88e-06 ***
actionI                                                  0.05710 .  
political_groupModerate                                  0.00543 ** 
political_groupConservative                             4.85e-06 ***
companyLeaningRight:actionI                              0.53908    
companyLeaningRight:political_groupModerate              0.84391    
companyLeaningRight:political_groupConservative          0.35907    
actionI:political_groupModerate                          0.76804    
actionI:political_groupConservative                      0.83030    
companyLeaningRight:actionI:political_groupModerate      0.95953    
companyLeaningRight:actionI:political_groupConservative  0.56164    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.463                                                        
actionI     -0.461  0.498                                                 
pltcl_grpMd -0.507  0.341  0.340                                          
pltcl_grpCn -0.579  0.390  0.387  0.426                                   
cmpnyLnnR:I  0.327 -0.706 -0.708 -0.241 -0.274                            
cmpnyLnR:_M  0.283 -0.610 -0.306 -0.558 -0.237  0.432                     
cmpnyLnR:_C  0.323 -0.698 -0.346 -0.237 -0.559  0.491  0.425              
actnI:plt_M  0.283 -0.305 -0.608 -0.558 -0.238  0.430  0.500  0.213       
actnI:plt_C  0.323 -0.349 -0.696 -0.237 -0.558  0.493  0.212  0.500  0.425
cmpnLR:I:_M -0.200  0.432  0.431  0.395  0.168 -0.610 -0.707 -0.301 -0.707
cmpnLR:I:_C -0.228  0.493  0.491  0.168  0.395 -0.696 -0.300 -0.707 -0.300
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.301         
cmpnLR:I:_C -0.707  0.425  
Code
mod_otherCompany_pol <- lmer(otherCompany ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_otherCompany_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: otherCompany ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 9773.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9706 -0.4321  0.1230  0.5549  3.4688 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.547082 0.73965 
 social_issue  (Intercept) 0.008374 0.09151 
 Residual                  0.905127 0.95138 
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                      4.865e+00  1.128e-01  8.336e+01  43.112
companyLeaningRight             -2.730e-01  1.153e-01  2.389e+03  -2.369
actionI                         -1.165e-01  1.154e-01  2.390e+03  -1.009
pol                              1.049e-01  2.293e-02  2.238e+03   4.574
companyLeaningRight:actionI      6.998e-02  1.632e-01  2.390e+03   0.429
companyLeaningRight:pol         -8.657e-03  2.563e-02  2.389e+03  -0.338
actionI:pol                     -6.882e-03  2.560e-02  2.388e+03  -0.269
companyLeaningRight:actionI:pol -2.559e-02  3.624e-02  2.389e+03  -0.706
                                Pr(>|t|)    
(Intercept)                      < 2e-16 ***
companyLeaningRight               0.0179 *  
actionI                           0.3130    
pol                             5.04e-06 ***
companyLeaningRight:actionI       0.6682    
companyLeaningRight:pol           0.7356    
actionI:pol                       0.7881    
companyLeaningRight:actionI:pol   0.4801    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.511                                          
actionI     -0.510  0.501                                   
pol         -0.832  0.509  0.509                            
cmpnyLnnR:I  0.361 -0.707 -0.708 -0.360                     
cmpnyLnngR:  0.465 -0.911 -0.457 -0.559  0.644              
actionI:pol  0.465 -0.456 -0.910 -0.558  0.644  0.500       
cmpnyLnR:I: -0.329  0.644  0.644  0.395 -0.910 -0.707 -0.708

Combining self + other perception plot

Code
# # Code to combine self + other perception plot
# library(patchwork)
# selfCompanyP + otherCompanyP + plot_layout(guides = 'collect')
# 
# # Adjust the titles to make sure they fit
# selfCompanyP_patch <- selfCompanyP + 
#   labs(title = "My Perception of the Company is Positive") + 
#   theme(plot.margin = margin(1, 1, 1, 1, "lines"))  # Increase the top margin
# 
# otherCompanyP_patch <- otherCompanyP + 
#   labs(title = "Others' Perception of the Company is Positive") +
#   theme(plot.margin = margin(1, 1, 1, 1, "lines"),
#         axis.title.y = element_blank(),  # Remove y-axis title
#         axis.ticks.y = element_blank(),  # Remove y-axis ticks
#         axis.text.y = element_blank())   # Remove y-axis text
# 
# # Combine the plots with patchwork, adjusting the layout
# combinedPlot <- selfCompanyP_patch + otherCompanyP_patch + plot_layout(guides = 'collect')
# 
# # Print the combined plot
# print(combinedPlot)

Genuine

Main Plot

  • Composite
  • 7 point agreement scale
Code
genP <- ggplot(gjg_long, aes(x = companyLeaning, y = SGen, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Company Political Leaning", 
    y = "How much does the company genuinely care", 
    title = "Perception of the Authenticity of the Company's Support"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 5.75, 
    xmin = 1, xmax = 2,
    size = 1.5,
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 5.1,  # Adjust y position if needed
    xmin = .9, xmax = 1.05,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 4.5,  # Adjust y position if needed
    xmin = 1.9, xmax = 2.05,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  coord_cartesian(ylim = c(1, 7)) +  # Adjusted y limits to match scale_y_continuous
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2", "-1", "0", "1", "2", "3"))

# Print the plot
print(genP)

Plot by Pol Group

  • Composite
  • 7 point agreement scale
Code
genP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = SGen, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Company Political Leaning", 
    y = "How much does the company genuinely care", 
    title = "Perception of the Authenticity of the Company's Support"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  facet_wrap("political_group") +
  coord_cartesian(ylim = c(1, 7)) +  # Adjusted y limits to match scale_y_continuous
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2", "-1", "0", "1", "2", "3"))

# Print the plot
print(genP_polGroup)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = SGen, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "How much does the company genuinely care", color = "Company Political Leaning \n\ & Action Consistency", title = "Perception of the Authenticity of the Company's Support") +
  labs(
    x = "Company Political Leaning", 
    y = "Motive Selflessness", 
    title = "Motive Authenticity"
  ) +
  coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

Stats

  • main effect of company leaning, action consistency, and participant political leaning

  • action consistency matters most for liberals

Code
mod_gen_polGroup <- lmer(SGen ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_gen_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
SGen ~ companyLeaning * action * political_group + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 11921.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.4921 -0.6301 -0.0268  0.6464  2.8238 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 1.07694  1.0378  
 social_issue  (Intercept) 0.03078  0.1754  
 Residual                  1.77739  1.3332  
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                              5.040e+00  1.296e-01
companyLeaningRight                                     -1.228e+00  1.064e-01
actionI                                                 -1.330e+00  1.067e-01
political_groupModerate                                 -6.360e-01  1.561e-01
political_groupConservative                             -7.954e-01  1.367e-01
companyLeaningRight:actionI                              1.244e-02  1.507e-01
companyLeaningRight:political_groupModerate              6.467e-01  1.742e-01
companyLeaningRight:political_groupConservative          7.204e-01  1.526e-01
actionI:political_groupModerate                          5.619e-01  1.742e-01
actionI:political_groupConservative                      8.045e-01  1.525e-01
companyLeaningRight:actionI:political_groupModerate     -1.587e-01  2.464e-01
companyLeaningRight:actionI:political_groupConservative  6.515e-03  2.158e-01
                                                                df t value
(Intercept)                                              1.234e+01  38.904
companyLeaningRight                                      2.385e+03 -11.537
actionI                                                  2.387e+03 -12.472
political_groupModerate                                  2.231e+03  -4.075
political_groupConservative                              2.232e+03  -5.819
companyLeaningRight:actionI                              2.386e+03   0.083
companyLeaningRight:political_groupModerate              2.385e+03   3.712
companyLeaningRight:political_groupConservative          2.386e+03   4.719
actionI:political_groupModerate                          2.385e+03   3.225
actionI:political_groupConservative                      2.385e+03   5.274
companyLeaningRight:actionI:political_groupModerate      2.385e+03  -0.644
companyLeaningRight:actionI:political_groupConservative  2.386e+03   0.030
                                                        Pr(>|t|)    
(Intercept)                                             2.73e-14 ***
companyLeaningRight                                      < 2e-16 ***
actionI                                                  < 2e-16 ***
political_groupModerate                                 4.76e-05 ***
political_groupConservative                             6.77e-09 ***
companyLeaningRight:actionI                              0.93422    
companyLeaningRight:political_groupModerate              0.00021 ***
companyLeaningRight:political_groupConservative         2.50e-06 ***
actionI:political_groupModerate                          0.00128 ** 
actionI:political_groupConservative                     1.46e-07 ***
companyLeaningRight:actionI:political_groupModerate      0.51959    
companyLeaningRight:actionI:political_groupConservative  0.97592    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.411                                                        
actionI     -0.409  0.498                                                 
pltcl_grpMd -0.449  0.341  0.340                                          
pltcl_grpCn -0.514  0.390  0.387  0.426                                   
cmpnyLnnR:I  0.290 -0.706 -0.708 -0.241 -0.274                            
cmpnyLnR:_M  0.251 -0.610 -0.306 -0.558 -0.237  0.432                     
cmpnyLnR:_C  0.287 -0.698 -0.345 -0.237 -0.558  0.491  0.425              
actnI:plt_M  0.251 -0.305 -0.608 -0.558 -0.238  0.430  0.500  0.213       
actnI:plt_C  0.286 -0.349 -0.695 -0.237 -0.558  0.493  0.212  0.500  0.425
cmpnLR:I:_M -0.177  0.432  0.431  0.395  0.168 -0.610 -0.707 -0.301 -0.707
cmpnLR:I:_C -0.203  0.493  0.491  0.167  0.395 -0.696 -0.300 -0.707 -0.300
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.301         
cmpnLR:I:_C -0.707  0.425  
Code
mod_gen_pol <- lmer(SGen ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_gen_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: SGen ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 11924.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.4258 -0.6212 -0.0327  0.6527  2.9417 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 1.07639  1.0375  
 social_issue  (Intercept) 0.03217  0.1794  
 Residual                  1.77516  1.3324  
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                        3.85230    0.17010   33.56429  22.647
companyLeaningRight               -0.14739    0.16145 2388.95382  -0.913
actionI                           -0.15301    0.16166 2389.98890  -0.946
pol                                0.18126    0.03213 2235.91926   5.641
companyLeaningRight:actionI        0.07983    0.22863 2389.91045   0.349
companyLeaningRight:pol           -0.16118    0.03590 2389.17495  -4.490
actionI:pol                       -0.18173    0.03586 2388.37006  -5.068
companyLeaningRight:actionI:pol   -0.02525    0.05076 2388.99154  -0.497
                                Pr(>|t|)    
(Intercept)                      < 2e-16 ***
companyLeaningRight                0.361    
actionI                            0.344    
pol                             1.90e-08 ***
companyLeaningRight:actionI        0.727    
companyLeaningRight:pol         7.46e-06 ***
actionI:pol                     4.32e-07 ***
companyLeaningRight:actionI:pol    0.619    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.475                                          
actionI     -0.474  0.501                                   
pol         -0.774  0.509  0.508                            
cmpnyLnnR:I  0.336 -0.707 -0.709 -0.360                     
cmpnyLnngR:  0.432 -0.911 -0.457 -0.559  0.645              
actionI:pol  0.432 -0.456 -0.910 -0.558  0.644  0.500       
cmpnyLnR:I: -0.306  0.644  0.644  0.395 -0.910 -0.707 -0.708

Motive Authenticity

Main Plot

  • Composite
  • 7 point agreement scale
Code
gjg_long <- gjg_long %>% mutate(reverseExternalMotive = 7-externalMotive) # reversing external motive scale so selfish is negative

externalP <- ggplot(gjg_long, aes(x = companyLeaning, y = reverseExternalMotive, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Company Political Leaning", 
    y = "Motive Selflessness", 
    title = "Motive Authenticity"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 3.75, 
    xmin = 1, xmax = 2,
    size = 1.5,
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 3.2,  # Adjust y position if needed
    xmin = .9, xmax = 1.05,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 3,  # Adjust y position if needed
    xmin = 1.9, xmax = 2.05,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  coord_cartesian(ylim = c(1, 7)) +  # Adjusted y limits to match scale_y_continuous
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2", "-1", "0", "1", "2", "3"))

# Print the plot
print(externalP)

Plot by Pol Group

  • Composite
  • 7 point agreement scale
Code
externalP <- ggplot(gjg_long, aes(x = companyLeaning, y = reverseExternalMotive, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Company Political Leaning", 
    y = "Motive Selflessness", 
    title = "Motive Authenticity"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) + facet_wrap("political_group") +
  coord_cartesian(ylim = c(1, 7)) +  # Adjusted y limits to match scale_y_continuous
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2", "-1", "0", "1", "2", "3"))

# Print the plot
print(externalP)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = reverseExternalMotive, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Perception of the Company", color = "Company Political Leaning \n\ & Action Consistency", title = "Participants' Perception of Others' Afinity for the Company") +
  labs(
    x = "Company Political Leaning", 
    y = "Motive Selflessness", 
    title = "Motive Authenticity"
  ) +
  coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

Stats

  • main effect of company leaning, action consistency, and participant political leaning

  • interaction between ’s perceived political leaning matters to libs and mods

  • action consistency matters for liberals

Code
mod_motive_polGroup <- lmer(reverseExternalMotive ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_motive_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: reverseExternalMotive ~ companyLeaning * action * political_group +  
    (1 | participantID) + (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 8899.1

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3322 -0.5680 -0.0555  0.4828  4.5632 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.572717 0.75678 
 social_issue  (Intercept) 0.006177 0.07859 
 Residual                  0.640001 0.80000 
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                                2.99276    0.07353
companyLeaningRight                                       -0.30728    0.06386
actionI                                                   -0.61536    0.06400
political_groupModerate                                   -0.36367    0.10173
political_groupConservative                               -0.51513    0.08908
companyLeaningRight:actionI                                0.15393    0.09040
companyLeaningRight:political_groupModerate                0.17334    0.10454
companyLeaningRight:political_groupConservative            0.29486    0.09159
actionI:political_groupModerate                            0.27003    0.10455
actionI:political_groupConservative                        0.33957    0.09153
companyLeaningRight:actionI:political_groupModerate       -0.13134    0.14783
companyLeaningRight:actionI:political_groupConservative   -0.05006    0.12952
                                                                df t value
(Intercept)                                               28.14696  40.701
companyLeaningRight                                     2385.26297  -4.812
actionI                                                 2387.62006  -9.615
political_groupModerate                                 1907.92993  -3.575
political_groupConservative                             1908.70871  -5.782
companyLeaningRight:actionI                             2386.49457   1.703
companyLeaningRight:political_groupModerate             2385.47622   1.658
companyLeaningRight:political_groupConservative         2386.32205   3.219
actionI:political_groupModerate                         2385.53809   2.583
actionI:political_groupConservative                     2385.59343   3.710
companyLeaningRight:actionI:political_groupModerate     2385.42671  -0.888
companyLeaningRight:actionI:political_groupConservative 2386.18155  -0.387
                                                        Pr(>|t|)    
(Intercept)                                              < 2e-16 ***
companyLeaningRight                                     1.59e-06 ***
actionI                                                  < 2e-16 ***
political_groupModerate                                 0.000359 ***
political_groupConservative                             8.58e-09 ***
companyLeaningRight:actionI                             0.088741 .  
companyLeaningRight:political_groupModerate             0.097419 .  
companyLeaningRight:political_groupConservative         0.001302 ** 
actionI:political_groupModerate                         0.009856 ** 
actionI:political_groupConservative                     0.000212 ***
companyLeaningRight:actionI:political_groupModerate     0.374392    
companyLeaningRight:actionI:political_groupConservative 0.699140    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.434                                                        
actionI     -0.433  0.498                                                 
pltcl_grpMd -0.516  0.314  0.313                                          
pltcl_grpCn -0.590  0.359  0.356  0.426                                   
cmpnyLnnR:I  0.306 -0.706 -0.708 -0.221 -0.252                            
cmpnyLnR:_M  0.265 -0.610 -0.306 -0.514 -0.218  0.432                     
cmpnyLnR:_C  0.303 -0.698 -0.346 -0.218 -0.514  0.491  0.425              
actnI:plt_M  0.265 -0.305 -0.608 -0.514 -0.219  0.430  0.500  0.213       
actnI:plt_C  0.303 -0.349 -0.696 -0.219 -0.514  0.493  0.212  0.500  0.425
cmpnLR:I:_M -0.187  0.432  0.431  0.363  0.155 -0.610 -0.707 -0.301 -0.707
cmpnLR:I:_C -0.214  0.493  0.491  0.154  0.363 -0.696 -0.300 -0.707 -0.300
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.301         
cmpnLR:I:_C -0.707  0.425  
Code
mod_motive_pol <- lmer(reverseExternalMotive ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_otherCompany_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: otherCompany ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 9773.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9706 -0.4321  0.1230  0.5549  3.4688 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.547082 0.73965 
 social_issue  (Intercept) 0.008374 0.09151 
 Residual                  0.905127 0.95138 
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                      4.865e+00  1.128e-01  8.336e+01  43.112
companyLeaningRight             -2.730e-01  1.153e-01  2.389e+03  -2.369
actionI                         -1.165e-01  1.154e-01  2.390e+03  -1.009
pol                              1.049e-01  2.293e-02  2.238e+03   4.574
companyLeaningRight:actionI      6.998e-02  1.632e-01  2.390e+03   0.429
companyLeaningRight:pol         -8.657e-03  2.563e-02  2.389e+03  -0.338
actionI:pol                     -6.882e-03  2.560e-02  2.388e+03  -0.269
companyLeaningRight:actionI:pol -2.559e-02  3.624e-02  2.389e+03  -0.706
                                Pr(>|t|)    
(Intercept)                      < 2e-16 ***
companyLeaningRight               0.0179 *  
actionI                           0.3130    
pol                             5.04e-06 ***
companyLeaningRight:actionI       0.6682    
companyLeaningRight:pol           0.7356    
actionI:pol                       0.7881    
companyLeaningRight:actionI:pol   0.4801    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.511                                          
actionI     -0.510  0.501                                   
pol         -0.832  0.509  0.509                            
cmpnyLnnR:I  0.361 -0.707 -0.708 -0.360                     
cmpnyLnngR:  0.465 -0.911 -0.457 -0.559  0.644              
actionI:pol  0.465 -0.456 -0.910 -0.558  0.644  0.500       
cmpnyLnR:I: -0.329  0.644  0.644  0.395 -0.910 -0.707 -0.708

Surprise

Main Plot

Code
surpriseP <- ggplot(gjg_long, aes(x = companyLeaning, y = surprise, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2","-1", "0", "1", "2", "3"), 
  ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Action") +
  labs(
    x = "Condition", 
    y = "Surprise", 
    title = "Surprise at Post"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 3.7,  # Adjust y position if needed
    xmin = .94, xmax = 1.06,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 5.0,  # Adjust y position if needed
    xmin = 1.94, xmax = 2.06,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  coord_cartesian(ylim = c(1, 7))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(surpriseP)

Plot by Pol Group

  • Composite
  • 7 point agreement scale
Code
surpriseP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = surprise, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2","-1", "0", "1", "2", "3"), 
  ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Action") +
  labs(
    x = "Condition", 
    y = "Surprise", 
    title = "Surprise at Post"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) + 
  facet_wrap("political_group") +
  coord_cartesian(ylim = c(1, 7))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(surpriseP_polGroup)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = OMotivate, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Surprise", color = "Company Political Leaning \n\ & Action Consistency", title = "Surprise at Post") + coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

Stats

  • main effect of company leaning and participant political leaning

  • action consistency matters more for conservative companies

  • action consistency matters more for liberals

Code
mod_surprise_polGroup <- lmer(surprise ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_surprise_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
surprise ~ companyLeaning * action * political_group + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 12302.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.61356 -0.69444 -0.05518  0.70561  2.90993 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.8279   0.9099  
 social_issue  (Intercept) 0.1055   0.3249  
 Residual                  2.4927   1.5788  
Number of obs: 3096, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                              2.930e+00  1.923e-01
companyLeaningRight                                      1.815e+00  1.318e-01
actionI                                                  2.252e-01  1.264e-01
political_groupModerate                                  6.406e-03  1.684e-01
political_groupConservative                              3.004e-01  1.474e-01
companyLeaningRight:actionI                             -4.338e-02  1.830e-01
companyLeaningRight:political_groupModerate             -5.466e-01  2.154e-01
companyLeaningRight:political_groupConservative         -7.930e-01  1.879e-01
actionI:political_groupModerate                         -2.138e-01  2.063e-01
actionI:political_groupConservative                     -1.439e-01  1.807e-01
companyLeaningRight:actionI:political_groupModerate      1.263e-01  2.983e-01
companyLeaningRight:actionI:political_groupConservative  8.371e-03  2.607e-01
                                                                df t value
(Intercept)                                              5.480e+00  15.242
companyLeaningRight                                      2.338e+03  13.769
actionI                                                  2.286e+03   1.782
political_groupModerate                                  2.612e+03   0.038
political_groupConservative                              2.613e+03   2.037
companyLeaningRight:actionI                              2.317e+03  -0.237
companyLeaningRight:political_groupModerate              2.333e+03  -2.538
companyLeaningRight:political_groupConservative          2.329e+03  -4.219
actionI:political_groupModerate                          2.285e+03  -1.036
actionI:political_groupConservative                      2.285e+03  -0.797
companyLeaningRight:actionI:political_groupModerate      2.310e+03   0.423
companyLeaningRight:actionI:political_groupConservative  2.307e+03   0.032
                                                        Pr(>|t|)    
(Intercept)                                             1.07e-05 ***
companyLeaningRight                                      < 2e-16 ***
actionI                                                   0.0748 .  
political_groupModerate                                   0.9697    
political_groupConservative                               0.0417 *  
companyLeaningRight:actionI                               0.8126    
companyLeaningRight:political_groupModerate               0.0112 *  
companyLeaningRight:political_groupConservative         2.54e-05 ***
actionI:political_groupModerate                           0.3002    
actionI:political_groupConservative                       0.4257    
companyLeaningRight:actionI:political_groupModerate       0.6720    
companyLeaningRight:actionI:political_groupConservative   0.9744    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.313                                                        
actionI     -0.326  0.480                                                 
pltcl_grpMd -0.327  0.358  0.373                                          
pltcl_grpCn -0.373  0.408  0.425  0.426                                   
cmpnyLnnR:I  0.225 -0.723 -0.693 -0.258 -0.292                            
cmpnyLnR:_M  0.192 -0.611 -0.293 -0.587 -0.249  0.441                     
cmpnyLnR:_C  0.220 -0.698 -0.332 -0.250 -0.590  0.501  0.426              
actnI:plt_M  0.200 -0.292 -0.608 -0.613 -0.261  0.419  0.479  0.204       
actnI:plt_C  0.229 -0.332 -0.695 -0.261 -0.613  0.479  0.203  0.481  0.425
cmpnLR:I:_M -0.138  0.442  0.422  0.424  0.180 -0.609 -0.722 -0.308 -0.692
cmpnLR:I:_C -0.158  0.502  0.481  0.180  0.425 -0.694 -0.307 -0.721 -0.294
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.294         
cmpnLR:I:_C -0.694  0.426  
Code
mod_surprise_pol <- lmer(surprise ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_surprise_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: surprise ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 12315.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.57341 -0.70402 -0.05233  0.69644  2.84240 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.8388   0.9159  
 social_issue  (Intercept) 0.1065   0.3263  
 Residual                  2.4920   1.5786  
Number of obs: 3096, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                      3.329e+00  2.259e-01  1.027e+01  14.738
companyLeaningRight              6.414e-01  1.991e-01  2.334e+03   3.222
actionI                          4.545e-03  1.916e-01  2.289e+03   0.024
pol                             -6.967e-02  3.473e-02  2.609e+03  -2.006
companyLeaningRight:actionI     -1.266e-02  2.769e-01  2.315e+03  -0.046
companyLeaningRight:pol          1.832e-01  4.429e-02  2.333e+03   4.137
actionI:pol                      2.844e-02  4.249e-02  2.288e+03   0.669
companyLeaningRight:actionI:pol  4.931e-04  6.139e-02  2.311e+03   0.008
                                Pr(>|t|)    
(Intercept)                     3.07e-08 ***
companyLeaningRight              0.00129 ** 
actionI                          0.98108    
pol                              0.04496 *  
companyLeaningRight:actionI      0.96354    
companyLeaningRight:pol         3.64e-05 ***
actionI:pol                      0.50337    
companyLeaningRight:actionI:pol  0.99359    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.408                                          
actionI     -0.423  0.485                                   
pol         -0.630  0.537  0.557                            
cmpnyLnnR:I  0.294 -0.722 -0.696 -0.387                     
cmpnyLnngR:  0.370 -0.910 -0.438 -0.588  0.655              
actionI:pol  0.385 -0.439 -0.909 -0.612  0.631  0.480       
cmpnyLnR:I: -0.267  0.657  0.631  0.424 -0.909 -0.721 -0.693

Motivates Others to Act

Main Plot

Code
motivateP <- ggplot(gjg_long, aes(x = companyLeaning, y = OMotivate, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2","-1", "0", "1", "2", "3"), 
  ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Action") +
  labs(
    x = "Condition", 
    y = "This post motivates support from others (Agreement)", 
    title = "Surprise at Post"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 6, 
    xmin = 1, xmax = 2,
    size = 1.5,
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 5.4,  # Adjust y position if needed
    xmin = .9, xmax = 1.05,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  geom_signif(
    annotation = "***", 
    y_position = 5.2,  # Adjust y position if needed
    xmin = 1.9, xmax = 2.05,
    size = 1.5,  # Increased size for significance annotation line
    color = "black",
    textsize = 10  # Increased text size for asterisks
  ) +
  coord_cartesian(ylim = c(1, 7))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(motivateP)

Plot by Pol Group

  • Composite
  • 7 point agreement scale
Code
motivateP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = OMotivate, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2","-1", "0", "1", "2", "3"), 
  ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Condition", 
    y = "Belief that the post motivates support from others", 
    title = ""
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) + 
  facet_wrap("political_group") +
  coord_cartesian(ylim = c(1, 7))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(motivateP_polGroup)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = OMotivate, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Belief that the post motivates support from others", color = "Company Political Leaning \n\ & Action Consistency", title = "Belief that the post motivates support from others") + coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

Static Norm

Main Plot

Code
staticP <- ggplot(gjg_long, aes(x = companyLeaning, y = staticNorm, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(25, 50, 75, 100)
    ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Condition", 
    y = "Percent of Americans that support the cause", 
    title = "Participant Perception of Social Cause Support"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  coord_cartesian(ylim = c(1, 100))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(staticP)

Plot by Pol Group

  • Composite
  • 7 point agreement scale
Code
staticP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = staticNorm, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(25, 50, 75, 100)
    ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Condition", 
    y = "Percent of Americans that support the cause", 
    title = "Participant Perception of Social Cause Support"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  facet_wrap("political_group") +
  coord_cartesian(ylim = c(1, 100))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(staticP_polGroup)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = staticNorm, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Belief that the post motivates support from others", color = "Company Political Leaning \n\ & Action Consistency", title = "Belief that the post motivates support from others") + coord_cartesian(ylim = c(1, 100)) + scale_y_continuous(breaks = c(25, 50, 75, 100)) 

Stats

  • main effect of political orientation
Code
mod_staticNorm_polGroup <- lmer(staticNorm ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_staticNorm_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: staticNorm ~ companyLeaning * action * political_group + (1 |  
    participantID) + (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 27193.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.8769 -0.5538  0.0049  0.5549  3.4698 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 148.8    12.20   
 social_issue  (Intercept) 107.0    10.35   
 Residual                  208.2    14.43   
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                               60.94127    5.28199
companyLeaningRight                                        0.61822    1.15178
actionI                                                    0.18629    1.15473
political_groupModerate                                   -3.65023    1.74566
political_groupConservative                              -10.82013    1.52865
companyLeaningRight:actionI                               -1.39775    1.63074
companyLeaningRight:political_groupModerate               -3.01999    1.88558
companyLeaningRight:political_groupConservative           -0.14159    1.65226
actionI:political_groupModerate                            0.94296    1.88577
actionI:political_groupConservative                        0.82747    1.65110
companyLeaningRight:actionI:political_groupModerate       -0.08351    2.66655
companyLeaningRight:actionI:political_groupConservative    0.40384    2.33636
                                                                df t value
(Intercept)                                                3.24466  11.538
companyLeaningRight                                     2384.40012   0.537
actionI                                                 2384.84308   0.161
political_groupModerate                                 2092.81705  -2.091
political_groupConservative                             2093.71953  -7.078
companyLeaningRight:actionI                             2384.59345  -0.857
companyLeaningRight:political_groupModerate             2384.41701  -1.602
companyLeaningRight:political_groupConservative         2384.50364  -0.086
actionI:political_groupModerate                         2384.40806   0.500
actionI:political_groupConservative                     2384.40182   0.501
companyLeaningRight:actionI:political_groupModerate     2384.39665  -0.031
companyLeaningRight:actionI:political_groupConservative 2384.43868   0.173
                                                        Pr(>|t|)    
(Intercept)                                             0.000961 ***
companyLeaningRight                                     0.591491    
actionI                                                 0.871847    
political_groupModerate                                 0.036646 *  
political_groupConservative                             1.98e-12 ***
companyLeaningRight:actionI                             0.391462    
companyLeaningRight:political_groupModerate             0.109372    
companyLeaningRight:political_groupConservative         0.931718    
actionI:political_groupModerate                         0.617093    
actionI:political_groupConservative                     0.616302    
companyLeaningRight:actionI:political_groupModerate     0.975019    
companyLeaningRight:actionI:political_groupConservative 0.862783    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.109                                                        
actionI     -0.109  0.498                                                 
pltcl_grpMd -0.123  0.330  0.329                                          
pltcl_grpCn -0.141  0.377  0.374  0.426                                   
cmpnyLnnR:I  0.077 -0.706 -0.708 -0.233 -0.265                            
cmpnyLnR:_M  0.067 -0.610 -0.306 -0.540 -0.229  0.432                     
cmpnyLnR:_C  0.076 -0.698 -0.345 -0.229 -0.540  0.491  0.425              
actnI:plt_M  0.067 -0.305 -0.608 -0.540 -0.230  0.430  0.500  0.213       
actnI:plt_C  0.076 -0.349 -0.695 -0.230 -0.540  0.493  0.212  0.500  0.425
cmpnLR:I:_M -0.047  0.432  0.431  0.382  0.162 -0.610 -0.707 -0.300 -0.707
cmpnLR:I:_C -0.054  0.493  0.490  0.162  0.382 -0.696 -0.300 -0.707 -0.300
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.300         
cmpnLR:I:_C -0.707  0.425  
Code
mod_staticNorm_pol <- lmer(staticNorm ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_staticNorm_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: staticNorm ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 27198.2

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9494 -0.5602  0.0058  0.5442  3.5589 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 142.6    11.94   
 social_issue  (Intercept) 106.0    10.30   
 Residual                  208.5    14.44   
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                       44.61798    5.39253    3.59294   8.274
companyLeaningRight               -0.75647    1.75011 2387.56081  -0.432
actionI                            1.48128    1.75255 2387.85831   0.845
pol                                2.79111    0.35655 2134.93112   7.828
companyLeaningRight:actionI       -1.16276    2.47861 2387.76020  -0.469
companyLeaningRight:pol            0.15019    0.38914 2387.59822   0.386
actionI:pol                       -0.18941    0.38866 2387.43777  -0.487
companyLeaningRight:actionI:pol   -0.02291    0.55021 2387.49127  -0.042
                                Pr(>|t|)    
(Intercept)                      0.00183 ** 
companyLeaningRight              0.66560    
actionI                          0.39808    
pol                             7.73e-15 ***
companyLeaningRight:actionI      0.63903    
companyLeaningRight:pol          0.69957    
actionI:pol                      0.62605    
companyLeaningRight:actionI:pol  0.96679    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.162                                          
actionI     -0.162  0.501                                   
pol         -0.271  0.497  0.497                            
cmpnyLnnR:I  0.115 -0.707 -0.709 -0.352                     
cmpnyLnngR:  0.148 -0.911 -0.457 -0.546  0.645              
actionI:pol  0.148 -0.456 -0.909 -0.545  0.644  0.500       
cmpnyLnR:I: -0.104  0.644  0.644  0.386 -0.910 -0.707 -0.708

Dynamic Norm

Main Plot

Code
dyP <- ggplot(gjg_long, aes(x = companyLeaning, y = dyNorm, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2","-1", "0", "1", "2", "3"), 
  ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Action") +
  labs(
    x = "Condition", 
    y = "Rate at which support is changing", 
    title = "Perception of Norm Change"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  coord_cartesian(ylim = c(1, 7))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(dyP)

Plot by Pol Group

  • Composite
  • 7 point agreement scale
Code
dyP_polGroup <- ggplot(gjg_long, aes(x = companyLeaning, y = dyNorm, color = action)) +
  geom_point(stat = "summary", fun = "mean", size = 4, position = position_dodge(width = 0.25)) +  # Increased point size
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", position = position_dodge(width = 0.25), width = 0.2, size = 1.5) +  # Increased error bar size
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
  scale_x_discrete(labels = c("Liberal", "Conservative")) +
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5, 6, 7), 
    labels = c("-3","-2","-1", "0", "1", "2", "3"), 
  ) +
  scale_color_manual(values = c("I" = "#B550B5", "C" = "#00C957"),
                     labels = c("Consistent", "Inconsistent"),
                     name = "Company Political Leaning \n\ & Action Consistency") +
  labs(
    x = "Condition", 
    y = "Rate at which support is changing", 
    title = "Perception of Norm Change"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 25),
    axis.text.x = element_text(face = "plain", size = 20, color = "black"),
    axis.text.y = element_text(face = "plain", size = 20, color = "black"),
    axis.title.y = element_text(face = "plain", size = 22, color = "black"), 
    axis.title.x = element_text(face = "plain", size = 22, color = "black"),
    legend.position = "bottom",
    legend.title = element_text(size = 22),  # Adjusted legend title size
    legend.text = element_text(size = 20),  # Adjusted legend text size
    panel.grid.major = element_line(color = "gray"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "white", color = "white"),
    panel.border = element_rect(color = "black", fill = NA, size = 1)
  ) +
  facet_wrap("political_group") +
  coord_cartesian(ylim = c(1, 7))  # Adjusted y limits to match scale_y_continuous

# Print the plot
print(dyP_polGroup)

Line by Pol

Code
ggplot(gjg_long, aes(x = pol, y = dyNorm, color = condition)) +
    stat_summary(fun.data = "mean_cl_normal", geom = "line") +
    geom_hline(yintercept = 4, linetype = "dashed", color = "black", size = .7, alpha = 0.4) +
    # geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.2) +
    labs(x = "Participant Political Leaning \n\ (Conservative to Liberal)", y = "Belief that the post motivates support from others", color = "Company Political Leaning \n\ & Action Consistency", title = "Belief that the post motivates support from others") + coord_cartesian(ylim = c(1, 7)) + scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) 

Stats

Code
mod_dyNorm_polGroup <- lmer(dyNorm ~ companyLeaning*action*political_group + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_dyNorm_polGroup)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
dyNorm ~ companyLeaning * action * political_group + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 10567.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.8253 -0.4698  0.0658  0.5856  3.4781 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.92281  0.9606  
 social_issue  (Intercept) 0.05814  0.2411  
 Residual                  1.09119  1.0446  
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                                          Estimate Std. Error
(Intercept)                                                5.02718    0.14474
companyLeaningRight                                       -0.14056    0.08338
actionI                                                   -0.18063    0.08359
political_groupModerate                                    0.11242    0.13111
political_groupConservative                               -0.04736    0.11481
companyLeaningRight:actionI                                0.03413    0.11805
companyLeaningRight:political_groupModerate                0.06976    0.13650
companyLeaningRight:political_groupConservative            0.21762    0.11961
actionI:political_groupModerate                            0.20101    0.13652
actionI:political_groupConservative                        0.10556    0.11953
companyLeaningRight:actionI:political_groupModerate       -0.25278    0.19304
companyLeaningRight:actionI:political_groupConservative   -0.09473    0.16913
                                                                df t value
(Intercept)                                                5.93271  34.732
companyLeaningRight                                     2384.50702  -1.686
actionI                                                 2385.43313  -2.161
political_groupModerate                                 1953.86100   0.857
political_groupConservative                             1954.70212  -0.413
companyLeaningRight:actionI                             2384.92226   0.289
companyLeaningRight:political_groupModerate             2384.56415   0.511
companyLeaningRight:political_groupConservative         2384.81768   1.819
actionI:political_groupModerate                         2384.56922   1.472
actionI:political_groupConservative                     2384.57802   0.883
companyLeaningRight:actionI:political_groupModerate     2384.53888  -1.309
companyLeaningRight:actionI:political_groupConservative 2384.73953  -0.560
                                                        Pr(>|t|)    
(Intercept)                                             4.41e-08 ***
companyLeaningRight                                       0.0920 .  
actionI                                                   0.0308 *  
political_groupModerate                                   0.3913    
political_groupConservative                               0.6800    
companyLeaningRight:actionI                               0.7725    
companyLeaningRight:political_groupModerate               0.6093    
companyLeaningRight:political_groupConservative           0.0690 .  
actionI:political_groupModerate                           0.1410    
actionI:political_groupConservative                       0.3772    
companyLeaningRight:actionI:political_groupModerate       0.1905    
companyLeaningRight:actionI:political_groupConservative   0.5755    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pltc_M pltc_C cmLR:I cLR:_M cLR:_C acI:_M
cmpnyLnngRg -0.288                                                        
actionI     -0.287  0.498                                                 
pltcl_grpMd -0.338  0.318  0.317                                          
pltcl_grpCn -0.386  0.363  0.361  0.426                                   
cmpnyLnnR:I  0.203 -0.706 -0.708 -0.224 -0.256                            
cmpnyLnR:_M  0.176 -0.610 -0.306 -0.521 -0.221  0.432                     
cmpnyLnR:_C  0.201 -0.698 -0.345 -0.221 -0.521  0.491  0.425              
actnI:plt_M  0.176 -0.305 -0.608 -0.521 -0.222  0.430  0.500  0.213       
actnI:plt_C  0.201 -0.349 -0.695 -0.221 -0.521  0.493  0.212  0.500  0.425
cmpnLR:I:_M -0.124  0.432  0.431  0.368  0.157 -0.610 -0.707 -0.301 -0.707
cmpnLR:I:_C -0.142  0.493  0.491  0.156  0.368 -0.696 -0.300 -0.707 -0.300
            acI:_C cLR:I:_M
cmpnyLnngRg                
actionI                    
pltcl_grpMd                
pltcl_grpCn                
cmpnyLnnR:I                
cmpnyLnR:_M                
cmpnyLnR:_C                
actnI:plt_M                
actnI:plt_C                
cmpnLR:I:_M -0.301         
cmpnLR:I:_C -0.707  0.425  
Code
mod_dyNorm_pol <- lmer(dyNorm ~ companyLeaning*action*pol + (1 | participantID) + (1 | social_issue), data = gjg_long)
summary(mod_dyNorm_pol)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: dyNorm ~ companyLeaning * action * pol + (1 | participantID) +  
    (1 | social_issue)
   Data: gjg_long

REML criterion at convergence: 10575.4

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.8067 -0.4696  0.0629  0.5897  3.6096 

Random effects:
 Groups        Name        Variance Std.Dev.
 participantID (Intercept) 0.92504  0.9618  
 social_issue  (Intercept) 0.05775  0.2403  
 Residual                  1.09169  1.0448  
Number of obs: 3196, groups:  participantID, 799; social_issue, 4

Fixed effects:
                                  Estimate Std. Error         df t value
(Intercept)                      4.985e+00  1.709e-01  1.167e+01  29.168
companyLeaningRight              1.823e-01  1.266e-01  2.388e+03   1.440
actionI                         -8.833e-03  1.268e-01  2.389e+03  -0.070
pol                              1.235e-02  2.702e-02  1.957e+03   0.457
companyLeaningRight:actionI     -1.686e-01  1.793e-01  2.388e+03  -0.940
companyLeaningRight:pol         -5.501e-02  2.815e-02  2.388e+03  -1.954
actionI:pol                     -2.089e-02  2.812e-02  2.388e+03  -0.743
companyLeaningRight:actionI:pol  2.647e-02  3.981e-02  2.388e+03   0.665
                                Pr(>|t|)    
(Intercept)                     2.86e-12 ***
companyLeaningRight               0.1501    
actionI                           0.9445    
pol                               0.6475    
companyLeaningRight:actionI       0.3471    
companyLeaningRight:pol           0.0508 .  
actionI:pol                       0.4577    
companyLeaningRight:actionI:pol   0.5061    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) cmpnLR actinI pol    cmLR:I cmpLR: actnI:
cmpnyLnngRg -0.370                                          
actionI     -0.370  0.501                                   
pol         -0.648  0.475  0.474                            
cmpnyLnnR:I  0.262 -0.707 -0.709 -0.336                     
cmpnyLnngR:  0.337 -0.911 -0.457 -0.521  0.645              
actionI:pol  0.337 -0.456 -0.909 -0.520  0.644  0.500       
cmpnyLnR:I: -0.239  0.644  0.644  0.368 -0.910 -0.707 -0.708