1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
## Class definitions for the package
setClass("lmList",
representation(call = "call",
pool = "logical"),
contains = "list")
setClass("lmList.confint", contains = "array")
## -------------------- lmer-related Classes --------------------------------
setOldClass("data.frame")
setOldClass("family")
setOldClass("logLik")
setOldClass("terms")
## mixed effects representation
setClass("mer",
representation(## original data
flist = "list", # list of grouping factors
Zt = "dgCMatrix", # sparse representation of Z'
X = "matrix", # X
y = "numeric", # y
wts = "numeric", # weights
## do we need this for mer?
wrkres = "numeric",# working residuals (copy of y for LMMs)
## invariants derived from data structure
cnames = "list", # column names of model matrices
nc = "integer", # dimensions of blocks in Omega
Gp = "integer", # Pointers to groups of rows in Zt
## quantities that vary when Z, X or y are updated
XtX = "dpoMatrix", # X'X
ZtZ = "dsCMatrix", # Z'Z
ZtX = "dgeMatrix", # Z'X
Zty = "numeric", # Z'y
Xty = "numeric", # X'y
## primary slots that vary during the optimization
## When Omega is updated, these are updated
Omega = "list", # list of relative precision matrices
## Cholesky factor of inflated [Z:X:y]'[Z:X:y]
L = "dCHMsuper", # sparse Cholesky factor of Z'Z + Omega
RZX = "dgeMatrix",
RXX = "dtrMatrix",
rZy = "numeric",
rXy = "numeric",
devComp = "numeric", # Components of deviance
deviance = "numeric", # Current deviance (ML and REML)
## Secondary slots only evaluated when requested.
fixef = "numeric",
ranef = "numeric",
RZXinv = "dgeMatrix",
bVar = "list",
gradComp = "list",
## status indicator
status = "integer"
)
)
## Representation of linear and generalized linear mixed effects model
setClass("lmer",
representation(frame = "data.frame",
call = "call", # call to model-fitting function
terms = "terms"),
contains = "mer")
setClass("glmer",
representation(family = "family", # glm family - move here later
weights = "numeric"),
contains = "lmer")
setClass("summary.mer", # the "mer" result ``enhanced'' :
representation(
isG = "logical",
methTitle = "character",
logLik= "logLik",
ngrps = "integer",
sigma = "numeric", # scale, non-negative number
coefs = "matrix",
vcov = "dpoMatrix",
REmat = "matrix",
AICtab= "data.frame"
),
contains = "mer")
setClass("summary.lmer", contains = c("summary.mer", "lmer"))
setClass("summary.glmer", contains = c("summary.mer", "glmer"))
setClass("ranef.lmer", contains = "list")
setClass("coef.lmer", contains = "list")
setClass("pedigree", representation =
list(sire = "integer", dam = "integer", label = "character"),
validity = function(object) {
n <- length(sire <- object@sire)
if (length(dam <- object@dam) != n)
return("sire and dam slots must be the same length")
if (length(object@label) != n)
return("'label' slot must have the same length as 'sire' and 'dam'")
if(n == 0) return(TRUE)
animal <- 1:n
snmiss <- !is.na(sire)
dnmiss <- !is.na(dam)
if (any(sire[snmiss] >= animal[snmiss]) ||
any(dam[dnmiss] >= animal[dnmiss]))
return("the sire and dam must precede the offspring")
if (any(sire[snmiss] < 1 | sire[snmiss] > n) |
any(dam[dnmiss] < 1 | dam[dnmiss] > n))
return(paste("Non-missing sire or dam must be in [1,",
n, "]", sep = ''))
TRUE
})
|