Unified interface that dispatches to brs_fit_fixed
(fixed dispersion) or brs_fit_var (variable
dispersion) based on the formula structure.
Arguments
- formula
A
Formula-style formula with two parts:y ~ x1 + x2 | z1 + z2.- data
Data frame.
- link
Mean link function (default
"logit").- link_phi
Dispersion link function (default
"logit").- ncuts
Number of scale categories (default 100).
- lim
Uncertainty half-width (default 0.5).
- repar
Reparameterization scheme (default 2).
- method
Optimization method (default
"BFGS").- hessian_method
Character:
"numDeriv"or"optim".
Details
If the formula contains a | separator
(e.g., y ~ x1 + x2 | z1), the variable-dispersion model is
fitted; otherwise, a fixed-dispersion model is used.
References
Hawker, G. A., Mian, S., Kendzerska, T., and French, M. (2011). Measures of adult pain: Visual Analog Scale for Pain (VAS Pain), Numeric Rating Scale for Pain (NRS Pain), McGill Pain Questionnaire (MPQ), Short-Form McGill Pain Questionnaire (SF-MPQ), Chronic Pain Grade Scale (CPGS), Short Form-36 Bodily Pain Scale (SF-36 BPS), and Measure of Intermittent and Constant Osteoarthritis Pain (ICOAP). Arthritis Care and Research, 63(S11), S240-S252. doi:10.1002/acr.20543.
Hjermstad, M. J., Fayers, P. M., Haugen, D. F., et al. (2011). Studies comparing Numerical Rating Scales, Verbal Rating Scales, and Visual Analogue Scales for assessment of pain intensity in adults: a systematic literature review. Journal of Pain and Symptom Management, 41(6), 1073-1093. doi:10.1016/j.jpainsymman.2010.08.016.
Examples
set.seed(42)
n <- 100
dat <- data.frame(
x1 = rnorm(n), x2 = rnorm(n),
z1 = runif(n)
)
sim <- brs_sim(
formula = ~ x1 + x2 | z1,
data = dat,
beta = c(0.2, -0.5, 0.3),
zeta = c(1, 1.2)
)
# Fixed dispersion
fit1 <- brs(y ~ x1 + x2, data = sim)
print(fit1)
#>
#> Call:
#> brs(formula = y ~ x1 + x2, data = sim)
#>
#> Coefficients (mean model with logit link):
#> (Intercept) x1 x2
#> 0.0959 -0.3912 0.2964
#>
#> Phi coefficients (precision model with logit link):
#> (phi)
#> 1.4895
#>
# Variable dispersion
fit2 <- brs(y ~ x1 + x2 | z1, data = sim)
print(fit2)
#>
#> Call:
#> brs(formula = y ~ x1 + x2 | z1, data = sim)
#>
#> Coefficients (mean model with logit link):
#> (Intercept) x1 x2
#> 0.0959 -0.3912 0.2965
#>
#> Phi coefficients (precision model with logit link):
#> (phi)_(Intercept) (phi)_z1
#> 1.4876 0.0040
#>
