python - 对均值和离散参数的负二项式回归效应
问题描述
我的因变量过度分散。因此,我想对我的数据应用广义负二项式回归。此外,我想检查指标对均值和离散参数的影响,就像在这两篇论文中一样:
第 128 页:Fleming, Lee (2001):技术搜索中的重组不确定性。在管理科学 47 (1),第 117-132 页。DOI:10.1287/mnsc.47.1.117.10671。
第 719 页:Verhoeven,丹尼斯;巴克,尤里安;Veugelers, Reinhilde (2016):使用基于专利的指标衡量技术新颖性。在研究政策 45 (3),第 707-723 页。DOI:10.1016/j.respol.2015.11.010。
两位作者都在 STATA 中进行了回归,因此我不能依赖他们的代码,因为我想在 Python 中进行(或者如果不可能,在 SPSS 中)。
我当前的 Python 代码处理回归并显示回归系数。但是,我看不到对均值和分散产生影响的选项:
expr = """CIT_REC ~ SCIENCE_NOV
+ APY + PBY + IPC_A + IPC_B + IPC_C + IPC_D + IPC_E + IPC_F + IPC_G + IPC_H + IPC_Y + NUM_CLAIMS + NUM_ID_CLAIMS + NUM_DP_CLAIMS + COMPL_CLAIMS"""
y_train, X_train = dmatrices(expr, df_train, return_type='dataframe')
X_train = sm.add_constant(X_train)
poisson_training_results = sm.GLM(y_train, X_train, family=sm.families.Poisson()).fit()
#print(poisson_training_results.summary())
import statsmodels.formula.api as smf
df_train['BB_LAMBDA'] = poisson_training_results.mu
df_train['AUX_OLS_DEP'] = df_train.apply(lambda x: ((x['CIT_REC'] - x['BB_LAMBDA'])**2 - x['CIT_REC']) / x['BB_LAMBDA'], axis=1)
ols_expr = """AUX_OLS_DEP ~ BB_LAMBDA - 1"""
aux_olsr_results = smf.ols(ols_expr, df_train).fit()
print(aux_olsr_results.params)
nb2_training_results = sm.GLM(y_train, X_train,family=sm.families.NegativeBinomial(alpha=aux_olsr_results.params[0])).fit()
print(nb2_training_results.summary())
这是当前的输出。
Generalized Linear Model Regression Results
==============================================================================
Dep. Variable: CIT_REC No. Observations: 120332
Model: GLM Df Residuals: 120316
Model Family: NegativeBinomial Df Model: 15
Link Function: log Scale: 1.0000
Method: IRLS Log-Likelihood: -3.7912e+05
Date: Thu, 08 Oct 2020 Deviance: 74180.
Time: 10:45:42 Pearson chi2: 2.05e+05
No. Iterations: 14
Covariance Type: nonrobust
=================================================================================
coef std err z P>|z| [0.025 0.975]
---------------------------------------------------------------------------------
Intercept 228.8814 3.172 72.148 0.000 222.664 235.099
SCIENCE_NOV 3.3563 0.532 6.309 0.000 2.314 4.399
APY 0.0129 0.008 1.663 0.096 -0.002 0.028
PBY -0.1385 0.008 -17.227 0.000 -0.154 -0.123
IPC_A 26.0610 0.353 73.732 0.000 25.368 26.754
IPC_B 25.3848 0.352 72.015 0.000 24.694 26.076
IPC_C 24.7705 0.356 69.669 0.000 24.074 25.467
IPC_D 24.6420 0.382 64.585 0.000 23.894 25.390
IPC_E 25.0614 0.357 70.161 0.000 24.361 25.762
IPC_F 25.3837 0.358 70.980 0.000 24.683 26.085
IPC_G 25.6531 0.352 72.802 0.000 24.962 26.344
IPC_H 25.7289 0.354 72.631 0.000 25.035 26.423
IPC_Y 26.1960 0.367 71.351 0.000 25.476 26.916
NUM_CLAIMS -0.5566 0.178 -3.123 0.002 -0.906 -0.207
NUM_ID_CLAIMS 0.5767 0.178 3.235 0.001 0.227 0.926
NUM_DP_CLAIMS 0.5758 0.178 3.230 0.001 0.226 0.925
COMPL_CLAIMS -0.0002 2.56e-05 -7.709 0.000 -0.000 -0.000
=================================================================================
编辑:我问作者得到了以下信息。我们使用了 stata 'nbreg' 命令,并指定 'lnalpha(vars)' 作为对离散度建模的选项。python或SPSS中是否有类似的功能?
解决方案
推荐阅读
- database - Pentaho执行SQL语句
- unit-testing - 如何在开玩笑的单元测试中使用导入的 graphql 文件?
- scala - Apache Spark SQL 中的安全向下转换
- javascript - 当referrer header设置为no-referrer时在IE11中播放html5视频
- php - Laravel: 试图生成 pdf -> sh: 1: wkhtmltopdf: not found - 我可以为 shell 注册 wkhtmltopdf 吗?
- c# - 并行 ForEach 不等待 HttpClient
- jfrog-cli - 通过 api 从 Jfrog 的 repo 中获取所有孩子的列表
- istio - 有没有办法设置多个 Istio 网关,每个网关都有相同的主机,但在不同的命名空间中?
- sql - Sql - 字母表中的哪个字母不在名称中
- logging - 当 Airflow 尝试写入日志时 Errno 13 权限被拒绝