Ivan Jacob Agaloos Pesigan 2024-08-26
Generates Monte Carlo confidence intervals for standardized regression
coefficients (beta) and other effect sizes, including multiple
correlation, semipartial correlations, improvement in R-squared, squared
partial correlations, and differences in standardized regression
coefficients, for models fitted by lm()
. betaMC
combines ideas from
Monte Carlo confidence intervals for the indirect effect (Pesigan and
Cheung, 2023: http://doi.org/10.3758/s13428-023-02114-4) and the
sampling covariance matrix of regression coefficients (Dudgeon, 2017:
http://doi.org/10.1007/s11336-017-9563-z) to generate confidence
intervals effect sizes in regression.
You can install the CRAN release of betaMC
with:
install.packages("betaMC")
You can install the development version of betaMC
from
GitHub with:
if (!require("remotes")) install.packages("remotes")
remotes::install_github("jeksterslab/betaMC")
In this example, a multiple regression model is fitted using program
quality ratings (QUALITY
) as the regressand/outcome variable and
number of published articles attributed to the program faculty members
(NARTIC
), percent of faculty members holding research grants
(PCTGRT
), and percentage of program graduates who received support
(PCTSUPP
) as regressor/predictor variables using a data set from 1982
ratings of 46 doctoral programs in psychology in the USA (National
Research Council, 1982). Confidence intervals for the standardized
regression coefficients are generated using the BetaMC()
function from
the betaMC
package.
library(betaMC)
df <- betaMC::nas1982
Fit the regression model using the lm()
function.
object <- lm(QUALITY ~ NARTIC + PCTGRT + PCTSUPP, data = df)
mvn <- MC(object, type = "mvn")
adf <- MC(object, type = "adf")
hc3 <- MC(object, type = "hc3")
BetaMC(mvn, alpha = 0.05)
#> Call:
#> BetaMC(object = mvn, alpha = 0.05)
#>
#> Standardized regression slopes
#> type = "mvn"
#> est se R 2.5% 97.5%
#> NARTIC 0.4951 0.0758 20000 0.3378 0.6365
#> PCTGRT 0.3915 0.0772 20000 0.2342 0.5389
#> PCTSUPP 0.2632 0.0747 20000 0.1189 0.4095
BetaMC(adf, alpha = 0.05)
#> Call:
#> BetaMC(object = adf, alpha = 0.05)
#>
#> Standardized regression slopes
#> type = "adf"
#> est se R 2.5% 97.5%
#> NARTIC 0.4951 0.0677 20000 0.3516 0.6160
#> PCTGRT 0.3915 0.0708 20000 0.2428 0.5201
#> PCTSUPP 0.2632 0.0769 20000 0.1052 0.4092
BetaMC(hc3, alpha = 0.05)
#> Call:
#> BetaMC(object = hc3, alpha = 0.05)
#>
#> Standardized regression slopes
#> type = "hc3"
#> est se R 2.5% 97.5%
#> NARTIC 0.4951 0.0798 20000 0.3229 0.6355
#> PCTGRT 0.3915 0.0829 20000 0.2161 0.5420
#> PCTSUPP 0.2632 0.0851 20000 0.0879 0.4231
The betaMC
package also has functions to generate Monte Carlo
confidence intervals for other effect sizes such as RSqMC()
for
multiple correlation coefficients (R-squared and adjusted R-squared),
DeltaRSqMC()
for improvement in R-squared, SCorMC()
for semipartial
correlation coefficients, PCorMC()
for squared partial correlation
coefficients, and DiffBetaMC()
for differences of standardized
regression coefficients.
RSqMC(hc3, alpha = 0.05)
#> Call:
#> RSqMC(object = hc3, alpha = 0.05)
#>
#> R-squared and adjusted R-squared
#> type = "hc3"
#> est se R 2.5% 97.5%
#> rsq 0.8045 0.0620 20000 0.6463 0.8888
#> adj 0.7906 0.0664 20000 0.6210 0.8809
DeltaRSqMC(hc3, alpha = 0.05)
#> Call:
#> DeltaRSqMC(object = hc3, alpha = 0.05)
#>
#> Improvement in R-squared
#> type = "hc3"
#> est se R 2.5% 97.5%
#> NARTIC 0.1859 0.0688 20000 0.0496 0.3218
#> PCTGRT 0.1177 0.0549 20000 0.0249 0.2382
#> PCTSUPP 0.0569 0.0371 20000 0.0060 0.1475
SCorMC(hc3, alpha = 0.05)
#> Call:
#> SCorMC(object = hc3, alpha = 0.05)
#>
#> Semipartial correlations
#> type = "hc3"
#> est se R 2.5% 97.5%
#> NARTIC 0.4312 0.0868 20000 0.2226 0.5673
#> PCTGRT 0.3430 0.0838 20000 0.1577 0.4881
#> PCTSUPP 0.2385 0.0777 20000 0.0772 0.3841
PCorMC(hc3, alpha = 0.05)
#> Call:
#> PCorMC(object = hc3, alpha = 0.05)
#>
#> Squared partial correlations
#> type = "hc3"
#> est se R 2.5% 97.5%
#> NARTIC 0.4874 0.1198 20000 0.1728 0.6485
#> PCTGRT 0.3757 0.1163 20000 0.1042 0.5563
#> PCTSUPP 0.2254 0.1125 20000 0.0256 0.4568
DiffBetaMC(hc3, alpha = 0.05)
#> Call:
#> DiffBetaMC(object = hc3, alpha = 0.05)
#>
#> Differences of standardized regression slopes
#> type = "hc3"
#> est se R 2.5% 97.5%
#> NARTIC-PCTGRT 0.1037 0.1433 20000 -0.1794 0.3817
#> NARTIC-PCTSUPP 0.2319 0.1322 20000 -0.0353 0.4823
#> PCTGRT-PCTSUPP 0.1282 0.1375 20000 -0.1499 0.3896
See GitHub Pages for package documentation.
To cite betaMC
in publications, please cite Pesigan & Cheung (2023).
Dudgeon, P. (2017). Some improvements in confidence intervals for standardized regression coefficients. Psychometrika, 82(4), 928–951. https://doi.org/10.1007/s11336-017-9563-z
National Research Council. (1982). An assessment of research-doctorate programs in the United States: Social and behavioral sciences. National Academies Press. https://doi.org/10.17226/9781
Pesigan, I. J. A., & Cheung, S. F. (2023). Monte Carlo confidence intervals for the indirect effect with missing data. Behavior Research Methods, 56(3), 1678–1696. https://doi.org/10.3758/s13428-023-02114-4