wbm_stan {panelr} | R Documentation |
Bayesian estimation of within-between models
Description
A near-equivalent of wbm()
that instead uses Stan,
via rstan and brms.
Usage
wbm_stan(
formula,
data,
id = NULL,
wave = NULL,
model = "w-b",
detrend = FALSE,
use.wave = FALSE,
wave.factor = FALSE,
min.waves = 2,
model.cor = FALSE,
family = gaussian,
fit_model = TRUE,
balance.correction = FALSE,
dt.random = TRUE,
dt.order = 1,
chains = 3,
iter = 2000,
scale = FALSE,
save_ranef = FALSE,
interaction.style = c("double-demean", "demean", "raw"),
weights = NULL,
offset = NULL,
...
)
Arguments
formula |
Model formula. See details for crucial
info on |
data |
The data, either a |
id |
If |
wave |
If |
model |
One of |
detrend |
Adjust within-subject effects for trends in the predictors? Default is FALSE, but some research suggests this is a better idea (see Curran and Bauer (2011) reference). |
use.wave |
Should the wave be included as a predictor? Default is FALSE. |
wave.factor |
Should the wave variable be treated as an unordered factor instead of continuous? Default is FALSE. |
min.waves |
What is the minimum number of waves an individual must
have participated in to be included in the analysis? Default is |
model.cor |
Do you want to model residual autocorrelation?
This is often appropriate for linear models ( |
family |
Use this to specify GLM link families. Default is |
fit_model |
Fit the model? Default is TRUE. If FALSE, only the model code is returned. |
balance.correction |
Correct between-subject effects for unbalanced panels following the procedure in Curran and Bauer (2011)? Default is FALSE. |
dt.random |
Should the detrending procedure be performed with a random slope for each entity? Default is TRUE but for short panels FALSE may be better, fitting a trend for all entities. |
dt.order |
If detrending using |
chains |
How many Markov chains should be used? Default is 3, to leave you with one unused thread if you're on a typical dual-core machine. |
iter |
How many iterations, including warmup? Default is 2000, leaving 1000 per chain after warmup. For some models and data, you may need quite a few more. |
scale |
Standardize predictors? This can speed up model fit. Default is FALSE. |
save_ranef |
Save random effect estimates? This can be crucial for predicting from the model and for certain post-estimation procedures. On the other hand, it drastically increases the size of the resulting model. Default is FALSE. |
interaction.style |
The best way to calculate interactions in within
models is in some dispute. The conventional way ( |
weights |
If using weights, either the name of the column in the data that contains the weights or a vector of the weights. |
offset |
this can be used to specify an a priori known
component to be included in the linear predictor during
fitting. This should be |
... |
Additional arguments passed on to |
Details
See wbm()
for details on the formula syntax, model types,
and some other stuff.
Value
A wbm_stan
object, which is a list containing a model
object
with the brm
model and a stan_code
object with the model code.
If fit_model = FALSE
, instead a list is returned containing a stan_code
object and a stan_data
object, leaving you with the tools you need to
run the model yourself using rstan
.
Author(s)
Jacob A. Long
See Also
Examples
## Not run:
data("WageData")
wages <- panel_data(WageData, id = id, wave = t)
model <- wbm_stan(lwage ~ lag(union) + wks | blk + fem | blk * lag(union),
data = wages, chains = 1, iter = 2000)
summary(model)
## End(Not run)