twinlm {mets} | R Documentation |
Classic twin model for quantitative traits
Description
Fits a classical twin model for quantitative traits.
Usage
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,
...
)
Arguments
formula |
Formula specifying effects of covariates on the response |
data |
|
id |
The name of the column in the dataset containing the twin-id variable. |
zyg |
The name of the column in the dataset containing the zygosity variable |
DZ |
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 |
group |
Optional. Variable name defining group for interaction analysis (e.g., gender) |
group.equal |
If TRUE marginals of groups are asummed to be the same |
strata |
Strata variable name |
weights |
Weights matrix if needed by the chosen estimator. For use with Inverse Probability Weights |
type |
Character defining the type of analysis to be performed. Can be a subset of "aced" (additive genetic factors, common environmental factors, unique environmental factors, dominant genetic factors). Other choices are:
The default value is an additive polygenic model |
twinnum |
The name of the column in the dataset numbering the
twins (1,2). If it does not exist in |
binary |
If |
ordinal |
If non-zero (number of bins) a liability model is fitted. |
keep |
Vector of variables from |
estimator |
Choice of estimator/model |
constrain |
Development argument |
control |
Control argument parsed on to the optimization routine |
messages |
Control amount of messages shown |
... |
Additional arguments parsed on to lower-level functions |
Value
Returns an object of class twinlm
.
Author(s)
Klaus K. Holst
See Also
bptwin
, twinlm.time
, twinlm.strata
, twinsim
Examples
## 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)
## 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")