Assignment 1

Author

Jingyi Yang

Setup

library(haven) #Imports stata file
library(skimr) #For data evaluation 
library(psych) #For exploratory factor analysis
library(corrplot) #To graph correlations 
corrplot 0.95 loaded
library(lavaan) #For confirmatory factor analysis
This is lavaan 0.6-19
lavaan is FREE software! Please report any bugs.

Attaching package: 'lavaan'
The following object is masked from 'package:psych':

    cor2cov
library(semPlot) #For graphing CFA results 
library(tidyverse) # For clean the dataset
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ ggplot2::%+%()   masks psych::%+%()
✖ ggplot2::alpha() masks psych::alpha()
✖ dplyr::filter()  masks stats::filter()
✖ dplyr::lag()     masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Data prepare

Import the data

anes <- read_dta("C:/Users/Admin/Downloads/anes_panel_2013_inetrecontact (1).dta")
head(anes)
# A tibble: 6 × 916
  version                  caseid c5_weight C5_tm_start C5_tm_finish C5_duration
  <chr>                     <dbl>     <dbl> <chr>       <chr>              <dbl>
1 PRELIMINARY RELEASE, AN…   3003     0.192 11-JUL-201… 11-JUL-2013…          17
2 PRELIMINARY RELEASE, AN…   3006     0.483 15-JUL-201… 15-JUL-2013…         151
3 PRELIMINARY RELEASE, AN…   3007     0.965 12-JUL-201… 12-JUL-2013…          16
4 PRELIMINARY RELEASE, AN…   3008     0.222 11-JUL-201… 11-JUL-2013…          67
5 PRELIMINARY RELEASE, AN…   3011     0.371 11-JUL-201… 11-JUL-2013…          66
6 PRELIMINARY RELEASE, AN…   3012     0.651 11-JUL-201… 11-JUL-2013…          10
# ℹ 910 more variables: C5_DataCollection_Status1 <dbl+lbl>,
#   C5_xorder <dbl+lbl>, C5_xcaseid <dbl>, C5_xorder1 <dbl>,
#   C5_D4D5order <dbl>, C5_G1orG3 <dbl>, C5_XJAJB <dbl>, C5_JB1toJB10 <chr>,
#   C5_K2toK4 <chr>, C5_N2toN11 <chr>, C5_P1P2order <dbl>, C5_XGROUPP3P8 <dbl>,
#   C5_P3toP6 <chr>, C5_P7toP10 <chr>, C5_MOBGROUP <dbl>, C5_X2order <chr>,
#   C5_XGROUP <dbl>, C5_CCRAND <dbl>, C5_FREQVER <dbl>, C5_A1 <dbl+lbl>,
#   C5_C1 <dbl+lbl>, C5_C2 <dbl+lbl>, C5_C3 <dbl+lbl>, C5_C4 <dbl+lbl>, …
data<- anes%>%
  mutate(across(c(C5_T1, C5_T2, C5_T3, C5_T4, C5_U1, C5_U2, C5_U3, C5_U4, C5_U5),
                ~ ifelse(. < 0, NA, .))) %>%
  select(C5_T1, C5_T2, C5_T3, C5_T4, C5_U1, C5_U2, C5_U3, C5_U4, C5_U5)
head(data)
# A tibble: 6 × 9
  C5_T1 C5_T2 C5_T3 C5_T4 C5_U1 C5_U2 C5_U3 C5_U4 C5_U5
  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1     4     5     3     2     2     2     4     4     4
2     2     3     2     3     3     3     3     5     4
3     3     3     3     4     1     2     4     3     2
4     3     5     1     2     2     3     2     1     3
5     2     3     5     5     5     1     1     1     1
6     4     3     4     5     5     5     3     5     3
new_names <- c("certain_groups_stay_in_same_place", "certain_groups_are_at_the_top_of_others", "group_equality", "everyone_equality", "no_one_right_way_to_live_life", "deft_traditional_ways", "follow_tradition", "need_a_strong_determined_leader", "tradition_show_the_best_way_to_live") #Give your variables new informative names 

# Update column names
colnames(data) <- new_names #Apply new names to your data frame

skim(data) #Checks the variables in your data frame; evaluate for missing data
Data summary
Name data
Number of rows 1635
Number of columns 9
_______________________
Column type frequency:
numeric 9
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
certain_groups_stay_in_same_place 82 0.95 3.46 1.14 1 3 3 5 5 ▁▂▇▂▅
certain_groups_are_at_the_top_of_others 79 0.95 3.79 1.01 1 3 4 5 5 ▁▁▇▅▇
group_equality 82 0.95 2.77 1.16 1 2 3 3 5 ▃▆▇▃▂
everyone_equality 80 0.95 2.82 1.30 1 2 3 4 5 ▅▇▆▅▃
no_one_right_way_to_live_life 79 0.95 2.26 1.17 1 1 2 3 5 ▆▇▃▂▂
deft_traditional_ways 82 0.95 2.43 1.06 1 2 2 3 5 ▃▇▆▂▁
follow_tradition 82 0.95 3.14 1.20 1 2 3 4 5 ▂▆▇▆▅
need_a_strong_determined_leader 87 0.95 2.90 1.27 1 2 3 4 5 ▅▆▇▃▅
tradition_show_the_best_way_to_live 81 0.95 2.69 1.20 1 2 3 4 5 ▅▇▆▃▂

Recode and Reverse coding

## certain groups stay in same place
data_recode<- data %>% 
mutate(certain_groups_stay_in_same_place_recode = case_when(
certain_groups_stay_in_same_place ==1 ~ 5,
certain_groups_stay_in_same_place ==2 ~ 4,
certain_groups_stay_in_same_place ==3 ~ 3,
certain_groups_stay_in_same_place ==4 ~ 2, 
certain_groups_stay_in_same_place ==5 ~ 1),
certain_groups_stay_in_same_place_recode = labelled(certain_groups_stay_in_same_place_recode, c(`Disagree strongly` = 1, `Disagree somewhat` = 2, `Neither agree nor disagree` = 3, `Agree somewhat` = 4, `Agree strongly`=5)))%>% 
  mutate(certain_groups_are_at_the_top_of_others_recode = case_when(
certain_groups_are_at_the_top_of_others ==1 ~ 5,
certain_groups_are_at_the_top_of_others ==2 ~ 4,
certain_groups_are_at_the_top_of_others ==3 ~ 3,
certain_groups_are_at_the_top_of_others ==4 ~ 2, 
certain_groups_are_at_the_top_of_others ==5 ~ 1),
certain_groups_are_at_the_top_of_others_recode = labelled(certain_groups_are_at_the_top_of_others_recode, c(`Disagree strongly` = 1, `Disagree somewhat` = 2, `Neither agree nor disagree` = 3, `Agree somewhat` = 4, `Agree strongly`=5))) %>% 
  mutate(group_equality_recode = case_when(
group_equality ==1 ~ 1,
group_equality ==2 ~ 2,
group_equality ==3 ~ 3,
group_equality ==4 ~ 4, 
group_equality ==5 ~ 5),
group_equality_recode = labelled(group_equality_recode, c(`Disagree strongly` = 5, `Disagree somewhat` = 4, `Neither agree nor disagree` = 3, `Agree somewhat` = 2, `Agree strongly`=1))) %>% 
  mutate(everyone_equality_recode = case_when(
everyone_equality ==1 ~ 1,
everyone_equality ==2 ~ 2,
everyone_equality ==3 ~ 3,
everyone_equality ==4 ~ 4, 
everyone_equality ==5 ~ 5),
everyone_equality_recode = labelled(everyone_equality_recode, c(`Disagree strongly` = 5, `Disagree somewhat` = 4, `Neither agree nor disagree` = 3, `Agree somewhat` = 2, `Agree strongly`=1)))%>% 
  mutate(no_one_right_way_to_live_life_recode = case_when(
no_one_right_way_to_live_life ==1 ~ 1,
no_one_right_way_to_live_life ==2 ~ 2,
no_one_right_way_to_live_life ==3 ~ 3,
no_one_right_way_to_live_life ==4 ~ 4, 
no_one_right_way_to_live_life ==5 ~ 5),
no_one_right_way_to_live_life_recode = labelled(no_one_right_way_to_live_life_recode, c(`Disagree strongly` = 5, `Disagree somewhat` = 4, `Neither agree nor disagree` = 3, `Agree somewhat` = 2, `Agree strongly`=1))) %>% 
  mutate(deft_traditional_ways_recode = case_when(
deft_traditional_ways ==1 ~ 1,
deft_traditional_ways ==2 ~ 2,
deft_traditional_ways ==3 ~ 3,
deft_traditional_ways ==4 ~ 4, 
deft_traditional_ways ==5 ~ 5),
deft_traditional_ways_recode = labelled(deft_traditional_ways_recode, c(`Disagree strongly` = 5, `Disagree somewhat` = 4, `Neither agree nor disagree` = 3, `Agree somewhat` = 2, `Agree strongly`=1))) %>% 
  mutate(follow_tradition_recode = case_when(
follow_tradition ==1 ~ 5,
follow_tradition ==2 ~ 4,
follow_tradition ==3 ~ 3,
follow_tradition ==4 ~ 2, 
follow_tradition ==5 ~ 1),
follow_tradition_recode = labelled(follow_tradition_recode, c(`Disagree strongly` = 1, `Disagree somewhat` = 2, `Neither agree nor disagree` = 3, `Agree somewhat` = 4, `Agree strongly`=5))) %>% 
  mutate(need_a_strong_determined_leader_recode = case_when(
need_a_strong_determined_leader ==1 ~ 5,
need_a_strong_determined_leader ==2 ~ 4,
need_a_strong_determined_leader ==3 ~ 3,
need_a_strong_determined_leader ==4 ~ 2, 
need_a_strong_determined_leader ==5 ~ 1),
need_a_strong_determined_leader_recode = labelled(need_a_strong_determined_leader_recode, c(`Disagree strongly` = 1, `Disagree somewhat` = 2, `Neither agree nor disagree` = 3, `Agree somewhat` = 4, `Agree strongly`=5))) %>% 
  mutate(tradition_show_the_best_way_to_live_recode = case_when(
tradition_show_the_best_way_to_live ==1 ~ 5,
tradition_show_the_best_way_to_live ==2 ~ 4,
tradition_show_the_best_way_to_live ==3 ~ 3,
tradition_show_the_best_way_to_live ==4 ~ 2, 
tradition_show_the_best_way_to_live ==5 ~ 1),
tradition_show_the_best_way_to_live_recode = labelled(tradition_show_the_best_way_to_live_recode, c(`Disagree strongly` = 1, `Disagree somewhat` = 2, `Neither agree nor disagree` = 3, `Agree somewhat` = 4, `Agree strongly`=5)))

data_recode<- data_recode%>%select(ends_with("recode"))

head(data_recode)
# A tibble: 6 × 9
  certain_groups_stay_in_same_pla…¹ certain_groups_are_a…² group_equality_recode
  <dbl+lbl>                         <dbl+lbl>              <dbl+lbl>            
1 2 [Disagree somewhat]             1 [Disagree strongly]  3 [Neither agree nor…
2 4 [Agree somewhat]                3 [Neither agree nor … 2 [Agree somewhat]   
3 3 [Neither agree nor disagree]    3 [Neither agree nor … 3 [Neither agree nor…
4 3 [Neither agree nor disagree]    1 [Disagree strongly]  1 [Agree strongly]   
5 4 [Agree somewhat]                3 [Neither agree nor … 5 [Disagree strongly]
6 2 [Disagree somewhat]             3 [Neither agree nor … 4 [Disagree somewhat]
# ℹ abbreviated names: ¹​certain_groups_stay_in_same_place_recode,
#   ²​certain_groups_are_at_the_top_of_others_recode
# ℹ 6 more variables: everyone_equality_recode <dbl+lbl>,
#   no_one_right_way_to_live_life_recode <dbl+lbl>,
#   deft_traditional_ways_recode <dbl+lbl>, follow_tradition_recode <dbl+lbl>,
#   need_a_strong_determined_leader_recode <dbl+lbl>,
#   tradition_show_the_best_way_to_live_recode <dbl+lbl>

Separate two scales

data_sdo<- data_recode%>%select(`certain_groups_stay_in_same_place_recode`, `certain_groups_are_at_the_top_of_others_recode`, `group_equality_recode`, `everyone_equality_recode`)
head(data_sdo)
# A tibble: 6 × 4
  certain_groups_stay_in_same_pla…¹ certain_groups_are_a…² group_equality_recode
  <dbl+lbl>                         <dbl+lbl>              <dbl+lbl>            
1 2 [Disagree somewhat]             1 [Disagree strongly]  3 [Neither agree nor…
2 4 [Agree somewhat]                3 [Neither agree nor … 2 [Agree somewhat]   
3 3 [Neither agree nor disagree]    3 [Neither agree nor … 3 [Neither agree nor…
4 3 [Neither agree nor disagree]    1 [Disagree strongly]  1 [Agree strongly]   
5 4 [Agree somewhat]                3 [Neither agree nor … 5 [Disagree strongly]
6 2 [Disagree somewhat]             3 [Neither agree nor … 4 [Disagree somewhat]
# ℹ abbreviated names: ¹​certain_groups_stay_in_same_place_recode,
#   ²​certain_groups_are_at_the_top_of_others_recode
# ℹ 1 more variable: everyone_equality_recode <dbl+lbl>
data_rwa<-data_recode%>%select(`no_one_right_way_to_live_life_recode`, `deft_traditional_ways_recode`, `follow_tradition_recode`, `need_a_strong_determined_leader_recode`, `tradition_show_the_best_way_to_live_recode`)
head(data_rwa)
# A tibble: 6 × 5
  no_one_right_way_to_live_life_…¹ deft_traditional_way…² follow_tradition_rec…³
  <dbl+lbl>                        <dbl+lbl>              <dbl+lbl>             
1 2 [Agree somewhat]               2 [Agree somewhat]     2 [Disagree somewhat] 
2 3 [Neither agree nor disagree]   3 [Neither agree nor … 3 [Neither agree nor …
3 1 [Agree strongly]               2 [Agree somewhat]     2 [Disagree somewhat] 
4 2 [Agree somewhat]               3 [Neither agree nor … 4 [Agree somewhat]    
5 5 [Disagree strongly]            1 [Agree strongly]     5 [Agree strongly]    
6 5 [Disagree strongly]            5 [Disagree strongly]  3 [Neither agree nor …
# ℹ abbreviated names: ¹​no_one_right_way_to_live_life_recode,
#   ²​deft_traditional_ways_recode, ³​follow_tradition_recode
# ℹ 2 more variables: need_a_strong_determined_leader_recode <dbl+lbl>,
#   tradition_show_the_best_way_to_live_recode <dbl+lbl>

Assignment questions

Test Cronbach’s alpha

Evaluating Correlations

#Step 1: Evaluate correlations 
cor_matrix_sdo<-cor(data_sdo, use = "pairwise.complete.obs") #Saves correlation matrix
cor_matrix_rwa<-cor(data_rwa, use = "pairwise.complete.obs") #Saves correlation matrix
 
# Display correlation matrix as a table
cor_table_sdo <- round(cor_matrix_sdo, 2)
print(cor_table_sdo)
                                               certain_groups_stay_in_same_place_recode
certain_groups_stay_in_same_place_recode                                           1.00
certain_groups_are_at_the_top_of_others_recode                                     0.53
group_equality_recode                                                              0.11
everyone_equality_recode                                                           0.08
                                               certain_groups_are_at_the_top_of_others_recode
certain_groups_stay_in_same_place_recode                                                 0.53
certain_groups_are_at_the_top_of_others_recode                                           1.00
group_equality_recode                                                                    0.23
everyone_equality_recode                                                                 0.16
                                               group_equality_recode
certain_groups_stay_in_same_place_recode                        0.11
certain_groups_are_at_the_top_of_others_recode                  0.23
group_equality_recode                                           1.00
everyone_equality_recode                                        0.66
                                               everyone_equality_recode
certain_groups_stay_in_same_place_recode                           0.08
certain_groups_are_at_the_top_of_others_recode                     0.16
group_equality_recode                                              0.66
everyone_equality_recode                                           1.00
cor_table_sdo <- round(cor_matrix_rwa, 2)
print(cor_table_sdo)
                                           no_one_right_way_to_live_life_recode
no_one_right_way_to_live_life_recode                                       1.00
deft_traditional_ways_recode                                               0.47
follow_tradition_recode                                                    0.13
need_a_strong_determined_leader_recode                                     0.14
tradition_show_the_best_way_to_live_recode                                 0.19
                                           deft_traditional_ways_recode
no_one_right_way_to_live_life_recode                               0.47
deft_traditional_ways_recode                                       1.00
follow_tradition_recode                                            0.23
need_a_strong_determined_leader_recode                             0.19
tradition_show_the_best_way_to_live_recode                         0.29
                                           follow_tradition_recode
no_one_right_way_to_live_life_recode                          0.13
deft_traditional_ways_recode                                  0.23
follow_tradition_recode                                       1.00
need_a_strong_determined_leader_recode                        0.64
tradition_show_the_best_way_to_live_recode                    0.54
                                           need_a_strong_determined_leader_recode
no_one_right_way_to_live_life_recode                                         0.14
deft_traditional_ways_recode                                                 0.19
follow_tradition_recode                                                      0.64
need_a_strong_determined_leader_recode                                       1.00
tradition_show_the_best_way_to_live_recode                                   0.59
                                           tradition_show_the_best_way_to_live_recode
no_one_right_way_to_live_life_recode                                             0.19
deft_traditional_ways_recode                                                     0.29
follow_tradition_recode                                                          0.54
need_a_strong_determined_leader_recode                                           0.59
tradition_show_the_best_way_to_live_recode                                       1.00

The table shows the correlation for each item measuring the concept of Social Dominance Orientation (SDO) and Right Wing Authoritarianism (RWA). 0.6 or higher are expected if variables measure the same concepts. Accordingly, for the concept of “Social Dominance Orientation,” the correlation number for variables “Group equality should be our ideal (C5_T3)” and “We should do what we can to equalize conditions for everyone (C5_T4)” is equal or higher than 0.6. For the “Right Wing Authoritarianism (RWA),” the correlation number for variables “Our country will be great if we honor the ways of our forefathers, do what the authorities tell us to do, and get rid of the “rotten apples” who are ruining everything (C5_U3)” and “What our country needs is a strong, determined leader who will crush evil and take us back to our true path(C5_U4)” is equal or higher than 0.6.

Alpha Calculation

#Calculate Cronbach's Alpha using 'psych' package
##Generic format 'alpha(data, na.rm=TRUE, check.keys=TRUE) #check.keys=TRUE is important as it checks the scale direction and, if necessary, flips the order of the scale prior to running the analysis. 
psych::alpha(data_sdo, na.rm = TRUE,  check.keys=TRUE)

Reliability analysis   
Call: psych::alpha(x = data_sdo, na.rm = TRUE, check.keys = TRUE)

  raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd median_r
      0.63      0.63    0.67       0.3 1.7 0.016  2.6 0.79      0.2

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

 Reliability if an item is dropped:
                                               raw_alpha std.alpha G6(smc)
certain_groups_stay_in_same_place_recode            0.63      0.62    0.60
certain_groups_are_at_the_top_of_others_recode      0.55      0.54    0.55
group_equality_recode                               0.48      0.51    0.47
everyone_equality_recode                            0.54      0.55    0.51
                                               average_r S/N alpha se var.r
certain_groups_stay_in_same_place_recode            0.35 1.6    0.015 0.074
certain_groups_are_at_the_top_of_others_recode      0.29 1.2    0.019 0.108
group_equality_recode                               0.26 1.0    0.023 0.058
everyone_equality_recode                            0.29 1.2    0.020 0.047
                                               med.r
certain_groups_stay_in_same_place_recode        0.23
certain_groups_are_at_the_top_of_others_recode  0.11
group_equality_recode                           0.16
everyone_equality_recode                        0.23

 Item statistics 
                                                  n raw.r std.r r.cor r.drop
certain_groups_stay_in_same_place_recode       1553  0.60  0.63  0.45   0.29
certain_groups_are_at_the_top_of_others_recode 1556  0.66  0.70  0.55   0.42
group_equality_recode                          1553  0.75  0.73  0.65   0.50
everyone_equality_recode                       1555  0.73  0.69  0.60   0.43
                                               mean  sd
certain_groups_stay_in_same_place_recode        2.5 1.1
certain_groups_are_at_the_top_of_others_recode  2.2 1.0
group_equality_recode                           2.8 1.2
everyone_equality_recode                        2.8 1.3

Non missing response frequency for each item
                                                  1    2    3    4    5 miss
certain_groups_stay_in_same_place_recode       0.27 0.13 0.44 0.11 0.05 0.05
certain_groups_are_at_the_top_of_others_recode 0.33 0.20 0.39 0.06 0.01 0.05
group_equality_recode                          0.15 0.25 0.36 0.14 0.09 0.05
everyone_equality_recode                       0.17 0.29 0.23 0.16 0.15 0.05
psych::alpha(data_rwa, na.rm = TRUE,  check.keys=TRUE)

Reliability analysis   
Call: psych::alpha(x = data_rwa, na.rm = TRUE, check.keys = TRUE)

  raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd median_r
      0.72      0.72    0.73      0.34 2.6 0.011  2.8 0.82     0.26

    95% confidence boundaries 
         lower alpha upper
Feldt      0.7  0.72  0.74
Duhachek   0.7  0.72  0.74

 Reliability if an item is dropped:
                                           raw_alpha std.alpha G6(smc)
no_one_right_way_to_live_life_recode            0.75      0.74    0.72
deft_traditional_ways_recode                    0.71      0.70    0.69
follow_tradition_recode                         0.64      0.64    0.64
need_a_strong_determined_leader_recode          0.64      0.64    0.63
tradition_show_the_best_way_to_live_recode      0.63      0.63    0.64
                                           average_r S/N alpha se var.r med.r
no_one_right_way_to_live_life_recode            0.41 2.8    0.010 0.040  0.42
deft_traditional_ways_recode                    0.37 2.4    0.012 0.059  0.37
follow_tradition_recode                         0.31 1.8    0.015 0.033  0.24
need_a_strong_determined_leader_recode          0.31 1.8    0.015 0.027  0.26
tradition_show_the_best_way_to_live_recode      0.30 1.7    0.015 0.044  0.21

 Item statistics 
                                              n raw.r std.r r.cor r.drop mean
no_one_right_way_to_live_life_recode       1556  0.55  0.56  0.39   0.29  2.3
deft_traditional_ways_recode               1553  0.61  0.63  0.49   0.40  2.4
follow_tradition_recode                    1553  0.75  0.74  0.68   0.57  2.9
need_a_strong_determined_leader_recode     1548  0.76  0.74  0.69   0.57  3.1
tradition_show_the_best_way_to_live_recode 1554  0.77  0.76  0.69   0.60  3.3
                                            sd
no_one_right_way_to_live_life_recode       1.2
deft_traditional_ways_recode               1.1
follow_tradition_recode                    1.2
need_a_strong_determined_leader_recode     1.3
tradition_show_the_best_way_to_live_recode 1.2

Non missing response frequency for each item
                                              1    2    3    4    5 miss
no_one_right_way_to_live_life_recode       0.30 0.37 0.18 0.09 0.07 0.05
deft_traditional_ways_recode               0.19 0.38 0.27 0.10 0.05 0.05
follow_tradition_recode                    0.17 0.21 0.30 0.23 0.09 0.05
need_a_strong_determined_leader_recode     0.16 0.14 0.30 0.24 0.16 0.05
tradition_show_the_best_way_to_live_recode 0.10 0.16 0.26 0.32 0.17 0.05

The R code below calculates Cronbach’s Alpha through the psych package after using the “na.rm=TRUE” function to remove the missing data and the “check.keys=TRUE” function to flip the reverse-coded variables.

When analyzing the alpha results, “raw_alpha” and “Reliability if an item is dropped” are the two things that need to be emphasized. For “raw_alpha,” 0.7 or larger is usually considered a reliable. In addition, the “Reliability if an item is dropped” shows how alpha would change if the items are removed, which shows how well each item fits with the overall concept. The increase of “raw_alpha” shows the item is not part of the scale and might be considered to be removed from the measurement. If the “raw_alpha” goes down, it shows the item is crucial for the factor and should be kept in the measurement.

For the Social Dominance Orientation (SDO) scale, the raw_alpha is 0.63. It shows there is a space for scales to improve reliability. If removing “If certain groups stayed in their place, we would have fewer problems (C5_T1)”, the raw_alpha stays the same. If removing “It’s probably a good thing that certain groups are at the top and other groups are at the bottom (C5_T2),” the raw_alpha drops to 0.55. If removing “Group equality should be our ideal (C5_T3),” the raw_alpha drops to 0.48. If not include “We should do what we can to equalize conditions for everyone (C5_T),” the raw_alpha drops to 0.54. Accordingly, the results show that every element is essential for the scale except “If certain groups stayed in their place, we would have fewer problems (C5_T1).”

For the Right Wing Authoritarianism (RWA) scale, the raw_alpha is 0.72, which means the reliability is just right. If removing “There is no ONE right way to live life; everybody has to create their way. (C5_U1)”, the raw_alpha increased to 0.75, if not including “Our country needs free thinkers who will have the courage to defy traditional ways, even if this upsets many people. (C5_U2),” the raw_alpha dropped to 0.71. If not include “Our country will be great if we honor the ways of our forefathers, do what the authorities tell us to do, and get rid of the “rotten apples” who are ruining everything (C5_U3), ” the raw_alpha drops to 0.64. If not include “What our country really needs is a strong, determined leader who will crush evil and take us back to our true path (C5_U4),” the raw_alpha drops to 0.64. If not include “The ‘old-fashioned ways’ and ‘old-fashioned values’ still show the best way to live. (C5_U5),” the raw_alpha drops to 0.63. Accordingly, the results show that the variable “There is no ONE right way to live life; everybody has to create their own way. (C5_U1)” might be considered to be removed from the measurement.

Factor Analysis

Evaluating Correlations

cor_matrix<-cor(data_recode, use = "pairwise.complete.obs") #Saves correlation matrix
cor_matrix <- round(cor_matrix, 2)
cor_matrix
                                               certain_groups_stay_in_same_place_recode
certain_groups_stay_in_same_place_recode                                           1.00
certain_groups_are_at_the_top_of_others_recode                                     0.53
group_equality_recode                                                              0.11
everyone_equality_recode                                                           0.08
no_one_right_way_to_live_life_recode                                               0.12
deft_traditional_ways_recode                                                       0.17
follow_tradition_recode                                                            0.46
need_a_strong_determined_leader_recode                                             0.44
tradition_show_the_best_way_to_live_recode                                         0.40
                                               certain_groups_are_at_the_top_of_others_recode
certain_groups_stay_in_same_place_recode                                                 0.53
certain_groups_are_at_the_top_of_others_recode                                           1.00
group_equality_recode                                                                    0.23
everyone_equality_recode                                                                 0.16
no_one_right_way_to_live_life_recode                                                     0.09
deft_traditional_ways_recode                                                             0.14
follow_tradition_recode                                                                  0.34
need_a_strong_determined_leader_recode                                                   0.30
tradition_show_the_best_way_to_live_recode                                               0.29
                                               group_equality_recode
certain_groups_stay_in_same_place_recode                        0.11
certain_groups_are_at_the_top_of_others_recode                  0.23
group_equality_recode                                           1.00
everyone_equality_recode                                        0.66
no_one_right_way_to_live_life_recode                            0.14
deft_traditional_ways_recode                                    0.25
follow_tradition_recode                                         0.06
need_a_strong_determined_leader_recode                          0.09
tradition_show_the_best_way_to_live_recode                      0.19
                                               everyone_equality_recode
certain_groups_stay_in_same_place_recode                           0.08
certain_groups_are_at_the_top_of_others_recode                     0.16
group_equality_recode                                              0.66
everyone_equality_recode                                           1.00
no_one_right_way_to_live_life_recode                               0.13
deft_traditional_ways_recode                                       0.25
follow_tradition_recode                                            0.06
need_a_strong_determined_leader_recode                             0.09
tradition_show_the_best_way_to_live_recode                         0.21
                                               no_one_right_way_to_live_life_recode
certain_groups_stay_in_same_place_recode                                       0.12
certain_groups_are_at_the_top_of_others_recode                                 0.09
group_equality_recode                                                          0.14
everyone_equality_recode                                                       0.13
no_one_right_way_to_live_life_recode                                           1.00
deft_traditional_ways_recode                                                   0.47
follow_tradition_recode                                                        0.13
need_a_strong_determined_leader_recode                                         0.14
tradition_show_the_best_way_to_live_recode                                     0.19
                                               deft_traditional_ways_recode
certain_groups_stay_in_same_place_recode                               0.17
certain_groups_are_at_the_top_of_others_recode                         0.14
group_equality_recode                                                  0.25
everyone_equality_recode                                               0.25
no_one_right_way_to_live_life_recode                                   0.47
deft_traditional_ways_recode                                           1.00
follow_tradition_recode                                                0.23
need_a_strong_determined_leader_recode                                 0.19
tradition_show_the_best_way_to_live_recode                             0.29
                                               follow_tradition_recode
certain_groups_stay_in_same_place_recode                          0.46
certain_groups_are_at_the_top_of_others_recode                    0.34
group_equality_recode                                             0.06
everyone_equality_recode                                          0.06
no_one_right_way_to_live_life_recode                              0.13
deft_traditional_ways_recode                                      0.23
follow_tradition_recode                                           1.00
need_a_strong_determined_leader_recode                            0.64
tradition_show_the_best_way_to_live_recode                        0.54
                                               need_a_strong_determined_leader_recode
certain_groups_stay_in_same_place_recode                                         0.44
certain_groups_are_at_the_top_of_others_recode                                   0.30
group_equality_recode                                                            0.09
everyone_equality_recode                                                         0.09
no_one_right_way_to_live_life_recode                                             0.14
deft_traditional_ways_recode                                                     0.19
follow_tradition_recode                                                          0.64
need_a_strong_determined_leader_recode                                           1.00
tradition_show_the_best_way_to_live_recode                                       0.59
                                               tradition_show_the_best_way_to_live_recode
certain_groups_stay_in_same_place_recode                                             0.40
certain_groups_are_at_the_top_of_others_recode                                       0.29
group_equality_recode                                                                0.19
everyone_equality_recode                                                             0.21
no_one_right_way_to_live_life_recode                                                 0.19
deft_traditional_ways_recode                                                         0.29
follow_tradition_recode                                                              0.54
need_a_strong_determined_leader_recode                                               0.59
tradition_show_the_best_way_to_live_recode                                           1.00

The correlation matrix for all the variables shows the correlation between variables to see how they relate to each other or not. It is worth noting that all variables are positively correlated. However, some variables do not significantly correlate with others. In addition, the results indicate that around four factors are measured by the variables listed above.

Screeplot

scree(data_recode)

According to the scree plot, based on the principle eigenvalues are equal and greater than one and point when the line “flattens” out, both Principal Axis Factor analysis(PAF) and Principal Component Factor analysis (PCF) show that four items might best describe the scale.

Estimate the Factor Analysis

paf_result_no_2 <- fa(data_recode, nfactors =2, rotate = "none", fm="pa") #paf model
print(paf_result_no_2, cut = 0.3) #Reports same Eigenvalues as reported in Scree Plot
Factor Analysis using method =  pa
Call: fa(r = data_recode, nfactors = 2, rotate = "none", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                PA1   PA2    h2   u2 com
certain_groups_stay_in_same_place_recode       0.60       0.402 0.60 1.2
certain_groups_are_at_the_top_of_others_recode 0.51       0.257 0.74 1.0
group_equality_recode                          0.41  0.70 0.651 0.35 1.6
everyone_equality_recode                       0.38  0.68 0.611 0.39 1.6
no_one_right_way_to_live_life_recode                      0.097 0.90 1.4
deft_traditional_ways_recode                   0.40       0.200 0.80 1.4
follow_tradition_recode                        0.71 -0.33 0.610 0.39 1.4
need_a_strong_determined_leader_recode         0.70       0.582 0.42 1.3
tradition_show_the_best_way_to_live_recode     0.70       0.508 0.49 1.1

                       PA1  PA2
SS loadings           2.67 1.25
Proportion Var        0.30 0.14
Cumulative Var        0.30 0.44
Proportion Explained  0.68 0.32
Cumulative Proportion 0.68 1.00

Mean item complexity =  1.3
Test of the hypothesis that 2 factors are sufficient.

df null model =  36  with the objective function =  2.77 with Chi Square =  4519.61
df of  the model are 19  and the objective function was  0.4 

The root mean square of the residuals (RMSR) is  0.08 
The df corrected root mean square of the residuals is  0.11 

The harmonic n.obs is  1549 with the empirical chi square  651.61  with prob <  6.3e-126 
The total n.obs was  1635  with Likelihood Chi Square =  659.1  with prob <  1.6e-127 

Tucker Lewis Index of factoring reliability =  0.729
RMSEA index =  0.144  and the 90 % confidence intervals are  0.134 0.153
BIC =  518.51
Fit based upon off diagonal values = 0.94
Measures of factor score adequacy             
                                                   PA1  PA2
Correlation of (regression) scores with factors   0.92 0.87
Multiple R square of scores with factors          0.85 0.76
Minimum correlation of possible factor scores     0.69 0.52
fa.diagram(paf_result_no_2) #Graphs the relationship

paf_result_no_4 <- fa(data_recode, nfactors =4, rotate = "none", fm="pa") #paf model
print(paf_result_no_4,cut = 0.3) #Reports same Eigenvalues as reported in Scree Plot
Factor Analysis using method =  pa
Call: fa(r = data_recode, nfactors = 4, rotate = "none", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                PA1   PA2   PA3   PA4   h2   u2
certain_groups_stay_in_same_place_recode       0.63              0.32 0.59 0.41
certain_groups_are_at_the_top_of_others_recode 0.55              0.39 0.53 0.47
group_equality_recode                          0.40  0.67             0.67 0.33
everyone_equality_recode                       0.38  0.68             0.67 0.33
no_one_right_way_to_live_life_recode           0.32        0.51       0.43 0.57
deft_traditional_ways_recode                   0.46        0.50       0.55 0.45
follow_tradition_recode                        0.69 -0.33             0.60 0.40
need_a_strong_determined_leader_recode         0.71 -0.32             0.68 0.32
tradition_show_the_best_way_to_live_recode     0.69                   0.54 0.46
                                               com
certain_groups_stay_in_same_place_recode       2.0
certain_groups_are_at_the_top_of_others_recode 2.3
group_equality_recode                          1.9
everyone_equality_recode                       1.9
no_one_right_way_to_live_life_recode           2.2
deft_traditional_ways_recode                   2.6
follow_tradition_recode                        1.5
need_a_strong_determined_leader_recode         1.7
tradition_show_the_best_way_to_live_recode     1.2

                       PA1  PA2  PA3  PA4
SS loadings           2.78 1.31 0.71 0.45
Proportion Var        0.31 0.15 0.08 0.05
Cumulative Var        0.31 0.46 0.53 0.58
Proportion Explained  0.53 0.25 0.14 0.09
Cumulative Proportion 0.53 0.78 0.91 1.00

Mean item complexity =  1.9
Test of the hypothesis that 4 factors are sufficient.

df null model =  36  with the objective function =  2.77 with Chi Square =  4519.61
df of  the model are 6  and the objective function was  0.01 

The root mean square of the residuals (RMSR) is  0.01 
The df corrected root mean square of the residuals is  0.02 

The harmonic n.obs is  1549 with the empirical chi square  5.81  with prob <  0.45 
The total n.obs was  1635  with Likelihood Chi Square =  18.48  with prob <  0.0051 

Tucker Lewis Index of factoring reliability =  0.983
RMSEA index =  0.036  and the 90 % confidence intervals are  0.018 0.055
BIC =  -25.92
Fit based upon off diagonal values = 1
Measures of factor score adequacy             
                                                   PA1  PA2  PA3  PA4
Correlation of (regression) scores with factors   0.94 0.89 0.77 0.72
Multiple R square of scores with factors          0.87 0.79 0.60 0.52
Minimum correlation of possible factor scores     0.75 0.58 0.20 0.04
fa.diagram(paf_result_no_4) #Graphs the relationship

Below are the factor analyses through PAF with different numbers of factors (2, 4) and rotation types (None, Orthogonal [varimax], and Oblique [oblimin]).

For the two-factor solution, “SS loadings” show that all two factors have eigenvalues greater than one. The proportion of the variance indicates that Factor One clearly explains 30% of the variance while Factor Two adds 14% of the explanation.

Regarding the four-factor solution, the eigenvalues of the first and second factors are greater than one, while the third and fourth factors’ eigenvalues are below one. The proportion of the variance shows that factor one explains 31% of the variance, and factor four increases by 5% of the explanation.

The next step is to measure which variables are loaded in which factors. About the two-factor solution, factor one is loaded on “Our country will be great if we honor the ways of our forefathers, do what the authorities tell us to do, and get rid of the “rotten apples” who are ruining everything (C5_U3),” “What our country really needs is a strong, determined leader who will crush evil and take us back to our true path (C5_U4),” and “The ‘old-fashioned ways’ and ‘old-fashioned values’ still show the best way to live. (C5_U5).” Factor two is loaded on “Group equality should be our ideal (C5_T3)” and “We should do what we can to equalize conditions for everyone (C5_T4).” Because the other four factors are not included, it is time to expand the number of factors when analyzing.

When moving to four-factor analysis, factor two loads the variables “Group equality should be our ideal (C5_T3)” and “We should do what we can to equalize conditions for everyone (C5_T4)” Factor three loads variables “There is no ONE right way to live life; everybody has to create their own way. (C5_U1)” and “Our country needs free thinkers who will have the courage to defy traditional ways, even if this upsets many people. (C5_U2).” Factor four loaded on “If certain groups stayed in their place, we would have fewer problems (C5_T1)” and “It’s probably a good thing that certain groups are at the top and other groups are at the bottom (C5_T2).” It is also worth noting that factor one does not have a clear factor analysis when unrotated. Thus, it is reasonable to introduce rotation to get more precise results.

Tucker-Lewis Index and the Root Mean Square Error of Approximation (RMSEA) are used to measure the fit statistics. The good fitting model for TLI is greater than or equal to 0.95, and the traditional cut-point for the RMSEA result is less than 0.05. According to the two-factor solution, the TLI is 0.729, and RMSEA is 0.08. By contrast, the TIL for the four-factor solution is 0.983, and the RMSR is 0.01 for the four-factor solution. Accordingly, the four-factor solution is better to describe the item.

The graphic below shows items that might create some latent factor.

Rotation

paf_result_var_4 <- fa(data_recode, nfactors =4, rotate = "varimax", fm="pa") #PAF approach with varimax rotation
print(paf_result_var_4,cut = 0.3)
Factor Analysis using method =  pa
Call: fa(r = data_recode, nfactors = 4, rotate = "varimax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                PA1   PA2  PA4  PA3   h2   u2
certain_groups_stay_in_same_place_recode       0.39       0.66      0.59 0.41
certain_groups_are_at_the_top_of_others_recode            0.68      0.53 0.47
group_equality_recode                                0.79           0.67 0.33
everyone_equality_recode                             0.81           0.67 0.33
no_one_right_way_to_live_life_recode                           0.64 0.43 0.57
deft_traditional_ways_recode                                   0.69 0.55 0.45
follow_tradition_recode                        0.72                 0.60 0.40
need_a_strong_determined_leader_recode         0.80                 0.68 0.32
tradition_show_the_best_way_to_live_recode     0.67                 0.54 0.46
                                               com
certain_groups_stay_in_same_place_recode       1.7
certain_groups_are_at_the_top_of_others_recode 1.3
group_equality_recode                          1.1
everyone_equality_recode                       1.1
no_one_right_way_to_live_life_recode           1.1
deft_traditional_ways_recode                   1.3
follow_tradition_recode                        1.3
need_a_strong_determined_leader_recode         1.1
tradition_show_the_best_way_to_live_recode     1.5

                       PA1  PA2  PA4  PA3
SS loadings           1.83 1.37 1.06 0.99
Proportion Var        0.20 0.15 0.12 0.11
Cumulative Var        0.20 0.36 0.47 0.58
Proportion Explained  0.35 0.26 0.20 0.19
Cumulative Proportion 0.35 0.61 0.81 1.00

Mean item complexity =  1.3
Test of the hypothesis that 4 factors are sufficient.

df null model =  36  with the objective function =  2.77 with Chi Square =  4519.61
df of  the model are 6  and the objective function was  0.01 

The root mean square of the residuals (RMSR) is  0.01 
The df corrected root mean square of the residuals is  0.02 

The harmonic n.obs is  1549 with the empirical chi square  5.81  with prob <  0.45 
The total n.obs was  1635  with Likelihood Chi Square =  18.48  with prob <  0.0051 

Tucker Lewis Index of factoring reliability =  0.983
RMSEA index =  0.036  and the 90 % confidence intervals are  0.018 0.055
BIC =  -25.92
Fit based upon off diagonal values = 1
Measures of factor score adequacy             
                                                   PA1  PA2  PA4  PA3
Correlation of (regression) scores with factors   0.87 0.89 0.78 0.79
Multiple R square of scores with factors          0.76 0.78 0.61 0.62
Minimum correlation of possible factor scores     0.53 0.57 0.23 0.24
fa.diagram(paf_result_var_4) #Graphs the relationship

paf_result_obl_4 <- fa(data_recode, nfactors =4, rotate = "oblimin", fm="pa") #PAF approach with oblimin rotation
Loading required namespace: GPArotation
print (paf_result_obl_4, cut = 0.3) 
Factor Analysis using method =  pa
Call: fa(r = data_recode, nfactors = 4, rotate = "oblimin", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                 PA1   PA2   PA4   PA3   h2
certain_groups_stay_in_same_place_recode                    0.68       0.59
certain_groups_are_at_the_top_of_others_recode              0.74       0.53
group_equality_recode                                 0.80             0.67
everyone_equality_recode                              0.82             0.67
no_one_right_way_to_live_life_recode                              0.68 0.43
deft_traditional_ways_recode                                      0.70 0.55
follow_tradition_recode                         0.71                   0.60
need_a_strong_determined_leader_recode          0.85                   0.68
tradition_show_the_best_way_to_live_recode      0.68                   0.54
                                                 u2 com
certain_groups_stay_in_same_place_recode       0.41 1.1
certain_groups_are_at_the_top_of_others_recode 0.47 1.0
group_equality_recode                          0.33 1.0
everyone_equality_recode                       0.33 1.0
no_one_right_way_to_live_life_recode           0.57 1.0
deft_traditional_ways_recode                   0.45 1.0
follow_tradition_recode                        0.40 1.1
need_a_strong_determined_leader_recode         0.32 1.0
tradition_show_the_best_way_to_live_recode     0.46 1.1

                       PA1  PA2  PA4  PA3
SS loadings           1.80 1.37 1.10 1.00
Proportion Var        0.20 0.15 0.12 0.11
Cumulative Var        0.20 0.35 0.47 0.58
Proportion Explained  0.34 0.26 0.21 0.19
Cumulative Proportion 0.34 0.60 0.81 1.00

 With factor correlations of 
     PA1  PA2  PA4  PA3
PA1 1.00 0.14 0.59 0.33
PA2 0.14 1.00 0.21 0.33
PA4 0.59 0.21 1.00 0.23
PA3 0.33 0.33 0.23 1.00

Mean item complexity =  1
Test of the hypothesis that 4 factors are sufficient.

df null model =  36  with the objective function =  2.77 with Chi Square =  4519.61
df of  the model are 6  and the objective function was  0.01 

The root mean square of the residuals (RMSR) is  0.01 
The df corrected root mean square of the residuals is  0.02 

The harmonic n.obs is  1549 with the empirical chi square  5.81  with prob <  0.45 
The total n.obs was  1635  with Likelihood Chi Square =  18.48  with prob <  0.0051 

Tucker Lewis Index of factoring reliability =  0.983
RMSEA index =  0.036  and the 90 % confidence intervals are  0.018 0.055
BIC =  -25.92
Fit based upon off diagonal values = 1
Measures of factor score adequacy             
                                                   PA1  PA2  PA4  PA3
Correlation of (regression) scores with factors   0.91 0.90 0.86 0.83
Multiple R square of scores with factors          0.84 0.81 0.74 0.68
Minimum correlation of possible factor scores     0.67 0.61 0.48 0.36
fa.diagram(paf_result_obl_4) #Graphs the relationship

After adding the orthogonal and oblique rotation, the value for “SS loadings” is close to eigenvalues equal to or greater than one, like “1.80 1.37 1.10 1.00” for oblique rotation. The proportion variance does not have huge differences, such as “0.20 0.15 0.12 0.11” for oblique rotation. It shows rotations are effectively displaying the pattern more clearly. It is also interesting to discover that oblique rotation performs better on eigenvalues and variances than orthogonal rotation.

Comparing PCF and PAF Approaches

The analysis below uses the PCF approach with no rotation, orthogonal rotation, and oblique rotation.

pcf_result_no_4 <- principal(data_recode, nfactors =4, rotate = "none") #PCF approach with no rotation
print (pcf_result_no_4, cut = 0.3) #Reports same Eigenvalues as reported in Scree Plot
Principal Components Analysis
Call: principal(r = data_recode, nfactors = 4, rotate = "none")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                PC1   PC2   PC3   PC4   h2   u2
certain_groups_stay_in_same_place_recode       0.68              0.40 0.74 0.26
certain_groups_are_at_the_top_of_others_recode 0.60       -0.33  0.59 0.83 0.17
group_equality_recode                          0.42  0.72 -0.35       0.82 0.18
everyone_equality_recode                       0.40  0.73 -0.33       0.83 0.17
no_one_right_way_to_live_life_recode           0.37  0.31  0.71       0.78 0.22
deft_traditional_ways_recode                   0.50  0.38  0.56       0.71 0.29
follow_tradition_recode                        0.73 -0.38             0.73 0.27
need_a_strong_determined_leader_recode         0.73 -0.35       -0.33 0.77 0.23
tradition_show_the_best_way_to_live_recode     0.76             -0.34 0.71 0.29
                                               com
certain_groups_stay_in_same_place_recode       2.2
certain_groups_are_at_the_top_of_others_recode 2.6
group_equality_recode                          2.1
everyone_equality_recode                       2.1
no_one_right_way_to_live_life_recode           2.2
deft_traditional_ways_recode                   2.8
follow_tradition_recode                        1.7
need_a_strong_determined_leader_recode         1.9
tradition_show_the_best_way_to_live_recode     1.5

                       PC1  PC2  PC3  PC4
SS loadings           3.19 1.67 1.19 0.88
Proportion Var        0.35 0.19 0.13 0.10
Cumulative Var        0.35 0.54 0.67 0.77
Proportion Explained  0.46 0.24 0.17 0.13
Cumulative Proportion 0.46 0.70 0.87 1.00

Mean item complexity =  2.1
Test of the hypothesis that 4 components are sufficient.

The root mean square of the residuals (RMSR) is  0.07 
 with the empirical chi square  625.62  with prob <  6.9e-132 

Fit based upon off diagonal values = 0.95
fa.diagram(pcf_result_no_4) #Graphs the relationship

pcf_result_var_4 <- principal(data_recode,nfactors = 4,  rotate = "varimax") #PCF approach with varimax rotation
print (pcf_result_var_4, cut = 0.3) #Rotation reveals cleaner factors that are obscured 
Principal Components Analysis
Call: principal(r = data_recode, nfactors = 4, rotate = "varimax")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                RC1   RC2  RC4  RC3   h2   u2
certain_groups_stay_in_same_place_recode       0.39       0.76      0.74 0.26
certain_groups_are_at_the_top_of_others_recode            0.89      0.83 0.17
group_equality_recode                                0.89           0.82 0.18
everyone_equality_recode                             0.90           0.83 0.17
no_one_right_way_to_live_life_recode                           0.88 0.78 0.22
deft_traditional_ways_recode                                   0.80 0.71 0.29
follow_tradition_recode                        0.81                 0.73 0.27
need_a_strong_determined_leader_recode         0.86                 0.77 0.23
tradition_show_the_best_way_to_live_recode     0.80                 0.71 0.29
                                               com
certain_groups_stay_in_same_place_recode       1.5
certain_groups_are_at_the_top_of_others_recode 1.1
group_equality_recode                          1.1
everyone_equality_recode                       1.0
no_one_right_way_to_live_life_recode           1.0
deft_traditional_ways_recode                   1.2
follow_tradition_recode                        1.2
need_a_strong_determined_leader_recode         1.1
tradition_show_the_best_way_to_live_recode     1.2

                       RC1  RC2  RC4  RC3
SS loadings           2.24 1.71 1.50 1.48
Proportion Var        0.25 0.19 0.17 0.16
Cumulative Var        0.25 0.44 0.61 0.77
Proportion Explained  0.32 0.25 0.22 0.21
Cumulative Proportion 0.32 0.57 0.79 1.00

Mean item complexity =  1.2
Test of the hypothesis that 4 components are sufficient.

The root mean square of the residuals (RMSR) is  0.07 
 with the empirical chi square  625.62  with prob <  6.9e-132 

Fit based upon off diagonal values = 0.95
fa.diagram(pcf_result_var_4)

pcf_result_obl_4 <- principal(data_recode,nfactors = 4,  rotate = "oblimin") #PCF approach with oblimin rotation
print (pcf_result_obl_4, cut = 0.3) #Rotation reveals cleaner factors that are obscured 
Principal Components Analysis
Call: principal(r = data_recode, nfactors = 4, rotate = "oblimin")
Standardized loadings (pattern matrix) based upon correlation matrix
                                                 TC1   TC2   TC3   TC4   h2
certain_groups_stay_in_same_place_recode                          0.75 0.74
certain_groups_are_at_the_top_of_others_recode                    0.93 0.83
group_equality_recode                                 0.89             0.82
everyone_equality_recode                              0.91             0.83
no_one_right_way_to_live_life_recode                        0.91       0.78
deft_traditional_ways_recode                                0.79       0.71
follow_tradition_recode                         0.81                   0.73
need_a_strong_determined_leader_recode          0.89                   0.77
tradition_show_the_best_way_to_live_recode      0.82                   0.71
                                                 u2 com
certain_groups_stay_in_same_place_recode       0.26 1.2
certain_groups_are_at_the_top_of_others_recode 0.17 1.0
group_equality_recode                          0.18 1.0
everyone_equality_recode                       0.17 1.0
no_one_right_way_to_live_life_recode           0.22 1.0
deft_traditional_ways_recode                   0.29 1.1
follow_tradition_recode                        0.27 1.1
need_a_strong_determined_leader_recode         0.23 1.0
tradition_show_the_best_way_to_live_recode     0.29 1.1

                       TC1  TC2  TC3  TC4
SS loadings           2.25 1.71 1.48 1.51
Proportion Var        0.25 0.19 0.16 0.17
Cumulative Var        0.25 0.44 0.60 0.77
Proportion Explained  0.32 0.25 0.21 0.22
Cumulative Proportion 0.32 0.57 0.78 1.00

 With component correlations of 
     TC1  TC2  TC3  TC4
TC1 1.00 0.12 0.23 0.42
TC2 0.12 1.00 0.21 0.16
TC3 0.23 0.21 1.00 0.14
TC4 0.42 0.16 0.14 1.00

Mean item complexity =  1.1
Test of the hypothesis that 4 components are sufficient.

The root mean square of the residuals (RMSR) is  0.07 
 with the empirical chi square  625.62  with prob <  6.9e-132 

Fit based upon off diagonal values = 0.95
fa.diagram(pcf_result_obl_4)

After comparing the “ss loadings” and proportion of variances for PAF and PCF when no rotation, orthogonal rotation, and oblique rotation, it seems that the PCF performs better because the number of “ss loadings” is higher, and the number of proportion variance is close to each other. However, it is also worth noting that the RMSR for the PCF approach is all over 0.05.

In conclusion, the method used for analysis might be the PAF approach with orthogonal rotation.

Conclusion For Factor Analysis

According to the analysis above, the eigenvalues for each factor would be: Factor one: 1.8, Factor two: 1.37, Factor three: 1.00, Factor four: 1.10

According to the graphic PAF approach with Orthogonal rotation, the first potential factor is established by “Our country will be great if we honor the ways of our forefathers, do what the authorities tell us to do, and get rid of the “rotten apples” who are ruining everything (C5_U3)” “What our country really needs is a strong, determined leader who will crush evil and take us back to our true path (C5_U4)” and “The ‘old-fashioned ways’ and ‘old-fashioned values’ still show the best way to live. (C5_U5)” It could be named “Approve Right Wing Authoritarianism.” The second factor contains elements “Group equality should be our ideal (C5_T3)” and “We should do what we can to equalize conditions for everyone (C5_T4)” The name for this factor will be “Disapprove Social Dominance Orientation (SDO).” The third factor involves “If certain groups stayed in their place, we would have fewer problems (C5_T1)” and It’s probably a good thing that certain groups are at the top and other groups are at the bottom (C5_T2)” It is named “Approve Social Dominance Orientation (SDO).” The fourth factor would be “There is no ONE right way to live life; everybody has to create their own way. (C5_U1)” and “Our country needs free thinkers who will have the courage to defy traditional ways, even if this upsets many people. (C5_U2)” . It is called “Disapprove Right Wing Authoritarianism.”

About Latent Concept

In conclusion, Social Dominance Orientation and Right Wing Authoritarianism measure different underlying concepts as there are no one variables that intersect to target a potential concept. Besides, it will make measurement more precise when having subdivisions of “approval” and “disapproval.” The latent concepts listed in the “Conclusion For Factor Analysis” section also show each scale is multidimensional rather than one-dimensional. In addition, various variables measure the front and back sides of each concept, which also creates potential concepts.

In addition, in the graphic for factor analysis, it is interesting to find that “Approve Right Wing Authoritarianism” and “Approve Social Dominance Orientation (SDO)” have some correlation (0.6) as they both somewhat mention authority, hierarchy, and some traditional belief.

New Variables

#With the new variables coded in same direction, we create the new scale 'racial_resent'
data_recode <- data_recode %>%
  mutate(sdo_disapprove= (group_equality_recode+ everyone_equality_recode) / 2) #Add across individual items and divide by the total number of items. Note this uses casewise deletion so any case that did not answer each question is removed from the calculation 

summary(data_recode$sdo_disapprove) #Examine the 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  1.000   2.000   3.000   2.796   3.500   5.000      84 
data_recode %>% 
  count(sdo_disapprove)
# A tibble: 10 × 2
   sdo_disapprove     n
            <dbl> <int>
 1            1     158
 2            1.5   106
 3            2     278
 4            2.5   221
 5            3     331
 6            3.5   120
 7            4     155
 8            4.5    65
 9            5     117
10           NA      84
data_sdo_new<- data_recode%>%select(`certain_groups_stay_in_same_place_recode`, `certain_groups_are_at_the_top_of_others_recode`, `group_equality_recode`, `everyone_equality_recode`, `sdo_disapprove`)
head(data_sdo_new)
# A tibble: 6 × 5
  certain_groups_stay_in_same_pla…¹ certain_groups_are_a…² group_equality_recode
  <dbl+lbl>                         <dbl+lbl>              <dbl+lbl>            
1 2 [Disagree somewhat]             1 [Disagree strongly]  3 [Neither agree nor…
2 4 [Agree somewhat]                3 [Neither agree nor … 2 [Agree somewhat]   
3 3 [Neither agree nor disagree]    3 [Neither agree nor … 3 [Neither agree nor…
4 3 [Neither agree nor disagree]    1 [Disagree strongly]  1 [Agree strongly]   
5 4 [Agree somewhat]                3 [Neither agree nor … 5 [Disagree strongly]
6 2 [Disagree somewhat]             3 [Neither agree nor … 4 [Disagree somewhat]
# ℹ abbreviated names: ¹​certain_groups_stay_in_same_place_recode,
#   ²​certain_groups_are_at_the_top_of_others_recode
# ℹ 2 more variables: everyone_equality_recode <dbl+lbl>, sdo_disapprove <dbl>
# Calculate the correlation matrix
cor_matrix_sdo_new <- cor(data_sdo_new, use = "complete.obs") #Note "complete.obs" removes any case with a NA value  

# View the correlation matrix
print(cor_matrix_sdo_new)
                                               certain_groups_stay_in_same_place_recode
certain_groups_stay_in_same_place_recode                                     1.00000000
certain_groups_are_at_the_top_of_others_recode                               0.53277759
group_equality_recode                                                        0.11141678
everyone_equality_recode                                                     0.07920163
sdo_disapprove                                                               0.10346339
                                               certain_groups_are_at_the_top_of_others_recode
certain_groups_stay_in_same_place_recode                                            0.5327776
certain_groups_are_at_the_top_of_others_recode                                      1.0000000
group_equality_recode                                                               0.2323543
everyone_equality_recode                                                            0.1662058
sdo_disapprove                                                                      0.2163672
                                               group_equality_recode
certain_groups_stay_in_same_place_recode                   0.1114168
certain_groups_are_at_the_top_of_others_recode             0.2323543
group_equality_recode                                      1.0000000
everyone_equality_recode                                   0.6636009
sdo_disapprove                                             0.9012425
                                               everyone_equality_recode
certain_groups_stay_in_same_place_recode                     0.07920163
certain_groups_are_at_the_top_of_others_recode               0.16620581
group_equality_recode                                        0.66360089
everyone_equality_recode                                     1.00000000
sdo_disapprove                                               0.92222262
                                               sdo_disapprove
certain_groups_stay_in_same_place_recode            0.1034634
certain_groups_are_at_the_top_of_others_recode      0.2163672
group_equality_recode                               0.9012425
everyone_equality_recode                            0.9222226
sdo_disapprove                                      1.0000000

The new variable measures the “Disapprove Social Dominance Orientation (SDO).” According to the correlation between new variables and other original variables, the new variables are highly correlated with the two original variables, “Group equality should be our ideal (C5_T3)” and “We should do what we can to equalize conditions for everyone (C5_T4).” (The numbers are 0.9012425 and 0.92222262.”)

Reference:

“Cronbach’s Alpha” by Dr. CEStapleton https://rpubs.com/DACSS_Prof/1271415

“Factor Analysis Tutorial Using Political Emotions” by Dr. CEStapleton https://rpubs.com/DACSS_Prof/1271348