gpt4 book ai didi

python - 在 Python 中使用不同的独立回归器运行 VARMAX 方程

转载 作者:行者123 更新时间:2023-12-04 10:10:27 24 4
gpt4 key购买 nike

我想将特定的外生变量分配给特定的回归。具体来说,请考虑下面的代码。如何将方程 dln_inv 的 beta.exog_only_for_inc_equation 系数限制为零,并将方程 dln_inc 的 beta.exog_only_for_inv_equation 系数限制为零?

import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
dta = sm.datasets.webuse('lutkepohl2', 'https://www.stata-press.com/data/r12/')
dta.index = dta.qtr
endog = dta.loc['1960-04-01':'1978-10-01', ['dln_inv', 'dln_inc', 'dln_consump']]

endog['exog_only_for_inv_equation']=[endog.index[i].quarter for i in range(len(endog.index))]
endog['exog_only_for_inc_equation']=endog['dln_consump']
exog = endog[['exog_only_for_inv_equation','exog_only_for_inc_equation']]
mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(2,0), trend='n', exog=exog)
res = mod.fit(maxiter=1000, disp=False)
print(res.summary())


Statespace Model Results
==================================================================================
Dep. Variable: ['dln_inv', 'dln_inc'] No. Observations: 75
Model: VARX(2) Log Likelihood 363.197
Date: Wed, 22 Apr 2020 AIC -696.394
Time: 22:49:07 BIC -661.631
Sample: 04-01-1960 HQIC -682.513
- 10-01-1978
Covariance Type: opg
===================================================================================
Ljung-Box (Q): 60.43, 38.85 Jarque-Bera (JB): 8.31, 4.57
Prob(Q): 0.02, 0.52 Prob(JB): 0.02, 0.10
Heteroskedasticity (H): 0.46, 0.42 Skew: 0.13, -0.55
Prob(H) (two-sided): 0.06, 0.04 Kurtosis: 4.61, 3.48
Results for equation dln_inv
===================================================================================================
coef std err z P>|z| [0.025 0.975]
---------------------------------------------------------------------------------------------------
L1.dln_inv -0.2468 0.094 -2.624 0.009 -0.431 -0.062
L1.dln_inc 0.2937 0.481 0.610 0.542 -0.649 1.237
L2.dln_inv -0.1873 0.152 -1.235 0.217 -0.485 0.110
L2.dln_inc -0.0805 0.413 -0.195 0.846 -0.891 0.730
beta.exog_only_for_inv_equation -0.0007 0.004 -0.172 0.863 -0.009 0.008
beta.exog_only_for_inc_equation 1.2446 0.639 1.947 0.052 -0.008 2.497
Results for equation dln_inc
===================================================================================================
coef std err z P>|z| [0.025 0.975]
---------------------------------------------------------------------------------------------------
L1.dln_inv 0.0606 0.033 1.830 0.067 -0.004 0.126
L1.dln_inc 0.0170 0.133 0.128 0.898 -0.243 0.277
L2.dln_inv 0.0116 0.035 0.333 0.739 -0.056 0.080
L2.dln_inc -0.0187 0.130 -0.143 0.886 -0.273 0.236
beta.exog_only_for_inv_equation 0.0018 0.001 1.756 0.079 -0.000 0.004
beta.exog_only_for_inc_equation 0.7046 0.111 6.321 0.000 0.486 0.923
Error covariance matrix
============================================================================================
coef std err z P>|z| [0.025 0.975]
--------------------------------------------------------------------------------------------
sqrt.var.dln_inv 0.0434 0.004 12.267 0.000 0.036 0.050
sqrt.cov.dln_inv.dln_inc 5.319e-06 0.002 0.003 0.998 -0.004 0.004
sqrt.var.dln_inc 0.0106 0.001 10.475 0.000 0.009 0.013
============================================================================================

Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).

最佳答案

我不得不仔细阅读 statsmodels.tsa.statespace.dynamic_factor.DynamicFactor 上的文档。

在 mod 之后,使用以下几行更改代码

with mod.fix_params({'beta.exog_only_for_inc_equation.dln_inv': 0,'beta.exog_only_for_inv_equation.dln_inc':0}):
res = mod.fit()
print(res.summary())

这将产生:
    Statespace Model Results                             
==================================================================================
Dep. Variable: ['dln_inv', 'dln_inc'] No. Observations: 75
Model: VARX(2) Log Likelihood 359.238
Date: Sat, 25 Apr 2020 AIC -692.475
Time: 00:52:20 BIC -662.348
Sample: 04-01-1960 HQIC -680.446
- 10-01-1978
Covariance Type: opg
===================================================================================
Ljung-Box (Q): 61.97, 39.25 Jarque-Bera (JB): 14.10, 2.67
Prob(Q): 0.01, 0.50 Prob(JB): 0.00, 0.26
Heteroskedasticity (H): 0.44, 0.39 Skew: 0.10, -0.40
Prob(H) (two-sided): 0.05, 0.02 Kurtosis: 5.11, 3.47
Results for equation dln_inv
===========================================================================================================
coef std err z P>|z| [0.025 0.975]
-----------------------------------------------------------------------------------------------------------
L1.dln_inv -0.2537 0.095 -2.663 0.008 -0.440 -0.067
L1.dln_inc 0.5490 0.442 1.243 0.214 -0.317 1.415
L2.dln_inv -0.1359 0.175 -0.778 0.436 -0.478 0.206
L2.dln_inc 0.4770 0.371 1.286 0.198 -0.250 1.204
beta.exog_only_for_inv_equation 0.0015 0.005 0.321 0.748 -0.008 0.011
beta.exog_only_for_inc_equation (fixed) 0 nan nan nan nan nan
Results for equation dln_inc
===========================================================================================================
coef std err z P>|z| [0.025 0.975]
-----------------------------------------------------------------------------------------------------------
L1.dln_inv 0.0615 0.035 1.737 0.082 -0.008 0.131
L1.dln_inc 0.0584 0.105 0.557 0.577 -0.147 0.264
L2.dln_inv 0.0091 0.031 0.289 0.773 -0.052 0.071
L2.dln_inc 0.0181 0.126 0.144 0.886 -0.229 0.265
beta.exog_only_for_inv_equation (fixed) 0 nan nan nan nan nan
beta.exog_only_for_inc_equation 0.8123 0.115 7.070 0.000 0.587 1.038
Error covariance matrix
============================================================================================
coef std err z P>|z| [0.025 0.975]
--------------------------------------------------------------------------------------------
sqrt.var.dln_inv 0.0445 0.003 14.175 0.000 0.038 0.051
sqrt.cov.dln_inv.dln_inc -5.595e-05 0.002 -0.028 0.978 -0.004 0.004
sqrt.var.dln_inc 0.0108 0.001 11.536 0.000 0.009 0.013
============================================================================================

Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).

要查找参数的名称,只需键入
res.param_names

这将显示您可以使用的所有参数名称。对于上面的例子,
['L1.dln_inv.dln_inv',
'L1.dln_inc.dln_inv',
'L2.dln_inv.dln_inv',
'L2.dln_inc.dln_inv',
'L1.dln_inv.dln_inc',
'L1.dln_inc.dln_inc',
'L2.dln_inv.dln_inc',
'L2.dln_inc.dln_inc',
'beta.exog_only_for_inv_equation.dln_inv',
'beta.exog_only_for_inc_equation.dln_inv',
'beta.exog_only_for_inv_equation.dln_inc',
'beta.exog_only_for_inc_equation.dln_inc',
'sqrt.var.dln_inv',
'sqrt.cov.dln_inv.dln_inc',
'sqrt.var.dln_inc']

希望这证明是有用的。

关于python - 在 Python 中使用不同的独立回归器运行 VARMAX 方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61353394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com