# Prepare all matrices for the fit, gradient and hessian of tsdlvm1 models:
prepare_tsdlvm1 <- function(x, model){
# New model:
newMod <- updateModel(x,model)
# Number of groups:
nGroup <- nrow(model@sample@groups)
# Total sample:
nTotal <- sum(model@sample@groups$nobs)
# Sample per group:
nPerGroup <- model@sample@groups$nobs
# Implied model:
imp <- implied_tsdlvm1(newMod,all=FALSE)
# Sample stats:
S <- model@sample@covs
means <- model@sample@means
nVar <- nrow(model@sample@variables)
# Extra mats:
mMat <- list(
M = Mmatrix(model@parameters)
)
# extraMatrices <- list(
# M = Mmatrix(model@parameters), # Model matrix
# D = duplicationMatrix(nVar), # non-strict duplciation matrix
# L = eliminationMatrix(nVar), # Elinimation matrix
# Dstar = duplicationMatrix(nVar,diag = FALSE), # Strict duplicaton matrix
# A = diagonalizationMatrix(nVar), # Diagonalization matrix
# An2 = diagonalizationMatrix(nVar^2), # Larger diagonalization matrix
# In = Diagonal(nVar), # Identity of dim n
# In2 = Diagonal(nVar^2), # Identity of dim n^2
# In3 = Diagonal(nVar^3), # Identity of dim n^3
# E = basisMatrix(nVar) # Basis matrix
# )
# Fill per group:
groupModels <- list()
for (g in 1:nGroup){
# if (model@rawts){
# mats[[g]] <- mats[[g]][names(mats[[g]]) != "mu"]
# }
groupModels[[g]] <- c( imp[[g]], mMat, model@extramatrices, model@types) # FIXME: This will lead to extra matrices to be stored?
groupModels[[g]]$S <- S[[g]]
groupModels[[g]]$means <- means[[g]]
}
# Return
return(list(
nPerGroup = nPerGroup,
nTotal=nTotal,
nGroup=nGroup,
groupModels=groupModels
))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.