The 'update' Method for a 'std_selected' Class Object
Source:R/update_stdmod.R
update.std_selected.Rd
This should be used only to update the call to lm()
,
not to the call to std_selected()
or std_selected_boot()
.
Usage
# S3 method for class 'std_selected'
update(object, formula., ..., evaluate = TRUE)
Arguments
- object
The output of the class
std_selected()
.- formula.
Changes to the formula.
- ...
Optional arguments to be changed.
- evaluate
Whether the call will be evaluated.
Details
Although supported, it is not recommended to update an analysis
processed by std_selected()
or std_selected_boot()
. It is
recommended to call lm()
again and pass the output to
std_selected()
or std_selected_boot()
.
Author
Shu Fai Cheung https://orcid.org/0000-0002-9871-9448
Examples
# Load a sample data set
dat <- test_x_1_w_1_v_1_cat1_n_500
head(dat)
#> dv iv mod v1 cat1
#> 1 4946.751 12.76737 96.85621 11.756899 gp1
#> 2 6635.081 14.89097 106.25696 11.371237 gp2
#> 3 6060.708 15.24101 97.85852 9.377471 gp2
#> 4 7240.781 16.65782 104.80266 10.508913 gp1
#> 5 5775.759 11.84448 95.85912 15.093480 gp3
#> 6 7725.783 16.31270 100.20561 3.442902 gp2
# Do a moderated regression by lm
lm_raw <- lm(dv ~ iv*mod + v1 + cat1, dat)
summary(lm_raw)
#>
#> Call:
#> lm(formula = dv ~ iv * mod + v1 + cat1, data = dat)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -2146.0 -431.9 -25.0 411.2 2309.3
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 308.767 4075.066 0.076 0.9396
#> iv 52.760 271.242 0.195 0.8459
#> mod 5.127 40.772 0.126 0.9000
#> v1 -12.760 10.174 -1.254 0.2104
#> cat1gp2 -158.673 71.834 -2.209 0.0276 *
#> cat1gp3 -43.166 75.283 -0.573 0.5666
#> iv:mod 3.416 2.709 1.261 0.2080
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Residual standard error: 665 on 493 degrees of freedom
#> Multiple R-squared: 0.6352, Adjusted R-squared: 0.6307
#> F-statistic: 143 on 6 and 493 DF, p-value: < 2.2e-16
#>
# Standardize all variables except for categorical variables.
# Interaction terms are formed after standardization.
lm_std <- std_selected(lm_raw, to_scale = ~ .,
to_center = ~ .)
summary(lm_std)
#>
#> Call to std_selected():
#> std_selected(lm_out = lm_raw, to_scale = ~., to_center = ~.)
#>
#> Selected variable(s) are centered by mean and/or scaled by SD
#> - Variable(s) centered: dv iv mod v1 cat1
#> - Variable(s) scaled: dv iv mod v1 cat1
#>
#> centered_by scaled_by Note
#> dv 6565.02965 1094.244465 Standardized (mean = 0, SD = 1)
#> iv 15.01576 2.039154 Standardized (mean = 0, SD = 1)
#> mod 100.39502 5.040823 Standardized (mean = 0, SD = 1)
#> v1 10.13884 2.938932 Standardized (mean = 0, SD = 1)
#> cat1 NA NA Nonnumeric
#>
#> Note:
#> - Categorical variables will not be centered or scaled even if
#> requested.
#>
#> Call:
#> lm(formula = dv ~ iv * mod + v1 + cat1, data = dat_mod)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -1.96117 -0.39474 -0.02285 0.37579 2.11040
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 0.0646 0.0483 1.3385 0.18136
#> iv 0.7374 0.0274 26.9480 < 0.001 ***
#> mod 0.2599 0.0274 9.4962 < 0.001 ***
#> v1 -0.0343 0.0273 -1.2542 0.21037
#> cat1gp2 -0.1450 0.0656 -2.2089 0.02764 *
#> cat1gp3 -0.0394 0.0688 -0.5734 0.56664
#> iv:mod 0.0321 0.0255 1.2608 0.20799
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Residual standard error: 0.6077 on 493 degrees of freedom
#>
#> R-squared : 0.6352
#> Adjusted R-squared : 0.6307
#> ANOVA test of R-squared : F(6, 493) = 143.047, p < 0.001
#>
#> = Test the highest order term =
#> The highest order term : iv:mod
#> R-squared increase adding this term: 0.0012
#> F test of R-squared increase : F(1, 493) = 1.5895, p = 0.208
#>
#> Note:
#> - Estimates and their statistics are based on the data after
#> mean-centering, scaling, or standardization.
#> - One or more variables are scaled by SD or standardized. OLS standard
#> errors and confidence intervals may be biased for their coefficients.
#> Please use `std_selected_boot()`.
#>
# Update the model
lm_std2 <- update(lm_std, . ~ . - v1)
summary(lm_std2)
#>
#> Call to std_selected():
#> std_selected(lm_out = lm(formula = dv ~ iv + mod + cat1 + iv:mod,
#> data = dat), to_scale = ~., to_center = ~.)
#>
#> Selected variable(s) are centered by mean and/or scaled by SD
#> - Variable(s) centered: dv iv mod cat1
#> - Variable(s) scaled: dv iv mod cat1
#>
#> centered_by scaled_by Note
#> dv 6565.02965 1094.244465 Standardized (mean = 0, SD = 1)
#> iv 15.01576 2.039154 Standardized (mean = 0, SD = 1)
#> mod 100.39502 5.040823 Standardized (mean = 0, SD = 1)
#> cat1 NA NA Nonnumeric
#>
#> Note:
#> - Categorical variables will not be centered or scaled even if
#> requested.
#>
#> Call:
#> lm(formula = dv ~ iv + mod + cat1 + iv:mod, data = dat_mod)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -1.96126 -0.40630 -0.02305 0.36505 2.15456
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 0.0646 0.0483 1.3383 0.18143
#> iv 0.7373 0.0274 26.9299 < 0.001 ***
#> mod 0.2619 0.0273 9.5792 < 0.001 ***
#> cat1gp2 -0.1434 0.0657 -2.1833 0.02948 *
#> cat1gp3 -0.0419 0.0688 -0.6083 0.54327
#> iv:mod 0.0340 0.0254 1.3383 0.18141
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Residual standard error: 0.608 on 494 degrees of freedom
#>
#> R-squared : 0.6340
#> Adjusted R-squared : 0.6303
#> ANOVA test of R-squared : F(5, 494) = 171.1432, p < 0.001
#>
#> = Test the highest order term =
#> The highest order term : iv:mod
#> R-squared increase adding this term: 0.0013
#> F test of R-squared increase : F(1, 494) = 1.7911, p = 0.181
#>
#> Note:
#> - Estimates and their statistics are based on the data after
#> mean-centering, scaling, or standardization.
#> - One or more variables are scaled by SD or standardized. OLS standard
#> errors and confidence intervals may be biased for their coefficients.
#> Please use `std_selected_boot()`.
#>