statsmodels.stats.oaxaca.OaxacaBlinder¶
-
class statsmodels.stats.oaxaca.OaxacaBlinder(endog, exog, bifurcate, hasconst=
True, swap=True, cov_type='nonrobust', cov_kwds=None)[source]¶ 用于执行Oaxaca-Blinder分解的类。
- Parameters:¶
- endogarray_like
内生变量或您试图解释的因变量。
- exogarray_like
外生变量或用于解释内生变量的自变量。
- bifurcate{
int,str} 要分割的外生变量列。这通常是你希望解释两个均值的组。对于NumPy数组,列的整数索引;对于Pandas,列名的整数或字符串。
- hasconstbool,
optional 指示两个外生变量是否包含用户提供的常数。如果为True,则假设存在常数。如果为False,则在开始时添加常数。如果未提供任何内容,则默认假设为True。
- swapbool,
optional 模仿STATA的Oaxaca命令,允许用户选择交换组。与STATA不同,这里假设为True而不是False
- cov_type
str,optional 参见 regression.linear_model.RegressionResults 以获取可用协方差估计器的描述
- cov_kwds
dict,optional 请参阅 linear_model.RegressionResults.get_robustcov_results,了解替代协方差估计器所需的描述性关键字
注释
请检查您的数据是否包含常量。如果设置不正确,这仍然会运行,但会返回不正确的值。
您可以通过使用它们的代码作为属性来访问模型,例如,_t_model 表示总模型,_f_model 表示第一个模型,_s_model 表示第二个模型。
示例
>>> import numpy as np >>> import statsmodels.api as sm >>> data = sm.datasets.ccards.load()‘3’ 是我们想要解释的列,或者是指示两个组的列。在这种情况下,它表示你是否租房。
>>> 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.75044方法
three_fold([std, n, conf])计算三重Oaxaca Blinder分解
two_fold([std, two_fold_type, ...])计算两倍或合并的Oaxaca Blinder分解
variance(decomp_type[, n, conf])一个用于计算方差/标准差的辅助函数。
Last update:
Oct 16, 2024