Last chance! 50% off unlimited learning
Sale ends in
Fits a classical twin model for quantitative traits.
twinlm(
formula,
data,
id,
zyg,
DZ,
group = NULL,
group.equal = FALSE,
strata = NULL,
weights = NULL,
type = c("ace"),
twinnum = "twinnum",
binary = FALSE,
ordinal = 0,
keep = weights,
estimator = NULL,
constrain = TRUE,
control = list(),
messages = 1,
...
)
Formula specifying effects of covariates on the response
data.frame
with one observation pr row. In
addition a column with the zygosity (DZ or MZ given as a factor) of
each individual much be
specified as well as a twin id variable giving a unique pair of
numbers/factors to each twin pair
The name of the column in the dataset containing the twin-id variable.
The name of the column in the dataset containing the zygosity variable
Character defining the level in the zyg variable corresponding to the dyzogitic twins. If this argument is missing, the reference level (i.e. the first level) will be interpreted as the dyzogitic twins
Optional. Variable name defining group for interaction analysis (e.g., gender)
If TRUE marginals of groups are asummed to be the same
Strata variable name
Weights matrix if needed by the chosen estimator. For use with Inverse Probability Weights
Character defining the type of analysis to be performed. Should be a subset of "aced" (additive genetic factors, common environmental factors, unique environmental factors, dominant genetic factors).
The name of the column in the dataset numbering the
twins (1,2). If it does not exist in data
it will
automatically be created.
If TRUE
a liability model is fitted. Note that if the right-hand-side of the formula is a factor, character vector, og logical variable, then the liability model is automatically chosen (wrapper of the bptwin
function).
If non-zero (number of bins) a liability model is fitted.
Vector of variables from data
that are not
specified in formula
, to be added to data.frame of the SEM
Choice of estimator/model
Development argument
Control argument parsed on to the optimization routine
Control amount of messages shown
Additional arguments parsed on to lower-level functions
Returns an object of class twinlm
.
# NOT RUN {
## Simulate data
set.seed(1)
d <- twinsim(1000,b1=c(1,-1),b2=c(),acde=c(1,1,0,1))
## E(y|z1,z2) = z1 - z2. var(A) = var(C) = var(E) = 1
## E.g to fit the data to an ACE-model without any confounders we simply write
ace <- twinlm(y ~ 1, data=d, DZ="DZ", zyg="zyg", id="id")
ace
## An AE-model could be fitted as
ae <- twinlm(y ~ 1, data=d, DZ="DZ", zyg="zyg", id="id", type="ae")
## LRT:
lava::compare(ae,ace)
## AIC
AIC(ae)-AIC(ace)
## To adjust for the covariates we simply alter the formula statement
ace2 <- twinlm(y ~ x1+x2, data=d, DZ="DZ", zyg="zyg", id="id", type="ace")
## Summary/GOF
summary(ace2)
# }
# NOT RUN {
## Reduce Ex.Timings
## An interaction could be analyzed as:
ace3 <- twinlm(y ~ x1+x2 + x1:I(x2<0), data=d, DZ="DZ", zyg="zyg", id="id", type="ace")
ace3
## Categorical variables are also supported
d2 <- transform(d,x2cat=cut(x2,3,labels=c("Low","Med","High")))
ace4 <- twinlm(y ~ x1+x2cat, data=d2, DZ="DZ", zyg="zyg", id="id", type="ace")
# }
Run the code above in your browser using DataLab