This should be used only to update the call to lm(), not to the call to std_selected() or std_selected_boot().

# S3 method for 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.

Value

If evaluate = TRUE, it returns the updated fitted object, otherwise, the updated call.

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().

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)
#> 
#> 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.06458    0.04825   1.338   0.1814    
#> iv           0.73738    0.02736  26.948   <2e-16 ***
#> mod          0.25990    0.02737   9.496   <2e-16 ***
#> v1          -0.03427    0.02733  -1.254   0.2104    
#> cat1gp2     -0.14501    0.06565  -2.209   0.0276 *  
#> cat1gp3     -0.03945    0.06880  -0.573   0.5666    
#> iv:mod       0.03209    0.02545   1.261   0.2080    
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
#> Residual standard error: 0.6077 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
#> 
#> Note:
#> - Estimates and their statistics are based on the data after mean-centering, scaling, or standardization.

# Update the model
lm_std2 <- update(lm_std, . ~ . - v1)
summary(lm_std2)
#> 
#> 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.06461    0.04828   1.338   0.1814    
#> iv           0.73731    0.02738  26.930   <2e-16 ***
#> mod          0.26188    0.02734   9.579   <2e-16 ***
#> cat1gp2     -0.14338    0.06567  -2.183   0.0295 *  
#> cat1gp3     -0.04186    0.06881  -0.608   0.5433    
#> iv:mod       0.03402    0.02542   1.338   0.1814    
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
#> Residual standard error: 0.608 on 494 degrees of freedom
#> Multiple R-squared:  0.634,	Adjusted R-squared:  0.6303 
#> F-statistic: 171.1 on 5 and 494 DF,  p-value: < 2.2e-16
#> 
#> Note:
#> - Estimates and their statistics are based on the data after mean-centering, scaling, or standardization.