Search code examples
rr-lavaan

Model fit for Lavaan CFA. What is the problem with this code?


I have implemented a confirmatory factor analysis using the lavaan package in R. The code I wrote produces the following error:

lavaan 0.6-7 did NOT end normally after 2044 iterations

Could someone kindly give me some help, please?

##PACKAGES
library(lavaan)
library(semTools)
library(semPlot)
library(readxl)
library(dplyr)
##DATASET
dataset_ita <- read_excel("dataset_ita.xlsx", col_types = "numeric")
dataset_eng <- read_excel("dataset_eng.xlsx", col_types = "numeric")
dataset <- rbind(dataset_ita, dataset_eng)
##CONFIRMATORY FACTOR ANALYSIS
model <- '
WinePurchaseBehaviour    =~ X5+X6+X7+X8+X9+X10+X11
WineConsumptionBehaviour =~ X12+X13+X14+X15+X16+X17+X18+X19+X20+X21+X22+X23+X24+X25
WineClubInterest         =~ X26+X27+X28+X29+X30+X31+X64+X65+X66+X67
WineInvolvement          =~ WinePurchaseBehaviour+WineConsumptionBehaviour+WineClubInterest
GeneralInvolvement       =~ X32+X33+X34+X35+X36+X37+X38+X39+X40
FeatureInvolvement       =~ X44+X46+X47+X48+X49
RitualInvolvement        =~ X41+X42+X43+X45+X50
AppExperience            =~ X51+X52+X53+X54+X55+X56+X57+X58
SensoryExperience        =~ X59+X60+X61+X62+X63
ProductInvolvement       =~ GeneralInvolvement+FeatureInvolvement+AppExperience+SensoryExperience
Purchase                =~ X68+X69+X70+X71+X72+X73
Purchase                =~ WineInvolvement+ProductInvolvement'

analysis <- cfa(model, data = dataset, se = "robust.sem")
summary(analysis, fit.measures=TRUE)

The datasets can be found here


Solution

  • I took a quick look at the data and it seems that RitualInvolvement factor just doesn't work - it doesn't work on its own even. The FeatureInolvement factor worked better using X47 as the coefficient set to 1, so use that first in the list. The model below, without estimating the RitualInvolvement factor estimates and converges for me.

    model <- '
    WinePurchaseBehaviour    =~ X5+X6+X7+X8+X9+X10+X11
    WineConsumptionBehaviour =~ X12+X13+X14+X15+X16+X17+X18+X19+X20+X21+X22+X23+X24+X25
    WineClubInterest         =~ X26+X27+X28+X29+X30+X31+X64+X65+X66+X67
    WineInvolvement          =~ WinePurchaseBehaviour+WineConsumptionBehaviour+WineClubInterest
    GeneralInvolvement       =~ X32+X33+X34+X35+X36+X37+X38+X39+X40
    FeatureInvolvement       =~ X47+X46+X44+X48+X49
    # RitualInvolvement        =~ X41+X42+X43+X45+X50
    AppExperience            =~ X51+X52+X53+X54+X55+X56+X57+X58
    SensoryExperience        =~ X59+X60+X61+X62+X63
    ProductInvolvement       =~ GeneralInvolvement+FeatureInvolvement+AppExperience+SensoryExperience
    Purchase                =~ X68+X69+X70+X71+X72+X73
    Purchase                =~ WineInvolvement+ProductInvolvement'
    analysis <- cfa(model, data = dataset, se = "robust.sem")