Fit a list of linear models defined by model syntax.
Arguments
- models
Character. Model syntax. See Details.
- data
The data frame. Must be supplied if
na_omit_all
isTRUE
. Ifna_omit_all
isFALSE
, it can be omitted (though not suggested).- na_omit_all
How missing data is handled across models. If
TRUE
, the default, then only cases with no missing data on all variables used at least one of the models will be retained (i.e., listwise deletion). IfFALSE
, then missing data will be handled in each model separately bylm()
.- ...
Additional arguments. To be passed to
lm()
.
Value
A list of the output of lm()
. The
class is lm_list_lmhelprs
.
Details
This function extracts
linear model formulas from a
model syntax (a character vector),
fits each of them by lm()
, and
stores the results in a list.
Lines with the first non-whitespace
character "#"
are treated as comments
and ignored.
Each line must be a valid formula
for lm()
.
Listwise deletion
If na_omit_all
is TRUE
, the
default, then cases with missing
data on at least one of the variables
used in the model will be removed.
Each call to lm()
will have subset
set to an integer vector of cases
not removed (i.e., cases retained)
Author
Shu Fai Cheung https://orcid.org/0000-0002-9871-9448
Examples
data(data_test1)
mod <- "x3 ~ x2 + x1
x4 ~ x3
x5 ~ x4*x1"
out <- many_lm(mod, data_test1)
summary(out)
#> Call:
#> many_lm(models = mod, data = data_test1)
#>
#> Model:
#> x3 ~ x2 + x1
#> <environment: 0x55ae819cf0c8>
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) -0.0835 0.0968 -0.86 0.39067
#> x2 -0.0494 0.0896 -0.55 0.58289
#> x1 0.3801 0.0955 3.98 0.00013 ***
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> R-square = 0.143. Adjusted R-square = 0.125. F(2, 97) = 8.079, p < .001
#>
#> Model:
#> x4 ~ x3
#> <environment: 0x55ae819cf0c8>
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) -0.1144 0.0866 -1.32 0.190
#> x3 0.2156 0.0846 2.55 0.012 *
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> R-square = 0.062. Adjusted R-square = 0.053. F(1, 98) = 6.489, p = 0.012
#>
#> Model:
#> x5 ~ x4 * x1
#> <environment: 0x55ae819cf0c8>
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) -0.10644 0.10399 -1.02 0.3086
#> x4 0.15124 0.11589 1.31 0.1950
#> x1 0.27872 0.09885 2.82 0.0058 **
#> x4:x1 0.00945 0.12017 0.08 0.9375
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> R-square = 0.108. Adjusted R-square = 0.080. F(3, 96) = 3.878, p = 0.012