bayespecon.models.flow_panel.OLSFlowPanel¶
- class bayespecon.models.flow_panel.OLSFlowPanel(y, G, X, T, **kwargs)[source]¶
Non-spatial Bayesian OD-flow gravity model for balanced panel data.
Panel analogue of
OLSFlow: implements the conventional log-linear gravity specification of Thomas-Agnan and LeSage [2014] (eq. 83.2) with no spatial lag terms,\[y_{t} = X_{t}\,\beta + \varepsilon_{t}, \quad \varepsilon_{t} \sim \mathcal{N}(0, \sigma^{2} I_{N}),\]on a balanced panel of \(T\) periods, applying the same fixed-effects within transform (model argument) as the spatial panel flow models. Provided as the canonical null model for Bayesian LM diagnostics on panel flow data.
- Parameters:¶
- y : array-like¶
Stacked panel response in shape
(T, n, n),(T, n^2), or(n^2 * T,).- G : libpysal.graph.Graph¶
Row-standardised graph on
nunits. Required for API symmetry but not used in estimation.- X¶
Stacked panel design matrix in time-first order.
- T : int¶
Number of panel periods.
- col_names : list of str, optional
Feature names for
X. Inferred from a DataFrame if omitted.- k : int, optional
Number of destination/origin covariate pairs used by flow effects; inferred from columns prefixed
dest_if omitted.- model : int, default 0
Fixed-effects transform:
0pooled,1pair FE,2time FE,3two-way FE.- priors : dict, optional
Override default priors. Supported keys:
beta_mu(float, default 0.0): Normal prior mean for \(\beta\).beta_sigma(float, default 1e6): Normal prior std for \(\beta\).sigma_sigma(float, default 10.0): HalfNormal prior std for \(\sigma\).nu_lam(float, default 1/30): Rate of TruncExp(lower=2) prior on \(\nu\) (only used whenrobust=True).
Spatial keys (
rho_*) are ignored in this aspatial baseline.- robust : bool, default False
If True, replace the Normal error with Student-t.
- symmetric_xo_xd : bool, optional
Whether to constrain origin and destination covariate effects to be equal. Forwarded to
FlowPanelModel.
Notes
All log-determinant precomputation is skipped (
A = I_Nwith \(|A| = 1\)).Methods
__init__(y, G, X, T, **kwargs)fit([draws, tune, chains, target_accept, ...])Draw samples from the posterior.
fit_approx([draws, n, method, random_seed, ...])Fit a variational approximation and return posterior draws.
posterior_predictive([n_draws, random_seed, ...])Draw posterior-predictive flows for the OLS panel gravity model.
Run Bayesian LM specification tests for flow panel models.
spatial_diagnostics_decision([alpha, ...])Return a model-selection decision from Bayesian LM test results.
spatial_effects([draws, ...])Summarise posterior origin/destination/intra/network/total effects.
summary([var_names])Return posterior summary table via ArviZ.
Attributes
Return the most recent PyMC variational approximation, if any.
Return posterior draws from the most recent fit.
Return the most recently built PyMC model.
-
fit(draws=
2000, tune=1000, chains=4, target_accept=0.9, random_seed=None, store_lambda=False, idata_kwargs=None, **sample_kwargs)[source]¶ Draw samples from the posterior.
-
fit_approx(draws=
2000, n=10000, method='advi', random_seed=None, store_lambda=False, compute_log_likelihood=True, **fit_kwargs)[source]¶ Fit a variational approximation and return posterior draws.
- property inference_data : arviz.data.inference_data.InferenceData | None[source]¶
Return posterior draws from the most recent fit.
-
posterior_predictive(n_draws=
None, random_seed=None, parallel=-1)[source]¶ Draw posterior-predictive flows for the OLS panel gravity model.
Overrides the base implementation, which expects
rho_d,rho_o,rho_wposterior arrays that this model does not sample.
- property pymc_model : pymc.model.core.Model | None[source]¶
Return the most recently built PyMC model.
- spatial_diagnostics()[source]¶
Run Bayesian LM specification tests for flow panel models.
See
bayespecon.models.base.SpatialModel.spatial_diagnostics()for the column schema.- Raises:¶
RuntimeError – If the model has not been fit yet.
-
spatial_diagnostics_decision(alpha=
0.05, format='graphviz', theme='default')[source]¶ Return a model-selection decision from Bayesian LM test results.
Walks the panel-flow decision tree using Bayesian p-values from
spatial_diagnostics()and recommends eitherOLSFlowPanel(no spatial dependence detected) orSARFlowPanel(at least one direction is significant).- Parameters:¶
- alpha : float, default 0.05¶
Significance level for the Bayesian p-values.
- format : {"graphviz", "ascii", "model"}, default "graphviz"¶
Output format.
"model"returns the recommended model name string."ascii"returns an indented box-drawing tree."graphviz"returns agraphviz.Digraph(with ASCII fallback if graphviz is not installed).
- Return type:¶
str or graphviz.Digraph
-
spatial_effects(draws=
None, return_posterior_samples=False, ci=0.95, mode='auto', parallel=-1)[source]¶ Summarise posterior origin/destination/intra/network/total effects.
See
bayespecon.models.flow.FlowModel.spatial_effects()for themodesemantics (auto / combined / separate destination-origin sides per Thomas-Agnan & LeSage 2014, §83.5.2) and theparallelkwarg.