library(lavaan)
library(nonnest2)
# Simulate data
m.pop <- "Y ~ 1 * x1 + 0.9 * x2 + 0.9 * x3 + 0.8 * x4 + 0.9 * x5 + 0.8 * x6 + 0.9 * x7"
set.seed(1)
df <- simulateData(m.pop, sample.nobs = 1000)
m1 <- "Y ~ x1 + x2 + x3 + x4 + x5 + x6"
m2 <- "Y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7"
fit1 <- sem(m1, df)
fit2 <- sem(m2, df)
# Run Vuong test ---- works fine
vuongtest(fit1, fit2)
# Quick and dirty delete some data
deleteData <- function(df, missings, rows, cols) {
del <- list(
rows = floor(runif(missings, min = 1, max = rows)),
cols = floor(runif(missings, min = 1, max = cols))
)
for(m in 1 : missings) df[del$rows[m], del$cols[m]] <- NA
return(df)
}
df <- deleteData(df, 200, nrow(df), ncol(df))
fit1 <- sem(m1, df, missing = "fiml")
fit2 <- sem(m2, df, missing = "fiml")
# Run xuong test ---- Error in Score.mat[wi, ]
vuongtest(fit1, fit2)
As you can see, the Vuong test works fine without missing data (apart from the warning message). You could try to delete all rows with missing data from your
data frame.