Approximate a linear model for a product using PCSS
model_product
approximates the linear model for the product
of m phenotypes as a function of a set of predictors.
model_product( formula, n, means, covs, predictors, responses = NULL, response = "continuous", ... )
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 |
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 p x 4 matrix with columns for the estimated coefficient, its standard error, t-statistic and corresponding (two-sided) p-value. |
sigma |
the square root of the estimated variance of the random error. |
df |
degrees of freedom, a 3-vector p, n-p, p*, the first being the number of non-aliased coefficients, the last being the total number of coefficients. |
fstatistic |
a 3-vector with the value of the F-statistic with its numerator and denominator degrees of freedom. |
r.squared |
R^2, the 'fraction of variance explained by the model'. |
adj.r.squared |
the above R^2 statistic 'adjusted', penalizing for higher p. |
cov.unscaled |
a p x p matrix of (unscaled) covariances of the coef[j], j=1,...p. |
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). |
Wolf JM, Westra J, Tintle N (2021). “Using summary statistics to evaluate the genetic architecture of multiplicative combinations of initially analyzed phenotypes with a flexible choice of covariates.” bioRxiv. doi: 10.1101/2021.03.08.433979, https://www.biorxiv.org/content/10.1101/2021.03.08.433979v1.
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))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.