Compute likelihood distances between models when removing the i_{th} case. If there are no
missing data then the GOF will often provide equivalent results. If mirt is used,
then the values will be associated with the unique response patterns instead.
Usage
LD(data, model, ...)
## S3 method for class 'LD'
print(x, ncases = 10, digits = 5, ...)
## S3 method for class 'LD'
plot(x, y = NULL, main = "Likelihood Distance", type = c("p",
"h"), ylab = "LD", absolute = FALSE, ...)
Arguments
data
matrix or data.frame
model
if a single numeric number declares number of factors to extract in
exploratory factor analysis (requires complete dataset, i.e., no missing).
If class(model) is a sem (semmod), or lavaan (character),
then a confirmatory approach is performed instead. Finally, if the model is defined with
mirt::mirt.model() then distances will be computed for categorical data with the
mirt package
...
additional parameters to be passed
x
an object of class LD
ncases
number of extreme cases to display
digits
number of digits to round in the printed result
y
a NULL value ignored by the plotting function
main
the main title of the plot
type
type of plot to use, default displays points and lines
ylab
the y label of the plot
absolute
logical; use absolute values instead of deviations?
Details
Note that LD is not limited to confirmatory factor analysis and
can apply to nearly any model being studied
where detection of influential observations is important.
Flora, D. B., LaBrish, C. & Chalmers, R. P. (2012). Old and new ideas for data screening and assumption testing for
exploratory and confirmatory factor analysis. Frontiers in Psychology, 3, 1-21.
See Also
gCD, GOF, obs.resid,
robustMD, setCluster
Examples
## Not run:
#run all LD functions using multiple cores
setCluster()
#Exploratory
nfact <- 3
(LDresult <- LD(holzinger, nfact))
(LDresult.outlier <- LD(holzinger.outlier, nfact))
plot(LDresult)
plot(LDresult.outlier)
#-------------------------------------------------------------------
#Confirmatory with sem
model <- sem::specifyModel()
F1 -> Remndrs, lam11
F1 -> SntComp, lam21
F1 -> WrdMean, lam31
F2 -> MissNum, lam42
F2 -> MxdArit, lam52
F2 -> OddWrds, lam62
F3 -> Boots, lam73
F3 -> Gloves, lam83
F3 -> Hatchts, lam93
F1 <-> F1, NA, 1
F2 <-> F2, NA, 1
F3 <-> F3, NA, 1
(LDresult <- LD(holzinger, model))
(LDresult.outlier <- LD(holzinger.outlier, model))
plot(LDresult)
plot(LDresult.outlier)
#-------------------------------------------------------------------
#Confirmatory with lavaan
model <- 'F1 =~ Remndrs + SntComp + WrdMean
F2 =~ MissNum + MxdArit + OddWrds
F3 =~ Boots + Gloves + Hatchts'
(LDresult <- LD(holzinger, model, orthogonal=TRUE))
(LDresult.outlier <- LD(holzinger.outlier, model, orthogonal=TRUE))
plot(LDresult)
plot(LDresult.outlier)
# categorical data with mirt
library(mirt)
data(LSAT7)
dat <- expand.table(LSAT7)
model <- mirt.model('F = 1-5')
LDresult <- LD(dat, model)
plot(LDresult)
## End(Not run)