library(tidyverse)
library(summarytools)
library(psych)
library(lavaan)
library(semTools)
library(haven)
library(EGAnet)
library(lavaan.mi)
Mydata <- read_sav("/Users/niurongting/Desktop/JPPR/Crisis Emotion - Main Study-Final.sav")
head(Mydata)
## # A tibble: 6 × 201
## StartDate EndDate Status IPAddress Progress
## <dttm> <dttm> <dbl+lbl> <chr> <dbl>
## 1 2025-03-03 09:50:07 2025-03-03 09:54:14 0 [IP Address] 100.12.196.35 100
## 2 2025-03-03 09:50:10 2025-03-03 09:55:02 0 [IP Address] 72.0.134.210 100
## 3 2025-03-03 09:50:05 2025-03-03 09:55:41 0 [IP Address] 73.188.88.156 100
## 4 2025-03-03 09:50:03 2025-03-03 09:55:46 0 [IP Address] 47.39.239.232 100
## 5 2025-03-03 09:50:10 2025-03-03 09:55:53 0 [IP Address] 173.91.121.220 100
## 6 2025-03-03 09:50:07 2025-03-03 09:55:57 0 [IP Address] 73.85.98.93 100
## # ℹ 196 more variables: Duration__in_seconds_ <dbl>, Finished <dbl+lbl>,
## # RecordedDate <dttm>, ResponseId <chr>, RecipientLastName <chr>,
## # RecipientFirstName <chr>, RecipientEmail <chr>, ExternalReference <chr>,
## # LocationLatitude <chr>, LocationLongitude <chr>, DistributionChannel <chr>,
## # UserLanguage <chr>, S0Q1 <dbl+lbl>, Q79_First_Click <dbl>,
## # Q79_Last_Click <dbl>, Q79_Page_Submit <dbl>, Q79_Click_Count <dbl>,
## # Q80_First_Click <dbl>, Q80_Last_Click <dbl>, Q80_Page_Submit <dbl>, …
Mydata_ea <- select(Mydata, EmpatheticAnger__1:EmpatheticAnger__6)
Mydata_mo <- select(Mydata, Moraloutrage__1:Moraloutrage__6)
head(Mydata_ea)
## # A tibble: 6 × 6
## EmpatheticAnger__1 EmpatheticAnger__2 EmpatheticAnger__3 EmpatheticAnger__4
## <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl>
## 1 6 [Agree] 7 [Strongly agree] 7 [Strongly agree] 6 [Agree]
## 2 5 [Somewhat Agree] 5 [Somewhat Agree] 5 [Somewhat Agree] 5 [Somewhat Agree]
## 3 5 [Somewhat Agree] 5 [Somewhat Agree] 5 [Somewhat Agree] 5 [Somewhat Agree]
## 4 7 [Strongly agree] 7 [Strongly agree] 7 [Strongly agree] 7 [Strongly agree]
## 5 7 [Strongly agree] 7 [Strongly agree] 7 [Strongly agree] 7 [Strongly agree]
## 6 6 [Agree] 6 [Agree] 6 [Agree] 6 [Agree]
## # ℹ 2 more variables: EmpatheticAnger__5 <dbl+lbl>,
## # EmpatheticAnger__6 <dbl+lbl>
head(Mydata_mo)
## # A tibble: 6 × 6
## Moraloutrage__1 Moraloutrage__2 Moraloutrage__3 Moraloutrage__4
## <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl>
## 1 4 [Moderately] 4 [Moderately] 3 [Somewhat] 4 [Moderately]
## 2 4 [Moderately] 4 [Moderately] 4 [Moderately] 4 [Moderately]
## 3 4 [Moderately] 3 [Somewhat] 4 [Moderately] 4 [Moderately]
## 4 1 [Not at all] 1 [Not at all] 1 [Not at all] 1 [Not at all]
## 5 7 [Extremely] 7 [Extremely] 7 [Extremely] 7 [Extremely]
## 6 4 [Moderately] 1 [Not at all] 3 [Somewhat] 4 [Moderately]
## # ℹ 2 more variables: Moraloutrage__5 <dbl+lbl>, Moraloutrage__6 <dbl+lbl>
Mydata_ea <- Mydata %>%
select(EmpatheticAnger__1:EmpatheticAnger__6) %>%
mutate(across(everything(), haven::zap_labels))
print(dfSummary(Mydata_ea,
round.digits = 2,
varnumbers = FALSE,
valid.col = FALSE,
plain.ascii = FALSE,
graph.magnif = 0.76),
method = 'render')
pairs.panels(Mydata_ea,
method = "pearson",
density = TRUE,
gap=0) # show density plots

corPlot(Mydata_ea,scale=F)

Mydata_mo <- Mydata %>%
select(Moraloutrage__1:Moraloutrage__6) %>%
mutate(across(everything(), haven::zap_labels))
print(dfSummary(Mydata_mo,
round.digits = 2,
varnumbers = FALSE,
valid.col = FALSE,
plain.ascii = FALSE,
graph.magnif = 0.76),
method = 'render')
pairs.panels(Mydata_mo,
method = "pearson",
density = TRUE,
gap=0) # show density plots

corPlot(Mydata_mo,scale=F)

Mydata_mo2 <- Mydata %>%
select(Moraloutrage__2,Moraloutrage__5,Moraloutrage__6) %>%
mutate(across(everything(), haven::zap_labels))
print(dfSummary(Mydata_mo2,
round.digits = 2,
varnumbers = FALSE,
valid.col = FALSE,
plain.ascii = FALSE,
graph.magnif = 0.76),
method = 'render')
Data Frame Summary
Mydata_mo2
Dimensions: 482 x 3
Duplicates: 349
| Variable |
Label |
Stats / Values |
Freqs (% of Valid) |
Graph |
Missing |
| Moraloutrage__2
[numeric] |
Considering {{$CompanyName}} in the
crisis, how would you describe your
emotions toward the organization? -
Offended |
| Mean (sd) : 3.72 (2.07) | | min ≤ med ≤ max: | | 1 ≤ 4 ≤ 7 | | IQR (CV) : 3 (0.56) |
|
| 1 | : | 109 | ( | 22.6% | ) | | 2 | : | 53 | ( | 11.0% | ) | | 3 | : | 69 | ( | 14.3% | ) | | 4 | : | 61 | ( | 12.7% | ) | | 5 | : | 70 | ( | 14.5% | ) | | 6 | : | 61 | ( | 12.7% | ) | | 7 | : | 59 | ( | 12.2% | ) |
|
 |
0
(0.0%) |
| Moraloutrage__5
[numeric] |
Considering {{$CompanyName}} in the
crisis, how would you describe your
emotions toward the organization? -
Perturbed |
| Mean (sd) : 4.18 (1.91) | | min ≤ med ≤ max: | | 1 ≤ 4 ≤ 7 | | IQR (CV) : 3 (0.46) |
|
| 1 | : | 57 | ( | 11.8% | ) | | 2 | : | 54 | ( | 11.2% | ) | | 3 | : | 62 | ( | 12.9% | ) | | 4 | : | 88 | ( | 18.3% | ) | | 5 | : | 84 | ( | 17.4% | ) | | 6 | : | 69 | ( | 14.3% | ) | | 7 | : | 68 | ( | 14.1% | ) |
|
 |
0
(0.0%) |
| Moraloutrage__6
[numeric] |
Considering {{$CompanyName}} in the
crisis, how would you describe your
emotions toward the organization? -
Indignant |
| Mean (sd) : 3.77 (1.97) | | min ≤ med ≤ max: | | 1 ≤ 4 ≤ 7 | | IQR (CV) : 3 (0.52) |
|
| 1 | : | 93 | ( | 19.3% | ) | | 2 | : | 58 | ( | 12.0% | ) | | 3 | : | 56 | ( | 11.6% | ) | | 4 | : | 93 | ( | 19.3% | ) | | 5 | : | 76 | ( | 15.8% | ) | | 6 | : | 53 | ( | 11.0% | ) | | 7 | : | 53 | ( | 11.0% | ) |
|
 |
0
(0.0%) |
Generated by summarytools 1.1.4 (R version 4.4.1)
2025-10-20
pairs.panels(Mydata_mo2,
method = "pearson",
density = TRUE,
gap=0) # show density plots

corPlot(Mydata_mo2,scale=F)

Mydata_two <- Mydata %>%
select(
EmpatheticAnger__1:EmpatheticAnger__6,
Moraloutrage__2, Moraloutrage__3, Moraloutrage__5, Moraloutrage__6
) %>%
mutate(across(everything(), ~as.numeric(as.character(.))))
print(dfSummary(Mydata_two,
round.digits = 2,
varnumbers = FALSE,
valid.col = FALSE,
plain.ascii = FALSE,
graph.magnif = 0.76),
method = 'render')
pairs.panels(Mydata_two,
method = "pearson",
density = TRUE,
gap=0) # show density plots

corPlot(Mydata_two,scale=F)

TARGET <- matrix(0, 10, 2) #create a matrix of all zeros
TARGET[1:6, 1] <- 1 #add 1s for rows 1-5 in column 1
TARGET[7:10, 2] <- 1 #add 1s for rows 6-16 in column 2
print(TARGET) #double-check to make sure it is what you want (needs to match your data frame)
## [,1] [,2]
## [1,] 1 0
## [2,] 1 0
## [3,] 1 0
## [4,] 1 0
## [5,] 1 0
## [6,] 1 0
## [7,] 0 1
## [8,] 0 1
## [9,] 0 1
## [10,] 0 1
EFA
efa_target <- efa(Mydata_two,nfactors=2,rotation="target",rotation.args = list(target = TARGET),estimator="MLR",output="lavaan",std.lv=T)
## Warning: lavaan->lav_model_vcov():
## The variance-covariance matrix of the estimated parameters (vcov) does not
## appear to be positive definite! The smallest eigenvalue (= -1.496606e-32)
## is smaller than zero. This may be a symptom that the model is not
## identified.
summary(efa_target,fit.measures=T,rsquare=T,std=T)
## lavaan 0.6-19 ended normally after 1 iteration
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 31
## Row rank of the constraints matrix 14
##
## Rotation method TARGET OBLIQUE
## Rotation algorithm (rstarts) GPA (30)
## Standardized metric TRUE
## Row weights None
##
## Number of observations 482
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 71.292 35.181
## Degrees of freedom 26 26
## P-value (Chi-square) 0.000 0.108
## Scaling correction factor 2.026
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 5032.939 2344.732
## Degrees of freedom 45 45
## P-value 0.000 0.000
## Scaling correction factor 2.146
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.991 0.996
## Tucker-Lewis Index (TLI) 0.984 0.993
##
## Robust Comparative Fit Index (CFI) 0.996
## Robust Tucker-Lewis Index (TLI) 0.993
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -6890.195 -6890.195
## Scaling correction factor 1.827
## for the MLR correction
## Loglikelihood unrestricted model (H1) -6854.549 -6854.549
## Scaling correction factor 1.922
## for the MLR correction
##
## Akaike (AIC) 13838.390 13838.390
## Bayesian (BIC) 13959.550 13959.550
## Sample-size adjusted Bayesian (SABIC) 13867.507 13867.507
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.060 0.027
## 90 Percent confidence interval - lower 0.044 0.004
## 90 Percent confidence interval - upper 0.077 0.042
## P-value H_0: RMSEA <= 0.050 0.147 0.996
## P-value H_0: RMSEA >= 0.080 0.025 0.000
##
## Robust RMSEA 0.039
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.068
## P-value H_0: Robust RMSEA <= 0.050 0.704
## P-value H_0: Robust RMSEA >= 0.080 0.008
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.011 0.011
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## f1 =~ efa
## EmpthtcAngr__1 1.318 0.069 19.139 0.000 1.318 0.877
## EmpthtcAngr__2 1.347 0.068 19.677 0.000 1.347 0.908
## EmpthtcAngr__3 1.365 0.070 19.400 0.000 1.365 0.926
## EmpthtcAngr__4 1.370 0.077 17.821 0.000 1.370 0.862
## EmpthtcAngr__5 1.433 0.072 20.008 0.000 1.433 0.952
## EmpthtcAngr__6 1.582 0.065 24.379 0.000 1.582 1.017
## Moraloutrag__2 -0.182 0.059 -3.090 0.002 -0.182 -0.088
## Moraloutrag__3 0.029 0.044 0.673 0.501 0.029 0.015
## Moraloutrag__5 -0.129 0.063 -2.065 0.039 -0.129 -0.068
## Moraloutrag__6 -0.135 0.049 -2.780 0.005 -0.135 -0.069
## f2 =~ efa
## EmpthtcAngr__1 -0.012 0.056 -0.216 0.829 -0.012 -0.008
## EmpthtcAngr__2 -0.081 0.052 -1.561 0.119 -0.081 -0.054
## EmpthtcAngr__3 -0.032 0.043 -0.748 0.454 -0.032 -0.022
## EmpthtcAngr__4 -0.052 0.058 -0.898 0.369 -0.052 -0.033
## EmpthtcAngr__5 -0.091 0.048 -1.886 0.059 -0.091 -0.060
## EmpthtcAngr__6 -0.216 0.049 -4.428 0.000 -0.216 -0.139
## Moraloutrag__2 1.932 0.076 25.469 0.000 1.932 0.932
## Moraloutrag__3 1.865 0.053 35.065 0.000 1.865 0.925
## Moraloutrag__5 1.726 0.066 26.117 0.000 1.726 0.907
## Moraloutrag__6 1.852 0.060 31.052 0.000 1.852 0.941
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## f1 ~~
## f2 0.742 0.742 0.742
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EmpthtcAngr__1 0.544 0.073 7.501 0.000 0.544 0.241
## .EmpthtcAngr__2 0.539 0.097 5.574 0.000 0.539 0.245
## .EmpthtcAngr__3 0.375 0.055 6.763 0.000 0.375 0.173
## .EmpthtcAngr__4 0.751 0.111 6.793 0.000 0.751 0.298
## .EmpthtcAngr__5 0.396 0.055 7.200 0.000 0.396 0.175
## .EmpthtcAngr__6 0.374 0.078 4.772 0.000 0.374 0.155
## .Moraloutrag__2 1.050 0.164 6.385 0.000 1.050 0.244
## .Moraloutrag__3 0.506 0.506 0.124
## .Moraloutrag__5 0.960 0.960 0.265
## .Moraloutrag__6 0.794 NA 0.794 0.205
## f1 1.000 1.000 1.000
## f2 1.000 1.000 1.000
##
## R-Square:
## Estimate
## EmpthtcAngr__1 0.759
## EmpthtcAngr__2 0.755
## EmpthtcAngr__3 0.827
## EmpthtcAngr__4 0.702
## EmpthtcAngr__5 0.825
## EmpthtcAngr__6 0.845
## Moraloutrag__2 0.756
## Moraloutrag__3 0.876
## Moraloutrag__5 0.735
## Moraloutrag__6 0.795
CFA 2 Factor
CFA <- ' EmpAnger =~ EmpatheticAnger__1 + EmpatheticAnger__2 + EmpatheticAnger__3 +
EmpatheticAnger__4 + EmpatheticAnger__5 + EmpatheticAnger__6
MoralOutrage =~ Moraloutrage__2 + Moraloutrage__3 + Moraloutrage__5 + Moraloutrage__6'
cfa_fit <- cfa(data = Mydata,CFA,std.lv=T,estimator="MLR")
summary(cfa_fit,std=T,fit.measures=T,rsquare=T)
## lavaan 0.6-19 ended normally after 22 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 21
##
## Number of observations 482
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 90.142 50.157
## Degrees of freedom 34 34
## P-value (Chi-square) 0.000 0.037
## Scaling correction factor 1.797
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 5032.939 2344.732
## Degrees of freedom 45 45
## P-value 0.000 0.000
## Scaling correction factor 2.146
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.989 0.993
## Tucker-Lewis Index (TLI) 0.985 0.991
##
## Robust Comparative Fit Index (CFI) 0.994
## Robust Tucker-Lewis Index (TLI) 0.992
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -6899.620 -6899.620
## Scaling correction factor 2.123
## for the MLR correction
## Loglikelihood unrestricted model (H1) NA NA
## Scaling correction factor 1.922
## for the MLR correction
##
## Akaike (AIC) 13841.240 13841.240
## Bayesian (BIC) 13928.977 13928.977
## Sample-size adjusted Bayesian (SABIC) 13862.324 13862.324
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.059 0.031
## 90 Percent confidence interval - lower 0.044 0.016
## 90 Percent confidence interval - upper 0.073 0.045
## P-value H_0: RMSEA <= 0.050 0.159 0.992
## P-value H_0: RMSEA >= 0.080 0.008 0.000
##
## Robust RMSEA 0.042
## 90 Percent confidence interval - lower 0.011
## 90 Percent confidence interval - upper 0.066
## P-value H_0: Robust RMSEA <= 0.050 0.683
## P-value H_0: Robust RMSEA >= 0.080 0.003
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.019 0.019
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger =~
## EmpthtcAngr__1 1.310 0.060 21.798 0.000 1.310 0.872
## EmpthtcAngr__2 1.288 0.063 20.552 0.000 1.288 0.869
## EmpthtcAngr__3 1.342 0.064 21.008 0.000 1.342 0.911
## EmpthtcAngr__4 1.333 0.064 20.961 0.000 1.333 0.839
## EmpthtcAngr__5 1.367 0.063 21.716 0.000 1.367 0.909
## EmpthtcAngr__6 1.421 0.060 23.714 0.000 1.421 0.914
## MoralOutrage =~
## Moraloutrag__2 1.797 0.061 29.338 0.000 1.797 0.867
## Moraloutrag__3 1.893 0.046 40.894 0.000 1.893 0.939
## Moraloutrag__5 1.627 0.058 28.065 0.000 1.627 0.854
## Moraloutrag__6 1.748 0.055 31.606 0.000 1.748 0.889
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger ~~
## MoralOutrage 0.692 0.025 27.238 0.000 0.692 0.692
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EmpthtcAngr__1 0.542 0.073 7.418 0.000 0.542 0.240
## .EmpthtcAngr__2 0.539 0.097 5.545 0.000 0.539 0.245
## .EmpthtcAngr__3 0.371 0.055 6.765 0.000 0.371 0.171
## .EmpthtcAngr__4 0.746 0.111 6.748 0.000 0.746 0.296
## .EmpthtcAngr__5 0.395 0.054 7.349 0.000 0.395 0.174
## .EmpthtcAngr__6 0.398 0.080 4.980 0.000 0.398 0.165
## .Moraloutrag__2 1.067 0.159 6.707 0.000 1.067 0.248
## .Moraloutrag__3 0.481 0.062 7.757 0.000 0.481 0.118
## .Moraloutrag__5 0.980 0.103 9.501 0.000 0.980 0.270
## .Moraloutrag__6 0.814 0.117 6.980 0.000 0.814 0.210
## EmpAnger 1.000 1.000 1.000
## MoralOutrage 1.000 1.000 1.000
##
## R-Square:
## Estimate
## EmpthtcAngr__1 0.760
## EmpthtcAngr__2 0.755
## EmpthtcAngr__3 0.829
## EmpthtcAngr__4 0.704
## EmpthtcAngr__5 0.826
## EmpthtcAngr__6 0.835
## Moraloutrag__2 0.752
## Moraloutrag__3 0.882
## Moraloutrag__5 0.730
## Moraloutrag__6 0.790
# lavInspect(cfa_fit)
EFA vs.CFA
efavcfa <- compareFit(efa_target,cfa_fit)
summary(efavcfa,fit.measures=c("chisq", "df", "pvalue", "cfi", "rmsea","srmr","aic","bic"))
## ################### Nested Model Comparison #########################
##
## Scaled Chi-Squared Difference Test (method = "satorra.bentler.2001")
##
## lavaan->unknown():
## lavaan NOTE: The "Chisq" column contains standard test statistics, not the
## robust test that should be reported per model. A robust difference test is
## a function of two standard (not robust) statistics.
## Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
## efa_target 26 13838 13960 71.293
## cfa_fit 34 13841 13929 90.142 17.918 8 0.02185 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ####################### Model Fit Indices ###########################
## chisq df pvalue cfi rmsea srmr aic bic
## efa_target 71.292† 26 .000 .991† .060 .011† 13838.390† 13959.550
## cfa_fit 90.142 34 .000 .989 .059† .019 13841.240 13928.977†
##
## ################## Differences in Fit Indices #######################
## df cfi rmsea srmr aic bic
## cfa_fit - efa_target 8 -0.002 -0.002 0.008 2.85 -30.574
Setting the metric
marker_var <- ' EmpAnger =~ EmpatheticAnger__1 + EmpatheticAnger__2 + EmpatheticAnger__3 +
EmpatheticAnger__4 + EmpatheticAnger__5 + EmpatheticAnger__6
MoralOutrage =~ Moraloutrage__2 + Moraloutrage__3 + Moraloutrage__5 + Moraloutrage__6'
marker_fit <- cfa(data = Mydata, marker_var, estimator="MLR")
summary(marker_fit,std=T,fit.measures=T,rsquare=T)
## lavaan 0.6-19 ended normally after 35 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 21
##
## Number of observations 482
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 90.142 50.157
## Degrees of freedom 34 34
## P-value (Chi-square) 0.000 0.037
## Scaling correction factor 1.797
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 5032.939 2344.732
## Degrees of freedom 45 45
## P-value 0.000 0.000
## Scaling correction factor 2.146
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.989 0.993
## Tucker-Lewis Index (TLI) 0.985 0.991
##
## Robust Comparative Fit Index (CFI) 0.994
## Robust Tucker-Lewis Index (TLI) 0.992
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -6899.620 -6899.620
## Scaling correction factor 2.123
## for the MLR correction
## Loglikelihood unrestricted model (H1) NA NA
## Scaling correction factor 1.922
## for the MLR correction
##
## Akaike (AIC) 13841.240 13841.240
## Bayesian (BIC) 13928.977 13928.977
## Sample-size adjusted Bayesian (SABIC) 13862.324 13862.324
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.059 0.031
## 90 Percent confidence interval - lower 0.044 0.016
## 90 Percent confidence interval - upper 0.073 0.045
## P-value H_0: RMSEA <= 0.050 0.159 0.992
## P-value H_0: RMSEA >= 0.080 0.008 0.000
##
## Robust RMSEA 0.042
## 90 Percent confidence interval - lower 0.011
## 90 Percent confidence interval - upper 0.066
## P-value H_0: Robust RMSEA <= 0.050 0.683
## P-value H_0: Robust RMSEA >= 0.080 0.003
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.019 0.019
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger =~
## EmpthtcAngr__1 1.000 1.310 0.872
## EmpthtcAngr__2 0.984 0.030 33.197 0.000 1.288 0.869
## EmpthtcAngr__3 1.025 0.040 25.477 0.000 1.342 0.911
## EmpthtcAngr__4 1.018 0.043 23.500 0.000 1.333 0.839
## EmpthtcAngr__5 1.044 0.036 29.279 0.000 1.367 0.909
## EmpthtcAngr__6 1.085 0.033 32.749 0.000 1.421 0.914
## MoralOutrage =~
## Moraloutrag__2 1.000 1.797 0.867
## Moraloutrag__3 1.054 0.031 33.948 0.000 1.893 0.939
## Moraloutrag__5 0.905 0.036 25.113 0.000 1.627 0.854
## Moraloutrag__6 0.973 0.036 26.722 0.000 1.748 0.889
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger ~~
## MoralOutrage 1.629 0.134 12.152 0.000 0.692 0.692
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EmpthtcAngr__1 0.542 0.073 7.418 0.000 0.542 0.240
## .EmpthtcAngr__2 0.539 0.097 5.545 0.000 0.539 0.245
## .EmpthtcAngr__3 0.371 0.055 6.765 0.000 0.371 0.171
## .EmpthtcAngr__4 0.746 0.111 6.748 0.000 0.746 0.296
## .EmpthtcAngr__5 0.395 0.054 7.349 0.000 0.395 0.174
## .EmpthtcAngr__6 0.398 0.080 4.980 0.000 0.398 0.165
## .Moraloutrag__2 1.067 0.159 6.707 0.000 1.067 0.248
## .Moraloutrag__3 0.481 0.062 7.757 0.000 0.481 0.118
## .Moraloutrag__5 0.980 0.103 9.501 0.000 0.980 0.270
## .Moraloutrag__6 0.814 0.117 6.980 0.000 0.814 0.210
## EmpAnger 1.716 0.157 10.899 0.000 1.000 1.000
## MoralOutrage 3.229 0.220 14.669 0.000 1.000 1.000
##
## R-Square:
## Estimate
## EmpthtcAngr__1 0.760
## EmpthtcAngr__2 0.755
## EmpthtcAngr__3 0.829
## EmpthtcAngr__4 0.704
## EmpthtcAngr__5 0.826
## EmpthtcAngr__6 0.835
## Moraloutrag__2 0.752
## Moraloutrag__3 0.882
## Moraloutrag__5 0.730
## Moraloutrag__6 0.790
stdlv <- ' EmpAnger =~ EmpatheticAnger__1 + EmpatheticAnger__2 + EmpatheticAnger__3 +
EmpatheticAnger__4 + EmpatheticAnger__5 + EmpatheticAnger__6
MoralOutrage =~ Moraloutrage__2 + Moraloutrage__3 + Moraloutrage__5 + Moraloutrage__6'
stdlv_fit <- cfa(data = Mydata, stdlv, std.lv=T, estimator="MLR")
summary(stdlv_fit,std=T,fit.measures=T)
## lavaan 0.6-19 ended normally after 22 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 21
##
## Number of observations 482
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 90.142 50.157
## Degrees of freedom 34 34
## P-value (Chi-square) 0.000 0.037
## Scaling correction factor 1.797
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 5032.939 2344.732
## Degrees of freedom 45 45
## P-value 0.000 0.000
## Scaling correction factor 2.146
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.989 0.993
## Tucker-Lewis Index (TLI) 0.985 0.991
##
## Robust Comparative Fit Index (CFI) 0.994
## Robust Tucker-Lewis Index (TLI) 0.992
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -6899.620 -6899.620
## Scaling correction factor 2.123
## for the MLR correction
## Loglikelihood unrestricted model (H1) NA NA
## Scaling correction factor 1.922
## for the MLR correction
##
## Akaike (AIC) 13841.240 13841.240
## Bayesian (BIC) 13928.977 13928.977
## Sample-size adjusted Bayesian (SABIC) 13862.324 13862.324
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.059 0.031
## 90 Percent confidence interval - lower 0.044 0.016
## 90 Percent confidence interval - upper 0.073 0.045
## P-value H_0: RMSEA <= 0.050 0.159 0.992
## P-value H_0: RMSEA >= 0.080 0.008 0.000
##
## Robust RMSEA 0.042
## 90 Percent confidence interval - lower 0.011
## 90 Percent confidence interval - upper 0.066
## P-value H_0: Robust RMSEA <= 0.050 0.683
## P-value H_0: Robust RMSEA >= 0.080 0.003
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.019 0.019
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger =~
## EmpthtcAngr__1 1.310 0.060 21.798 0.000 1.310 0.872
## EmpthtcAngr__2 1.288 0.063 20.552 0.000 1.288 0.869
## EmpthtcAngr__3 1.342 0.064 21.008 0.000 1.342 0.911
## EmpthtcAngr__4 1.333 0.064 20.961 0.000 1.333 0.839
## EmpthtcAngr__5 1.367 0.063 21.716 0.000 1.367 0.909
## EmpthtcAngr__6 1.421 0.060 23.714 0.000 1.421 0.914
## MoralOutrage =~
## Moraloutrag__2 1.797 0.061 29.338 0.000 1.797 0.867
## Moraloutrag__3 1.893 0.046 40.894 0.000 1.893 0.939
## Moraloutrag__5 1.627 0.058 28.065 0.000 1.627 0.854
## Moraloutrag__6 1.748 0.055 31.606 0.000 1.748 0.889
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger ~~
## MoralOutrage 0.692 0.025 27.238 0.000 0.692 0.692
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EmpthtcAngr__1 0.542 0.073 7.418 0.000 0.542 0.240
## .EmpthtcAngr__2 0.539 0.097 5.545 0.000 0.539 0.245
## .EmpthtcAngr__3 0.371 0.055 6.765 0.000 0.371 0.171
## .EmpthtcAngr__4 0.746 0.111 6.748 0.000 0.746 0.296
## .EmpthtcAngr__5 0.395 0.054 7.349 0.000 0.395 0.174
## .EmpthtcAngr__6 0.398 0.080 4.980 0.000 0.398 0.165
## .Moraloutrag__2 1.067 0.159 6.707 0.000 1.067 0.248
## .Moraloutrag__3 0.481 0.062 7.757 0.000 0.481 0.118
## .Moraloutrag__5 0.980 0.103 9.501 0.000 0.980 0.270
## .Moraloutrag__6 0.814 0.117 6.980 0.000 0.814 0.210
## EmpAnger 1.000 1.000 1.000
## MoralOutrage 1.000 1.000 1.000
Inspecting residuals
lavInspect(stdlv_fit,what="implied")
## $cov
## EmA__1 EmA__2 EmA__3 EmA__4 EmA__5 EmA__6 Mrl__2 Mrl__3
## EmpatheticAnger__1 2.258
## EmpatheticAnger__2 1.688 2.199
## EmpatheticAnger__3 1.758 1.729 2.172
## EmpatheticAnger__4 1.746 1.718 1.789 2.524
## EmpatheticAnger__5 1.791 1.762 1.836 1.823 2.265
## EmpatheticAnger__6 1.861 1.831 1.907 1.894 1.943 2.416
## Moraloutrage__2 1.629 1.602 1.669 1.658 1.700 1.766 4.295
## Moraloutrage__3 1.716 1.688 1.758 1.746 1.791 1.861 3.402 4.065
## Moraloutrage__5 1.475 1.451 1.511 1.501 1.539 1.599 2.923 3.080
## Moraloutrage__6 1.584 1.558 1.623 1.612 1.654 1.718 3.141 3.309
## Mrl__5 Mrl__6
## EmpatheticAnger__1
## EmpatheticAnger__2
## EmpatheticAnger__3
## EmpatheticAnger__4
## EmpatheticAnger__5
## EmpatheticAnger__6
## Moraloutrage__2
## Moraloutrage__3
## Moraloutrage__5 3.627
## Moraloutrage__6 2.844 3.869
lavInspect(stdlv_fit,what="sampstat")
## $cov
## EmA__1 EmA__2 EmA__3 EmA__4 EmA__5 EmA__6 Mrl__2 Mrl__3
## EmpatheticAnger__1 2.258
## EmpatheticAnger__2 1.760 2.199
## EmpatheticAnger__3 1.746 1.686 2.172
## EmpatheticAnger__4 1.711 1.711 1.818 2.524
## EmpatheticAnger__5 1.745 1.739 1.862 1.833 2.265
## EmpatheticAnger__6 1.875 1.851 1.896 1.879 1.958 2.416
## Moraloutrage__2 1.629 1.587 1.564 1.691 1.614 1.614 4.295
## Moraloutrage__3 1.849 1.758 1.890 1.836 1.845 1.803 3.451 4.065
## Moraloutrage__5 1.460 1.434 1.547 1.446 1.523 1.461 2.885 3.036
## Moraloutrage__6 1.624 1.465 1.639 1.580 1.626 1.607 3.109 3.277
## Mrl__5 Mrl__6
## EmpatheticAnger__1
## EmpatheticAnger__2
## EmpatheticAnger__3
## EmpatheticAnger__4
## EmpatheticAnger__5
## EmpatheticAnger__6
## Moraloutrage__2
## Moraloutrage__3
## Moraloutrage__5 3.627
## Moraloutrage__6 2.970 3.869
#Residual = observed - implied
res <- residuals(stdlv_fit,type="raw")
res
## $type
## [1] "raw"
##
## $cov
## EmA__1 EmA__2 EmA__3 EmA__4 EmA__5 EmA__6 Mrl__2 Mrl__3
## EmpatheticAnger__1 0.000
## EmpatheticAnger__2 0.072 0.000
## EmpatheticAnger__3 -0.012 -0.043 0.000
## EmpatheticAnger__4 -0.035 -0.007 0.028 0.000
## EmpatheticAnger__5 -0.046 -0.023 0.027 0.010 0.000
## EmpatheticAnger__6 0.015 0.020 -0.011 -0.014 0.015 0.000
## Moraloutrage__2 0.001 -0.015 -0.105 0.034 -0.087 -0.152 0.000
## Moraloutrage__3 0.133 0.071 0.132 0.090 0.054 -0.058 0.049 0.000
## Moraloutrage__5 -0.015 -0.016 0.036 -0.055 -0.017 -0.138 -0.039 -0.044
## Moraloutrage__6 0.040 -0.093 0.015 -0.032 -0.028 -0.111 -0.031 -0.032
## Mrl__5 Mrl__6
## EmpatheticAnger__1
## EmpatheticAnger__2
## EmpatheticAnger__3
## EmpatheticAnger__4
## EmpatheticAnger__5
## EmpatheticAnger__6
## Moraloutrage__2
## Moraloutrage__3
## Moraloutrage__5 0.000
## Moraloutrage__6 0.126 0.000
res_cov <- residuals(stdlv_fit,type="cor.bentler")$cov
res_cov #note that the residuals are already standardized because we standardized the factor in estimation
## EmA__1 EmA__2 EmA__3 EmA__4 EmA__5 EmA__6 Mrl__2 Mrl__3
## EmpatheticAnger__1 0.000
## EmpatheticAnger__2 0.032 0.000
## EmpatheticAnger__3 -0.006 -0.020 0.000
## EmpatheticAnger__4 -0.015 -0.003 0.012 0.000
## EmpatheticAnger__5 -0.020 -0.010 0.012 0.004 0.000
## EmpatheticAnger__6 0.006 0.009 -0.005 -0.006 0.006 0.000
## Moraloutrage__2 0.000 -0.005 -0.034 0.010 -0.028 -0.047 0.000
## Moraloutrage__3 0.044 0.024 0.044 0.028 0.018 -0.019 0.012 0.000
## Moraloutrage__5 -0.005 -0.006 0.013 -0.018 -0.006 -0.047 -0.010 -0.012
## Moraloutrage__6 0.014 -0.032 0.005 -0.010 -0.009 -0.036 -0.008 -0.008
## Mrl__5 Mrl__6
## EmpatheticAnger__1
## EmpatheticAnger__2
## EmpatheticAnger__3
## EmpatheticAnger__4
## EmpatheticAnger__5
## EmpatheticAnger__6
## Moraloutrage__2
## Moraloutrage__3
## Moraloutrage__5 0.000
## Moraloutrage__6 0.034 0.000
print(modindices(stdlv_fit,standardized=T))
## lhs op rhs mi epc sepc.lv sepc.all
## 24 EmpAnger =~ Moraloutrage__2 2.812 -0.131 -0.131 -0.063
## 25 EmpAnger =~ Moraloutrage__3 8.331 0.190 0.190 0.094
## 26 EmpAnger =~ Moraloutrage__5 0.737 -0.063 -0.063 -0.033
## 27 EmpAnger =~ Moraloutrage__6 1.069 -0.073 -0.073 -0.037
## 28 MoralOutrage =~ EmpatheticAnger__1 2.225 0.081 0.081 0.054
## 29 MoralOutrage =~ EmpatheticAnger__2 0.004 0.003 0.003 0.002
## 30 MoralOutrage =~ EmpatheticAnger__3 1.955 0.066 0.066 0.044
## 31 MoralOutrage =~ EmpatheticAnger__4 0.282 0.033 0.033 0.021
## 32 MoralOutrage =~ EmpatheticAnger__5 0.005 -0.003 -0.003 -0.002
## 33 MoralOutrage =~ EmpatheticAnger__6 9.006 -0.147 -0.147 -0.094
## 34 EmpatheticAnger__1 ~~ EmpatheticAnger__2 12.329 0.103 0.103 0.191
## 35 EmpatheticAnger__1 ~~ EmpatheticAnger__3 0.616 -0.021 -0.021 -0.046
## 36 EmpatheticAnger__1 ~~ EmpatheticAnger__4 1.980 -0.047 -0.047 -0.075
## 37 EmpatheticAnger__1 ~~ EmpatheticAnger__5 7.728 -0.075 -0.075 -0.162
## 38 EmpatheticAnger__1 ~~ EmpatheticAnger__6 0.799 0.025 0.025 0.053
## 39 EmpatheticAnger__1 ~~ Moraloutrage__2 0.057 0.010 0.010 0.013
## 40 EmpatheticAnger__1 ~~ Moraloutrage__3 0.970 0.032 0.032 0.062
## 41 EmpatheticAnger__1 ~~ Moraloutrage__5 1.413 -0.046 -0.046 -0.063
## 42 EmpatheticAnger__1 ~~ Moraloutrage__6 0.517 0.026 0.026 0.039
## 43 EmpatheticAnger__2 ~~ EmpatheticAnger__3 7.341 -0.071 -0.071 -0.158
## 44 EmpatheticAnger__2 ~~ EmpatheticAnger__4 0.078 -0.009 -0.009 -0.015
## 45 EmpatheticAnger__2 ~~ EmpatheticAnger__5 1.960 -0.038 -0.038 -0.081
## 46 EmpatheticAnger__2 ~~ EmpatheticAnger__6 1.514 0.034 0.034 0.073
## 47 EmpatheticAnger__2 ~~ Moraloutrage__2 2.227 0.060 0.060 0.079
## 48 EmpatheticAnger__2 ~~ Moraloutrage__3 0.473 0.022 0.022 0.043
## 49 EmpatheticAnger__2 ~~ Moraloutrage__5 0.172 0.016 0.016 0.022
## 50 EmpatheticAnger__2 ~~ Moraloutrage__6 6.404 -0.091 -0.091 -0.138
## 51 EmpatheticAnger__3 ~~ EmpatheticAnger__4 2.135 0.043 0.043 0.083
## 52 EmpatheticAnger__3 ~~ EmpatheticAnger__5 4.631 0.052 0.052 0.137
## 53 EmpatheticAnger__3 ~~ EmpatheticAnger__6 0.868 -0.023 -0.023 -0.060
## 54 EmpatheticAnger__3 ~~ Moraloutrage__2 12.370 -0.123 -0.123 -0.195
## 55 EmpatheticAnger__3 ~~ Moraloutrage__3 4.822 0.061 0.061 0.144
## 56 EmpatheticAnger__3 ~~ Moraloutrage__5 1.729 0.043 0.043 0.072
## 57 EmpatheticAnger__3 ~~ Moraloutrage__6 0.175 0.013 0.013 0.024
## 58 EmpatheticAnger__4 ~~ EmpatheticAnger__5 0.226 0.015 0.015 0.027
## 59 EmpatheticAnger__4 ~~ EmpatheticAnger__6 0.530 -0.023 -0.023 -0.041
## 60 EmpatheticAnger__4 ~~ Moraloutrage__2 4.300 0.097 0.097 0.108
## 61 EmpatheticAnger__4 ~~ Moraloutrage__3 0.094 0.011 0.011 0.019
## 62 EmpatheticAnger__4 ~~ Moraloutrage__5 1.714 -0.058 -0.058 -0.068
## 63 EmpatheticAnger__4 ~~ Moraloutrage__6 0.548 -0.031 -0.031 -0.040
## 64 EmpatheticAnger__5 ~~ EmpatheticAnger__6 1.354 0.030 0.030 0.075
## 65 EmpatheticAnger__5 ~~ Moraloutrage__2 0.645 -0.029 -0.029 -0.044
## 66 EmpatheticAnger__5 ~~ Moraloutrage__3 0.075 -0.008 -0.008 -0.018
## 67 EmpatheticAnger__5 ~~ Moraloutrage__5 0.547 0.025 0.025 0.040
## 68 EmpatheticAnger__5 ~~ Moraloutrage__6 0.140 0.012 0.012 0.021
## 69 EmpatheticAnger__6 ~~ Moraloutrage__2 0.068 0.010 0.010 0.015
## 70 EmpatheticAnger__6 ~~ Moraloutrage__3 3.203 -0.052 -0.052 -0.118
## 71 EmpatheticAnger__6 ~~ Moraloutrage__5 0.912 -0.033 -0.033 -0.053
## 72 EmpatheticAnger__6 ~~ Moraloutrage__6 0.355 0.019 0.019 0.034
## 73 Moraloutrage__2 ~~ Moraloutrage__3 8.980 0.194 0.194 0.270
## 74 Moraloutrage__2 ~~ Moraloutrage__5 1.193 -0.067 -0.067 -0.066
## 75 Moraloutrage__2 ~~ Moraloutrage__6 1.157 -0.067 -0.067 -0.071
## 76 Moraloutrage__3 ~~ Moraloutrage__5 7.109 -0.157 -0.157 -0.228
## 77 Moraloutrage__3 ~~ Moraloutrage__6 5.965 -0.154 -0.154 -0.246
## 78 Moraloutrage__5 ~~ Moraloutrage__6 19.024 0.250 0.250 0.279
## sepc.nox
## 24 -0.063
## 25 0.094
## 26 -0.033
## 27 -0.037
## 28 0.054
## 29 0.002
## 30 0.044
## 31 0.021
## 32 -0.002
## 33 -0.094
## 34 0.191
## 35 -0.046
## 36 -0.075
## 37 -0.162
## 38 0.053
## 39 0.013
## 40 0.062
## 41 -0.063
## 42 0.039
## 43 -0.158
## 44 -0.015
## 45 -0.081
## 46 0.073
## 47 0.079
## 48 0.043
## 49 0.022
## 50 -0.138
## 51 0.083
## 52 0.137
## 53 -0.060
## 54 -0.195
## 55 0.144
## 56 0.072
## 57 0.024
## 58 0.027
## 59 -0.041
## 60 0.108
## 61 0.019
## 62 -0.068
## 63 -0.040
## 64 0.075
## 65 -0.044
## 66 -0.018
## 67 0.040
## 68 0.021
## 69 0.015
## 70 -0.118
## 71 -0.053
## 72 0.034
## 73 0.270
## 74 -0.066
## 75 -0.071
## 76 -0.228
## 77 -0.246
## 78 0.279
Alternative models
CFA_1f <- ' EmpAnger =~ EmpatheticAnger__1 + EmpatheticAnger__2 + EmpatheticAnger__3 +
EmpatheticAnger__4 + EmpatheticAnger__5 + EmpatheticAnger__6 + Moraloutrage__2 + Moraloutrage__3 + Moraloutrage__5 + Moraloutrage__6'
cfa1f_fit <- cfa(data = Mydata,CFA_1f, estimator="MLR")
summary(cfa1f_fit,std=T,fit.measures=T)
## lavaan 0.6-19 ended normally after 25 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 20
##
## Number of observations 482
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 1092.748 556.066
## Degrees of freedom 35 35
## P-value (Chi-square) 0.000 0.000
## Scaling correction factor 1.965
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 5032.939 2344.732
## Degrees of freedom 45 45
## P-value 0.000 0.000
## Scaling correction factor 2.146
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.788 0.773
## Tucker-Lewis Index (TLI) 0.727 0.709
##
## Robust Comparative Fit Index (CFI) 0.793
## Robust Tucker-Lewis Index (TLI) 0.733
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -7400.923 -7400.923
## Scaling correction factor 1.845
## for the MLR correction
## Loglikelihood unrestricted model (H1) NA NA
## Scaling correction factor 1.922
## for the MLR correction
##
## Akaike (AIC) 14841.845 14841.845
## Bayesian (BIC) 14925.404 14925.404
## Sample-size adjusted Bayesian (SABIC) 14861.926 14861.926
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.250 0.176
## 90 Percent confidence interval - lower 0.238 0.167
## 90 Percent confidence interval - upper 0.263 0.185
## P-value H_0: RMSEA <= 0.050 0.000 0.000
## P-value H_0: RMSEA >= 0.080 1.000 1.000
##
## Robust RMSEA 0.246
## 90 Percent confidence interval - lower 0.229
## 90 Percent confidence interval - upper 0.265
## P-value H_0: Robust RMSEA <= 0.050 0.000
## P-value H_0: Robust RMSEA >= 0.080 1.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.117 0.117
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## EmpAnger =~
## EmpthtcAngr__1 1.000 1.306 0.869
## EmpthtcAngr__2 0.980 0.030 32.268 0.000 1.279 0.862
## EmpthtcAngr__3 1.023 0.039 25.936 0.000 1.335 0.906
## EmpthtcAngr__4 1.016 0.043 23.828 0.000 1.326 0.835
## EmpthtcAngr__5 1.038 0.035 29.677 0.000 1.355 0.900
## EmpthtcAngr__6 1.070 0.033 32.919 0.000 1.397 0.899
## Moraloutrag__2 1.020 0.067 15.320 0.000 1.332 0.643
## Moraloutrag__3 1.133 0.061 18.582 0.000 1.480 0.734
## Moraloutrag__5 0.939 0.064 14.677 0.000 1.226 0.644
## Moraloutrag__6 1.006 0.063 16.049 0.000 1.314 0.668
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EmpthtcAngr__1 0.553 0.075 7.366 0.000 0.553 0.245
## .EmpthtcAngr__2 0.563 0.099 5.682 0.000 0.563 0.256
## .EmpthtcAngr__3 0.390 0.055 7.058 0.000 0.390 0.180
## .EmpthtcAngr__4 0.765 0.112 6.805 0.000 0.765 0.303
## .EmpthtcAngr__5 0.430 0.057 7.599 0.000 0.430 0.190
## .EmpthtcAngr__6 0.465 0.086 5.418 0.000 0.465 0.192
## .Moraloutrag__2 2.521 0.172 14.690 0.000 2.521 0.587
## .Moraloutrag__3 1.876 0.139 13.460 0.000 1.876 0.462
## .Moraloutrag__5 2.122 0.146 14.491 0.000 2.122 0.585
## .Moraloutrag__6 2.143 0.150 14.294 0.000 2.143 0.554
## EmpAnger 1.704 0.159 10.736 0.000 1.000 1.000
How does the fit of the one-factor model compare to the two-factor
model?
factorcomp <- compareFit(cfa_fit,cfa1f_fit)
summary(factorcomp,fit.measures=c("chisq", "df", "pvalue", "cfi", "rmsea","srmr","aic","bic"))
## ################### Nested Model Comparison #########################
##
## Scaled Chi-Squared Difference Test (method = "satorra.bentler.2001")
##
## lavaan->unknown():
## lavaan NOTE: The "Chisq" column contains standard test statistics, not the
## robust test that should be reported per model. A robust difference test is
## a function of two standard (not robust) statistics.
## Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
## cfa_fit 34 13841 13929 90.142
## cfa1f_fit 35 14842 14925 1092.748 130.63 1 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ####################### Model Fit Indices ###########################
## chisq df pvalue cfi rmsea srmr aic bic
## cfa_fit 90.142† 34 .000 .989† .059† .019† 13841.240† 13928.977†
## cfa1f_fit 1092.748 35 .000 .788 .250 .117 14841.845 14925.404
##
## ################## Differences in Fit Indices #######################
## df cfi rmsea srmr aic bic
## cfa1f_fit - cfa_fit 1 -0.201 0.192 0.098 1000.605 996.428