lms {EpiForsk} | R Documentation |
Wrapper around lm for sibling design
Description
Fits a linear model using demeaned data. Useful for sibling design.
Usage
lms(formula, data, grp_id, obs_id = NULL, ...)
## S3 method for class 'lms'
print(x, digits = max(3L, getOption("digits") - 3L), ...)
Arguments
formula |
A formula, used to create a model matrix with demeaned columns. |
data |
A data frame, data frame extension (e.g. a tibble), or a lazy data frame (e.g. from dbplyr or dtplyr). |
grp_id |
< |
obs_id |
< |
... |
Additional arguments to be passed to lm(). In print, additional arguments are ignored without warning. |
x |
An S3 object with class lms. |
digits |
The number of significant digits to be passed to format(coef(x), .) when print()ing. |
Details
lms
estimates parameters in the linear model
where is a group (e.g. sibling group)
specific intercept and
are covariate values for
observation
in group i.
is a normally distributed error term. It is assumed that interest is in
estimating the vector
while
are nuisance parameters. Estimation of
uses the mean deviation
method, where
is regressed on
Here and
refers to the mean of y and x in group i.
lms
can keep track of observations by providing a unique identifier
column to obs_id
. lms
will return obs_id
so it matches the order of
observations in model.
lms
only supports syntactic covariate names. Using a non-syntactic name
risks returning an error, e.g if names end in + or -.
Value
A list with class c("lms", "lm")
. Contains the output from lm
applied
to demeaned data according to formula
, as well as the original data and the
provided formula.
Author(s)
KIJA
Examples
sib_id <- sample(200, 1000, replace = TRUE)
sib_out <- rnorm(200)
x1 <- rnorm(1000)
x2 <- rnorm(1000) + sib_out[sib_id] + x1
y <- rnorm(1000, 1, 0.5) + 2 * sib_out[sib_id] - x1 + 2 * x2
data <- data.frame(
x1 = x1,
x2 = x2,
y = y,
sib_id = sib_id,
obs_id = 1:1000
)
mod_lm <- lm(y ~ x1 + x2, data) # OLS model
mod_lm_grp <- lm(y ~ x1 + x2 + factor(sib_id), data) # OLS with grp
mod_lms <- lms(y ~ x1 + x2, data, sib_id, obs_id) # conditional model
summary(mod_lm)
coef(mod_lm_grp)[1:3]
summary(mod_lms)
print(mod_lms)