在时间序列上反转ARMA模型以获得R中的残差
这似乎是一件显而易见的事情,但我找不到一个函数: 我有一个观测的时间序列,比如x_t,和一个由AR系数给出的ARMA模型规范,比如\alpha_1,,&\alpha_p和MA系数\beta_1,,\beta_q。我想计算推动创新的向量,比如e_t 我已经阅读了过滤器的帮助,但它似乎与我需要的相反(即,它需要创新和系数,并计算观察结果) 我可以通过将系统写成Ax=Be,然后使用B^{-1}Ax来实现这一点,但是对于大型序列,这需要时间,我担心反演的数值稳定性 我们可以使用在时间序列上反转ARMA模型以获得R中的残差,r,time-series,R,Time Series,这似乎是一件显而易见的事情,但我找不到一个函数: 我有一个观测的时间序列,比如x_t,和一个由AR系数给出的ARMA模型规范,比如\alpha_1,,&\alpha_p和MA系数\beta_1,,\beta_q。我想计算推动创新的向量,比如e_t 我已经阅读了过滤器的帮助,但它似乎与我需要的相反(即,它需要创新和系数,并计算观察结果) 我可以通过将系统写成Ax=Be,然后使用B^{-1}Ax来实现这一点,但是对于大型序列,这需要时间,我担心反演的数值稳定性 我们可以使用 ts1 <- a
ts1 <- arima.sim(model=list(AR=0.5, MA=0.5), n=10)
ts1我想我想得太多了-很容易解决这个问题,在第一次观察之前,通过递归假设白噪声项
显然,这在R中给出了一个循环
一个变通方法是使用
阿里玛
具有
固定的
设置您的建模参数。我想我是想得太多了-解决这个问题很容易,在第一次观察之前,通过递归假设白噪声项
显然,这在R中给出了一个循环
一个变通方法是使用
阿里玛
具有
固定的
设置您的建模参数。正如@evilphil所建议的,只需使用带有固定参数的arima()。以下是一个例子:
ts1 <- arima.sim(model=list(ar=0.5, ma=0.5), n=10)
fit <- arima(ts1, order=c(1,0,1), fixed=c(.5,.5,0))
res <- residuals(fit)
ts1正如@evilphil所建议的,只需使用带有固定参数的arima()
。以下是一个例子:
ts1 <- arima.sim(model=list(ar=0.5, ma=0.5), n=10)
fit <- arima(ts1, order=c(1,0,1), fixed=c(.5,.5,0))
res <- residuals(fit)
ts1