A near-equivalent of `wbm()`

that instead uses Stan,
via rstan and brms.

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

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 |

... | Additional arguments passed on to |

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`

.

See `wbm()`

for details on the formula syntax, model types,
and some other stuff.

if (FALSE) { 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) }