FIML Estimation

Posted on
Picture of user. siti nur azizah Joined: 03/12/2014
I want to ask you.
actually, I have a problem with my data. My new data is incomplete (missing data). I read on the web if no data is lost then using FIML function, but I am confused what to put where and what. I have tried but I always fail. please help me.
other than that, is there any basis we determine the value? I tried to try to change the value of 0.25-1 and outcome affect the output Standard error of estimate.
thank you.
Replied on Wed, 03/26/2014 - 11:50
Picture of user. mhunter Joined: 07/31/2009

Hi,

To use FIML, simply create a model with raw data.


aModel <- mxModel(name="Example with FIML",
mxData(aRawDataSet, type="raw"),
# other paths, matrices, and algebras
)

Cheers,
Mike Hunter

Replied on Wed, 03/26/2014 - 15:25
Picture of user. tbates Joined: 07/31/2009

OpenMx works well with missing data using FIML as you say.

All you need to do is include your raw data in the mxData() line, and use the FIML objective.
Here's an example:

data(myFADataRaw, package="OpenMx")
manifests = names(myFADataRaw)
myFADataRaw = myFADataRaw[, manifests]
latents = c("G")
m1 <- mxModel("m1", type="RAM",
manifestVars = manifests,
latentVars = latents,
# Factor loadings
mxPath(from = latents, to = manifests),

# residuals and variances
mxPath(from = manifests, arrows = 2), # manifest residuals
mxPath(from = latents, arrows = 2, free = F, values = 1), # latents fixed@1
mxPath(from = c("x1", "x2"), to = "x3", arrows = 1), # manifest causes
mxPath(from = "one", to = manifests, arrows = 1), # manifest means
mxData(myFADataRaw, type = "raw")
)
m1 = umxRun(m1, setLabels = T, setStart = T)
umxSummary(m1)