model_product {pcsstools} | R Documentation |
Approximate a linear model for a product using PCSS
Description
model_product
approximates the linear model for the product
of m phenotypes as a function of a set of predictors.
Usage
model_product(
formula,
n,
means,
covs,
predictors,
responses = NULL,
response = "continuous",
...
)
Arguments
formula |
an object of class |
n |
sample size. |
means |
named vector of predictor and response means. |
covs |
named matrix of the covariance of all model predictors and the responses. |
predictors |
named list of objects of class |
responses |
named list of objects of class |
response |
character. Describe distribution of all product terms.
Either |
... |
additional arguments |
Value
an object of class "pcsslm"
.
An object of class "pcsslm"
is a list containing at least the
following components:
call |
the matched call |
terms |
the |
coefficients |
a |
sigma |
the square root of the estimated variance of the random error. |
df |
degrees of freedom, a 3-vector |
fstatistic |
a 3-vector with the value of the F-statistic with its numerator and denominator degrees of freedom. |
r.squared |
|
adj.r.squared |
the above |
cov.unscaled |
a |
Sum Sq |
a 3-vector with the model's Sum of Squares Regression (SSR), Sum of Squares Error (SSE), and Sum of Squares Total (SST). |
References
Wolf JM, Westra J, Tintle N (2021). “Using Summary Statistics to Model Multiplicative Combinations of Initially Analyzed Phenotypes With a Flexible Choice of Covariates.” Frontiers in Genetics, 12, 1962. ISSN 1664-8021, doi:10.3389/fgene.2021.745901, https://www.frontiersin.org/articles/10.3389/fgene.2021.745901/full.
Examples
ex_data <- pcsstools_example[c("g1", "g2", "g3", "x1", "y4", "y5", "y6")]
head(ex_data)
means <- colMeans(ex_data)
covs <- cov(ex_data)
n <- nrow(ex_data)
predictors <- list(
g1 = new_predictor_snp(maf = mean(ex_data$g1) / 2),
g2 = new_predictor_snp(maf = mean(ex_data$g2) / 2),
g3 = new_predictor_snp(maf = mean(ex_data$g3) / 2),
x1 = new_predictor_normal(mean = mean(ex_data$x1), sd = sd(ex_data$x1))
)
responses <- lapply(means[c("y4", "y5", "y6")], new_predictor_binary)
model_product(
y4 * y5 * y6 ~ g1 + g2 + g3 + x1,
means = means, covs = covs, n = n,
predictors = predictors, responses = responses, response = "binary"
)
summary(lm(y4 * y5 * y6 ~ g1 + g2 + g3 + x1, data = ex_data))