lm_mat | R Documentation |
Compute linear regression models and generate "lm" objects from covariance matrices.
lm_mat( formula, cov_mat, mean_vec = rep(0, ncol(cov_mat)), n = Inf, se_beta_method = c("lm", "normal"), ... ) matrixreg( formula, cov_mat, mean_vec = rep(0, ncol(cov_mat)), n = Inf, se_beta_method = c("lm", "normal"), ... ) matreg( formula, cov_mat, mean_vec = rep(0, ncol(cov_mat)), n = Inf, se_beta_method = c("lm", "normal"), ... ) lm_matrix( formula, cov_mat, mean_vec = rep(0, ncol(cov_mat)), n = Inf, se_beta_method = c("lm", "normal"), ... )
formula |
Regression formula with a single outcome variable on the left-hand side and one or more predictor variables on the right-hand side (e.g., Y ~ X1 + X2). |
cov_mat |
Covariance matrix containing the variables to be used in the regression. |
mean_vec |
Vector of means corresponding to the variables in |
n |
Sample size to be used in significance testing |
se_beta_method |
Method to use to estimate the standard errors of standardized regression (beta) coefficients.
Current options include "lm" (estimate standard errors using conventional regression formulas) and "normal" (use the Jones-Waller normal-theory approach from the |
... |
Additional arguments. |
An object with the class "lm_mat" that can be used with summary, print, predict, and anova methods.
## Generate data S <- reshape_vec2mat(cov = c(.3 * 2 * 3, .4 * 2 * 4, .5 * 3 * 4), var = c(2, 3, 4)^2, var_names = c("X", "Y", "Z")) mean_vec <- setNames(c(1, 2, 3), colnames(S)) dat <- data.frame(MASS::mvrnorm(n = 100, mu = mean_vec, Sigma = S, empirical = TRUE)) ## Compute regression models with lm lm_out1 <- lm(Y ~ X, data = dat) lm_out2 <- lm(Y ~ X + Z, data = dat) ## Compute regression models with lm_mat matreg_out1 <- lm_mat(formula = Y ~ X, cov_mat = S, mean_vec = mean_vec, n = nrow(dat)) matreg_out2 <- lm_mat(formula = Y ~ X + Z, cov_mat = S, mean_vec = mean_vec, n = nrow(dat)) ## Compare results of lm and lm_mat with one predictor lm_out1 matreg_out1 ## Compare summaries of lm and lm_mat with one predictor summary(lm_out1) summary(matreg_out1) ## Compare results of lm and lm_mat with two predictors lm_out2 matreg_out2 ## Compare summaries of lm and lm_mat with two predictors summary(lm_out2) summary(matreg_out2) ## Compare predictions made with lm and lm_mat predict(object = matreg_out1, newdata = data.frame(X = 1:5)) predict(object = summary(matreg_out1), newdata = data.frame(X = 1:5)) predict(lm_out1, newdata = data.frame(X = 1:5)) ## Compare predictions made with lm and lm_mat (with confidence intervals) predict(object = matreg_out1, newdata = data.frame(X = 1:5), se.fit = TRUE, interval = "confidence") predict(lm_out1, newdata = data.frame(X = 1:5), se.fit = TRUE, interval = "confidence") ## Compare predictions made with lm and lm_mat (with prediction intervals) predict(object = matreg_out1, newdata = data.frame(X = 1:5), se.fit = TRUE, interval = "prediction") predict(lm_out1, newdata = data.frame(X = 1:5), se.fit = TRUE, interval = "prediction") ## Compare model comparisons computed using lm and lm_mat objects anova(lm_out1, lm_out2) anova(matreg_out1, matreg_out2) ## Model comparisons can be run on lm_mat summaries, too: anova(summary(matreg_out1), summary(matreg_out2)) ## Or summaries and raw models can be mixed: anova(matreg_out1, summary(matreg_out2)) anova(summary(matreg_out1), matreg_out2) ## Compare confidence intervals computed using lm and lm_mat objects confint(object = lm_out1) confint(object = matreg_out1) confint(object = summary(matreg_out1)) confint(object = lm_out2) confint(object = matreg_out2) confint(object = summary(matreg_out2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.