statsmodels.stats.oaxaca.OaxacaBlinder¶
-
class statsmodels.stats.oaxaca.OaxacaBlinder(endog, exog, bifurcate, hasconst=
True, swap=True, cov_type='nonrobust', cov_kwds=None)[source]¶ Class to perform Oaxaca-Blinder Decomposition.
- Parameters:¶
- endog : array_like¶
The endogenous variable or the dependent variable that you are trying to explain.
- exog : array_like¶
The exogenous variable(s) or the independent variable(s) that you are using to explain the endogenous variable.
- bifurcate : {int, str}¶
The column of the exogenous variable(s) on which to split. This would generally be the group that you wish to explain the two means for. Int of the column for a NumPy array or int/string for the name of the column in Pandas.
- hasconst : bool, optional¶
Indicates whether the two exogenous variables include a user-supplied constant. If True, a constant is assumed. If False, a constant is added at the start. If nothing is supplied, then True is assumed.
- swap : bool, optional¶
Imitates the STATA Oaxaca command by allowing users to choose to swap groups. Unlike STATA, this is assumed to be True instead of False
- cov_type : str, optional¶
See regression.linear_model.RegressionResults for a description of the available covariance estimators
- cov_kwds : dict, optional¶
See linear_model.RegressionResults.get_robustcov_results for a description required keywords for alternative covariance estimators
Notes
Please check if your data includes at constant. This will still run, but will return incorrect values if set incorrectly.
You can access the models by using their code as an attribute, e.g., _t_model for the total model, _f_model for the first model, _s_model for the second model.
Examples
>>> import numpy as np >>> import statsmodels.api as sm >>> data = sm.datasets.ccards.load()‘3’ is the column of which we want to explain or which indicates the two groups. In this case, it is if you rent.
>>> model = sm.OaxacaBlinder(df.endog, df.exog, 3, hasconst = False) >>> model.two_fold().summary() Oaxaca-Blinder Two-fold Effects Unexplained Effect: 27.94091 Explained Effect: 130.80954 Gap: 158.75044>>> model.three_fold().summary() Oaxaca-Blinder Three-fold Effects Endowments Effect: 321.74824 Coefficient Effect: 75.45371 Interaction Effect: -238.45151 Gap: 158.75044Methods
three_fold([std, n, conf])Calculates the three-fold Oaxaca Blinder Decompositions
two_fold([std, two_fold_type, ...])Calculates the two-fold or pooled Oaxaca Blinder Decompositions
variance(decomp_type[, n, conf])A helper function to calculate the variance/std.