python建立arima模型,怎么去除不显著的参数?

用python的statsmodels库中sm.tsa.arima.ARIMA函数进行建模时,有参数没有通过显著性检验,R语言中可以用fixed参数设置不用该参数进行建模,python中应该怎么实现

img

在Python的statsmodels库中,可以通过设置ARIMA模型中的参数限制条件来实现类似于R语言中fixed参数的功能。具体实现方法如下:

  1. 定义ARIMA模型时,使用sm.tsa.ARIMA函数,并指定参数p、d、q和数据。
  2. 通过model.fit方法拟合模型,得到一个ARIMAResults对象。
  3. 使用该对象的summary方法,可以查看模型的统计学参数及显著性检验结果。
  4. 如果想要限制某些参数不参与建模,可以使用该对象的cov_params方法得到协方差矩阵,然后将不需要参与建模的参数的对应的协方差矩阵元素设置为0,即可实现限制该参数不参与建模的效果。
    具体步骤如下所示:

import statsmodels.api as sm
 # 定义ARIMA模型,p=1,d=1,q=1,数据为y
model = sm.tsa.ARIMA(y, order=(1, 1, 1))
 # 拟合ARIMA模型
result = model.fit()
 # 查看模型的概要信息
print(result.summary())
 # 将参数theta2限制为0,即限制第三个参数q不参与建模
params = result.params
cov_params = result.cov_params()
cov_params.iloc[2, 2] = 0
result_2 = sm.tsa.ArmaModel(y, (1, 1), params=params, cov_type="cov_kwds", cov_kwds={"cov_params": cov_params}).fit()
 # 查看修改后的模型概要信息
print(result_2.summary())


上述代码中,通过将模型参数theta2对应的协方差矩阵元素设置为0,实现限制第三个参数q不参与建模的效果。其中cov_type和cov_kwds参数用于指定协方差矩阵的类型和具体的协方差矩阵。
需要注意的是,限制某些参数不参与建模可能会影响模型的准确性。应该根据实际情况进行调整。