Hypothesis 3a

Zero-sum mindset predicts general beliefs that the world is scarce, competitive, unimprovable, interconnected, hierarchical, dangerous, and unfair.

Hypothesis 3b

The zero-sum mindset is not reducible to any single primal world belief or personality trait.

# Load required libraries
library(glmnet)
library(here)
library(readr)
library(tidyverse)
library(apaTables)

Load the dataset

s6 <- read_csv(here("data", "s6.csv"))
s6_subset <- select(s6, zsm_mean, p_changing, p_interconnected, p_abundant, p_hierarchical, p_just, p_cooperative, p_improvable , p_harmless, O, C, E, A, N)

Zero-Order Correlations

apaTables::apa.cor.table(s6_subset)
## 
## 
## Means, standard deviations, and correlations with confidence intervals
##  
## 
##   Variable            M    SD   1            2            3          
##   1. zsm_mean         2.67 1.02                                      
##                                                                      
##   2. p_changing       3.49 0.81 .01                                  
##                                 [-.08, .10]                          
##                                                                      
##   3. p_interconnected 3.47 0.97 -.11*        .25**                   
##                                 [-.20, -.02] [.17, .33]              
##                                                                      
##   4. p_abundant       3.20 0.89 -.35**       -.12**       .15**      
##                                 [-.42, -.27] [-.21, -.04] [.06, .23] 
##                                                                      
##   5. p_hierarchical   2.50 0.96 .26**        .06          -.07       
##                                 [.18, .34]   [-.02, .15]  [-.15, .02]
##                                                                      
##   6. p_just           2.44 0.95 -.15**       -.11*        .04        
##                                 [-.24, -.06] [-.20, -.03] [-.05, .13]
##                                                                      
##   7. p_cooperative    2.51 1.05 -.37**       -.25**       .05        
##                                 [-.44, -.29] [-.33, -.17] [-.04, .14]
##                                                                      
##   8. p_improvable     3.32 0.80 -.30**       .03          .31**      
##                                 [-.38, -.22] [-.06, .12]  [.23, .38] 
##                                                                      
##   9. p_harmless       2.13 1.00 -.23**       -.32**       .04        
##                                 [-.31, -.14] [-.40, -.24] [-.04, .13]
##                                                                      
##   10. O               3.96 0.80 -.09*        .12**        .27**      
##                                 [-.18, -.01] [.03, .21]   [.18, .34] 
##                                                                      
##   11. C               3.33 0.98 -.05         -.08         .05        
##                                 [-.14, .04]  [-.17, .01]  [-.03, .14]
##                                                                      
##   12. E               2.71 0.95 -.03         -.10*        .08        
##                                 [-.12, .05]  [-.19, -.02] [-.01, .17]
##                                                                      
##   13. A               3.76 0.63 -.32**       .05          .19**      
##                                 [-.39, -.23] [-.04, .13]  [.10, .27] 
##                                                                      
##   14. N               3.06 0.97 .09          .15**        -.02       
##                                 [-.00, .17]  [.07, .24]   [-.11, .07]
##                                                                      
##   4            5            6            7            8            9           
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##                                                                                
##   -.06                                                                         
##   [-.15, .03]                                                                  
##                                                                                
##   .53**        .15**                                                           
##   [.46, .59]   [.06, .24]                                                      
##                                                                                
##   .49**        -.33**       .41**                                              
##   [.42, .55]   [-.41, -.25] [.33, .48]                                         
##                                                                                
##   .57**        -.03         .47**        .39**                                 
##   [.50, .62]   [-.11, .06]  [.40, .54]   [.32, .47]                            
##                                                                                
##   .38**        -.18**       .34**        .58**        .32**                    
##   [.30, .45]   [-.27, -.10] [.26, .41]   [.52, .63]   [.24, .40]               
##                                                                                
##   .11*         -.18**       -.06         .06          .18**        -.05        
##   [.02, .20]   [-.26, -.09] [-.15, .03]  [-.03, .14]  [.10, .27]   [-.13, .04] 
##                                                                                
##   .14**        .12**        .19**        .04          .17**        .02         
##   [.06, .23]   [.04, .21]   [.11, .28]   [-.05, .12]  [.09, .26]   [-.07, .11] 
##                                                                                
##   .28**        .04          .25**        .13**        .28**        .14**       
##   [.20, .36]   [-.05, .13]  [.17, .33]   [.05, .22]   [.20, .36]   [.06, .23]  
##                                                                                
##   .23**        -.16**       .19**        .29**        .28**        .28**       
##   [.15, .31]   [-.25, -.08] [.10, .27]   [.21, .37]   [.20, .36]   [.19, .36]  
##                                                                                
##   -.38**       -.03         -.35**       -.26**       -.33**       -.31**      
##   [-.45, -.30] [-.11, .06]  [-.42, -.27] [-.34, -.17] [-.41, -.25] [-.39, -.23]
##                                                                                
##   10          11           12           13          
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##                                                     
##   -.01                                              
##   [-.10, .08]                                       
##                                                     
##   .20**       .33**                                 
##   [.11, .28]  [.25, .41]                            
##                                                     
##   .16**       .16**        .15**                    
##   [.07, .24]  [.07, .24]   [.07, .24]               
##                                                     
##   -.09        -.47**       -.50**       -.25**      
##   [-.17, .00] [-.53, -.40] [-.57, -.44] [-.33, -.16]
##                                                     
## 
## Note. M and SD are used to represent mean and standard deviation, respectively.
## Values in square brackets indicate the 95% confidence interval.
## The confidence interval is a plausible range of population correlations 
## that could have caused the sample correlation (Cumming, 2014).
##  * indicates p < .05. ** indicates p < .01.
## 

Full OLS Model - All Primals and BFI

test <- lm(scale(s6$zsm_mean) ~  scale(s6$p_abundant) + scale(s6$p_cooperative) + scale(s6$p_hierarchical) + scale(s6$p_improvable) + scale(s6$p_just) + scale(s6$p_changing) + scale(s6$p_harmless) + scale(s6$p_interconnected) + scale(s6$E) + scale(s6$N) + scale(s6$A) + scale(s6$C) + scale(s6$O))

summary(test)
## 
## Call:
## lm(formula = scale(s6$zsm_mean) ~ scale(s6$p_abundant) + scale(s6$p_cooperative) + 
##     scale(s6$p_hierarchical) + scale(s6$p_improvable) + scale(s6$p_just) + 
##     scale(s6$p_changing) + scale(s6$p_harmless) + scale(s6$p_interconnected) + 
##     scale(s6$E) + scale(s6$N) + scale(s6$A) + scale(s6$C) + scale(s6$O))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.2682 -0.5857 -0.0849  0.5091  4.1309 
## 
## Coefficients:
##                              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                -2.051e-15  3.899e-02   0.000 1.000000    
## scale(s6$p_abundant)       -2.248e-01  5.400e-02  -4.163 3.71e-05 ***
## scale(s6$p_cooperative)    -1.782e-01  5.622e-02  -3.170 0.001619 ** 
## scale(s6$p_hierarchical)    1.564e-01  4.481e-02   3.489 0.000528 ***
## scale(s6$p_improvable)     -1.249e-01  5.299e-02  -2.358 0.018788 *  
## scale(s6$p_just)            6.807e-02  5.173e-02   1.316 0.188847    
## scale(s6$p_changing)       -3.928e-02  4.427e-02  -0.887 0.375435    
## scale(s6$p_harmless)        9.798e-03  5.209e-02   0.188 0.850881    
## scale(s6$p_interconnected)  1.788e-02  4.389e-02   0.407 0.683926    
## scale(s6$E)                 6.048e-02  4.706e-02   1.285 0.199308    
## scale(s6$N)                -9.199e-02  5.285e-02  -1.740 0.082432 .  
## scale(s6$A)                -1.932e-01  4.355e-02  -4.436 1.13e-05 ***
## scale(s6$C)                -5.803e-02  4.592e-02  -1.264 0.206943    
## scale(s6$O)                 7.467e-03  4.315e-02   0.173 0.862697    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8709 on 485 degrees of freedom
## Multiple R-squared:  0.2613, Adjusted R-squared:  0.2415 
## F-statistic: 13.19 on 13 and 485 DF,  p-value: < 2.2e-16
apa.reg.table(test)
## 
## 
## Regression results using scale(s6$zsm_mean) as the criterion
##  
## 
##                   Predictor       b       b_95%_CI  beta    beta_95%_CI sr2
##                 (Intercept)   -0.00  [-0.08, 0.08]                         
##        scale(s6$p_abundant) -0.22** [-0.33, -0.12] -0.22 [-0.33, -0.12] .03
##     scale(s6$p_cooperative) -0.18** [-0.29, -0.07] -0.18 [-0.29, -0.07] .02
##    scale(s6$p_hierarchical)  0.16**   [0.07, 0.24]  0.16   [0.07, 0.24] .02
##      scale(s6$p_improvable)  -0.12* [-0.23, -0.02] -0.12 [-0.23, -0.02] .01
##            scale(s6$p_just)    0.07  [-0.03, 0.17]  0.07  [-0.03, 0.17] .00
##        scale(s6$p_changing)   -0.04  [-0.13, 0.05] -0.04  [-0.13, 0.05] .00
##        scale(s6$p_harmless)    0.01  [-0.09, 0.11]  0.01  [-0.09, 0.11] .00
##  scale(s6$p_interconnected)    0.02  [-0.07, 0.10]  0.02  [-0.07, 0.10] .00
##                 scale(s6$E)    0.06  [-0.03, 0.15]  0.06  [-0.03, 0.15] .00
##                 scale(s6$N)   -0.09  [-0.20, 0.01] -0.09  [-0.20, 0.01] .00
##                 scale(s6$A) -0.19** [-0.28, -0.11] -0.19 [-0.28, -0.11] .03
##                 scale(s6$C)   -0.06  [-0.15, 0.03] -0.06  [-0.15, 0.03] .00
##                 scale(s6$O)    0.01  [-0.08, 0.09]  0.01  [-0.08, 0.09] .00
##                                                                            
##                                                                            
##                                                                            
##   sr2_95%_CI      r             Fit
##                                    
##   [.00, .05] -.35**                
##  [-.00, .03] -.37**                
##  [-.00, .04]  .26**                
##  [-.01, .02] -.30**                
##  [-.01, .01] -.15**                
##  [-.00, .01]    .01                
##  [-.00, .00] -.23**                
##  [-.00, .00]  -.11*                
##  [-.01, .01]   -.03                
##  [-.01, .01]    .09                
##   [.00, .06] -.32**                
##  [-.01, .01]   -.05                
##  [-.00, .00]  -.09*                
##                         R2 = .261**
##                     95% CI[.18,.30]
##                                    
## 
## Note. A significant b-weight indicates the beta-weight and semi-partial correlation are also significant.
## b represents unstandardized regression weights. beta indicates the standardized regression weights. 
## sr2 represents the semi-partial correlation squared. r represents the zero-order correlation.
## Square brackets are used to enclose the lower and upper limits of a confidence interval.
## * indicates p < .05. ** indicates p < .01.
## 
#adds demographics
test <- lm(scale(s6$zsm_mean) ~  scale(s6$p_abundant) + scale(s6$p_cooperative) + scale(s6$p_hierarchical) + scale(s6$p_improvable) + scale(s6$p_just) + scale(s6$p_changing) + scale(s6$p_harmless) + scale(s6$p_interconnected) + scale(s6$E) + scale(s6$N) + scale(s6$A) + scale(s6$C) + scale(s6$O) + scale(s6$age) + scale(s6$income) + scale(s6$education) + s6$sex + s6$race)

summary(test)
## 
## Call:
## lm(formula = scale(s6$zsm_mean) ~ scale(s6$p_abundant) + scale(s6$p_cooperative) + 
##     scale(s6$p_hierarchical) + scale(s6$p_improvable) + scale(s6$p_just) + 
##     scale(s6$p_changing) + scale(s6$p_harmless) + scale(s6$p_interconnected) + 
##     scale(s6$E) + scale(s6$N) + scale(s6$A) + scale(s6$C) + scale(s6$O) + 
##     scale(s6$age) + scale(s6$income) + scale(s6$education) + 
##     s6$sex + s6$race)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3097 -0.5205 -0.0687  0.4702  4.1150 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    0.16073    0.14946   1.075 0.282752    
## scale(s6$p_abundant)          -0.21259    0.05625  -3.779 0.000179 ***
## scale(s6$p_cooperative)       -0.18589    0.05887  -3.158 0.001697 ** 
## scale(s6$p_hierarchical)       0.14183    0.04627   3.065 0.002306 ** 
## scale(s6$p_improvable)        -0.11024    0.05557  -1.984 0.047887 *  
## scale(s6$p_just)               0.05111    0.05417   0.944 0.345918    
## scale(s6$p_changing)          -0.07132    0.04627  -1.542 0.123895    
## scale(s6$p_harmless)           0.02243    0.05446   0.412 0.680583    
## scale(s6$p_interconnected)     0.02259    0.04573   0.494 0.621659    
## scale(s6$E)                    0.08260    0.04926   1.677 0.094250 .  
## scale(s6$N)                   -0.07208    0.05769  -1.249 0.212136    
## scale(s6$A)                   -0.18903    0.04586  -4.122 4.48e-05 ***
## scale(s6$C)                   -0.02784    0.04851  -0.574 0.566265    
## scale(s6$O)                   -0.00646    0.04541  -0.142 0.886927    
## scale(s6$age)                 -0.07631    0.04574  -1.668 0.095944 .  
## scale(s6$income)              -0.06987    0.04444  -1.572 0.116594    
## scale(s6$education)           -0.01249    0.04292  -0.291 0.771130    
## s6$sexMale                     0.05663    0.08980   0.631 0.528589    
## s6$raceBlack/African American  0.09222    0.20932   0.441 0.659741    
## s6$raceLatinx                 -0.05839    0.20398  -0.286 0.774806    
## s6$raceMixed                  -0.47407    0.22590  -2.099 0.036412 *  
## s6$raceOther                   0.17377    0.32559   0.534 0.593801    
## s6$raceWhite                  -0.24689    0.15221  -1.622 0.105490    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8706 on 448 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.2908, Adjusted R-squared:  0.256 
## F-statistic: 8.349 on 22 and 448 DF,  p-value: < 2.2e-16

Lasso

Remove rows with missing values

s6_subset <- na.omit(s6_subset)

Split the data into training and testing sets

set.seed(1)
train_index <- sample(1:nrow(s6_subset), 0.7 * nrow(s6_subset))
train_data <- s6_subset[train_index, ]
test_data <- s6_subset[-train_index, ]
class(train_data$zsm_mean)
## [1] "numeric"

Perform Lasso regression for feature selection

#x <- as.matrix(train_data[, -1])
x <- select(train_data, -zsm_mean)
y <- train_data$zsm_mean  # Assuming "zsm_mean" is the first column in the subset
# Impute missing values in x

x <- makeX(x)

lasso_model <- cv.glmnet(x, y, alpha = 1)

# Find the optimal lambda value
opt_lambda <- lasso_model$lambda.min

# Fit the final Lasso model with optimal lambda
lasso_final <- glmnet(x, y, alpha = 1, lambda = opt_lambda)
summary(lasso_final)
##           Length Class     Mode   
## a0         1     -none-    numeric
## beta      13     dgCMatrix S4     
## df         1     -none-    numeric
## dim        2     -none-    numeric
## lambda     1     -none-    numeric
## dev.ratio  1     -none-    numeric
## nulldev    1     -none-    numeric
## npasses    1     -none-    numeric
## jerr       1     -none-    numeric
## offset     1     -none-    logical
## call       5     -none-    call   
## nobs       1     -none-    numeric
lasso_final$beta
## 13 x 1 sparse Matrix of class "dgCMatrix"
##                           s0
## p_changing       -0.03824982
## p_interconnected  .         
## p_abundant       -0.26236402
## p_hierarchical    0.22241089
## p_just            0.03399125
## p_cooperative    -0.12775129
## p_improvable     -0.11830800
## p_harmless        .         
## O                 .         
## C                 .         
## E                 0.09907955
## A                -0.32067195
## N                -0.05097192
# Extract selected features
selected_features <- coef(lasso_final)[-1, ]
selected_features <- selected_features[selected_features != 0]

Selected Features

Abundant, Cooperative, Changing, Hierarchical, Improvable, Just, Extraversion, Neuroticism, Agreeableness,

test <- lm(s6$zsm_mean ~ s6$A + s6$p_abundant + s6$p_cooperative + s6$p_hierarchical + s6$p_improvable + s6$p_just +s6$p_changing + s6$E + s6$N)

summary(test)
## 
## Call:
## lm(formula = s6$zsm_mean ~ s6$A + s6$p_abundant + s6$p_cooperative + 
##     s6$p_hierarchical + s6$p_improvable + s6$p_just + s6$p_changing + 
##     s6$E + s6$N)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3595 -0.5924 -0.0917  0.5197  4.2032 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        5.22284    0.45583  11.458  < 2e-16 ***
## s6$A              -0.31482    0.06903  -4.561 6.45e-06 ***
## s6$p_abundant     -0.25204    0.06162  -4.090 5.04e-05 ***
## s6$p_cooperative  -0.16435    0.05050  -3.255 0.001214 ** 
## s6$p_hierarchical  0.15829    0.04680   3.382 0.000777 ***
## s6$p_improvable   -0.15149    0.06425  -2.358 0.018778 *  
## s6$p_just          0.06769    0.05459   1.240 0.215590    
## s6$p_changing     -0.04264    0.05191  -0.822 0.411726    
## s6$E               0.05960    0.04923   1.211 0.226627    
## s6$N              -0.07213    0.05096  -1.415 0.157622    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.884 on 489 degrees of freedom
## Multiple R-squared:  0.2583, Adjusted R-squared:  0.2446 
## F-statistic: 18.92 on 9 and 489 DF,  p-value: < 2.2e-16
apaTables::apa.reg.table(test, filename = "Primals, Personality, Regression.doc")
## 
## 
## Regression results using s6$zsm_mean as the criterion
##  
## 
##          Predictor       b       b_95%_CI  beta    beta_95%_CI sr2  sr2_95%_CI
##        (Intercept)  5.22**   [4.33, 6.12]                                     
##               s6$A -0.31** [-0.45, -0.18] -0.19 [-0.28, -0.11] .03  [.01, .06]
##      s6$p_abundant -0.25** [-0.37, -0.13] -0.22 [-0.33, -0.11] .03  [.00, .05]
##   s6$p_cooperative -0.16** [-0.26, -0.07] -0.17 [-0.27, -0.07] .02 [-.00, .04]
##  s6$p_hierarchical  0.16**   [0.07, 0.25]  0.15   [0.06, 0.24] .02 [-.00, .04]
##    s6$p_improvable  -0.15* [-0.28, -0.03] -0.12 [-0.22, -0.02] .01 [-.01, .02]
##          s6$p_just    0.07  [-0.04, 0.17]  0.06  [-0.04, 0.16] .00 [-.00, .01]
##      s6$p_changing   -0.04  [-0.14, 0.06] -0.03  [-0.12, 0.05] .00 [-.00, .01]
##               s6$E    0.06  [-0.04, 0.16]  0.06  [-0.03, 0.15] .00 [-.00, .01]
##               s6$N   -0.07  [-0.17, 0.03] -0.07  [-0.16, 0.03] .00 [-.01, .01]
##                                                                               
##                                                                               
##                                                                               
##       r             Fit
##                        
##  -.32**                
##  -.35**                
##  -.37**                
##   .26**                
##  -.30**                
##  -.15**                
##     .01                
##    -.03                
##     .09                
##             R2 = .258**
##         95% CI[.18,.31]
##                        
## 
## Note. A significant b-weight indicates the beta-weight and semi-partial correlation are also significant.
## b represents unstandardized regression weights. beta indicates the standardized regression weights. 
## sr2 represents the semi-partial correlation squared. r represents the zero-order correlation.
## Square brackets are used to enclose the lower and upper limits of a confidence interval.
## * indicates p < .05. ** indicates p < .01.
##