0
votes

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

1
Welcome to SO. It would be easier for us to help you if we had code and data to reproduce the problem. There is a helpful post on making a reproducible R example that may be useful. - DaveArmstrong
Thank you! I've edited the question by adding a reproducible R example and the link for the github repository in order to download the datasets needed for the confirmatory factor analysis. - Alessandro

1 Answers

0
votes

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")