计算滚动窗口上的自回归AR1模型系数

计算滚动窗口上的自回归AR1模型系数,r,time-series,R,Time Series,我想将自回归AR1模型拟合到滚动窗口上的时间序列数据,以提取固定窗口(比如100)上每个时间步的系数 我可以用这样的方法计算每个tilmestep的系数 dat <- data.frame(Last = runif(10000), time =seq(1, 10000, 1)) roll.ar<-NULL ##loop to calculate the rolling change for(i in 2:length(dat[,1])){ dat.t<-subs

我想将自回归AR1模型拟合到滚动窗口上的时间序列数据,以提取固定窗口(比如100)上每个时间步的系数

我可以用这样的方法计算每个tilmestep的系数

dat <- data.frame(Last = runif(10000), time =seq(1, 10000, 1))

roll.ar<-NULL

##loop to calculate the rolling change  
for(i in 2:length(dat[,1])){
    dat.t<-subset(dat, time<=unique(sort(dat$time))[i])     
    roll.ar[[i]]<-ar.ols(dat.t$Last, aic = FALSE, order.max = 1, dmean = FALSE, intercept = FALSE)$ar[1]
}

dat下面我们定义了一系列20个值,并使用10个窗口计算ar1系数

library(zoo)
set.seed(123)
dat <- data.frame(Last = runif(20)) # test input

AR <- function(x) {
  ar.ols(x, aic = FALSE, order.max = 1, dmean = FALSE, intercept = FALSE)$ar[1]
}
rollapplyr(dat$Last, 10, AR, fill = NA)
##      [1]         NA         NA         NA         NA         NA         NA
##      [7]         NA         NA         NA -0.2932866 -0.3146008 -0.3142310
##     [13] -0.2622454 -0.4233658 -0.1284332 -0.5366662 -0.6037607 -0.3294886
##     [19] -0.1573014 -0.1964080
图书馆(动物园)
种子集(123)

dat非常优雅的解决方案。非常感谢。我以前从未遇到过罗拉普尔。漂亮的