Demographics

Gender

df_cbzs_elg %>% 
  mutate(gender = ifelse(is.na(gender) | gender == "","other",gender)) %>% 
  group_by(gender) %>% 
  summarise(N = n()) %>% 
  ungroup() %>% 
  mutate(Perc = round(100*(N/sum(N)),2)) %>% 
  ungroup() %>% 
  arrange(desc(Perc)) %>% 
  kbl() %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
gender N Perc
woman 103 51.24
man 95 47.26
other 3 1.49

Race

race N Perc
White 140 69.65
Black or African American 25 12.44
multiracial 16 7.96
Asian 9 4.48
Hispanic, Latino, or Spanish origin 8 3.98
Other (please specify) 2 1.00
NA 1 0.50

Age

Mean age: 38.49.

Income

median_income_num <- df_cbzs_elg %>% 
  mutate(income_num = as.numeric(income)) %>% 
  summarise(median = median(income_num, na.rm = TRUE)) %>% 
  pull(median)

df_cbzs_elg %>% 
  ggplot(aes(x = income)) +
  geom_bar() +
  geom_vline(xintercept = median_income_num, 
             color = "lightblue", linetype = "dashed") +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black", face = "bold"),
        axis.title.x = element_blank(),
        axis.title.y = element_blank()) +
  coord_flip()

Education

edu N Perc
noHS 6 2.99
GED 124 61.69
2yearColl 52 25.87
4yearColl 15 7.46
MA 1 0.50
PHD 1 0.50
NA 2 1.00

SES

ses N Perc
Lower Class 38 18.91
Lower Middle Class 69 34.33
Middle Class 82 40.80
Upper Middle Class 12 5.97

Politics

Political ideology

Participants were asked about the extent to which they subscribe to the following ideologies on a scale of 1-7 (select NA if unfamiliar): Conservatism, Liberalism, Democratic Socialism, Libertarianism, Progressivism.

means <- df_cbzs_elg %>%
  dplyr::select(PID,ideo_con:ideo_prog) %>% 
  pivot_longer(-PID,
               names_to = "ideo",
               values_to = "score") %>% 
  filter(!is.na(score)) %>% 
  group_by(ideo) %>% 
  summarise(score = mean(score)) %>% 
  ungroup()

df_cbzs_elg %>%
  dplyr::select(PID,ideo_con:ideo_prog) %>% 
  pivot_longer(-PID,
               names_to = "ideo",
               values_to = "score") %>% 
  filter(!is.na(score)) %>%  
  ggplot() +
  geom_density(aes(x = score), fill = "lightblue",color = NA) +
  scale_x_continuous(limits = c(1,7),
                     breaks = seq(1,7,1)) +
  geom_vline(data = means,mapping = aes(xintercept = score),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold")) +
  facet_wrap(~ideo,nrow = 2)

Party affiliation

party_id N Perc
Independent 76 37.81
Democrat 66 32.84
Republican 59 29.35

Measures

Class-based Zero-Sum Beliefs

  1. If the upper class becomes richer, this comes at the expense of the working class
  2. If the upper class makes more money, then the working class makes less money
  3. If the upper class does better economically, this does NOT come at the expense of the working class [R]

alpha = 0.91

df_cbzs_elg %>% 
  ggplot(aes(x = zs_class)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(xintercept = mean(df_cbzs_elg$zs_class,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

Class Solidarity

  1. I feel a sense of solidarity with the working class
  2. I support policy that helps the working class
  3. I stand united with the working class
  4. Policies negatively affecting the working class should be changed
  5. More people should know about how the working class are negatively affected by economic issues
  6. It’s important to challenge the power structures that disadvantage the working class

alpha = 0.88

df_cbzs_elg %>% 
  ggplot(aes(x = soli)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(xintercept = mean(df_cbzs_elg$soli,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

Cross-Race Class Solidarity

Participants answered all 8 items below. Then, for the mean score, I excluded the racial in-group items (participants who did not identify as one of the four categories got a mean score of all 8 items). The alpha below is for all 8 items.

  1. I feel a sense of solidarity with working-class White people
  2. The struggles faced by working-class White people are tied to the same larger forces that affect my community
  3. I feel a sense of solidarity with working-class Black people
  4. The struggles faced by working-class Black people are tied to the same larger forces that affect my community
  5. I feel a sense of solidarity with working-class Asian people
  6. The struggles faced by working-class Asian people are tied to the same larger forces that affect my community
  7. I feel a sense of solidarity with working-class Hispanic people
  8. The struggles faced by working-class Hispanic people are tied to the same larger forces that affect my community

alpha = 0.86

df_cbzs_elg %>% 
  ggplot(aes(x = cr_soli)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(xintercept = mean(df_cbzs_elg$cr_soli,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

broken by participant racial group:

means <- df_cbzs_elg %>% 
  group_by(racialgroup) %>% 
  summarise(score = mean(c(cr_soli,na.rm = T))) %>% 
  ungroup()

df_cbzs_elg %>% 
  ggplot(aes(x = cr_soli)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(data = means,mapping = aes(xintercept = score),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold")) +
  facet_wrap(~racialgroup)

Cross-Race Class Solidarity: Short

  1. I feel a sense of solidarity with working-class White people
  2. I feel a sense of solidarity with working-class Black people
  3. I feel a sense of solidarity with working-class Asian people
  4. I feel a sense of solidarity with working-class Hispanic people

alpha = 0.83

df_cbzs_elg %>% 
  ggplot(aes(x = cr_soli_short)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(xintercept = mean(df_cbzs_elg$cr_soli_short,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

broken by participant racial group:

means <- df_cbzs_elg %>% 
  group_by(racialgroup) %>% 
  summarise(score = mean(c(cr_soli_short,na.rm = T))) %>% 
  ungroup()

df_cbzs_elg %>% 
  ggplot(aes(x = cr_soli_short)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(data = means,mapping = aes(xintercept = score),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold")) +
  facet_wrap(~racialgroup)

Relative Deprivation

  1. When I think about what I have compared to others, I feel deprived
  2. I feel privileged compared to other people like me [R]
  3. I feel resentful when I see how prosperous other people seem to be
  4. When I compare what I have with others, I realize that I am quite well off [R]

alpha = 0.78

df_cbzs_elg %>% 
  ggplot(aes(x = reldep)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(1,7,1),
                     limits = c(1,7)) +
  ylab("density") +
  geom_vline(xintercept = mean(df_cbzs_elg$reldep,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

Working-Class Categorization 1

We want to know what you think is the racial and ethnic makeup of the working class in the United States. Before we begin, for reference, this is the racial and ethnic makeup of the entire population of the Unites States (US Census, 2023):

Group Share
White (non-Hispanic) 57.5%
Hispanic/Latino (any race) 19.5%
Black (non-Hispanic) 12.6%
Asian (non-Hispanic) 6.7%
Two races or more (non-Hispanic) 2.5%
Other race (non-Hispanic) 1.2%

What is the racial and ethnic makeup of the American working class?

*must equal 100%

*bars are anchored on the general population shares shown in the previous screen

showing the means of participants responses below

group share
white 51.975124
hisp 19.860696
black 15.029851
asian 7.950249
multi 3.626866
other 1.557214

Ok, so there’s a bunch of ways to operationalize this. I’ll propose two simple options:

Share of White

I can just look at their response of white working class. Let’s see.

df_cbzs_elg %>% 
  ggplot(aes(x = wc_cat_whiteshare)) +
  geom_histogram(fill = "lightblue",
                 binwidth = 2.5,
                 color = NA) +
  scale_x_continuous(breaks = seq(0,100,10),
                     limits = c(-1,101)) +
  ylab("count") +
  geom_vline(xintercept = mean(df_cbzs_elg$wc_cat_whiteshare,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

Variance Within

We can also look at the variance between the six responses. So, I just took the SD of the six items. Let’s see the distribution.

df_cbzs_elg %>% 
  ggplot(aes(x = wc_cat_var)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  # scale_x_continuous(breaks = seq(1,7,1),
  #                    limits = c(1,7)) +
  ylab("density") +
  geom_vline(xintercept = mean(df_cbzs_elg$wc_cat_var,na.rm = T),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold"))

Working-Class Categorization 2

For the following American people, please indicate the likelihood that you believe they belong to the working class. (0 = Certainly NOT in the working class to 100 = Certainly in the working class)

  1. A non-Hispanic White Person
  2. A non-Hispanic Black Person
  3. A non-Hispanic Asian Person
  4. A Hispanic/Latino Person
means <- df_cbzs_elg %>% 
  select(wc_likely_white:wc_likely_hisp) %>% 
  pivot_longer(wc_likely_white:wc_likely_hisp,
               names_to = "group",
               names_prefix = "wc_likely_",
               values_to = "likelihood") %>% 
  group_by(group) %>% 
  summarise(score = mean(likelihood,na.rm = T)) %>% 
  ungroup()

df_cbzs_elg %>% 
  select(wc_likely_white:wc_likely_hisp) %>% 
  pivot_longer(wc_likely_white:wc_likely_hisp,
               names_to = "group",
               names_prefix = "wc_likely_",
               values_to = "likelihood") %>%  
  ggplot(aes(x = likelihood)) +
  geom_density(fill = "lightblue",
                 color = NA) +
  scale_x_continuous(breaks = seq(0,100,10),
                     limits = c(0,100)) +
  ylab("density") +
  geom_vline(data = means,mapping = aes(xintercept = score),
             color = "black",
             linetype = "dashed",
             size = 1.1) +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_line(color = "grey66"),
        axis.text.y = element_text(color = "black"),
        axis.text.x = element_text(color = "black",
                                   face = "bold"),
        axis.title.x = element_text(color = "black",
                                   face = "bold")) +
  facet_wrap(~group)

Analysis

Correlations

Linear models

Solidarity as DV

Model 1:

m1 <- lm(soli ~ zs_class + reldep,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 5.11 [4.69, 5.53] 24.03 198 < .001
Zs class 0.23 [0.16, 0.31] 6.32 198 < .001
Reldep -0.07 [-0.16, 0.03] -1.40 198 .164

Model 2:

m1 <- lm(soli ~ zs_class + reldep + ideo_con,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 5.76 [5.10, 6.41] 17.41 184 < .001
Zs class 0.18 [0.10, 0.26] 4.33 184 < .001
Reldep -0.09 [-0.18, 0.01] -1.85 184 .066
Ideo con -0.08 [-0.15, -0.02] -2.45 184 .015

Model 3:

m1 <- lm(soli ~ zs_class + reldep + ideo_con + income_num + edu_num + ses_num + age + white + man,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 6.59 [5.52, 7.66] 12.20 168 < .001
Zs class 0.17 [0.08, 0.25] 3.86 168 < .001
Reldep -0.13 [-0.23, -0.03] -2.54 168 .012
Ideo con -0.07 [-0.14, 0.00] -2.01 168 .046
Income num 0.05 [-0.01, 0.12] 1.60 168 .112
Edu num -0.03 [-0.20, 0.13] -0.42 168 .678
Ses num -0.23 [-0.41, -0.05] -2.56 168 .011
Age 0.00 [-0.01, 0.01] 0.10 168 .924
White -0.09 [-0.35, 0.16] -0.71 168 .481
Man -0.34 [-0.58, -0.11] -2.86 168 .005

Cross-Race Solidarity as DV

Model 1:

m1 <- lm(cr_soli ~ zs_class + reldep,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 4.02 [3.38, 4.67] 12.28 198 < .001
Zs class 0.17 [0.06, 0.28] 3.00 198 .003
Reldep -0.06 [-0.20, 0.09] -0.77 198 .441

Model 2:

m1 <- lm(cr_soli ~ zs_class + reldep + ideo_con,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 4.50 [3.46, 5.53] 8.60 184 < .001
Zs class 0.14 [0.01, 0.28] 2.18 184 .031
Reldep -0.08 [-0.23, 0.07] -1.03 184 .305
Ideo con -0.07 [-0.17, 0.04] -1.26 184 .210

Model 3:

m1 <- lm(cr_soli ~ zs_class + reldep + ideo_con + income_num + edu_num + ses_num + age + white + man,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 4.11 [2.38, 5.84] 4.70 168 < .001
Zs class 0.19 [0.06, 0.33] 2.77 168 .006
Reldep -0.04 [-0.21, 0.12] -0.51 168 .609
Ideo con -0.03 [-0.14, 0.08] -0.52 168 .605
Income num 0.04 [-0.06, 0.15] 0.82 168 .414
Edu num -0.02 [-0.28, 0.24] -0.13 168 .894
Ses num 0.02 [-0.26, 0.31] 0.17 168 .866
Age 0.00 [-0.02, 0.01] -0.13 168 .894
White -0.19 [-0.60, 0.23] -0.88 168 .379
Man -0.12 [-0.50, 0.27] -0.60 168 .552

Working-Class Likelihood: Black as DV

Model 1:

m1 <- lm(wc_likely_black ~ zs_class + reldep,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 58.29 [46.97, 69.62] 10.15 197 < .001
Zs class 2.06 [0.10, 4.03] 2.07 197 .040
Reldep -0.27 [-2.78, 2.24] -0.21 197 .833

Model 2:

m1 <- lm(wc_likely_black ~ zs_class + reldep + ideo_con,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 60.30 [42.10, 78.51] 6.54 184 < .001
Zs class 1.89 [-0.42, 4.21] 1.62 184 .108
Reldep -0.28 [-2.91, 2.36] -0.21 184 .837
Ideo con -0.31 [-2.15, 1.53] -0.33 184 .739

Model 3:

m1 <- lm(wc_likely_black ~ zs_class + reldep + ideo_con + income_num + edu_num + ses_num + age + white + man,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 56.46 [25.64, 87.28] 3.62 168 < .001
Zs class 1.78 [-0.68, 4.23] 1.43 168 .155
Reldep -1.66 [-4.58, 1.25] -1.13 168 .262
Ideo con -0.25 [-2.20, 1.71] -0.25 168 .803
Income num 0.32 [-1.58, 2.21] 0.33 168 .743
Edu num -1.23 [-5.90, 3.45] -0.52 168 .605
Ses num -1.22 [-6.33, 3.90] -0.47 168 .639
Age 0.34 [0.05, 0.62] 2.35 168 .020
White -1.37 [-8.80, 6.06] -0.36 168 .716
Man 4.57 [-2.30, 11.44] 1.31 168 .191

Working-Class Likelihood: Asian as DV

Model 1:

m1 <- lm(wc_likely_asian ~ zs_class + reldep,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 49.83 [36.22, 63.44] 7.22 197 < .001
Zs class 2.88 [0.51, 5.24] 2.40 197 .017
Reldep -2.48 [-5.50, 0.54] -1.62 197 .107

Model 2:

m1 <- lm(wc_likely_asian ~ zs_class + reldep + ideo_con,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 53.00 [31.56, 74.44] 4.88 184 < .001
Zs class 2.79 [0.07, 5.52] 2.02 184 .045
Reldep -2.87 [-5.97, 0.23] -1.83 184 .070
Ideo con -0.40 [-2.57, 1.77] -0.36 184 .716

Model 3:

m1 <- lm(wc_likely_asian ~ zs_class + reldep + ideo_con + income_num + edu_num + ses_num + age + white + man,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 48.58 [11.50, 85.66] 2.59 168 .011
Zs class 2.80 [-0.15, 5.75] 1.87 168 .063
Reldep -3.47 [-6.98, 0.03] -1.95 168 .052
Ideo con -0.60 [-2.95, 1.75] -0.51 168 .613
Income num 0.54 [-1.74, 2.83] 0.47 168 .639
Edu num -3.63 [-9.26, 1.99] -1.28 168 .203
Ses num 2.16 [-3.99, 8.31] 0.69 168 .489
Age 0.22 [-0.13, 0.56] 1.25 168 .213
White -2.57 [-11.51, 6.36] -0.57 168 .570
Man 4.87 [-3.39, 13.12] 1.16 168 .247

Working-Class Likelihood: Hispanic as DV

Model 1:

m1 <- lm(wc_likely_hisp ~ zs_class + reldep,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 60.33 [49.37, 71.29] 10.86 197 < .001
Zs class 3.15 [1.25, 5.06] 3.27 197 .001
Reldep -1.78 [-4.21, 0.66] -1.44 197 .151

Model 2:

m1 <- lm(wc_likely_hisp ~ zs_class + reldep + ideo_con,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 58.21 [40.90, 75.52] 6.63 184 < .001
Zs class 3.47 [1.27, 5.67] 3.11 184 .002
Reldep -1.88 [-4.38, 0.63] -1.48 184 .141
Ideo con 0.26 [-1.49, 2.01] 0.29 184 .772

Model 3:

m1 <- lm(wc_likely_hisp ~ zs_class + reldep + ideo_con + income_num + edu_num + ses_num + age + white + man,data = df_cbzs_elg)

apa_lm <- apa_print(m1)
 
kbl(apa_lm$table) %>% 
  kable_styling(bootstrap_options = "hover",
                full_width = F,
                position = "left")
term estimate conf.int statistic df p.value
Intercept 80.78 [51.80, 109.76] 5.50 168 < .001
Zs class 2.84 [0.53, 5.15] 2.43 168 .016
Reldep -3.92 [-6.66, -1.17] -2.82 168 .005
Ideo con 0.35 [-1.49, 2.18] 0.37 168 .708
Income num 1.50 [-0.29, 3.28] 1.65 168 .100
Edu num -5.98 [-10.37, -1.59] -2.69 168 .008
Ses num -3.91 [-8.72, 0.90] -1.60 168 .111
Age 0.13 [-0.14, 0.39] 0.94 168 .346
White -0.74 [-7.72, 6.25] -0.21 168 .836
Man 3.75 [-2.71, 10.20] 1.15 168 .253

Mediation models

Hmm, based on the correlations, only likelihood of working class Hispanic makes sense as a mediator. Let’s see.

Model 1

Predictor: Class ZSB

Mediator: WC Likelihood Hispanic

Outcome: Solidarity

m1 <- psych::mediate(soli ~ zs_class + (wc_likely_hisp),data = df_cbzs_elg)

oh, nothing left for the b-path. ok.