qq_53668747 2023-05-19 14:22 采纳率: 0%
浏览 25

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

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

img

  • 写回答

1条回答 默认 最新

  • 蓝色心灵-海 2023-05-19 14:28
    关注

    在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参数用于指定协方差矩阵的类型和具体的协方差矩阵。
    需要注意的是,限制某些参数不参与建模可能会影响模型的准确性。应该根据实际情况进行调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月19日

悬赏问题

  • ¥15 关于#vue.js#的问题:word excel和ppt预览问题语言-javascript)
  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢
  • ¥15 vxworks交叉编译gcc报错error: missing binary operator before token "("