
Last chance! 50% off unlimited learning
Sale ends in
Extract the hessian from a latent variable model, with small sample correction
hessian2(object, indiv, cluster, as.lava, ...)# S3 method for lvmfit
hessian2(
object,
indiv = FALSE,
cluster = NULL,
as.lava = TRUE,
ssc = lava.options()$ssc,
...
)
# S3 method for lvmfit2
hessian2(object, indiv = FALSE, cluster = NULL, as.lava = TRUE, ...)
An array containing the second derivative of the likelihood relative to each sample (dim 3) and each pair of model coefficients (dim 1,2).
a lvmfit
or lvmfit2
object (i.e. output of lava::estimate
or lavaSearch2::estimate2
).
[logical] If TRUE
, the hessian relative to each observation is returned. Otherwise the total hessian is returned.
[integer vector] the grouping variable relative to which the observations are iid.
[logical] if TRUE
, uses the same names as when using stats::coef
.
additional argument passed to estimate2
when using a lvmfit
object.
[character] method used to correct the small sample bias of the variance coefficients: no correction ("none"
/FALSE
/NA
),
correct the first order bias in the residual variance ("residual"
), or correct the first order bias in the estimated coefficients "cox"
).
Only relevant when using a lvmfit
object.
When argument object is a lvmfit
object, the method first calls estimate2
and then extract the hessian.
estimate2
to obtain lvmfit2
objects.
#### simulate data ####
n <- 5e1
p <- 3
X.name <- paste0("X",1:p)
link.lvm <- paste0("Y~",X.name)
formula.lvm <- as.formula(paste0("Y~",paste0(X.name,collapse="+")))
m <- lvm(formula.lvm)
distribution(m,~Id) <- Sequence.lvm(0)
set.seed(10)
d <- lava::sim(m,n)
#### latent variable models ####
e.lvm <- estimate(lvm(formula.lvm),data=d)
hessian2(e.lvm)
Run the code above in your browser using DataLab