classmethod BetweenOLS.from_formula(formula: str, data: PanelData | ndarray | DataArray | DataFrame | Series, *, weights: PanelData | ndarray | DataArray | DataFrame | Series | None = None, check_rank: bool = True) BetweenOLS[source]

Create a model from a formula

formula: str

Formula to transform into model. Conforms to formulaic formula rules.

data: PanelData | ndarray | DataArray | DataFrame | Series

Data structure that can be coerced into a PanelData. In most cases, this should be a multi-index DataFrame where the level 0 index contains the entities and the level 1 contains the time.

weights: PanelData | ndarray | DataArray | DataFrame | Series | None = None

Weights to use in estimation. Assumes residual variance is proportional to inverse of weight to that the residual times the weight should be homoskedastic.

check_rank: bool = True

Flag indicating whether to perform a rank check on the exogenous variables to ensure that the model is identified. Skipping this check can reduce the time required to validate a model specification. Results may be numerically unstable if this check is skipped and the matrix is not full rank.


Model specified using the formula

Return type:



Unlike standard formula syntax, it is necessary to explicitly include a constant using the constant indicator (1)


>>> from linearmodels import BetweenOLS
>>> from linearmodels.panel import generate_panel_data
>>> panel_data = generate_panel_data()
>>> mod = BetweenOLS.from_formula("y ~ 1 + x1",
>>> res =