createContrast {lavaSearch2} | R Documentation |
Create Contrast matrix
Description
Returns a contrast matrix corresponding an object. The contrast matrix will contains the hypotheses in rows and the model coefficients in columns.
Usage
createContrast(object, ...)
## S3 method for class 'character'
createContrast(object, ...)
## S3 method for class 'lvmfit'
createContrast(object, linfct, ...)
## S3 method for class 'lvmfit2'
createContrast(object, linfct, ...)
## S3 method for class 'list'
createContrast(object, linfct = NULL, ...)
## S3 method for class 'mmm'
createContrast(object, linfct = NULL, ...)
Arguments
object |
a |
... |
Argument to be passed to
|
linfct |
[vector of characters] expression defining the linear hypotheses to be tested.
Can also be a regular expression (of length 1) that is used to identify the coefficients to be tested using |
Details
One can initialize an empty contrast matrix setting the argumentlinfct
to character(0)
.
Value
A list containing
contrast [matrix] a contrast matrix corresponding to the left hand side of the linear hypotheses.
null [vector] the right hand side of the linear hypotheses.
Q [integer] the rank of the contrast matrix.
ls.contrast [list, optional] the contrast matrix corresponding to each submodel. Only present when the
argument
object is a list of models.
Examples
## Simulate data
mSim <- lvm(X ~ Age + Treatment,
Y ~ Gender + Treatment,
c(Z1,Z2,Z3) ~ eta, eta ~ treatment,
Age[40:5]~1)
latent(mSim) <- ~eta
categorical(mSim, labels = c("placebo","SSRI")) <- ~Treatment
categorical(mSim, labels = c("male","female")) <- ~Gender
n <- 1e2
set.seed(10)
df.data <- lava::sim(mSim,n)
## Estimate separate models
lmX <- lava::estimate(lvm(X ~ -1 + Age + Treatment), data = df.data)
lmY <- lava::estimate(lvm(Y ~ -1 + Gender + Treatment), data = df.data)
lvmZ <- lava::estimate(lvm(c(Z1,Z2,Z3) ~ -1 + 1*eta, eta ~ -1 + Treatment),
data = df.data)
## Contrast matrix for a given model
createContrast(lmX, linfct = "X~Age")
createContrast(lmX, linfct = c("X~Age=0","X~Age+5*X~TreatmentSSRI=0"))
createContrast(lmX, linfct = c("X~Age=0","X~Age+5*X~TreatmentSSRI=0"), sep = NULL)
createContrast(lmX, linfct = character(0))
## Contrast matrix for the join model
ls.lvm <- list(X = lmX, Y = lmY, Z = lvmZ)
createContrast(ls.lvm, linfct = "TreatmentSSRI=0")
createContrast(ls.lvm, linfct = "TreatmentSSRI=0", rowname.rhs = FALSE)
createContrast(ls.lvm, linfct = character(0))
## Contrast for multigroup models
m <- lava::lvm(Y~Age+Treatment)
e <- lava::estimate(list(m,m), data = split(df.data, df.data$Gender))
print(coef(e))
createContrast(e, linfct = "Y~TreatmentSSRI@1 - Y~TreatmentSSRI@2 = 0")
createContrast(e, linfct = "Y~TreatmentSSRI@2 - Y~TreatmentSSRI@1 = 0")