Back to schedule


Getting Started

Acitelli dataset consists of 148 married couples, average length of marriage being about 10 years.

Key parameters in CFA
* Factor loadings: the effect of the factor or latent variable on the measure
* Factor variance: how much individuals differ on the factor
* Factor mean: the average score on the factor
* Error variance: variance in the measure not attributable to the factor
* Factor correlation: how similar the factor is across the two members
* Error correlations: correlation on the same measure between the two members of the dyad

Unlike traditional factor analysis, the loadings are unstandardized (but they can be transformed into standardized loadings).

library(lavaan)
## This is lavaan 0.5-23.1097
## lavaan is BETA software! Please report any bugs.
acitellid<- read.csv("acitellid.csv", header=TRUE)

Distinguishable Dyads

Create two latent variables, one for husbands and one for wives.

Three indicators of each factor: Other Positivity (seeing the partner positively), Satisfaction, and Tension. To estimate the model with free loadings, there need to be three indicators. To be able to identify the model, i.e., have a unique solution, one measure is known as a marker variable and its loading is fixed to one. For this analysis, Other Positivity is chosen as the marker variable. The loadings for the other two indicators are free. With just two indicators normally the two loading must both be set to one.

With dyadic data, it is advisable to correlate the errors of the same measure across the two members.

Estimate first what is called the configural model to see if a single factor can be used to explain the covariation in the variables. The configural model does not have constraints across the two members. If the configural model is good fitting, we can proceed to estimate the dyadic model.

In lavaan to designate a loading, the code is xfact =~ x1 + x2. The variable x1 is designated as the marker and given a loading of one, and the variable x2 has a loading that is estimated.

Step 1: Configural Model

This model has no dyadic constraints. However, it needs to be determined that the model fits before estimating and testing the dyadic model.

cfadc.model <- "
ClosenessH  =~ OtherPos_H + a1*Satisfaction_H + b1*Tension_H 
ClosenessW  =~ OtherPos_W + a2*Satisfaction_W + b2*Tension_W 
ClosenessH  ~ 1
ClosenessW  ~ 1
OtherPos_H  ~  0*1
OtherPos_W  ~  0*1 
Satisfaction_H  ~  i11*1
Satisfaction_W  ~  i12*1 
Tension_H  ~  i21*1
Tension_W  ~  i22*1 
ClosenessH ~~ ClosenessW 
OtherPos_H ~~ OtherPos_W
Satisfaction_H ~~ Satisfaction_W
Tension_H ~~ Tension_W
"
cfadcc <- sem(cfadc.model,fixed.x=FALSE, data = acitellid,missing="fiml")
summary(cfadcc, fit.measures = TRUE)
## lavaan (0.5-23.1097) converged normally after 115 iterations
## 
##   Number of observations                           148
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic                2.521
##   Degrees of freedom                                 5
##   P-value (Chi-square)                           0.773
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic              293.125
##   Degrees of freedom                                15
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    1.000
##   Tucker-Lewis Index (TLI)                       1.027
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -583.372
##   Loglikelihood unrestricted model (H1)       -582.112
## 
##   Number of free parameters                         22
##   Akaike (AIC)                                1210.745
##   Bayesian (BIC)                              1276.684
##   Sample-size adjusted Bayesian (BIC)         1207.062
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.000
##   90 Percent Confidence Interval          0.000  0.077
##   P-value RMSEA <= 0.05                          0.879
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.018
## 
## Parameter Estimates:
## 
##   Information                                 Observed
##   Standard Errors                             Standard
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH =~                                       
##     OtherPs_H         1.000                           
##     Stsfctn_H (a1)    1.591    0.269    5.912    0.000
##     Tension_H (b1)   -1.558    0.274   -5.692    0.000
##   ClosenessW =~                                       
##     OtherPs_W         1.000                           
##     Stsfctn_W (a2)    1.649    0.300    5.502    0.000
##     Tension_W (b2)   -1.825    0.317   -5.759    0.000
## 
## Covariances:
##                     Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH ~~                                        
##     ClosenessW         0.054    0.014    3.834    0.000
##  .OtherPos_H ~~                                        
##    .OtherPos_W        -0.002    0.016   -0.140    0.889
##  .Satisfaction_H ~~                                    
##    .Satisfaction_W     0.011    0.016    0.698    0.485
##  .Tension_H ~~                                         
##    .Tension_W          0.013    0.027    0.468    0.639
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosnssH          4.281    0.039  110.220    0.000
##     ClosnssW          4.246    0.043   99.147    0.000
##    .OthrPs_H          0.000                           
##    .OthrPs_W          0.000                           
##    .Stsfct_H (i11)   -3.194    1.153   -2.769    0.006
##    .Stsfct_W (i12)   -3.410    1.274   -2.677    0.007
##    .Tensin_H (i21)    9.011    1.174    7.678    0.000
##    .Tensin_W (i22)   10.268    1.347    7.620    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .OtherPos_H        0.154    0.020    7.729    0.000
##    .Satisfaction_H    0.037    0.021    1.795    0.073
##    .Tension_H         0.259    0.037    7.024    0.000
##    .OtherPos_W        0.195    0.025    7.690    0.000
##    .Satisfaction_W    0.071    0.026    2.773    0.006
##    .Tension_W         0.245    0.041    5.956    0.000
##     ClosenessH        0.069    0.021    3.313    0.001
##     ClosenessW        0.077    0.025    3.096    0.002

Chi square is not significant (p = .773) and the RMSEA is equal to zero. Both indicate good fit.
Because this is a good fitting model, it makes sense to proceed to estimate the dyadic model.

Step 2: CFA with Dyadic Equality Constraints

Two sorts of equality constraints are made to ensure that the same factor is being estimated for the two members.

  • Equal loadings: For the two non-marker variables, set loadings of the same indicator to be equal across members.
  • Equal intercepts: For the two non-marker variables, set intercepts of the same indicator to be equal across members. Set the markers’ intercepts to zero.

Note that if there are k indicators, then there are 2(k -1) constraints over and above the configural model.

Most everyone accepts the idea that the loadings need to be the same across members to claim that the factor is the same. If the intercepts are not the same across members, one should not interpret the mean difference in the latent variables.

cfad.model <- "
ClosenessH  =~ OtherPos_H + a*Satisfaction_H + b*Tension_H 
ClosenessW  =~ OtherPos_W + a*Satisfaction_W + b*Tension_W 
ClosenessH  ~ mH*1
ClosenessW  ~ mW*1
OtherPos_H  ~  0*1
OtherPos_W  ~  0*1 
Satisfaction_H  ~  i1*1
Satisfaction_W  ~  i1*1 
Tension_H  ~  i2*1
Tension_W  ~  i2*1 
ClosenessH ~~ vH*ClosenessH
ClosenessW ~~ vW*ClosenessW
ClosenessH ~~ ClosenessW 
OtherPos_H ~~ OtherPos_W
Satisfaction_H ~~ Satisfaction_W
Tension_H ~~ Tension_W
mdiff := mH - mW
vdiff := vH - vW
"
cfad <- sem(cfad.model,fixed.x=FALSE, data = acitellid,missing="fiml")
summary(cfad, fit.measures = TRUE)
## lavaan (0.5-23.1097) converged normally after 109 iterations
## 
##   Number of observations                           148
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic                8.804
##   Degrees of freedom                                 9
##   P-value (Chi-square)                           0.456
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic              293.125
##   Degrees of freedom                                15
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    1.000
##   Tucker-Lewis Index (TLI)                       1.001
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -586.514
##   Loglikelihood unrestricted model (H1)       -582.112
## 
##   Number of free parameters                         18
##   Akaike (AIC)                                1209.029
##   Bayesian (BIC)                              1262.978
##   Sample-size adjusted Bayesian (BIC)         1206.015
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.000
##   90 Percent Confidence Interval          0.000  0.091
##   P-value RMSEA <= 0.05                          0.708
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.034
## 
## Parameter Estimates:
## 
##   Information                                 Observed
##   Standard Errors                             Standard
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH =~                                       
##     OtherPos_H        1.000                           
##     Satsfctn_H (a)    1.584    0.204    7.753    0.000
##     Tension_H  (b)   -1.706    0.210   -8.129    0.000
##   ClosenessW =~                                       
##     OtherPos_W        1.000                           
##     Satsfctn_W (a)    1.584    0.204    7.753    0.000
##     Tension_W  (b)   -1.706    0.210   -8.129    0.000
## 
## Covariances:
##                     Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH ~~                                        
##     ClosenessW         0.055    0.014    3.916    0.000
##  .OtherPos_H ~~                                        
##    .OtherPos_W        -0.003    0.016   -0.171    0.864
##  .Satisfaction_H ~~                                    
##    .Satisfaction_W     0.012    0.015    0.802    0.422
##  .Tension_H ~~                                         
##    .Tension_W          0.005    0.027    0.188    0.851
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosenssH (mH)    4.280    0.033  131.335    0.000
##     ClosenssW (mW)    4.247    0.035  122.610    0.000
##    .OtherPs_H         0.000                           
##    .OtherPs_W         0.000                           
##    .Stsfctn_H (i1)   -3.153    0.872   -3.615    0.000
##    .Stsfctn_W (i1)   -3.153    0.872   -3.615    0.000
##    .Tension_H (i2)    9.706    0.897   10.821    0.000
##    .Tension_W (i2)    9.706    0.897   10.821    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosenssH (vH)    0.066    0.016    4.127    0.000
##     ClosenssW (vW)    0.083    0.020    4.156    0.000
##    .OtherPs_H         0.154    0.020    7.855    0.000
##    .Stsfctn_H         0.044    0.019    2.313    0.021
##    .Tension_H         0.256    0.038    6.805    0.000
##    .OtherPs_W         0.193    0.025    7.723    0.000
##    .Stsfctn_W         0.073    0.024    3.027    0.002
##    .Tension_W         0.252    0.040    6.249    0.000
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     mdiff             0.033    0.022    1.478    0.139
##     vdiff            -0.017    0.013   -1.293    0.196
parameterEstimates(cfad, standardized = TRUE)
##               lhs op            rhs label    est    se       z pvalue
## 1      ClosenessH =~     OtherPos_H        1.000 0.000      NA     NA
## 2      ClosenessH =~ Satisfaction_H     a  1.584 0.204   7.753  0.000
## 3      ClosenessH =~      Tension_H     b -1.706 0.210  -8.129  0.000
## 4      ClosenessW =~     OtherPos_W        1.000 0.000      NA     NA
## 5      ClosenessW =~ Satisfaction_W     a  1.584 0.204   7.753  0.000
## 6      ClosenessW =~      Tension_W     b -1.706 0.210  -8.129  0.000
## 7      ClosenessH ~1                   mH  4.280 0.033 131.335  0.000
## 8      ClosenessW ~1                   mW  4.247 0.035 122.610  0.000
## 9      OtherPos_H ~1                       0.000 0.000      NA     NA
## 10     OtherPos_W ~1                       0.000 0.000      NA     NA
## 11 Satisfaction_H ~1                   i1 -3.153 0.872  -3.615  0.000
## 12 Satisfaction_W ~1                   i1 -3.153 0.872  -3.615  0.000
## 13      Tension_H ~1                   i2  9.706 0.897  10.821  0.000
## 14      Tension_W ~1                   i2  9.706 0.897  10.821  0.000
## 15     ClosenessH ~~     ClosenessH    vH  0.066 0.016   4.127  0.000
## 16     ClosenessW ~~     ClosenessW    vW  0.083 0.020   4.156  0.000
## 17     ClosenessH ~~     ClosenessW        0.055 0.014   3.916  0.000
## 18     OtherPos_H ~~     OtherPos_W       -0.003 0.016  -0.171  0.864
## 19 Satisfaction_H ~~ Satisfaction_W        0.012 0.015   0.802  0.422
## 20      Tension_H ~~      Tension_W        0.005 0.027   0.188  0.851
## 21     OtherPos_H ~~     OtherPos_H        0.154 0.020   7.855  0.000
## 22 Satisfaction_H ~~ Satisfaction_H        0.044 0.019   2.313  0.021
## 23      Tension_H ~~      Tension_H        0.256 0.038   6.805  0.000
## 24     OtherPos_W ~~     OtherPos_W        0.193 0.025   7.723  0.000
## 25 Satisfaction_W ~~ Satisfaction_W        0.073 0.024   3.027  0.002
## 26      Tension_W ~~      Tension_W        0.252 0.040   6.249  0.000
## 27          mdiff :=          mH-mW mdiff  0.033 0.022   1.478  0.139
## 28          vdiff :=          vH-vW vdiff -0.017 0.013  -1.293  0.196
##    ci.lower ci.upper std.lv std.all std.nox
## 1     1.000    1.000  0.257   0.548   0.548
## 2     1.184    1.985  0.407   0.889   0.889
## 3    -2.118   -1.295 -0.439  -0.655  -0.655
## 4     1.000    1.000  0.287   0.547   0.547
## 5     1.184    1.985  0.455   0.860   0.860
## 6    -2.118   -1.295 -0.491  -0.699  -0.699
## 7     4.216    4.344 16.649  16.649  16.649
## 8     4.179    4.315 14.774  14.774  14.774
## 9     0.000    0.000  0.000   0.000   0.000
## 10    0.000    0.000  0.000   0.000   0.000
## 11   -4.863   -1.444 -3.153  -6.883  -6.883
## 12   -4.863   -1.444 -3.153  -5.957  -5.957
## 13    7.948   11.464  9.706  14.496  14.496
## 14    7.948   11.464  9.706  13.832  13.832
## 15    0.035    0.097  1.000   1.000   1.000
## 16    0.044    0.122  1.000   1.000   1.000
## 17    0.028    0.083  0.746   0.746   0.746
## 18   -0.033    0.028 -0.003  -0.015  -0.015
## 19   -0.018    0.042  0.012   0.217   0.217
## 20   -0.048    0.058  0.005   0.020   0.020
## 21    0.115    0.192  0.154   0.699   0.699
## 22    0.007    0.081  0.044   0.210   0.210
## 23    0.182    0.330  0.256   0.571   0.571
## 24    0.144    0.242  0.193   0.700   0.700
## 25    0.026    0.120  0.073   0.260   0.260
## 26    0.173    0.331  0.252   0.511   0.511
## 27   -0.011    0.076  1.875   1.875   1.875
## 28   -0.042    0.009  0.000   0.000   0.000
anova(cfad,cfadcc)
## Chi Square Difference Test
## 
##        Df    AIC    BIC  Chisq Chisq diff Df diff Pr(>Chisq)
## cfadcc  5 1210.7 1276.7 2.5208                              
## cfad    9 1209.0 1263.0 8.8043     6.2835       4      0.179

Conclusions

  • Fit: chi square Difference = 6.2835 with 4 df, p = .179. The indication is good fit.
  • Loadings: Values are large, but not too large. Standardized loadings are .548, .889, and -.655 for husbands and .547, .860, and -.699 for wives.
  • Factor Means: Men have a slightly higher mean, but the difference is not significant (p = .139)
  • Factor Variances: Women have slightly higher variance, but the difference is not significant (p = .196)
  • Correlated Errors: None of the three correlated errors are statistically significant. They could be dropped from the model.

From CFA_D app:

https://davidakenny.shinyapps.io/CFA_D/

CFA Distinguishable

CFA Distinguishable

Two different models are estimated. Model 1 is the configural model in which a single-factor model is estimated for Men and Women but there are no additional constraints. The configural model is estimated with correlated errors between pairs of the same indicators. Model 2 is the proposed or specified model which places 4 constraints (invariances) on the configural model. The constraints Model 2 makes are: 1) equal loadings across members 2) equal intercepts across members 3) no correlated errors across members. The models are compared using the chi square p values.

The fit of the configural CFA model is not statistically significant (chi-square(5) = 2.52, p = .773), with an RMSEA of 0.000 and an SABIC of 42.838., The fit of the model is acceptable because the chi square test is not statistically significant. The fit of the specified CFA model is not statistically significant (chi-square(9) = 8.80, p = .456), with an RMSEA of 0.000 and an SABIC of 41.791., The fit of the model is acceptable because the chi square test is not statistically significant. The test of the constraints of the specified model compared to the configural model using a chi square difference test is not statistically significant (chi-square(4) = 6.28, p = .179).

Here are the results using the specified model are presented. As it should be, all of the loadings, error variances, and factor variances are statistically significant. The correlation of Closeness across members is .746 and is statistically significant (p < .001). Given the .746 correlation, dyad members are very similar to each other on Closeness. The two factor means are equal to 4.280 and 4.247.

Indistinguishable Dyads

Key differences between Indistinguishable and Distinguishable CFA * Set factor mean equal across members.
* Set factor variances equal across members. * Set measure intercepts equal across members.
* Set error variances equal across members.

Step 1: I-SAT Model

Following, Olsen & Kenny (2006) adjustments need to be made to chi square and the RMSEA. To so, the I-SAT or indistinguishable saturated model must be estimated. (can use the app Dingy to compute this)

This can be used to test to see if it is ok to treat dyads as indistinguishable if they are distinguishable. Or if they are truly indistinguishable, it can be used to adjust for arbitrary assignment to “first” and “second.”

The number of constraints for k variables in the ISAT model.
* k for the means
* k for the variances
* k(k - 1)/2 correlations within a member
* k(k - 1)/2 correlations between members
* k(k + 1) total

Note that for the APIM Indistinguishable Model, the df would be 2 x 3 = 6. For the CFA Model, it would be 3 x 4 = 12.

Step 1: ISAT Model

ISAT.model <- "
OtherPos_H  ~  m1*1
OtherPos_W  ~  m1*1 
Satisfaction_H  ~  m2*1
Satisfaction_W  ~  m2*1 
Tension_H  ~  m3*1
Tension_W  ~  m3*1 
OtherPos_H ~~ OtherPos_W
Satisfaction_H ~~ Satisfaction_W
Tension_H ~~ Tension_W
OtherPos_H ~~ v1* OtherPos_H
Satisfaction_H ~~ v2*Satisfaction_H
Tension_H ~~ v3*Tension_H
OtherPos_W ~~ v1* OtherPos_W
Satisfaction_W ~~ v2*Satisfaction_W
Tension_W ~~ v3*Tension_W
OtherPos_H ~~ c12*Satisfaction_H
OtherPos_H ~~ c13*Tension_H
Satisfaction_H ~~ c23*Tension_H
OtherPos_ W ~~ c12*Satisfaction_W
OtherPos_W ~~ c13*Tension_W
Satisfaction_W ~~ c23*Tension_W
OtherPos_H ~~ cc12*Satisfaction_W
OtherPos_H ~~ cc13*Tension_W
Satisfaction_H ~~ cc23*Tension_W
OtherPos_W ~~ cc12*Satisfaction_H
OtherPos_W ~~ cc13*Tension_H
Satisfaction_W ~~ cc23*Tension_H
"

sem(ISAT.model,fixed.x=FALSE, data = acitellid,missing="fiml")
## lavaan (0.5-23.1097) converged normally after  55 iterations
## 
##   Number of observations                           148
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic               17.293
##   Degrees of freedom                                12
##   P-value (Chi-square)                           0.139

Dingy: “The model of complete indistinguishability is called the I-Sat model by Olsen and Kenny (2006; Psychological Methods, 11, 127-141) and that model has a chi square of 17.293 with 12 degrees of freedom.”

The chi square and its df are saved to measure fit of the indistinguishable CFA model. One subtracts off the ISAT chi square and df. Note in this case, because the dyad members can be distinguished by their gender, the non-significant chi square tells us that it makes sense statistically to treat them as if they were indistinguishable.

Step 2: Run the CFA

cfai.model <- "
ClosenessH  =~ OtherPos_H + a*Satisfaction_H + b*Tension_H 
ClosenessW  =~ OtherPos_W + a*Satisfaction_W + b*Tension_W 
ClosenessH  ~ m*1
ClosenessW  ~ m*1
OtherPos_H  ~  0*1
OtherPos_W  ~  0*1 
Satisfaction_H  ~  i1*1
Satisfaction_W  ~  i1*1 
Tension_H  ~  i2*1
Tension_W  ~  i2*1 
ClosenessH ~~ v*ClosenessH 
ClosenessW ~~ v*ClosenessW 
ClosenessH ~~ ClosenessW 
OtherPos_H ~~ OtherPos_W
Satisfaction_H ~~ Satisfaction_W
Tension_H ~~ Tension_W
OtherPos_H ~~ ev1* OtherPos_H
Satisfaction_H ~~ ev2*Satisfaction_H
Tension_H ~~ ev3*Tension_H
OtherPos_W ~~ ev1* OtherPos_W
Satisfaction_W ~~ ev2*Satisfaction_W
Tension_W ~~ ev3*Tension_W
"
cfai <- sem(cfai.model,fixed.x=FALSE, data = acitellid,missing="fiml")
summary(cfai, fit.measures = TRUE)
## lavaan (0.5-23.1097) converged normally after  86 iterations
## 
##   Number of observations                           148
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic               18.948
##   Degrees of freedom                                14
##   P-value (Chi-square)                           0.167
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic              293.125
##   Degrees of freedom                                15
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.982
##   Tucker-Lewis Index (TLI)                       0.981
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -591.586
##   Loglikelihood unrestricted model (H1)       -582.112
## 
##   Number of free parameters                         13
##   Akaike (AIC)                                1209.172
##   Bayesian (BIC)                              1248.136
##   Sample-size adjusted Bayesian (BIC)         1206.996
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.049
##   90 Percent Confidence Interval          0.000  0.099
##   P-value RMSEA <= 0.05                          0.467
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.073
## 
## Parameter Estimates:
## 
##   Information                                 Observed
##   Standard Errors                             Standard
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH =~                                       
##     OtherPos_H        1.000                           
##     Satsfctn_H (a)    1.614    0.213    7.570    0.000
##     Tension_H  (b)   -1.715    0.213   -8.052    0.000
##   ClosenessW =~                                       
##     OtherPos_W        1.000                           
##     Satsfctn_W (a)    1.614    0.213    7.570    0.000
##     Tension_W  (b)   -1.715    0.213   -8.052    0.000
## 
## Covariances:
##                     Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH ~~                                        
##     ClosenessW         0.053    0.014    3.810    0.000
##  .OtherPos_H ~~                                        
##    .OtherPos_W        -0.003    0.016   -0.161    0.872
##  .Satisfaction_H ~~                                    
##    .Satisfaction_W     0.013    0.016    0.837    0.402
##  .Tension_H ~~                                         
##    .Tension_W          0.004    0.027    0.134    0.893
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosenssH  (m)    4.264    0.032  134.329    0.000
##     ClosenssW  (m)    4.264    0.032  134.329    0.000
##    .OtherPs_H         0.000                           
##    .OtherPs_W         0.000                           
##    .Stsfctn_H (i1)   -3.276    0.910   -3.600    0.000
##    .Stsfctn_W (i1)   -3.276    0.910   -3.600    0.000
##    .Tension_H (i2)    9.744    0.910   10.712    0.000
##    .Tension_W (i2)    9.744    0.910   10.712    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosnssH   (v)    0.073    0.017    4.324    0.000
##     ClosnssW   (v)    0.073    0.017    4.324    0.000
##    .OthrPs_H (ev1)    0.175    0.016   10.773    0.000
##    .Stsfct_H (ev2)    0.056    0.019    2.909    0.004
##    .Tensin_H (ev3)    0.257    0.030    8.580    0.000
##    .OthrPs_W (ev1)    0.175    0.016   10.773    0.000
##    .Stsfct_W (ev2)    0.056    0.019    2.909    0.004
##    .Tensin_W (ev3)    0.257    0.030    8.580    0.000
parameterEstimates(cfai, standardized = TRUE)
##               lhs op            rhs label    est    se       z pvalue
## 1      ClosenessH =~     OtherPos_H        1.000 0.000      NA     NA
## 2      ClosenessH =~ Satisfaction_H     a  1.614 0.213   7.570  0.000
## 3      ClosenessH =~      Tension_H     b -1.715 0.213  -8.052  0.000
## 4      ClosenessW =~     OtherPos_W        1.000 0.000      NA     NA
## 5      ClosenessW =~ Satisfaction_W     a  1.614 0.213   7.570  0.000
## 6      ClosenessW =~      Tension_W     b -1.715 0.213  -8.052  0.000
## 7      ClosenessH ~1                    m  4.264 0.032 134.329  0.000
## 8      ClosenessW ~1                    m  4.264 0.032 134.329  0.000
## 9      OtherPos_H ~1                       0.000 0.000      NA     NA
## 10     OtherPos_W ~1                       0.000 0.000      NA     NA
## 11 Satisfaction_H ~1                   i1 -3.276 0.910  -3.600  0.000
## 12 Satisfaction_W ~1                   i1 -3.276 0.910  -3.600  0.000
## 13      Tension_H ~1                   i2  9.744 0.910  10.712  0.000
## 14      Tension_W ~1                   i2  9.744 0.910  10.712  0.000
## 15     ClosenessH ~~     ClosenessH     v  0.073 0.017   4.324  0.000
## 16     ClosenessW ~~     ClosenessW     v  0.073 0.017   4.324  0.000
## 17     ClosenessH ~~     ClosenessW        0.053 0.014   3.810  0.000
## 18     OtherPos_H ~~     OtherPos_W       -0.003 0.016  -0.161  0.872
## 19 Satisfaction_H ~~ Satisfaction_W        0.013 0.016   0.837  0.402
## 20      Tension_H ~~      Tension_W        0.004 0.027   0.134  0.893
## 21     OtherPos_H ~~     OtherPos_H   ev1  0.175 0.016  10.773  0.000
## 22 Satisfaction_H ~~ Satisfaction_H   ev2  0.056 0.019   2.909  0.004
## 23      Tension_H ~~      Tension_H   ev3  0.257 0.030   8.580  0.000
## 24     OtherPos_W ~~     OtherPos_W   ev1  0.175 0.016  10.773  0.000
## 25 Satisfaction_W ~~ Satisfaction_W   ev2  0.056 0.019   2.909  0.004
## 26      Tension_W ~~      Tension_W   ev3  0.257 0.030   8.580  0.000
##    ci.lower ci.upper std.lv std.all std.nox
## 1     1.000    1.000  0.270   0.542   0.542
## 2     1.196    2.032  0.436   0.879   0.879
## 3    -2.133   -1.298 -0.463  -0.675  -0.675
## 4     1.000    1.000  0.270   0.542   0.542
## 5     1.196    2.032  0.436   0.879   0.879
## 6    -2.133   -1.298 -0.463  -0.675  -0.675
## 7     4.201    4.326 15.795  15.795  15.795
## 8     4.201    4.326 15.795  15.795  15.795
## 9     0.000    0.000  0.000   0.000   0.000
## 10    0.000    0.000  0.000   0.000   0.000
## 11   -5.059   -1.492 -3.276  -6.610  -6.610
## 12   -5.059   -1.492 -3.276  -6.610  -6.610
## 13    7.961   11.526  9.744  14.199  14.199
## 14    7.961   11.526  9.744  14.199  14.199
## 15    0.040    0.106  1.000   1.000   1.000
## 16    0.040    0.106  1.000   1.000   1.000
## 17    0.026    0.080  0.728   0.728   0.728
## 18   -0.033    0.028 -0.003  -0.015  -0.015
## 19   -0.018    0.044  0.013   0.234   0.234
## 20   -0.050    0.057  0.004   0.014   0.014
## 21    0.143    0.207  0.175   0.706   0.706
## 22    0.018    0.093  0.056   0.227   0.227
## 23    0.198    0.315  0.257   0.545   0.545
## 24    0.143    0.207  0.175   0.706   0.706
## 25    0.018    0.093  0.056   0.227   0.227
## 26    0.198    0.315  0.257   0.545   0.545

Conclusions * Healthy loadings
* No Heywood cases (negative error variances)
* Strong correlation between the two factors
* Weak correlated errors (could drop)

From CFA_I app:

CFA Distinguishable

CFA Distinguishable

The dyad members are treated as if they were indistinguishable. The test of distinguishability is not statistically significant (chi-square(12) = 17.29, p = .139), with an RMSEA of 0.055. Thus, the data are consistent with the hypothesis that members are indistinguishable. If dyad members are truly indistinguishable, these test only the non-random assignment of scores to Person 1 and Person 2. If, however, dyad members are distinguishable, these tests evaluate the assumption of indistinguishability. All chi square tests and RMSEAs are adjusted by this chi square and degrees of freedom, as described by Olsen and Kenny (2006).

The user has requested that the model with correlated errors be displayed in the table and figure. Table 2 provides the factor loadings, the error variances, and intercepts for each indicator of that model. Note that the modification indices for this model are contained in the computer output. As it should be, all of the loadings, error variances, and factor variances are statistically significant. The fit of the CFA model with correlated errors is not statistically significant (chi-square(2) = 1.66, p = .437), with an RMSEA of 0.000. Thus, the fit of the model with correlated errors is acceptable. The fit of the CFA model without correlated errors is not statistically significant (chi-square(5) = 2.59, p = .762), with an RMSEA of 0.000. Thus, the fit of the model without correlated errors is acceptable.

The correlation of Closeness across members is .728 and is statistically significant (p < .001). Given the .728 correlation, dyad members are very similar to each other on Closeness. The two factor means are equal to 4.264. Of the 3 correlated errors between the same variable from the two members of the dyad, none are statistically significant and 2 are positive. The overall test of the correlated errors using a chi square difference test is not statistically significant (chi-square(3) = 0.94, p = .816). Thus, correlated errors are not needed in the model.

https://davidakenny.shinyapps.io/CFA_I/

Step 3: Simplified CFA: No Correlated Errors

cfaince.model <- "
ClosenessH  =~ OtherPos_H + a*Satisfaction_H + b*Tension_H 
ClosenessW  =~ OtherPos_W + a*Satisfaction_W + b*Tension_W 
ClosenessH  ~ m*1
ClosenessW  ~ m*1
OtherPos_H  ~  0*1
OtherPos_W  ~  0*1 
Satisfaction_H  ~  i1*1
Satisfaction_W  ~  i1*1 
Tension_H  ~  i2*1
Tension_W  ~  i2*1 
ClosenessH ~~ v*ClosenessH 
ClosenessW ~~ v*ClosenessW 
ClosenessH ~~ ClosenessW 
OtherPos_H ~~ ev1* OtherPos_H
Satisfaction_H ~~ ev2*Satisfaction_H
Tension_H ~~ ev3*Tension_H
OtherPos_W ~~ ev1* OtherPos_W
Satisfaction_W ~~ ev2*Satisfaction_W
Tension_W ~~ ev3*Tension_W
"
cfaince <- sem(cfaince.model,fixed.x=FALSE, data = acitellid,missing="fiml")
summary(cfaince, fit.measures = TRUE)
## lavaan (0.5-23.1097) converged normally after  65 iterations
## 
##   Number of observations                           148
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic               19.886
##   Degrees of freedom                                17
##   P-value (Chi-square)                           0.280
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic              293.125
##   Degrees of freedom                                15
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.990
##   Tucker-Lewis Index (TLI)                       0.991
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -592.055
##   Loglikelihood unrestricted model (H1)       -582.112
## 
##   Number of free parameters                         10
##   Akaike (AIC)                                1204.111
##   Bayesian (BIC)                              1234.083
##   Sample-size adjusted Bayesian (BIC)         1202.436
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.034
##   90 Percent Confidence Interval          0.000  0.085
##   P-value RMSEA <= 0.05                          0.639
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.073
## 
## Parameter Estimates:
## 
##   Information                                 Observed
##   Standard Errors                             Standard
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH =~                                       
##     OtherPos_H        1.000                           
##     Satsfctn_H (a)    1.693    0.201    8.421    0.000
##     Tension_H  (b)   -1.704    0.212   -8.057    0.000
##   ClosenessW =~                                       
##     OtherPos_W        1.000                           
##     Satsfctn_W (a)    1.693    0.201    8.421    0.000
##     Tension_W  (b)   -1.704    0.212   -8.057    0.000
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   ClosenessH ~~                                       
##     ClosenessW        0.052    0.014    3.801    0.000
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosenssH  (m)    4.264    0.032  133.975    0.000
##     ClosenssW  (m)    4.264    0.032  133.975    0.000
##    .OtherPs_H         0.000                           
##    .OtherPs_W         0.000                           
##    .Stsfctn_H (i1)   -3.614    0.858   -4.211    0.000
##    .Stsfctn_W (i1)   -3.614    0.858   -4.211    0.000
##    .Tension_H (i2)    9.697    0.903   10.735    0.000
##    .Tension_W (i2)    9.697    0.903   10.735    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     ClosnssH   (v)    0.070    0.016    4.342    0.000
##     ClosnssW   (v)    0.070    0.016    4.342    0.000
##    .OthrPs_H (ev1)    0.178    0.016   11.168    0.000
##    .Stsfct_H (ev2)    0.045    0.014    3.323    0.001
##    .Tensin_H (ev3)    0.268    0.026   10.254    0.000
##    .OthrPs_W (ev1)    0.178    0.016   11.168    0.000
##    .Stsfct_W (ev2)    0.045    0.014    3.323    0.001
##    .Tensin_W (ev3)    0.268    0.026   10.254    0.000
parameterEstimates(cfaince, standardized = TRUE)
##               lhs op            rhs label    est    se       z pvalue
## 1      ClosenessH =~     OtherPos_H        1.000 0.000      NA     NA
## 2      ClosenessH =~ Satisfaction_H     a  1.693 0.201   8.421  0.000
## 3      ClosenessH =~      Tension_H     b -1.704 0.212  -8.057  0.000
## 4      ClosenessW =~     OtherPos_W        1.000 0.000      NA     NA
## 5      ClosenessW =~ Satisfaction_W     a  1.693 0.201   8.421  0.000
## 6      ClosenessW =~      Tension_W     b -1.704 0.212  -8.057  0.000
## 7      ClosenessH ~1                    m  4.264 0.032 133.975  0.000
## 8      ClosenessW ~1                    m  4.264 0.032 133.975  0.000
## 9      OtherPos_H ~1                       0.000 0.000      NA     NA
## 10     OtherPos_W ~1                       0.000 0.000      NA     NA
## 11 Satisfaction_H ~1                   i1 -3.614 0.858  -4.211  0.000
## 12 Satisfaction_W ~1                   i1 -3.614 0.858  -4.211  0.000
## 13      Tension_H ~1                   i2  9.697 0.903  10.735  0.000
## 14      Tension_W ~1                   i2  9.697 0.903  10.735  0.000
## 15     ClosenessH ~~     ClosenessH     v  0.070 0.016   4.342  0.000
## 16     ClosenessW ~~     ClosenessW     v  0.070 0.016   4.342  0.000
## 17     ClosenessH ~~     ClosenessW        0.052 0.014   3.801  0.000
## 18     OtherPos_H ~~     OtherPos_H   ev1  0.178 0.016  11.168  0.000
## 19 Satisfaction_H ~~ Satisfaction_H   ev2  0.045 0.014   3.323  0.001
## 20      Tension_H ~~      Tension_H   ev3  0.268 0.026  10.254  0.000
## 21     OtherPos_W ~~     OtherPos_W   ev1  0.178 0.016  11.168  0.000
## 22 Satisfaction_W ~~ Satisfaction_W   ev2  0.045 0.014   3.323  0.001
## 23      Tension_W ~~      Tension_W   ev3  0.268 0.026  10.254  0.000
##    ci.lower ci.upper std.lv std.all std.nox
## 1     1.000    1.000  0.264   0.531   0.531
## 2     1.299    2.087  0.448   0.903   0.903
## 3    -2.119   -1.290 -0.451  -0.657  -0.657
## 4     1.000    1.000  0.264   0.531   0.531
## 5     1.299    2.087  0.448   0.903   0.903
## 6    -2.119   -1.290 -0.451  -0.657  -0.657
## 7     4.201    4.326 16.128  16.128  16.128
## 8     4.201    4.326 16.128  16.128  16.128
## 9     0.000    0.000  0.000   0.000   0.000
## 10    0.000    0.000  0.000   0.000   0.000
## 11   -5.297   -1.932 -3.614  -7.293  -7.293
## 12   -5.297   -1.932 -3.614  -7.293  -7.293
## 13    7.926   11.467  9.697  14.133  14.133
## 14    7.926   11.467  9.697  14.133  14.133
## 15    0.038    0.101  1.000   1.000   1.000
## 16    0.038    0.101  1.000   1.000   1.000
## 17    0.025    0.079  0.747   0.747   0.747
## 18    0.147    0.209  0.178   0.718   0.718
## 19    0.019    0.072  0.045   0.184   0.184
## 20    0.217    0.319  0.268   0.569   0.569
## 21    0.147    0.209  0.178   0.718   0.718
## 22    0.019    0.072  0.045   0.184   0.184
## 23    0.217    0.319  0.268   0.569   0.569
anova(cfai,cfaince)
## Chi Square Difference Test
## 
##         Df    AIC    BIC  Chisq Chisq diff Df diff Pr(>Chisq)
## cfai    14 1209.2 1248.1 18.948                              
## cfaince 17 1204.1 1234.1 19.886    0.93834       3     0.8162

The chi square difference test is equal to 0.938 with 3 degrees of freedom (p = .816). Dropping correlated errors does not worsen the fit of the model.


Back to schedule