Method

In the previous iteration, we asked participants to list guiding values from three perspectives: (1) What values do they believe guide the US on paper; (2) what values do they believe guide the US in practice; and (3) what values would guide a country they could design themselves. After analyzing the text that they wrote in, we took the 48 most-mentioned values (all values that were mentioned at least five percent of people) and funneled them in to this study.

These were the options: achievement, capitalism, change, compassion, competition, democracy, diversity, education, empathy, equal opportunity, equality, fairness, freedom, freedom of religion, freedom of speech, greed, happiness, hard work, honesty, independence, individualism, informality, integrity, justice, kindness, liberty, life, money, nationalism, opportunity, patriotism, peace, power, privacy, progress, prosperity, pursuit of happiness, religion, respect, right to bear arms, rights, self determination, self government, strength, strong, success, tolerance, unity.

For each perspective, after selecting five values, participants were asked to assign weights of importance for each value (must total 100%). This will help us take a weighted mean score per participant per perspective.

Participants also completed the following measures: (1) anti-establishment; (2) system-justification; (3) single-item desire for radical change; (4) political ideology; and (5) demographics.

Demographics

Race

race N Perc
asian 42 8.35
black 63 12.52
hispanic 16 3.18
multiracial 29 5.77
white 338 67.20
NA 15 2.98

Gender

gender N Perc
man 236 46.92
woman 253 50.30
NA 14 2.78

Education

edu N Perc
GED 116 23.06
2yearColl 67 13.32
4yearColl 213 42.35
MA 63 12.52
PHD 30 5.96
NA 14 2.78

Income

Age

m sd
40.28343 12.2008

Political ideology

County-level data

We also asked them which county they live in. And then, with census data, we got their county’s GINI coefficient, median income, and population density.

GINI

Median income

Population density

Measures

US on paper

Participants were shown the following prompt:

First, we want you to think of the United States.

Since its independence and onwards, the formation of the US as a sovereign country was based on a number of values, all of which were inscribed in the constitution. This document, importantly, has evolved since its inception.

ON PAPER (in the constitution), what are the values that the US stands for? Please select five values.

value N
liberty 316
freedom of speech 197
rights 189
freedom 186
independence 173
pursuit of happiness 151
democracy 144
freedom of religion 144
right to bear arms 115
life 99
justice 96
equality 88
equal opportunity 55
self government 51
capitalism 43
patriotism 42
self determination 42
happiness 36
power 35
individualism 30
opportunity 29
prosperity 27
achievement 21
money 18
privacy 18
diversity 16
hard work 16
unity 16
nationalism 13
greed 12
fairness 10
honesty 10
progress 9
religion 8
strength 8
competition 6
empathy 6
peace 6
respect 5
strong 5
tolerance 5
compassion 4
success 4
change 3
integrity 3
kindness 3
education 2

US in practice

Participants were shown the following prompt:

Now, we want you to think of the values that the United States stands for in reality.

Regardless of what is written in the constitution, the US (across party lines) stands for certain values and does not stand for others.

IN PRACTICE, what are the values that the US stands for? Select FIVE values.

value N
capitalism 254
freedom 154
money 145
greed 141
right to bear arms 127
power 125
individualism 101
democracy 99
freedom of speech 95
independence 87
competition 86
nationalism 84
patriotism 75
freedom of religion 71
liberty 67
opportunity 61
justice 58
pursuit of happiness 58
prosperity 56
rights 52
achievement 51
strength 50
hard work 48
diversity 44
religion 41
success 33
equal opportunity 32
self determination 28
equality 26
life 18
self government 16
happiness 14
change 13
fairness 13
unity 12
education 10
progress 10
strong 9
integrity 8
tolerance 8
kindness 7
peace 6
privacy 6
compassion 5
respect 4
empathy 3
honesty 2
informality 2

Ideal

Participants were shown the following prompt:

And now, we want you to imagine your ideal state.

Importantly, imagine this ideal state as if you are randomly born into its population. You can end up in any level of its citizenry.

So, if you could design a state completely from scratch, what would be its guiding values? Select FIVE values.

value N
freedom 199
compassion 126
equality 116
equal opportunity 110
pursuit of happiness 110
peace 100
justice 95
freedom of speech 93
kindness 92
happiness 86
opportunity 82
respect 79
freedom of religion 75
democracy 74
liberty 70
diversity 67
honesty 64
rights 61
education 60
independence 58
unity 55
empathy 53
fairness 49
integrity 49
prosperity 47
life 44
self determination 38
hard work 37
progress 36
tolerance 35
right to bear arms 30
achievement 28
individualism 28
success 24
self government 22
patriotism 19
capitalism 17
privacy 14
nationalism 13
religion 10
money 9
strength 9
change 8
greed 7
competition 6
informality 5
power 3
strong 3

If you’re interested in these value lists broken down by ideology, go to the supplementary section

Anti-establishment

A combination of items from ISPP international surveys (used here: https://www.cogitatiopress.com/politicsandgovernance/article/viewFile/3949/3949) and a recent IPSOS survey (https://www.ipsos.com/en/broken-system-sentiment-2022).

Participants indicated their agreement (1-7) with the following statements:

1. The US’s economy is rigged to advantage the rich and powerful
2. Traditional politicians and parties don’t care about people like me
3. Experts in this country don’t understand the lives of people like me
4. Most of the time we can trust people in the government to do what is right (R)

R indicates a reverse-scored item

Cronbach’s alpha = 0.786

System justification

Taken from Kay and Jost (2003; https://psycnet.apa.org/record/2003-09138-004)\
Participants indicated their agreement (1-7) with the following statements:

1. In general, I find society to be fair
2. In general, the American political system operates as it should
3. American society needs to be radically restructured (R)
4. The United States is the best country in the world to live in
5. Most policies serve the greater good
6. Everyone has a fair shot at wealth and happiness
7. Our society is getting worse every year (R)
8. Society is set up so that people usually get what they deserve

R indicates a reverse-scored item

Cronbach’s alpha = 0.905

Support for radical change

Item used here (https://journals.sagepub.com/doi/epub/10.1177/0032321719874362), but also appears, in various forms, in other surveys.

Participants indicated their agreement (1-7) with the following item:

The way this country works needs to be radically changed.

Similarity scores

Using Glove word embedding, we have 100-column vectors for each value. The goal is to see how similar each perspective is for one another per participant. How do we do that?

For each participant and each type, we take the average of each column weighted by the importance indicated by the participants. Then, we take the cosine similarity between each of the two perspectives, per participant. Let’s see how this looks in code:

df_similarities = tibble(PID = -999,simi_uspaper_uspractice = 0,simi_uspaper_ideal = 0,simi_uspractice_ideal = 0)
PIDs = unique(df_amd$PID)

for(i in PIDs){
  
mt_cosine <- df_amd %>% 
  select(PID:weight,X1:X100) %>% 
  pivot_longer(-c(PID,type,value,weight),
               names_to = "names",
               values_to = "values") %>% 
  mutate(weigthed_value = values*weight/100) %>% 
  select(-values) %>% 
  pivot_wider(names_from = names,
              values_from = weigthed_value) %>% 
  group_by(PID,type) %>% 
  summarise_at(vars(X1:X100),function(x){sum(x,na.rm = T)}) %>% 
  ungroup() %>% 
  filter(PID == i) %>% 
  select(type,X1:X100) %>% 
  pivot_longer(X1:X100,
               names_to = "names",
               values_to = "values") %>% 
  pivot_wider(names_from = "type",
              values_from = "values") %>% 
  select(-names) %>% 
  as.matrix() %>% 
  cosine() 

cosine_ideal_paper = mt_cosine["ideal","uspaper"]
cosine_ideal_prac = mt_cosine["ideal","uspractice"]
cosine_paper_prac = mt_cosine["uspaper","uspractice"]

current_scores = tibble(PID = i,
                        simi_uspaper_uspractice = cosine_paper_prac,
                        simi_uspaper_ideal = cosine_ideal_paper,
                        simi_uspractice_ideal = cosine_ideal_prac)

df_similarities <- df_similarities %>% 
  bind_rows(current_scores)

}

df_amd <- df_amd %>% 
  left_join(df_similarities,by = "PID") %>% 
  select(PID:weight,simi_uspaper_uspractice:simi_uspractice_ideal,everything())

df_amd_onlytop <- df_amd %>% 
  group_by(PID,type) %>% 
  mutate(is_max = ifelse(weight == max(weight),1,0)) %>% 
  ungroup() %>% 
  filter(is_max == 1)

df_similarities = tibble(PID = -999,topv_simi_paper_practice = 0,topv_simi_paper_ideal = 0,topv_simi_prac_ideal = 0)
PIDs = unique(df_amd_onlytop$PID)

for(i in PIDs){
  
mt_cosine <- df_amd_onlytop %>% 
  select(PID:type,X1:X100) %>% 
  group_by(PID,type) %>% 
  summarise_at(vars(X1:X100),function(x){mean(x,na.rm = T)}) %>% 
  ungroup() %>% 
  filter(PID == i) %>% 
  select(type,X1:X100) %>% 
  pivot_longer(X1:X100,
               names_to = "names",
               values_to = "values") %>% 
  pivot_wider(names_from = "type",
              values_from = "values") %>% 
  select(-names) %>% 
  as.matrix() %>% 
  cosine() 

cosine_ideal_paper = mt_cosine["ideal","uspaper"]
cosine_ideal_prac = mt_cosine["ideal","uspractice"]
cosine_paper_prac = mt_cosine["uspaper","uspractice"]

current_scores = tibble(PID = i,
                        topv_simi_paper_practice = cosine_paper_prac,
                        topv_simi_paper_ideal = cosine_ideal_paper,
                        topv_simi_prac_ideal = cosine_ideal_prac)

df_similarities <- df_similarities %>% 
  bind_rows(current_scores)

}

df_amd <- df_amd %>% 
  left_join(df_similarities,by = "PID")

Analysis

Correlation plot

Let’s start with some correlations.

Very interesting…

Linear Models

Predicting anti-establishment sentiment

Main IV: Similarity of US PAPER and US PRACTICE

(#tab:unnamed-chunk-23)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.09, 0.09] 0.00 501 > .999
Scalesimi uspaper uspractice -0.23 [-0.32, -0.15] -5.32 501 < .001
(#tab:unnamed-chunk-24)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.09] 0.09 467 .926
Scalesimi uspaper uspractice -0.18 [-0.26, -0.09] -3.92 467 < .001
Scaleideo con -0.26 [-0.34, -0.17] -5.62 467 < .001
(#tab:unnamed-chunk-25)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.43 [0.19, 0.68] 3.45 373 < .001
Scalesimi uspaper uspractice -0.21 [-0.30, -0.11] -4.28 373 < .001
Ideo lib -0.01 [-0.01, 0.00] -3.22 373 .001
Ideo con -0.01 [-0.01, 0.00] -3.56 373 < .001
Ideo demsoc 0.00 [0.00, 0.01] 1.50 373 .134
Ideo libert 0.00 [0.00, 0.00] -0.28 373 .780
Ideo prog 0.00 [0.00, 0.00] 0.13 373 .898
Ideo rwn 0.00 [-0.01, 0.00] -1.45 373 .147
(#tab:unnamed-chunk-26)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.14 [-1.71, 2.00] 0.15 464 .879
Scalesimi uspaper uspractice -0.17 [-0.26, -0.08] -3.84 464 < .001
Scaleideo con -0.29 [-0.41, -0.18] -4.93 464 < .001
Party idDemocrat -0.28 [-2.13, 1.58] -0.30 464 .767
Party idIndependent 0.09 [-1.77, 1.95] 0.09 464 .926
Party idRepublican -0.13 [-2.00, 1.75] -0.13 464 .893
(#tab:unnamed-chunk-27)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.05 [-0.28, 0.39] 0.32 401 .749
Scalesimi uspaper uspractice -0.18 [-0.26, -0.09] -3.91 401 < .001
Scaleideo con -0.28 [-0.40, -0.15] -4.42 401 < .001
Party idIndependent 0.29 [0.07, 0.51] 2.55 401 .011
Party idRepublican 0.16 [-0.15, 0.47] 1.01 401 .311
Scaleage -0.08 [-0.18, 0.02] -1.60 401 .109
Genderwoman -0.05 [-0.23, 0.13] -0.51 401 .613
Scaleedu num -0.17 [-0.27, -0.07] -3.47 401 < .001
Scaleincome num -0.07 [-0.17, 0.02] -1.55 401 .121
Raceblack -0.06 [-0.46, 0.35] -0.28 401 .778
Racehispanic -0.12 [-0.73, 0.49] -0.40 401 .692
Racemultiracial -0.08 [-0.56, 0.39] -0.35 401 .729
Racewhite -0.16 [-0.50, 0.18] -0.93 401 .353
Scalecounty gini -0.04 [-0.16, 0.07] -0.75 401 .455
Scalecounty medianincome 0.05 [-0.04, 0.14] 1.06 401 .291
Scalecounty density 0.00 [-0.11, 0.11] 0.06 401 .956

Main IV: Similarity of US PAPER and IDEAL

(#tab:unnamed-chunk-28)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.09, 0.09] 0.00 501 > .999
Scalesimi uspaper ideal -0.13 [-0.22, -0.04] -2.96 501 .003
(#tab:unnamed-chunk-29)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.09, 0.09] 0.03 467 .979
Scalesimi uspaper ideal -0.06 [-0.16, 0.03] -1.37 467 .172
Scaleideo con -0.28 [-0.37, -0.19] -6.06 467 < .001
(#tab:unnamed-chunk-30)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.45 [0.20, 0.70] 3.51 373 < .001
Scalesimi uspaper ideal -0.09 [-0.19, 0.01] -1.83 373 .068
Ideo lib -0.01 [-0.01, 0.00] -3.16 373 .002
Ideo con -0.01 [-0.01, 0.00] -3.77 373 < .001
Ideo demsoc 0.00 [0.00, 0.01] 1.69 373 .092
Ideo libert 0.00 [0.00, 0.00] -0.28 373 .776
Ideo prog 0.00 [0.00, 0.00] -0.04 373 .971
Ideo rwn 0.00 [-0.01, 0.00] -1.41 373 .160
(#tab:unnamed-chunk-31)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.20 [-1.68, 2.08] 0.21 464 .834
Scalesimi uspaper ideal -0.08 [-0.17, 0.01] -1.70 464 .089
Scaleideo con -0.31 [-0.42, -0.19] -5.05 464 < .001
Party idDemocrat -0.34 [-2.22, 1.54] -0.36 464 .722
Party idIndependent 0.05 [-1.83, 1.93] 0.05 464 .958
Party idRepublican -0.22 [-2.12, 1.68] -0.23 464 .820
(#tab:unnamed-chunk-32)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.05 [-0.29, 0.39] 0.30 401 .761
Scalesimi uspaper ideal -0.04 [-0.14, 0.05] -0.90 401 .367
Scaleideo con -0.30 [-0.42, -0.17] -4.59 401 < .001
Party idIndependent 0.29 [0.06, 0.51] 2.51 401 .012
Party idRepublican 0.11 [-0.20, 0.43] 0.71 401 .475
Scaleage -0.07 [-0.17, 0.03] -1.34 401 .181
Genderwoman -0.07 [-0.25, 0.12] -0.72 401 .469
Scaleedu num -0.17 [-0.27, -0.08] -3.48 401 < .001
Scaleincome num -0.07 [-0.17, 0.03] -1.42 401 .156
Raceblack -0.06 [-0.47, 0.36] -0.27 401 .790
Racehispanic -0.06 [-0.68, 0.57] -0.19 401 .852
Racemultiracial -0.03 [-0.51, 0.46] -0.11 401 .910
Racewhite -0.15 [-0.50, 0.20] -0.85 401 .394
Scalecounty gini -0.05 [-0.17, 0.07] -0.86 401 .390
Scalecounty medianincome 0.06 [-0.03, 0.16] 1.29 401 .197
Scalecounty density 0.01 [-0.11, 0.12] 0.13 401 .899

Main IV: Similarity of US PRACTICE and IDEAL

(#tab:unnamed-chunk-33)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.08] 0.00 501 > .999
Scalesimi uspractice ideal -0.30 [-0.38, -0.22] -7.04 501 < .001
(#tab:unnamed-chunk-34)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.09] 0.03 467 .976
Scalesimi uspractice ideal -0.22 [-0.31, -0.13] -4.79 467 < .001
Scaleideo con -0.22 [-0.31, -0.13] -4.64 467 < .001
(#tab:unnamed-chunk-35)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.43 [0.18, 0.67] 3.40 373 < .001
Scalesimi uspractice ideal -0.23 [-0.33, -0.12] -4.39 373 < .001
Ideo lib -0.01 [-0.01, 0.00] -3.27 373 .001
Ideo con -0.01 [-0.01, 0.00] -3.41 373 < .001
Ideo demsoc 0.00 [0.00, 0.01] 1.35 373 .178
Ideo libert 0.00 [0.00, 0.00] 0.07 373 .942
Ideo prog 0.00 [0.00, 0.00] 0.02 373 .984
Ideo rwn 0.00 [-0.01, 0.00] -1.27 373 .205
(#tab:unnamed-chunk-36)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.11 [-1.72, 1.95] 0.12 464 .903
Scalesimi uspractice ideal -0.23 [-0.32, -0.14] -5.02 464 < .001
Scaleideo con -0.26 [-0.38, -0.14] -4.38 464 < .001
Party idDemocrat -0.27 [-2.11, 1.56] -0.29 464 .771
Party idIndependent 0.13 [-1.71, 1.97] 0.14 464 .886
Party idRepublican -0.08 [-1.94, 1.78] -0.08 464 .933
(#tab:unnamed-chunk-37)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.02 [-0.31, 0.35] 0.12 401 .904
Scalesimi uspractice ideal -0.21 [-0.31, -0.12] -4.44 401 < .001
Scaleideo con -0.25 [-0.37, -0.12] -3.93 401 < .001
Party idIndependent 0.32 [0.10, 0.54] 2.89 401 .004
Party idRepublican 0.18 [-0.13, 0.49] 1.13 401 .260
Scaleage -0.08 [-0.18, 0.02] -1.50 401 .134
Genderwoman -0.05 [-0.23, 0.13] -0.52 401 .604
Scaleedu num -0.16 [-0.26, -0.07] -3.36 401 < .001
Scaleincome num -0.06 [-0.15, 0.03] -1.26 401 .209
Raceblack -0.06 [-0.47, 0.34] -0.32 401 .752
Racehispanic -0.06 [-0.67, 0.55] -0.20 401 .843
Racemultiracial 0.00 [-0.48, 0.47] -0.02 401 .985
Racewhite -0.15 [-0.49, 0.19] -0.87 401 .387
Scalecounty gini -0.05 [-0.16, 0.07] -0.79 401 .432
Scalecounty medianincome 0.04 [-0.05, 0.13] 0.85 401 .395
Scalecounty density 0.00 [-0.11, 0.11] -0.03 401 .974

Predicting support for radical change

Main IV: Similarity of US PAPER and US PRACTICE

(#tab:unnamed-chunk-38)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.08] 0.00 501 > .999
Scalesimi uspaper uspractice -0.29 [-0.37, -0.20] -6.70 501 < .001
(#tab:unnamed-chunk-39)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept -0.01 [-0.09, 0.08] -0.14 467 .887
Scalesimi uspaper uspractice -0.21 [-0.30, -0.13] -4.92 467 < .001
Scaleideo con -0.33 [-0.41, -0.24] -7.49 467 < .001
(#tab:unnamed-chunk-40)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.02 [-0.21, 0.25] 0.20 373 .842
Scalesimi uspaper uspractice -0.26 [-0.35, -0.17] -5.60 373 < .001
Ideo lib 0.00 [-0.01, 0.00] -2.00 373 .046
Ideo con -0.01 [-0.01, -0.01] -4.74 373 < .001
Ideo demsoc 0.01 [0.00, 0.01] 3.46 373 < .001
Ideo libert 0.00 [-0.01, 0.00] -1.25 373 .211
Ideo prog 0.00 [0.00, 0.01] 1.40 373 .161
Ideo rwn 0.00 [0.00, 0.01] 2.21 373 .028
(#tab:unnamed-chunk-41)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.26 [-1.55, 2.06] 0.28 464 .779
Scalesimi uspaper uspractice -0.21 [-0.30, -0.13] -4.96 464 < .001
Scaleideo con -0.37 [-0.48, -0.26] -6.39 464 < .001
Party idDemocrat -0.32 [-2.13, 1.49] -0.35 464 .727
Party idIndependent -0.25 [-2.06, 1.56] -0.27 464 .787
Party idRepublican -0.16 [-1.98, 1.67] -0.17 464 .868
(#tab:unnamed-chunk-42)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.01 [-0.31, 0.33] 0.06 401 .955
Scalesimi uspaper uspractice -0.23 [-0.31, -0.15] -5.33 401 < .001
Scaleideo con -0.33 [-0.45, -0.21] -5.51 401 < .001
Party idIndependent 0.02 [-0.19, 0.23] 0.16 401 .873
Party idRepublican 0.19 [-0.11, 0.49] 1.26 401 .207
Scaleage -0.18 [-0.27, -0.08] -3.56 401 < .001
Genderwoman 0.22 [0.05, 0.40] 2.55 401 .011
Scaleedu num -0.10 [-0.20, -0.01] -2.21 401 .028
Scaleincome num -0.04 [-0.13, 0.06] -0.76 401 .447
Raceblack 0.28 [-0.11, 0.67] 1.43 401 .153
Racehispanic -0.21 [-0.80, 0.37] -0.71 401 .475
Racemultiracial -0.32 [-0.78, 0.14] -1.38 401 .169
Racewhite -0.25 [-0.57, 0.08] -1.49 401 .138
Scalecounty gini -0.14 [-0.25, -0.03] -2.46 401 .014
Scalecounty medianincome -0.02 [-0.11, 0.07] -0.34 401 .733
Scalecounty density 0.07 [-0.04, 0.18] 1.28 401 .201

Main IV: Similarity of US PAPER and IDEAL

(#tab:unnamed-chunk-43)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.08] 0.00 501 > .999
Scalesimi uspaper ideal -0.27 [-0.36, -0.19] -6.38 501 < .001
(#tab:unnamed-chunk-44)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept -0.01 [-0.09, 0.08] -0.19 467 .851
Scalesimi uspaper ideal -0.19 [-0.27, -0.10] -4.17 467 < .001
Scaleideo con -0.33 [-0.42, -0.24] -7.38 467 < .001
(#tab:unnamed-chunk-45)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.04 [-0.19, 0.28] 0.35 373 .726
Scalesimi uspaper ideal -0.21 [-0.31, -0.12] -4.48 373 < .001
Ideo lib 0.00 [-0.01, 0.00] -2.20 373 .028
Ideo con -0.01 [-0.01, -0.01] -4.80 373 < .001
Ideo demsoc 0.01 [0.00, 0.01] 3.74 373 < .001
Ideo libert 0.00 [-0.01, 0.00] -1.12 373 .263
Ideo prog 0.00 [0.00, 0.01] 1.12 373 .263
Ideo rwn 0.00 [0.00, 0.01] 2.23 373 .026
(#tab:unnamed-chunk-46)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.34 [-1.47, 2.16] 0.37 464 .710
Scalesimi uspaper ideal -0.19 [-0.28, -0.10] -4.26 464 < .001
Scaleideo con -0.36 [-0.48, -0.25] -6.18 464 < .001
Party idDemocrat -0.42 [-2.24, 1.40] -0.45 464 .652
Party idIndependent -0.30 [-2.12, 1.52] -0.32 464 .748
Party idRepublican -0.28 [-2.11, 1.56] -0.29 464 .768
(#tab:unnamed-chunk-47)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept -0.03 [-0.35, 0.30] -0.17 401 .866
Scalesimi uspaper ideal -0.18 [-0.28, -0.09] -3.93 401 < .001
Scaleideo con -0.32 [-0.44, -0.20] -5.20 401 < .001
Party idIndependent 0.04 [-0.17, 0.26] 0.39 401 .693
Party idRepublican 0.14 [-0.16, 0.44] 0.91 401 .363
Scaleage -0.17 [-0.26, -0.07] -3.28 401 .001
Genderwoman 0.18 [0.00, 0.35] 1.97 401 .049
Scaleedu num -0.10 [-0.19, 0.00] -2.02 401 .044
Scaleincome num -0.02 [-0.12, 0.07] -0.53 401 .597
Raceblack 0.31 [-0.09, 0.70] 1.53 401 .127
Racehispanic -0.04 [-0.64, 0.56] -0.14 401 .889
Racemultiracial -0.22 [-0.68, 0.24] -0.94 401 .349
Racewhite -0.19 [-0.53, 0.14] -1.14 401 .254
Scalecounty gini -0.16 [-0.27, -0.04] -2.75 401 .006
Scalecounty medianincome -0.01 [-0.10, 0.08] -0.13 401 .896
Scalecounty density 0.07 [-0.04, 0.18] 1.30 401 .193

Main IV: Similarity of US PRACTICE and IDEAL

(#tab:unnamed-chunk-48)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.08] 0.00 501 > .999
Scalesimi uspractice ideal -0.36 [-0.44, -0.28] -8.61 501 < .001
(#tab:unnamed-chunk-49)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept -0.01 [-0.09, 0.07] -0.22 467 .823
Scalesimi uspractice ideal -0.29 [-0.37, -0.20] -6.46 467 < .001
Scaleideo con -0.28 [-0.36, -0.19] -6.15 467 < .001
(#tab:unnamed-chunk-50)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.02 [-0.22, 0.25] 0.14 373 .891
Scalesimi uspractice ideal -0.27 [-0.36, -0.17] -5.54 373 < .001
Ideo lib 0.00 [-0.01, 0.00] -2.05 373 .041
Ideo con -0.01 [-0.01, -0.01] -4.57 373 < .001
Ideo demsoc 0.01 [0.00, 0.01] 3.27 373 .001
Ideo libert 0.00 [0.00, 0.00] -0.80 373 .421
Ideo prog 0.00 [0.00, 0.01] 1.26 373 .209
Ideo rwn 0.01 [0.00, 0.01] 2.44 373 .015
(#tab:unnamed-chunk-51)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.22 [-1.55, 1.99] 0.24 464 .807
Scalesimi uspractice ideal -0.29 [-0.38, -0.21] -6.59 464 < .001
Scaleideo con -0.33 [-0.44, -0.21] -5.71 464 < .001
Party idDemocrat -0.31 [-2.08, 1.46] -0.35 464 .730
Party idIndependent -0.19 [-1.97, 1.59] -0.21 464 .833
Party idRepublican -0.09 [-1.89, 1.70] -0.10 464 .919
(#tab:unnamed-chunk-52)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept -0.03 [-0.35, 0.29] -0.20 401 .843
Scalesimi uspractice ideal -0.26 [-0.35, -0.17] -5.73 401 < .001
Scaleideo con -0.30 [-0.42, -0.18] -4.92 401 < .001
Party idIndependent 0.06 [-0.15, 0.28] 0.60 401 .550
Party idRepublican 0.21 [-0.09, 0.51] 1.39 401 .166
Scaleage -0.17 [-0.27, -0.07] -3.42 401 < .001
Genderwoman 0.22 [0.05, 0.39] 2.54 401 .012
Scaleedu num -0.10 [-0.19, 0.00] -2.06 401 .040
Scaleincome num -0.02 [-0.11, 0.07] -0.37 401 .711
Raceblack 0.27 [-0.11, 0.66] 1.39 401 .164
Racehispanic -0.13 [-0.72, 0.45] -0.45 401 .651
Racemultiracial -0.22 [-0.67, 0.24] -0.94 401 .345
Racewhite -0.23 [-0.56, 0.09] -1.41 401 .160
Scalecounty gini -0.14 [-0.25, -0.03] -2.53 401 .012
Scalecounty medianincome -0.03 [-0.12, 0.06] -0.59 401 .557
Scalecounty density 0.06 [-0.04, 0.17] 1.18 401 .239

Supplementary

Values Broken down by ideology

I’ll categorize anyone who is over 50 on a certain ideology as part of that ideological group.

US on paper

Conservatives

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
liberty 82
rights 61
independence 57
freedom of speech 56
freedom 53
freedom of religion 48
pursuit of happiness 40
right to bear arms 39
democracy 37
justice 34
life 28
equality 19
patriotism 17
equal opportunity 15
self government 15
opportunity 12
self determination 11
capitalism 10
happiness 10
power 9
individualism 7
prosperity 6
religion 6
achievement 5
privacy 5
hard work 4
honesty 3
money 3
progress 3
strength 3
strong 3
unity 3
compassion 2
competition 2
diversity 2
education 2
empathy 2
greed 2
nationalism 2
change 1
integrity 1
kindness 1
peace 1
respect 1
success 1
tolerance 1

Liberals

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
liberty 145
freedom of speech 85
pursuit of happiness 81
rights 76
freedom 75
democracy 70
independence 68
freedom of religion 65
life 53
justice 41
equality 38
right to bear arms 38
self government 25
equal opportunity 24
capitalism 20
self determination 20
patriotism 18
happiness 16
opportunity 15
power 14
prosperity 13
achievement 12
individualism 10
money 10
privacy 9
unity 9
diversity 8
nationalism 7
hard work 6
progress 6
fairness 5
honesty 5
competition 4
greed 4
tolerance 4
respect 3
strong 3
success 3
compassion 2
empathy 2
peace 2
strength 2
change 1
education 1
integrity 1
religion 1

Progressives

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
liberty 114
freedom of speech 68
freedom 64
independence 62
pursuit of happiness 61
rights 60
democracy 54
freedom of religion 53
right to bear arms 42
life 40
justice 34
equality 30
self government 21
capitalism 17
equal opportunity 17
individualism 17
self determination 16
patriotism 14
happiness 12
opportunity 11
diversity 8
power 8
privacy 8
prosperity 8
achievement 7
hard work 7
money 7
greed 6
nationalism 6
unity 6
peace 4
progress 4
respect 4
honesty 3
tolerance 3
compassion 2
competition 2
empathy 2
fairness 2
success 2
change 1
education 1
religion 1
strength 1

Democratic Socialists

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
liberty 113
rights 68
freedom of speech 67
freedom 58
pursuit of happiness 57
democracy 56
independence 56
freedom of religion 50
life 39
justice 36
equality 35
right to bear arms 30
self determination 22
self government 19
equal opportunity 18
patriotism 18
happiness 16
capitalism 14
individualism 14
opportunity 14
power 13
achievement 9
diversity 8
money 8
privacy 8
unity 8
progress 7
prosperity 7
nationalism 6
hard work 5
greed 4
respect 4
honesty 3
peace 3
strength 3
strong 3
compassion 2
competition 2
success 2
tolerance 2
education 1
integrity 1
religion 1

Libertarians

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
liberty 72
freedom of speech 58
freedom 43
freedom of religion 42
rights 40
independence 39
democracy 38
pursuit of happiness 35
justice 28
life 28
right to bear arms 27
equality 19
individualism 12
patriotism 11
self determination 11
happiness 10
self government 10
achievement 9
equal opportunity 9
prosperity 9
opportunity 8
capitalism 7
money 6
power 6
hard work 5
honesty 5
privacy 5
greed 4
progress 4
diversity 3
fairness 3
religion 3
compassion 2
competition 2
empathy 2
unity 2
change 1
education 1
nationalism 1
peace 1
respect 1
strength 1
strong 1
success 1

Right-Wing Nationals

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
liberty 31
freedom 19
freedom of religion 17
freedom of speech 17
independence 17
justice 17
democracy 15
rights 14
right to bear arms 12
life 11
equality 9
patriotism 8
pursuit of happiness 8
self government 8
achievement 5
equal opportunity 5
happiness 4
individualism 4
opportunity 4
self determination 4
strength 4
capitalism 3
hard work 3
progress 3
prosperity 3
religion 3
compassion 2
diversity 2
honesty 2
money 2
privacy 2
strong 2
change 1
competition 1
education 1
empathy 1
greed 1
kindness 1
nationalism 1
respect 1
success 1
unity 1

US in practice

Conservatives

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 60
capitalism 50
democracy 41
independence 37
money 34
freedom of speech 32
freedom of religion 29
liberty 29
right to bear arms 26
power 24
pursuit of happiness 24
individualism 23
greed 22
rights 21
competition 20
opportunity 20
achievement 19
diversity 18
hard work 18
prosperity 18
justice 17
patriotism 16
equal opportunity 13
strength 13
equality 10
life 9
nationalism 9
success 9
self determination 7
self government 7
change 6
happiness 6
fairness 4
integrity 4
strong 4
tolerance 4
unity 4
compassion 3
kindness 3
progress 3
religion 3
respect 2
education 1
empathy 1
informality 1
privacy 1

Liberals

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
capitalism 138
greed 71
money 67
right to bear arms 67
power 58
freedom 56
individualism 50
democracy 44
nationalism 41
patriotism 41
competition 40
freedom of speech 37
independence 31
liberty 27
religion 27
achievement 25
pursuit of happiness 25
justice 24
hard work 23
opportunity 23
diversity 22
prosperity 22
strength 22
rights 20
freedom of religion 16
success 14
self determination 11
equal opportunity 10
equality 8
fairness 6
life 6
self government 6
progress 5
unity 5
integrity 4
kindness 4
change 3
compassion 3
happiness 3
privacy 3
education 2
empathy 2
peace 2
strong 2
honesty 1
informality 1
respect 1
tolerance 1

Progressives

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
capitalism 121
greed 71
money 57
power 53
right to bear arms 48
freedom 42
nationalism 42
individualism 40
democracy 35
competition 34
patriotism 31
independence 26
freedom of speech 25
religion 24
prosperity 20
rights 19
strength 18
diversity 17
justice 17
achievement 16
freedom of religion 16
liberty 16
pursuit of happiness 16
hard work 13
opportunity 13
self determination 10
success 10
equal opportunity 6
equality 5
fairness 5
strong 5
unity 5
life 4
self government 4
education 3
happiness 3
peace 3
privacy 3
progress 3
change 2
integrity 2
kindness 2
tolerance 2
compassion 1
empathy 1
respect 1

Democratic Socialists

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
capitalism 116
greed 68
money 57
power 55
right to bear arms 52
freedom 41
individualism 40
nationalism 39
patriotism 36
competition 34
democracy 32
religion 27
freedom of speech 24
independence 23
prosperity 21
opportunity 19
rights 19
strength 19
achievement 18
pursuit of happiness 18
justice 17
liberty 17
diversity 16
freedom of religion 13
hard work 12
success 10
self determination 9
equal opportunity 8
life 7
unity 6
equality 5
progress 4
happiness 3
self government 3
strong 3
compassion 2
education 2
fairness 2
integrity 2
kindness 2
peace 2
privacy 2
respect 2
change 1
empathy 1
honesty 1

Libertarians

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
capitalism 52
freedom 43
greed 35
money 31
freedom of speech 26
power 26
democracy 23
individualism 22
opportunity 21
right to bear arms 21
independence 19
liberty 19
achievement 18
pursuit of happiness 18
diversity 17
justice 17
prosperity 17
freedom of religion 16
nationalism 15
patriotism 15
rights 15
hard work 14
competition 13
equal opportunity 11
strength 9
success 9
change 8
religion 8
equality 7
life 7
self determination 7
fairness 5
happiness 4
integrity 4
kindness 4
self government 4
tolerance 4
unity 4
peace 3
progress 3
compassion 2
informality 2
respect 2
strong 2
education 1
honesty 1
privacy 1

Right-Wing Nationals

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 20
democracy 19
independence 14
freedom of speech 13
money 13
liberty 12
capitalism 11
freedom of religion 10
achievement 9
diversity 9
justice 9
hard work 8
opportunity 8
competition 7
life 7
patriotism 7
right to bear arms 7
rights 7
equal opportunity 6
equality 6
greed 6
individualism 6
power 6
prosperity 6
pursuit of happiness 6
change 4
nationalism 4
success 4
compassion 3
fairness 3
self determination 3
self government 3
education 2
happiness 2
kindness 2
progress 2
respect 2
privacy 1
strength 1
tolerance 1
unity 1

Ideal

Conservatives

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 70
freedom of speech 41
pursuit of happiness 37
justice 34
freedom of religion 31
independence 29
liberty 29
equal opportunity 26
right to bear arms 24
rights 24
democracy 22
opportunity 22
happiness 20
life 18
peace 18
respect 18
equality 17
hard work 16
honesty 16
compassion 14
fairness 14
integrity 14
unity 14
kindness 13
patriotism 13
capitalism 12
prosperity 11
self determination 11
self government 11
achievement 8
education 8
nationalism 8
individualism 7
religion 7
success 7
diversity 6
progress 6
empathy 4
strength 4
tolerance 4
change 3
competition 3
privacy 3
greed 2
money 2
strong 2
informality 1
power 1

Liberals

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 78
compassion 77
equality 73
equal opportunity 54
peace 52
pursuit of happiness 49
diversity 46
respect 42
kindness 41
happiness 39
opportunity 39
justice 35
democracy 34
education 31
empathy 31
freedom of speech 28
fairness 27
liberty 27
freedom of religion 25
rights 25
unity 24
honesty 23
integrity 21
life 21
progress 21
tolerance 21
prosperity 20
hard work 18
independence 14
self determination 11
success 11
individualism 10
achievement 9
self government 6
change 5
greed 4
patriotism 4
money 3
nationalism 3
privacy 3
right to bear arms 3
strength 3
capitalism 2
religion 2
strong 2
competition 1
informality 1
power 1

Progressives

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 64
equality 63
compassion 59
equal opportunity 44
diversity 40
pursuit of happiness 40
peace 38
justice 35
kindness 34
opportunity 32
respect 31
happiness 30
democracy 29
empathy 29
progress 24
liberty 21
rights 21
unity 21
education 20
freedom of speech 20
fairness 18
honesty 18
tolerance 18
freedom of religion 17
integrity 17
prosperity 16
life 15
independence 13
achievement 11
hard work 11
self determination 11
individualism 7
success 7
change 6
self government 6
patriotism 4
greed 3
nationalism 3
strength 3
competition 2
privacy 2
right to bear arms 2
strong 2
capitalism 1
money 1
religion 1

Democratic Socialists

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 70
equality 64
compassion 57
equal opportunity 45
diversity 44
pursuit of happiness 41
kindness 37
happiness 34
peace 34
justice 33
democracy 31
opportunity 31
empathy 28
freedom of speech 25
respect 25
fairness 22
education 20
unity 20
integrity 19
liberty 19
tolerance 19
rights 18
freedom of religion 17
honesty 17
life 16
progress 16
prosperity 16
hard work 10
self determination 10
achievement 9
independence 9
individualism 8
success 8
change 6
nationalism 5
self government 5
greed 4
money 3
strength 3
competition 2
patriotism 2
religion 2
right to bear arms 2
capitalism 1
power 1
privacy 1
strong 1

Libertarians

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 60
freedom of speech 28
justice 28
peace 28
pursuit of happiness 28
equality 27
compassion 25
liberty 23
opportunity 22
happiness 20
equal opportunity 19
freedom of religion 18
independence 18
rights 18
kindness 17
honesty 16
life 14
democracy 13
hard work 13
integrity 13
individualism 12
respect 12
unity 12
right to bear arms 11
diversity 10
progress 10
self determination 10
self government 10
fairness 9
success 8
achievement 7
capitalism 7
patriotism 7
education 6
empathy 6
nationalism 5
privacy 5
prosperity 5
greed 4
strength 4
tolerance 4
money 3
change 2
competition 2
religion 2
strong 2
informality 1
power 1

Right-Wing Nationals

## `summarise()` has grouped output by 'value'. You can override using the
## `.groups` argument.
value N
freedom 26
freedom of speech 14
liberty 14
equal opportunity 12
justice 12
right to bear arms 12
freedom of religion 11
democracy 10
peace 9
pursuit of happiness 9
nationalism 8
patriotism 8
unity 8
honesty 7
life 7
rights 7
equality 6
fairness 6
hard work 6
integrity 6
compassion 5
happiness 5
independence 5
opportunity 5
diversity 4
individualism 4
kindness 4
prosperity 4
empathy 3
money 3
progress 3
success 3
tolerance 3
capitalism 2
change 2
education 2
religion 2
respect 2
self determination 2
self government 2
achievement 1
competition 1
greed 1
power 1
privacy 1
strength 1
strong 1

Linear models: Only top value for each perspective

Predicting anti-establishment

(#tab:unnamed-chunk-71)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.09, 0.09] 0.00 501 > .999
Scaletopv simi paper practice -0.18 [-0.27, -0.09] -4.08 501 < .001
(#tab:unnamed-chunk-72)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.00 [-0.08, 0.09] 0.04 467 .965
Scaletopv simi paper practice -0.13 [-0.21, -0.04] -2.84 467 .005
Scaleideo con -0.27 [-0.36, -0.18] -6.02 467 < .001
(#tab:unnamed-chunk-73)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.17 [-1.69, 2.04] 0.18 464 .854
Scaletopv simi paper practice -0.12 [-0.21, -0.03] -2.74 464 .006
Scaleideo con -0.30 [-0.42, -0.18] -5.03 464 < .001
Party idDemocrat -0.31 [-2.17, 1.56] -0.32 464 .748
Party idIndependent 0.06 [-1.81, 1.93] 0.06 464 .950
Party idRepublican -0.19 [-2.08, 1.70] -0.20 464 .844
(#tab:unnamed-chunk-74)
Predictor \(b\) 95% CI \(t\) \(\mathit{df}\) \(p\)
Intercept 0.06 [-0.28, 0.39] 0.33 401 .739
Scaletopv simi paper practice -0.13 [-0.22, -0.05] -3.01 401 .003
Scaleideo con -0.28 [-0.41, -0.16] -4.45 401 < .001
Party idIndependent 0.27 [0.05, 0.50] 2.42 401 .016
Party idRepublican 0.12 [-0.19, 0.44] 0.77 401 .440
Scaleage -0.08 [-0.19, 0.02] -1.59 401 .114
Genderwoman -0.06 [-0.24, 0.12] -0.63 401 .528
Scaleedu num -0.17 [-0.27, -0.07] -3.46 401 < .001
Scaleincome num -0.07 [-0.16, 0.03] -1.44 401 .150
Raceblack -0.05 [-0.45, 0.36] -0.23 401 .820
Racehispanic -0.13 [-0.75, 0.48] -0.43 401 .667
Racemultiracial -0.02 [-0.50, 0.46] -0.10 401 .923
Racewhite -0.15 [-0.50, 0.19] -0.87 401 .385
Scalecounty gini -0.05 [-0.17, 0.07] -0.86 401 .388
Scalecounty medianincome 0.06 [-0.03, 0.15] 1.27 401 .204
Scalecounty density 0.01 [-0.11, 0.12] 0.12 401 .901

Mediation models

Model 1: Similarity of US PAPER and US PRACTICE -> Anti-establishment -> Support for radical change

psych::mediate(change ~ simi_uspaper_uspractice + (antiest),data = df_amd_ind)

## 
## Mediation/Moderation Analysis 
## Call: psych::mediate(y = change ~ simi_uspaper_uspractice + (antiest), 
##     data = df_amd_ind)
## 
## The DV (Y) was  change . The IV (X) was  simi_uspaper_uspractice . The mediating variable(s) =  antiest .
## 
## Total effect(c) of  simi_uspaper_uspractice  on  change  =  -1.88   S.E. =  0.28  t  =  -6.7  df=  501   with p =  5.8e-11
## Direct effect (c') of  simi_uspaper_uspractice  on  change  removing  antiest  =  -1.13   S.E. =  0.25  t  =  -4.52  df=  500   with p =  7.8e-06
## Indirect effect (ab) of  simi_uspaper_uspractice  on  change  through  antiest   =  -0.75 
## Mean bootstrapped indirect effect =  -0.75  with standard error =  0.16  Lower CI =  -1.07    Upper CI =  -0.46
## R = 0.56 R2 = 0.32   F = 115.06 on 2 and 500 DF   p-value:  1.16e-56 
## 
##  To see the longer output, specify short = FALSE in the print statement or ask for the summary

ARCHIVE

The following have code that aims to cluster the values in different ways and reach overarching data-driven values. The code and output are not shown, but the script has them for reference. The solution I ended up with is hierarchical cluster analysis based on all cosine similarities between the 48 values.

Factor analysis / PCA

We’ll try to do PCA or FA by dummy-coding all values per participant, weighted by the importance indicated by the participant, across perspectives.

I’ll first try a binary and just for one perspective.

paper_bin <- df_amd %>% 
  filter(type == "uspaper") %>% 
  select(PID,value) %>% 
  mutate(var = 1) %>% 
  pivot_wider(names_from = value,
              values_from = var) %>% 
  mutate_at(vars(achievement:kindness),function(x){replace_na(x,0)}) %>% 
  select(-PID)

paraellel <- fa.parallel(paper_bin,fm = 'minres', fa = 'fa')

factors <- fa(paper_bin, nfactors = 12, rotate = "oblimin", fm = "minres")

as.data.frame(factors$weights) %>% 
  arrange(desc(MR8))

Now i’ll try a weighted score and just for one perspective.

paper_weighted <- df_amd %>% 
  filter(type == "uspaper") %>% 
  select(PID,value,weight) %>%
  pivot_wider(names_from = value,
              values_from = weight) %>% 
  mutate_at(vars(achievement:kindness),function(x){replace_na(x,0)}) %>% 
  select(-PID)

paraellel <- fa.parallel(paper_weighted,fm = 'minres', fa = 'fa')

factors <- fa(paper_weighted, nfactors = 10, rotate = "oblimin", fm = "minres")

as.data.frame(factors$weights) %>% 
  arrange(desc(MR7))

I’ll do this for all three persepctives

paper_weighted <- df_amd %>% 
  filter(type == "uspaper") %>% 
  select(PID,value,weight) %>%
  pivot_wider(names_from = value,
              values_from = weight) %>% 
    select(-PID) %>% 
  mutate_all(function(x){replace_na(x,0)})

practice_weighted <- df_amd %>% 
  filter(type == "uspractice") %>% 
  select(PID,value,weight) %>%
  pivot_wider(names_from = value,
              values_from = weight) %>% 
    select(-PID) %>% 
    mutate_all(function(x){replace_na(x,0)})

ideal_weighted <- df_amd %>% 
  filter(type == "ideal") %>% 
  select(PID,value,weight) %>%
  pivot_wider(names_from = value,
              values_from = weight) %>% 
    select(-PID) %>% 
    mutate_all(function(x){replace_na(x,0)})


paraellel <- fa.parallel(paper_weighted,fm = 'minres', fa = 'fa')

factors_paper <- fa(paper_weighted, nfactors = 8, rotate = "oblimin", fm = "minres")
factors_practice <- fa(practice_weighted, nfactors = 8, rotate = "oblimin", fm = "minres")
factors_ideal <- fa(ideal_weighted, nfactors = 8, rotate = "oblimin", fm = "minres")

as.data.frame(factors_ideal$weights) %>% 
  arrange(desc(MR8)) %>% 
  select(MR8)

ok. it’s not perfect, but it’s pretty cool. I think it’ll get better if I’m able to combine all three perspectives together. The problem with that is that some people selected the same value for different perspectives. So, when that happens, I’ll put all of them in.

firsts <- df_amd %>% 
  select(PID,value,weight) %>% 
  group_by(PID,value) %>% 
  slice(1) %>% 
  ungroup() %>% 
  pivot_wider(names_from = value,
              values_from = weight) %>% 
  select(-PID) %>% 
  mutate_all(function(x){replace_na(x,0)})

seconds <- df_amd %>% 
  select(PID,value,weight) %>% 
  group_by(PID,value) %>% 
  slice(2) %>% 
  ungroup() %>% 
  pivot_wider(names_from = value,
              values_from = weight) %>% 
  select(-PID) %>% 
  mutate_all(function(x){replace_na(x,0)})


thirds <- df_amd %>% 
  select(PID,value,weight) %>% 
  group_by(PID,value) %>% 
  slice(3) %>% 
  ungroup() %>% 
  pivot_wider(names_from = value,
              values_from = weight) %>% 
  select(-PID) %>% 
  mutate_all(function(x){replace_na(x,0)})

items4FA <- firsts %>% 
  bind_rows(seconds) %>% 
  bind_rows(thirds) %>% 
  mutate_all(function(x){replace_na(x,0)})

paraellel <- fa.parallel(items4FA,fm = 'minres', fa = 'fa')

factors <- fa(paper_weighted, nfactors = 14, rotate = "oblimin", fm = "minres")

as.data.frame(factors$weights) %>% 
  arrange(desc(MR14)) %>% 
  select(MR14)

factors <- fa(paper_weighted, nfactors = 8, rotate = "oblimin", fm = "minres")

as.data.frame(factors$weights) %>% 
  arrange(desc(MR4)) %>% 
  select(MR4)

hmm, idk about this. lets try PCA.

PCA(items4FA,axes = c(4,4))

sol1 <- PCA(items4FA,ncp = 10)

as.data.frame(sol1$var$contrib) %>% 
  arrange(desc(Dim.10)) %>% 
  select(Dim.10)

not great either.

What I’ll do here is actually get the cosine similarities of all words to each other. Then, I’ll be able to group them based on similarity. Let’s see how this goes

vec_1 <- df_amd %>% 
  select(value) %>% 
  distinct() %>% 
  arrange(value) %>% 
  unlist() %>% 
  unname()

vec_2 <- df_amd %>% 
  select(value) %>% 
  distinct() %>% 
  arrange(value) %>% 
  unlist() %>% 
  unname()

all_df <- tibble(vec_1 = "temp",vec_2 = "temp")
count = 0
for(i in vec_1){
  
  count = count + 1
  current_df <- expand_grid(vec_1,vec_2) %>% 
    filter(vec_1 == i) %>% 
    slice(-c(1:count))
  
  all_df <- all_df %>% 
    bind_rows(current_df)
}

value_combinations <- all_df %>% 
  filter(vec_1 != "temp") %>% 
  mutate(row_num = row_number())

row_num <- value_combinations %>% 
  select(row_num) %>% 
  unlist() %>% 
  unname()

df_valuesims = tibble(val1 = "temp",val2 = "temp",cosine = 0)
for(i in row_num){
  
  v1 <- value_combinations %>% 
    filter(row_num == i) %>% 
    select(vec_1) %>% 
    unlist() %>% 
    unname()
  
  v2 <- value_combinations %>% 
    filter(row_num == i) %>% 
    select(vec_2) %>% 
    unlist() %>% 
    unname()
  
  mt_cosine <- df_amd %>% 
    select(value,X1:X100) %>% 
    filter(value == v1 | value == v2) %>% 
    distinct() %>% 
    pivot_longer(X1:X100,
                 names_to = "names",
                 values_to = "values") %>% 
    pivot_wider(names_from = "value",
                values_from = "values") %>% 
    select(-names) %>% 
    as.matrix() %>% 
    cosine()
  
  print(i)
  
  current_cosine = mt_cosine[v1,v2]
  
  current_scores = tibble(val1 = v1,
                          val2 = v2,
                          cosine = current_cosine)
  
  df_valuesims <- df_valuesims %>% 
    bind_rows(current_scores)
  
}

ok, cool. for this next part, I’ll try to group them together. What I’ll do is take the most similar words to each word and see if those words are similar to each other as well. If yes, they should cluster together.

top_10 <- df_valuesims %>% 
  filter(val1 != "temp") %>% 
  bind_rows(df_valuesims %>% 
              filter(val1 != "temp") %>% 
              rename(val1 = val2,
                     val2 = val1)) %>% 
  arrange(val1,desc(cosine)) %>% 
  group_by(val1) %>% 
  slice(1:10) %>% 
  select(-cosine)

top_5 <- df_valuesims %>% 
  filter(val1 != "temp") %>% 
  bind_rows(df_valuesims %>% 
              filter(val1 != "temp") %>% 
              rename(val1 = val2,
                     val2 = val1)) %>% 
  arrange(val1,desc(cosine)) %>% 
  group_by(val1) %>% 
  slice(1:5)

ig <- graph_from_data_frame(top_5, directed = FALSE, vertices = NULL)

plot(ig)

clus <- cluster_edge_betweenness(
  ig,
  weights = top_5$cosine,
  directed = FALSE,
  edge.betweenness = TRUE,
  merges = TRUE,
  bridges = TRUE,
  modularity = TRUE,
  membership = TRUE
)

top_5 %>% 
  select(-cosine) %>% 
  left_join(top_5 %>% 
              select(-cosine) %>% 
              rename(val2 = val1,
                     val_rec = val2)) %>% 
  group_by(val1,val2) %>% 
  mutate(is_recip = ifelse(val1 %in% val_rec,1,0)) %>% 
  filter(is_recip == 1) %>% 
  select(val1,val2) %>%
  distinct()
fornet <- df_valuesims %>% 
  filter(val1 != "temp") %>% 
  bind_rows(df_valuesims %>% 
              filter(val1 != "temp") %>% 
              rename(val1 = val2,
                     val2 = val1)) %>% 
  arrange(val1,val2)
  
cor_matrix <- fornet %>% 
  pivot_wider(names_from = val2,
              values_from = cosine) %>% 
  mutate_at(vars("capitalism":"achievement"),function(x){replace_na(x,1)}) %>% 
  select(-val1) %>% 
  select(achievement,everything()) %>% 
  as.matrix()

row.names(cor_matrix) = fornet %>% 
  pivot_wider(names_from = val2,
              values_from = cosine) %>% 
  mutate_at(vars("self government":"achievement"),function(x){replace_na(x,1)}) %>% 
  select(val1) %>% 
  unname() %>% 
  unlist()

mat <- df_amd %>% 
    select(value,X1:X100) %>% 
    distinct() %>% 
  select(-value) %>% 
  as.matrix()

rownames(mat) = df_amd %>% 
    select(value) %>% 
    distinct() %>% 
  unlist() %>% 
  unname()

d = dist(mat)
#kmeans
plot(stats::hclust(d,method = "ward.D2"))

from chat gpt

# Load required packages
library(text2vec)


# Define a function to calculate cosine similarity between two vectors
cosine_similarity <- function(x, y) {
  dot_product <- sum(x * y)
  norm_x <- sqrt(sum(x^2))
  norm_y <- sqrt(sum(y^2))
  similarity <- dot_product / (norm_x * norm_y)
  return(similarity)
}

# Define a function to calculate cosine similarity matrix between words
calculate_similarity_matrix <- function(words) {
  n <- length(words)
  similarity_matrix <- matrix(0, nrow = n, ncol = n)
  
  for (i in 1:n) {
    for (j in 1:n) {
      similarity_matrix[i, j] <- cosine_similarity(words[i, ], words[j, ])
    }
  }
  
  return(similarity_matrix)
}

# Define a function to perform PCA on the similarity matrix
perform_pca <- function(similarity_matrix) {
  pca <- PCA(similarity_matrix, graph = FALSE)
  return(pca$eig)
}

# Sample word vectors
word_vectors <- matrix(runif(100), nrow = 10)

# Calculate cosine similarity matrix
similarity_matrix <- calculate_similarity_matrix(word_vectors)

# Perform PCA on similarity matrix
pca_result <- perform_pca(cor_matrix)

# Print the eigenvalues
print(pca_result$eigenvalues)

pca_result

pca_solution <- PCA(cor_matrix)

pca_solution$var

pca_solution_1 <- PCA(mat,ncp = 7,axes = 2)
pca_solution_1 <- PCA(mat,ncp = 10)
#write.csv(pca_solution_1$ind$contrib,"ind_contrib_10.csv")
df_pcasol <- as.data.frame(pca_solution_1$ind$contrib)

let’s try kmeans clustering

df_valuevectors <- df_amd %>% 
  select(value,X1:X100) %>% 
  distinct()

my_rownames = df_valuevectors %>% 
  select(value) %>% 
  unlist() %>% 
  unname()

mt_valuevectors <- data.matrix(df_valuevectors)
rownames(mt_valuevectors) <- my_rownames
mt_valuevectors <- mt_valuevectors[,2:101]

distance <- get_dist(mt_valuevectors)
fviz_dist(distance, gradient = list(low = "#00AFBB", mid = "white", high = "#FC4E07"))

Two clusters

Three clusters

Four clusters

Five clusters

Six clusters

Seven clusters

Eight clusters

Nine clusters

Ten clusters

hmm, this isn’t really giving me anything meaningful. Let’s try to do this by intuition. Broad components, the way I see them, are:
1. Freedom: freedom, liberty, freedom of speech, rights, freedom of religion, competition, right to bear arms, self determination, religion, democracy, individualism, self government, privacy.
2. Compassion: respect, integrity, empathy, fairness, kindness, tolerance, compassion.
3. Capitalism: money, opportunity, capitalism, greed, success, achievement.
4. Security: life, peace.
5. Equality: diversity, equality, equal opportunity.
6. National Pride: power, independence, strong, unity, nationalism, strength, patriotism.
7. Progress: progress, change, hard work, education.
8. Happiness: pursuit of happiness, happiness, prosperity Uncategorized: justice, informality, honesty.

I’ll try to verify this. Basically, I’ll get the cosine similarity of each of our 48 values with each of these 8 overarching themes. That’ll help me get a sense of which one is most similar to which. And which don’t really map onto to any of these themes. Let’s see.

library(text2vec)
text8_file = "~/text8"
if (!file.exists(text8_file)) {
  download.file("http://mattmahoney.net/dc/text8.zip", "~/text8.zip")
  unzip ("~/text8.zip", files = "text8", exdir = "~/")
}
wiki = readLines(text8_file, n = 1, warn = FALSE)

# Create iterator over tokens
tokens <- space_tokenizer(wiki)

# Create vocabulary. Terms will be ngrams (1 to 4 tokens).
it = itoken(tokens, progressbar = FALSE)
vocab <- create_vocabulary(it,ngram = c(ngram_min = 1,ngram_max = 4))

vocab <- prune_vocabulary(vocab, term_count_min = 3L)

# Use our filtered vocabularyzoo
vectorizer <- vocab_vectorizer(vocab)
# use window of 5 for context words
tcm <- create_tcm(it, vectorizer, skip_grams_window = 5L)

glove = GlobalVectors$new(rank = 100, x_max = 10)
wv_main = glove$fit_transform(tcm, n_iter = 10, convergence_tol = 0.01, n_threads = 8)

wv_context = glove$components
word_vectors = wv_main + t(wv_context)

themes_vectors <- data.frame(word_vectors) %>% 
  mutate(word = rownames(word_vectors)) %>% 
  filter(word == "freedom" |
           word == "compassion" |
           word == "capitalism" |
           word == "security" |
           word == "equality" |
           word == "national_pride" |
           word == "progress" |
           word == "happiness") %>% 
  select(word,everything())

similarity scores

row.names(themes_vectors) = NULL

themes_vectors <- themes_vectors %>% 
  mutate(value = paste0(word,"_theme")) %>% 
  select(-word)

df_themesimis = tibble(value = "random",
                        simi_national_pride = 0,
                        simi_compassion = 0,
                        simi_happiness = 0,
                        simi_equality = 0,
                        simi_capitalism = 0,
                        simi_progress = 0,
                        simi_freedom = 0,
                        simi_security = 0)

value_vectors <- df_amd %>% 
  select(value,X1:X100) %>% 
  distinct()

values = unique(df_amd$value)

for(i in values){
mt_cosine <- value_vectors %>% 
  filter(value == i) %>% 
  bind_rows(themes_vectors) %>% 
  pivot_longer(X1:X100,
               names_to = "names",
               values_to = "values") %>% 
  pivot_wider(names_from = "value",
              values_from = "values") %>% 
  select(-names) %>% 
  as.matrix() %>% 
  cosine()

cosine_national_pride = mt_cosine[2,1]
cosine_compassion = mt_cosine[3,1]
cosine_happiness = mt_cosine[4,1]
cosine_equality = mt_cosine[5,1]
cosine_capitalism = mt_cosine[6,1]
cosine_progress = mt_cosine[7,1]
cosine_freedom = mt_cosine[8,1]
cosine_security = mt_cosine[9,1]

current_scores = tibble(value = i,
                        simi_national_pride = cosine_national_pride,
                        simi_compassion = cosine_compassion,
                        simi_happiness = cosine_happiness,
                        simi_equality = cosine_equality,
                        simi_capitalism = cosine_capitalism,
                        simi_progress = cosine_progress,
                        simi_freedom = cosine_freedom,
                        simi_security = cosine_security)

df_themesimis <- df_themesimis %>% 
  bind_rows(current_scores)
}

df_themesimis %>% 
  arrange(desc(simi_capitalism))