David Analyses

Getting Started

Theory

Cross-pressures should have three political implications according to Mutz:

  1. Ambivalence (new per David, as “moderation” alone is too obvious)
  2. Moderation
  3. Lower participation

Cross pressures should be strongest among:

  • evangelicals (vs Catholic/Mainline)
  • traditionalists (vs modernists) (new per David…operationalized the way he suggested)

Hypotheses

  • H1: Being both LGB and Christian should be associated with ambivalence in (a) political ideology, (b) partisanship, and (c) support for candidates. This should be especially so for evangelicals (versus Catholics/Mainline) and traditionalists (vs modernists).
  • H2: Being both LGB and Christian should be associated with moderation in (a) political ideology, (b) partisanship, and (c) support for candidates. This should be especially so for evangelicals (versus Catholics/Mainline) and traditionalists (vs modernists).
  • H3: Being both LGB and Christian should be associated with lower rates of political participation. This should be especially so for evangelicals (versus Catholics/Mainline) and traditionalists (vs modernists).

Methods

Sample

  • All CES Christians and Nones (excluding “other”…. incorporating non-LGBT into sample per David)

Key Independent variables

  • Belonging = evangelical/Catholic/mainline, categorized by denomination
  • evangelical religiosity (traditionalism) = evangelical denomination + attendance + born again + prayer (per David)
  • LGB (excluding the “T” per David)

Key dependent variables

  • Attitudes
    • ambivalence (0 = “not sure”, 1 = takes a position)
    • moderation (folded 7pt lib/con scale)
  • Partisanship
    • ambivalence (0 = “not sure”, 1 = identifies with party/independent)
    • moderation (folded 7pt PID scale)
  • Candidate support
    • ambivalence (0 = “not sure” of approval of Trump, 1 = gives approval)
    • moderation (folded approval of Trump)
  • Participation
    • Voting

      • Voted 2020 (0 = did not; 1 = did)
    • Other participation

      • non-traditional participation (0 = 0 acts; 1 = 6 acts)

Note: The rationale for using folded Trump approval (versus Trump support) is as follows. For each of these three outcomes — ideology, partisanship, and candidate support — we argue cross-pressures are going to be associated with (a) ambivalence and (b) moderation. Coding ambivalence is straightforward: we are looking whether one was “unsure” or not. However, when coding moderation we need a measure of strength. Looking at vote choice does not allow this. However, looking at Trump approval allows us to fold the outcome scale to get a measure of strength to test if cross pressures are associated with weaker support

Models

attendance/born-again ID are removed from the models (per David)

  • Model 1
    • outcome ~ christian*LGB + demographic covariates
  • Model 2
    • outcome ~ denomination*LGB + demographic covariates
  • Model 3
    • outcome ~ evangelical_religiosity*LGB + demographic covariates

Note: Outcome variables are coded so that higher numbers = taking a position/ stronger position / more participation. Therefore, if cross-pressures result in ambivalence/moderation/less participation, our interaction terms will produce negative coefficients.

Results

Preparation

Show the code
library(tidyverse)
library(patchwork)
library(survey)
library(haven)
library(car)
library(stargazer)
library(markfuncs)
library(jtools)
library(MASS)
library(sjPlot)
library(showtext)
library(ggthemes)
library(ggsci)
library(interactions)
setwd("~/Library/Mobile Documents/com~apple~CloudDocs/Research/LGB Christians") # Mac
# setwd("C:/Users/Mark's computer/iCloudDrive/Research/LGB Christians") # PC
cces20 <- read.csv('cces20.csv')

## SOME BASIC TIDYING 2020 ----------------------------------------------------- 
cces20 <- cces20 %>% 
  mutate(white = recode(race, "1=1; else=0")) %>% 
  mutate(black = recode(race, "2=1; else=0"))

## REALTRAD CATEGORIES 2020 ----------------------------------------------------
## Baptist
cces20 <- cces20 %>%
  mutate(sbc = recode(religpew_baptist, "1=1; else=0")) %>% 
  mutate(sbc = sbc - black) %>% 
  mutate(sbc = recode(sbc, "1=1; else=0"))
cces20 <- cces20 %>%
  mutate(abc = recode(religpew_baptist, "2=1; else=0")) %>% 
  mutate(abc = abc - black) %>% 
  mutate(abc = recode(abc, "1=1; else=0"))
cces20 <- cces20 %>%
  mutate(ibc = recode(religpew_baptist, "5=1; else=0")) 
cces20 <- cces20 %>%
  mutate(bgc = recode(religpew_baptist, "6=1; else=0")) 
cces20 <- cces20 %>%
  mutate(mbc = recode(religpew_baptist, "7=1; else=0")) %>% 
  mutate(mbc = mbc - black) %>% 
  mutate(mbc = recode(mbc, "1=1; else=0"))
cces20 <- cces20 %>%
  mutate(cb = recode(religpew_baptist, "8=1; else=0")) 
cces20 <- cces20 %>%
  mutate(fwb = recode(religpew_baptist, "9=1; else=0")) 
cces20 <- cces20 %>%
  mutate(gabb = recode(religpew_baptist, "10=1; else=0")) 
cces20 <- cces20 %>%
  mutate(obc = recode(religpew_baptist, "90=1; else=0")) %>% 
  mutate(obc = obc - black) %>% 
  mutate(obc = recode(obc, "1=1; else=0"))
cces20 <- cces20 %>% 
  mutate(evanbap = sbc + abc + ibc + bgc + mbc + cb + fwb + gabb + obc)

## Methodist
cces20 <- cces20 %>%
  mutate(fmc = recode(cces20$religpew_methodist, "2=1; else=0")) 
cces20 <- cces20 %>%
  mutate(omc = recode(cces20$religpew_methodist, "90=1; else=0")) %>% 
  mutate(omc = white + omc) %>% 
  mutate(omc = recode(omc, "2=1; else=0"))
cces20 <- cces20 %>% 
  mutate(evanmeth = fmc + omc)

##Non-Denom
cces20 <- cces20 %>% 
  mutate(hiatt = recode(pew_churatd, "1:3=1; else=0")) %>% 
  mutate(nd = recode(religpew_nondenom, "1:90=1; else=0")) %>% 
  mutate(evannd = nd + hiatt) %>% 
  mutate(evannd =  recode(evannd, "2=1; else=0"))

## Lutheran 
cces20 <- cces20 %>% 
  mutate(mz = recode(religpew_lutheran, "2=1; else=0")) %>% 
  mutate(wi = recode(religpew_lutheran, "3=1; else=0")) %>% 
  mutate(evanluth = mz + wi)

## Presbyterian
cces20 <- cces20 %>% 
  mutate(pca = recode(religpew_presby, "2=1; else=0")) %>% 
  mutate(epc = recode(religpew_presby, "6=1; else=0")) %>% 
  mutate(evanpres = pca + epc)

## Pentecostal 
cces20 <- cces20 %>% 
  mutate(evanpent = recode(religpew_pentecost, "1:90 =1; else=0"))

## Episcopal na

## Congregregational
cces20 <- cces20 %>% 
  mutate(evancong = recode(religpew_congreg, "2=1; else=0"))

## Holiness
cces20 <- cces20 %>% 
  mutate(evanholy = recode(religpew_holiness, "1:90 =1; else=0"))

## Advent NA

## Totaling Up
cces20 <- cces20 %>% 
  mutate(evangelical = evanbap + evanmeth + evannd + evanluth + evanpres + 
           evanpent + evancong + evanholy) %>% 
  mutate(evangelical = recode(evangelical, "1:4=1; else=0"))

cces20$faminc_new[cces20$faminc_new >= 16] <- NA

c20 <- cces20 %>%
  mutate(trad = case_when(religpew == 1 & evangelical == 1 ~ 'Evangelical',
                          religpew == 1 & evangelical == 0 ~ 'Mainline',
                          religpew == 2 ~ 'Catholic',
                          religpew == 9 | religpew == 10 | religpew == 11 ~ 'None',
                          T ~ 'Other'),
         christ = ifelse(religpew == 1 | religpew == 2 | religpew == 4, 1, 0),
         lgb = ifelse(sexuality >= 2 & sexuality <= 5, 'LGB', 'Non-LGB'),
         lgbt_grp = case_when(sexuality == 2 ~ 'Lesbian',
                              sexuality == 3 ~ 'Gay',
                              sexuality == 4 ~ 'Bisexual',
                              trans == 1 ~ 'Transgender',
                              sexuality == 1 & trans != 1 ~ 'Cis-Het' ),
         lib = case_when(CC20_340a == 1 ~ 6, CC20_340a == 2 ~ 5,
                         CC20_340a == 3 ~ 4, CC20_340a == 4 ~ 3,
                         CC20_340a == 5 ~ 2, CC20_340a == 6 ~ 1,
                         CC20_340a == 7 ~ 0),
         lib01 = lib/6,
         inc01 = (faminc_new-1)/14,
         Equality_Sup = ifelse(CC20_350a == 1, 1, 0),
         att = case_when(pew_churatd == 1 ~ 5, pew_churatd == 2 ~ 4, pew_churatd == 3 ~ 3,
                         pew_churatd == 4 ~ 2, pew_churatd == 5 ~ 1, pew_churatd == 6 ~ 0),
         att01 = att/5,
         male = ifelse(gender == 1, 1, 0),
         white = ifelse(race == 1 & hispanic == 2, 1, 0),
         age = 2020 - birthyr,
         age01 = (age-18)/77,
         relimp = case_when(pew_religimp == 1 ~ 3, pew_religimp == 2 ~ 2,
                            pew_religimp == 3 ~ 1, pew_religimp == 4 ~ 0),
         educ01 = (educ-1)/5,
         born = ifelse(pew_bornagain == 1, 1, 0),
         Biden = case_when(CC20_410 == 1 ~ 1, CC20_410 == 2 ~ 0),
         south = ifelse(region == 3, 1, 0),
         party = case_when(pid7 == 1 ~ 6,
                           pid7 == 2 ~ 5,
                           pid7 == 3 ~ 4,
                           pid7 == 4 ~ 3,
                           pid7 == 5 ~ 2,
                           pid7 == 6 ~ 1,
                           pid7 == 7 ~ 0),
         party01 = party/6,
         evan = ifelse(trad == 'Evangelical', 1, 0),
         prayer = case_when(pew_prayer == 1 ~ 6,
                            pew_prayer == 2 ~ 5,
                            pew_prayer == 3 ~ 4,
                            pew_prayer == 4 ~ 3,
                            pew_prayer == 5 ~ 2,
                            pew_prayer == 6 ~ 1,
                            pew_prayer == 7 ~ 0),
         prayer01 = prayer/6,
         evan_relig = (evan + prayer01 + att01 + born)/4,
         pid_fold = case_when(pid7 == 4 ~ 0,
                              pid7 == 5 | pid7 == 3 ~ 0.3333,
                              pid7 == 6 | pid7 == 2 ~ 0.6666,
                              pid7 == 7 | pid7 == 1 ~ 1),
         ideo_fold= case_when(CC20_340a == 4 ~ 0,
                              CC20_340a == 5 | CC20_340a == 3 ~ 0.3333,
                              CC20_340a == 6 | CC20_340a == 2 ~ 0.6666,
                              CC20_340a == 7 | CC20_340a == 1 ~ 1),
         notsurevote = case_when(CC20_364b == 1 | 
                                   CC20_364b == 2 | 
                                   CC20_364b == 3 ~ 1,
                                 CC20_364b == 5 ~ 0),
         notsurevotevv = case_when(CC20_410 == 1 | 
                                     CC20_410 == 2 |
                                     CC20_410 == 3 ~ 1,
                                   CC20_410 == 4 | CC20_410 == 6 ~ 0),
         ideo_unsure = ifelse(CC20_340a == 8, 0, 1),
         pid_unsure = ifelse(pid7 == 8, 0, 1),
         approve_unsur = ifelse(CC20_320a == 5, 0, 1),
         approve_fold = case_when(CC20_320a == 2 | CC20_320a == 3 ~ 0,
                                CC20_320a == 1 | CC20_320a == 4 ~ 1))

         
c20$trad <- factor(c20$trad)
c20$trad <- relevel(c20$trad, ref = 'None')

c20$lgb <- factor(c20$lgb)
c20$lgb <- relevel(c20$lgb, ref = 'Non-LGB')

# Political participation coutn
c20$polmeet <- ifelse(c20$CC20_430a_1 == 1, 1,0)                          
c20$polsign <- ifelse(c20$CC20_430a_2 == 1, 1,0)                          
c20$polwork <- ifelse(c20$CC20_430a_3 == 1, 1,0)  
c20$polprotest <- ifelse(c20$CC20_430a_4 == 1, 1,0)   
c20$polcontact <- ifelse(c20$CC20_430a_5 == 1, 1,0)                           
c20$poldonate <- ifelse(c20$CC20_430a_6 == 1, 1,0)
c20 <- c20 %>%
  mutate(pp20 = polmeet + polsign + polwork + + polprotest + polcontact + poldonate,
         pp20 = pp20/6)

# Prep for those who were validated to have voted in 2020 election
c20$CL_2020gvm[is.na(c20$CL_2020gvm)] <- 0
c20 <- c20 %>% mutate(voted = ifelse(CL_2020gvm > 0, 1, 0))

clgbt <- c20 %>% filter(trad != 'Other')

Ambivalence Hypothesis tests

Show the code
# Ideology 
i1 <- lm(ideo_unsure ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

i2 <- lm(ideo_unsure ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

i3 <- lm(ideo_unsure ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# partisanship
p1 <- lm(pid_unsure ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

p2 <- lm(pid_unsure ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

p3 <- lm(pid_unsure ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# trump approval
u1 <- lm(approve_unsur ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

u2 <- lm(approve_unsur ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

u3 <- lm(approve_unsur ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)


# table
stargazer(i1, i2, i3, p1, p2, p3, u1, u2, u3, type = 'html',
          dep.var.labels = c('Sure About Ideology',
                             'Sure About Partisanship',
                             'Sure About Trump Approval'),
          font.size = 'footnotesize')
Dependent variable:
Sure About Ideology Sure About Partisanship Sure About Trump Approval
(1) (2) (3) (4) (5) (6) (7) (8) (9)
christ 0.043*** 0.033*** 0.014***
(0.003) (0.002) (0.002)
tradCatholic 0.033*** 0.028*** 0.014***
(0.003) (0.003) (0.002)
tradEvangelical 0.056*** 0.041*** 0.018***
(0.003) (0.003) (0.002)
tradMainline 0.039*** 0.029*** 0.010***
(0.004) (0.003) (0.002)
evan_relig 0.042*** 0.016*** 0.002
(0.004) (0.003) (0.002)
lgbLGB 0.021*** 0.021*** 0.030*** 0.035*** 0.035*** 0.020*** 0.023*** 0.023*** 0.017***
(0.005) (0.005) (0.005) (0.004) (0.004) (0.004) (0.003) (0.003) (0.003)
inc01 0.112*** 0.114*** 0.106*** 0.065*** 0.066*** 0.052*** 0.036*** 0.036*** 0.029***
(0.005) (0.005) (0.005) (0.004) (0.004) (0.004) (0.003) (0.003) (0.003)
male 0.021*** 0.021*** 0.023*** 0.009*** 0.009*** 0.014*** 0.006*** 0.006*** 0.008***
(0.002) (0.002) (0.002) (0.002) (0.002) (0.002) (0.001) (0.001) (0.001)
age01 0.162*** 0.162*** 0.148*** 0.138*** 0.138*** 0.109*** 0.060*** 0.061*** 0.054***
(0.005) (0.005) (0.005) (0.004) (0.004) (0.004) (0.003) (0.003) (0.003)
white 0.022*** 0.020*** 0.016*** 0.017*** 0.016*** 0.012*** 0.015*** 0.015*** 0.013***
(0.003) (0.003) (0.002) (0.002) (0.002) (0.002) (0.002) (0.002) (0.001)
educ01 0.114*** 0.114*** 0.101*** 0.072*** 0.073*** 0.052*** 0.039*** 0.040*** 0.028***
(0.004) (0.004) (0.004) (0.003) (0.003) (0.003) (0.003) (0.003) (0.002)
south 0.002 -0.0004 -0.001 0.001 -0.0003 -0.002 -0.002 -0.002 -0.002*
(0.002) (0.002) (0.002) (0.002) (0.002) (0.002) (0.002) (0.002) (0.001)
christ:lgbLGB 0.009 -0.034*** -0.010**
(0.008) (0.006) (0.005)
tradCatholic:lgbLGB 0.023** -0.028*** -0.002
(0.011) (0.009) (0.007)
tradEvangelical:lgbLGB -0.010 -0.055*** -0.026***
(0.013) (0.010) (0.008)
tradMainline:lgbLGB 0.014 -0.020** -0.006
(0.012) (0.010) (0.008)
evan_relig:lgbLGB -0.070*** -0.053*** -0.018**
(0.014) (0.011) (0.008)
Constant 0.712*** 0.714*** 0.750*** 0.803*** 0.803*** 0.856*** 0.894*** 0.894*** 0.919***
(0.004) (0.004) (0.004) (0.003) (0.003) (0.003) (0.002) (0.002) (0.002)
Observations 47,417 47,417 45,738 47,430 47,430 45,750 47,407 47,407 45,727
R2 0.084 0.085 0.069 0.064 0.065 0.043 0.028 0.029 0.021
Adjusted R2 0.084 0.084 0.069 0.064 0.065 0.043 0.028 0.028 0.021
Residual Std. Error 0.248 (df = 47407) 0.248 (df = 47403) 0.232 (df = 45728) 0.200 (df = 47420) 0.200 (df = 47416) 0.176 (df = 45740) 0.159 (df = 47397) 0.159 (df = 47393) 0.140 (df = 45717)
F Statistic 481.534*** (df = 9; 47407) 337.205*** (df = 13; 47403) 374.843*** (df = 9; 45728) 363.083*** (df = 9; 47420) 253.541*** (df = 13; 47416) 226.887*** (df = 9; 45740) 153.365*** (df = 9; 47397) 107.387*** (df = 13; 47393) 109.476*** (df = 9; 45717)
Note: p<0.1; p<0.05; p<0.01
Show the code
# Figure 
plot1 <- plot_summs(i1, i2, i3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Sure About Ideology')+xlim(-.1, 0.05)
Loading required namespace: broom.mixed
Show the code
plot2 <- plot_summs(p1, p2, p3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Sure About Partisanship')+xlim(-.1, 0.05)

plot3 <- plot_summs(u1, u2, u3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Sure About Trump Approval') +xlim(-.1, 0.05)

plot1 + plot2 + plot3 + plot_layout(guides = 'collect', ncol = 1)

SUMMARY: Broadly supportive of expectations with some interesting heterogeneity across the three outcome variables.

Moderation hypothesis tests

Show the code
# Ideology 
i1 <- lm(ideo_fold ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

i2 <- lm(ideo_fold ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

i3 <- lm(ideo_fold ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# partisanship
p1 <- lm(pid_fold ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

p2 <- lm(pid_fold ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

p3 <- lm(pid_fold ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# trump approval
u1 <- lm(approve_fold ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

u2 <- lm(approve_fold ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

u3 <- lm(approve_fold ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)


# table
stargazer(i1, i2, i3, p1, p2, p3, u1, u2, u3, type = 'html',
          dep.var.labels = c('Ideology Strength',
                             'Partisanship Strength',
                             'Trump Approval Strength'),
          font.size = 'footnotesize')
Dependent variable:
Ideology Strength Partisanship Strength Trump Approval Strength
(1) (2) (3) (4) (5) (6) (7) (8) (9)
christ 0.033*** 0.087*** -0.060***
(0.004) (0.004) (0.004)
tradCatholic -0.016*** 0.079*** -0.055***
(0.005) (0.005) (0.006)
tradEvangelical 0.099*** 0.102*** -0.066***
(0.005) (0.005) (0.005)
tradMainline 0.004 0.078*** -0.058***
(0.005) (0.005) (0.006)
evan_relig 0.164*** 0.116*** -0.087***
(0.006) (0.006) (0.007)
lgbLGB 0.140*** 0.140*** 0.198*** 0.063*** 0.063*** 0.074*** 0.117*** 0.117*** 0.151***
(0.008) (0.008) (0.008) (0.007) (0.007) (0.008) (0.008) (0.008) (0.009)
inc01 0.016* 0.026*** 0.028*** 0.064*** 0.065*** 0.075*** 0.056*** 0.054*** 0.044***
(0.008) (0.008) (0.008) (0.008) (0.008) (0.008) (0.009) (0.009) (0.009)
male 0.011*** 0.011*** 0.016*** -0.050*** -0.050*** -0.050*** -0.0001 -0.0002 -0.002
(0.004) (0.004) (0.004) (0.003) (0.003) (0.003) (0.004) (0.004) (0.004)
age01 0.071*** 0.070*** 0.062*** 0.189*** 0.189*** 0.203*** 0.288*** 0.288*** 0.288***
(0.008) (0.008) (0.008) (0.008) (0.008) (0.008) (0.009) (0.009) (0.009)
white 0.079*** 0.070*** 0.081*** -0.012*** -0.013*** -0.014*** -0.037*** -0.036*** -0.040***
(0.004) (0.004) (0.004) (0.004) (0.004) (0.004) (0.004) (0.004) (0.004)
educ01 0.059*** 0.061*** 0.062*** 0.016** 0.017*** 0.017*** 0.107*** 0.107*** 0.108***
(0.006) (0.006) (0.007) (0.006) (0.006) (0.006) (0.007) (0.007) (0.007)
south 0.020*** 0.010*** 0.008** 0.018*** 0.017*** 0.011*** -0.004 -0.003 0.002
(0.004) (0.004) (0.004) (0.003) (0.003) (0.004) (0.004) (0.004) (0.004)
christ:lgbLGB -0.133*** -0.046*** -0.026**
(0.012) (0.012) (0.013)
tradCatholic:lgbLGB -0.090*** -0.012 -0.029
(0.017) (0.016) (0.019)
tradEvangelical:lgbLGB -0.210*** -0.104*** -0.059***
(0.020) (0.019) (0.022)
tradMainline:lgbLGB -0.090*** -0.031* 0.002
(0.018) (0.018) (0.020)
evan_relig:lgbLGB -0.397*** -0.135*** -0.167***
(0.023) (0.022) (0.025)
Constant 0.352*** 0.357*** 0.308*** 0.518*** 0.519*** 0.526*** 0.631*** 0.631*** 0.630***
(0.006) (0.006) (0.006) (0.006) (0.006) (0.006) (0.007) (0.007) (0.007)
Observations 44,680 44,680 43,394 45,845 45,845 44,486 46,411 46,411 44,938
R2 0.023 0.034 0.041 0.038 0.039 0.036 0.035 0.035 0.038
Adjusted R2 0.023 0.034 0.041 0.038 0.039 0.036 0.035 0.035 0.038
Residual Std. Error 0.369 (df = 44670) 0.367 (df = 44666) 0.364 (df = 43384) 0.356 (df = 45835) 0.356 (df = 45831) 0.355 (df = 44476) 0.411 (df = 46401) 0.411 (df = 46397) 0.408 (df = 44928)
F Statistic 118.426*** (df = 9; 44670) 121.319*** (df = 13; 44666) 206.114*** (df = 9; 43384) 203.908*** (df = 9; 45835) 144.119*** (df = 13; 45831) 183.603*** (df = 9; 44476) 188.003*** (df = 9; 46401) 130.909*** (df = 13; 46397) 199.180*** (df = 9; 44928)
Note: p<0.1; p<0.05; p<0.01
Show the code
# Figure 
plot1 <- plot_summs(i1, i2, i3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Ideology Strength')+ xlim(-0.5, 0.05)

plot2 <- plot_summs(p1, p2, p3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Partisanship Strength')+ xlim(-0.5, 0.05)

plot3 <- plot_summs(u1, u2, u3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Trump Approval Strength') + xlim(-0.5, 0.05)

plot1 + plot2 + plot3 + plot_layout(guides = 'collect', ncol = 1)

SUMMARY: Broadly supportive of expectations.

Participation hypotheses

Show the code
# Voting 
v1 <- lm(voted ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

v2 <- lm(voted ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

v3 <- lm(voted ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# Other participation
pp1 <- lm(pp20 ~ christ*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

pp2 <- lm(pp20 ~ trad*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

pp3 <- lm(pp20 ~ evan_relig*lgb + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# table
stargazer(v1, v2, v3, pp1, pp2, pp3, type = 'html',
          dep.var.labels = c('Voted',
                             'Alternative Participation'),
          font.size = 'footnotesize')
Dependent variable:
Voted Alternative Participation
(1) (2) (3) (4) (5) (6)
christ 0.027*** -0.021***
(0.005) (0.002)
tradCatholic -0.020*** -0.030***
(0.006) (0.003)
tradEvangelical 0.063*** -0.017***
(0.006) (0.003)
tradMainline 0.037*** -0.015***
(0.006) (0.003)
evan_relig 0.053*** -0.006*
(0.007) (0.003)
lgbLGB 0.083*** 0.082*** 0.106*** 0.074*** 0.074*** 0.087***
(0.009) (0.009) (0.009) (0.005) (0.005) (0.005)
inc01 0.199*** 0.209*** 0.199*** 0.131*** 0.133*** 0.129***
(0.009) (0.009) (0.010) (0.005) (0.005) (0.005)
male -0.005 -0.005 -0.007 0.016*** 0.016*** 0.016***
(0.004) (0.004) (0.004) (0.002) (0.002) (0.002)
age01 0.658*** 0.654*** 0.650*** 0.087*** 0.085*** 0.079***
(0.009) (0.009) (0.009) (0.005) (0.005) (0.005)
white 0.099*** 0.093*** 0.096*** 0.038*** 0.037*** 0.038***
(0.004) (0.005) (0.005) (0.002) (0.002) (0.002)
educ01 0.318*** 0.316*** 0.312*** 0.160*** 0.159*** 0.160***
(0.007) (0.007) (0.008) (0.004) (0.004) (0.004)
south -0.019*** -0.027*** -0.026*** -0.008*** -0.009*** -0.010***
(0.004) (0.004) (0.004) (0.002) (0.002) (0.002)
christ:lgbLGB -0.045*** -0.018**
(0.014) (0.007)
tradCatholic:lgbLGB -0.040** -0.026**
(0.020) (0.011)
tradEvangelical:lgbLGB -0.049** -0.034***
(0.023) (0.012)
tradMainline:lgbLGB -0.032 0.004
(0.022) (0.011)
evan_relig:lgbLGB -0.154*** -0.067***
(0.026) (0.013)
Constant 0.028*** 0.034*** 0.042*** -0.044*** -0.042*** -0.050***
(0.007) (0.007) (0.007) (0.004) (0.004) (0.004)
Observations 47,430 47,430 45,750 40,528 40,528 39,366
R2 0.191 0.194 0.181 0.129 0.130 0.125
Adjusted R2 0.191 0.194 0.181 0.129 0.130 0.125
Residual Std. Error 0.438 (df = 47420) 0.437 (df = 47416) 0.436 (df = 45740) 0.197 (df = 40518) 0.197 (df = 40514) 0.199 (df = 39356)
F Statistic 1,242.214*** (df = 9; 47420) 877.160*** (df = 13; 47416) 1,124.474*** (df = 9; 45740) 667.920*** (df = 9; 40518) 465.666*** (df = 13; 40514) 625.918*** (df = 9; 39356)
Note: p<0.1; p<0.05; p<0.01
Show the code
# Figure
plot1 <- plot_summs(v1, v2, v3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Voted in 2020') 

plot2 <- plot_summs(pp1, pp2, pp3, coefs = c('christ:lgbLGB', 'tradCatholic:lgbLGB', 'tradEvangelical:lgbLGB', 'tradMainline:lgbLGB', 'evan_relig:lgbLGB'),
           model.names = c('Interacted with Chrisitan',
                           'Interacted with Denomination',
                           'Interacted with Traditionalism')) +
  scale_y_discrete(labels = c('Traditionalism*LGBT',
                              'Mainline*LGBT',
                              'Evangelical*LGBT',
                              'Catholic*LGBT',
                              'Christian*LGBT')) + 
  theme_bw() +
  theme(panel.grid = element_blank()) +
  labs(y= '', title = 'Alternative Acts of Participation') 

plot1 + plot2 + plot_layout(guides = 'collect', ncol = 1)

SUMMARY: BROADLY CONSISTENT WITH EXPECTATIONS

Conclusion

Consistent with literature on cross-pressures, LGBT Christians are more ambivalent and moderate in their political ideology, partisanship, and candidate support, as well as less politically engaged. These effects are concentrated among LGBT evangelicals and traditionalists.

Bonus: frequent attending mainliners becoming more liberal/Democratic/active?

To examine this I swapped out the folded libcon and pid scales with the regular scales.

model: outcome ~ denomination*lgb*attendance + covariates

Show the code
# Ideology 
m1 <- lm(lib01 ~ trad*lgb*att01 + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# partisanship
m2 <- lm(party01 ~ trad*lgb*att01 + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# voting
m3 <- lm(voted ~ trad*lgb*att01 + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

# other participation
m4 <- lm(pp20 ~ trad*lgb*att01 + inc01 + male + age01 + white + educ01 + south, clgbt, weights = commonweight)

stargazer(m1, m2, m3, m4, type = 'html')
Dependent variable:
lib01 party01 voted pp20
(1) (2) (3) (4)
tradCatholic -0.133*** -0.101*** -0.017* -0.055***
(0.006) (0.007) (0.009) (0.004)
tradEvangelical -0.195*** -0.189*** -0.023** -0.040***
(0.007) (0.008) (0.010) (0.005)
tradMainline -0.158*** -0.144*** 0.052*** -0.021***
(0.006) (0.008) (0.010) (0.005)
lgbLGB 0.148*** 0.140*** 0.095*** 0.075***
(0.007) (0.008) (0.010) (0.005)
att01 -0.218*** -0.219*** -0.116*** -0.0001
(0.011) (0.013) (0.017) (0.009)
inc01 -0.021*** -0.058*** 0.202*** 0.131***
(0.006) (0.007) (0.010) (0.005)
male -0.044*** -0.053*** -0.008** 0.015***
(0.003) (0.003) (0.004) (0.002)
age01 -0.148*** 0.016** 0.643*** 0.085***
(0.006) (0.007) (0.009) (0.005)
white -0.108*** -0.242*** 0.089*** 0.038***
(0.003) (0.004) (0.005) (0.002)
educ01 0.146*** 0.183*** 0.309*** 0.155***
(0.005) (0.006) (0.008) (0.004)
south -0.023*** -0.036*** -0.026*** -0.010***
(0.003) (0.003) (0.004) (0.002)
tradCatholic:lgbLGB 0.018 0.056** -0.064** -0.041**
(0.020) (0.025) (0.032) (0.017)
tradEvangelical:lgbLGB -0.071*** -0.037 -0.065 -0.042**
(0.026) (0.032) (0.041) (0.021)
tradMainline:lgbLGB 0.036 0.024 -0.044 -0.045***
(0.022) (0.027) (0.035) (0.017)
tradCatholic:att01 0.117*** 0.087*** 0.068*** 0.059***
(0.015) (0.018) (0.022) (0.012)
tradEvangelical:att01 0.045*** 0.064*** 0.224*** 0.037***
(0.014) (0.017) (0.021) (0.011)
tradMainline:att01 0.182*** 0.225*** 0.044* 0.014
(0.015) (0.018) (0.023) (0.012)
lgbLGB:att01 0.051 -0.080** -0.158*** -0.020
(0.032) (0.036) (0.046) (0.029)
tradCatholic:lgbLGB:att01 -0.058 0.029 0.195** 0.063
(0.050) (0.060) (0.077) (0.044)
tradEvangelical:lgbLGB:att01 0.102** 0.202*** 0.184** 0.038
(0.051) (0.061) (0.078) (0.043)
tradMainline:lgbLGB:att01 -0.046 0.081 0.155* 0.145***
(0.053) (0.063) (0.081) (0.044)
Constant 0.717*** 0.780*** 0.069*** -0.039***
(0.005) (0.006) (0.008) (0.004)
Observations 44,138 45,281 46,644 40,050
R2 0.253 0.214 0.190 0.131
Adjusted R2 0.253 0.213 0.190 0.131
Residual Std. Error 0.270 (df = 44116) 0.330 (df = 45259) 0.435 (df = 46622) 0.197 (df = 40028)
F Statistic 711.904*** (df = 21; 44116) 586.107*** (df = 21; 45259) 520.551*** (df = 21; 46622) 287.495*** (df = 21; 40028)
Note: p<0.1; p<0.05; p<0.01
Show the code
# plots
plot_model(m1, type = 'pred', terms = c('att01', 'lgb', 'trad'))

Show the code
plot_model(m2, type = 'pred', terms = c('att01', 'lgb', 'trad'))

Show the code
plot_model(m3, type = 'pred', terms = c('att01', 'lgb', 'trad'))

Show the code
plot_model(m4, type = 'pred', terms = c('att01', 'lgb', 'trad'))

SUMMARY:

  • Ideology = no evidence regularly attending mainliners become more liberal
  • PID = no evidence regularly attending mainliners become more Democratic
  • Vote = no evidence regularly attending mainliners turned out more
  • Other participation = STRONG evidence regularly attending mainliners participated more
Show the code
# # tables
# reg_vote <- lm(notsurevote ~ christ*lgbt + inc01 + male + age01 + white + educ01 + south, clgbt, weights = vvweight_post)
# 
# reg_vote2 <- lm(notsurevote ~ trad*lgbt + inc01 + male + age01 + white + educ01 + south, clgbt, weights = vvweight_post)
# 
# reg_vote3 <- lm(notsurevote ~ evan_relig*lgbt + inc01 + male + age01 + white + educ01 + south, clgbt, weights = vvweight_post)
# 
# stargazer(reg_vote, reg_vote2, reg_vote3, type = 'text')
# 
# # Plots
# 
# plot_summs(reg_vote, reg_vote2, reg_vote3, coefs = c('christ:lgbtLGBT', 'tradCatholic:lgbtLGBT', 'tradEvangelical:lgbtLGBT', 'tradMainline:lgbtLGBT', 'evan_relig:lgbtLGBT'),
#            model.names = c('Interacted with Chrisitan',
#                            'Interacted with Tradition',
#                            'Interacted with Traditionalism'),
#            ci_level = 0.9) +
#   scale_y_discrete(labels = c('Traditionalism*LGBT',
#                               'Mainline*LGBT',
#                               'Evangelical*LGBT',
#                               'Catholic*LGBT',
#                               'Christian*LGBT')) +
#   theme_bw() +
#   theme(panel.grid = element_blank())
Show the code
# # tables
# reg_vote <- lm(Biden ~ christ*lgbt + inc01 + male + age01 + white + educ01 + south, clgbt, weights = vvweight_post)
# 
# reg_vote2 <- lm(Biden ~ trad*lgbt + inc01 + male + age01 + white + educ01 + south, clgbt, weights = vvweight_post)
# 
# reg_vote3 <- lm(Biden ~ evan_relig*lgbt + inc01 + male + age01 + white + educ01 + south, clgbt, weights = vvweight_post)
# 
# stargazer(reg_vote, reg_vote2, reg_vote3, type = 'text')
# 
# # Plots
# 
# plot_summs(reg_vote, reg_vote2, reg_vote3, coefs = c('christ:lgbtLGBT', 'tradCatholic:lgbtLGBT', 'tradEvangelical:lgbtLGBT', 'tradMainline:lgbtLGBT', 'evan_relig:lgbtLGBT'),
#            model.names = c('Interacted with Chrisitan',
#                            'Interacted with Tradition',
#                            'Interacted with Traditionalism'),
#            ci_level = 0.9) +
#   scale_y_discrete(labels = c('Traditionalism*LGBT',
#                               'Mainline*LGBT',
#                               'Evangelical*LGBT',
#                               'Catholic*LGBT',
#                               'Christian*LGBT')) +
#   theme_bw() +
#   theme(panel.grid = element_blank())