linearmodels.panel.model.PanelOLS.from_formula¶
-
classmethod PanelOLS.from_formula(formula: str, data: PanelData | ndarray | DataArray | DataFrame | Series, *, weights: PanelData | ndarray | DataArray | DataFrame | Series | None =
None
, other_effects: PanelData | ndarray | DataArray | DataFrame | Series | None =None
, singletons: bool =True
, drop_absorbed: bool =False
, check_rank: bool =True
) PanelOLS [source]¶ Create a model from a formula
- Parameters:¶
- formula: str¶
Formula to transform into model. Conforms to formulaic formula rules with two special variable names, EntityEffects and TimeEffects which can be used to specify that the model should contain an entity effect or a time effect, respectively. See Examples.
- 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 time the weight should be homoskedastic.
- other_effects: PanelData | ndarray | DataArray | DataFrame | Series | None =
None
¶ Category codes to use for any effects that are not entity or time effects. Each variable is treated as an effect.
- singletons: bool =
True
¶ Flag indicating whether to drop singleton observation
- drop_absorbed: bool =
False
¶ Flag indicating whether to drop absorbed variables
- 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.
- Returns:¶
Model specified using the formula
- Return type:¶
Examples
>>> from linearmodels import PanelOLS >>> from linearmodels.panel import generate_panel_data >>> panel_data = generate_panel_data() >>> mod = PanelOLS.from_formula("y ~ 1 + x1 + EntityEffects", panel_data.data) >>> res = mod.fit(cov_type="clustered", cluster_entity=True)