worstLinFun(da.missmod, wfrac, subset)
missmodel
object produced by a data augmentation algorithm.
worstFraction
.
paramIter
component of the
missmodel
object)
should be used to calculate the worst linear
function.
This can be a logical vector (which is
replicated to have length equal to the number of rows),
a numeric vector indicating the observation numbers to be
included, or a character vector of the row names to
be included. All observations are included by default.
names
attribute of the returned vector
give the iteration numbers.
In high-dimensional situations, it may not be practical to monitor
convergence for every component of the parameter, or for every relevant
function of the parameter. Instead, it may suffice to pay attention
to components or functions for which convergence is slow. Finding
a scalar function of the parameter whose marginal distribution
converges most slowly would strengthen the evidence for global
convergence.
Among linear functions,
the "worst linear function of the parameters" has the
highest asymptotic rate of missing information,
as justified by the convergence behavior of EM. For an
EM algorithm, convergence is approximately linear, with
rate governed by the largest eigenvalue of the asymptotic
rate matrix. The "worst linear function" is the inner
product of the parameter with the eigenvector corresponding
to this largest eigenvalue.
C. Fraley,
"On Computing the Largest Fraction of Missing
Information for the EM Algorithm and the Worst Linear
Function for Data Augmentation",
to appear in Computational Statistics and Data Analysis.
Schafer, J. L. (1997),
Analysis of Incomplete Multivariate Data ,
Chapman & Hall, London.
worst.est <- worstFraction(crime.EM, method = "power") wlf <- worstLinFun(crime.DA, worst.est) # return the first 100 elements wlf <- worstLinFun(crime.DA, worst.est, subset = 1:100) # return iteration numbers labeled 50 to 150 wlf <- worstLinFun(crime.DA, worst.est, subset = paste(50:150)) # time series plot plot(as.numeric(names(wlf)), wlf, xlab = "Iteration Number", ylab = "Worst Linear Function", main = "Crime Data") #ACF plot wlf.acf <- acf(wlf, lag.max = 100, plot = F) wlf.acf$series <- "Worst Linear Function" acf.plot(wlf.acf)