我有时间序列数据。这些数据包含四个几年的单变量时间序列列。我想将ARIMA模型拟合到前4年每一年的单变量时间序列数据中。
我试过这个:
library(ggplot2)
library(forecast)
library(tseries)
library(zoo)
library(dplyr)
library(data.table)
data("EuStockMarkets")
dat <- EuStockMarkets
res <- lapply(split(as.zoo(EuStockMarkets), as.integer(time(EuStockMarkets))), as.ts)
datNew <- lapply(5:8, function(i) ts(res[[i]]))
dat.log <- lapply(1:4, function(i) log(datNew[[i]]))
dat.diff <- lapply(1:4, function(i)diff(dat.log[[i]]))
Logreturns <- dat.diff下面的代码不能正常工作,因为它只给了我4个值。然而,我接受它给我16个值(4年,每年4个单变量时间序列)
Arima.model <- lapply(1:4, function(i)auto.arima(Logreturns[[i]][,i]))发布于 2020-09-18 20:11:39
我认为您需要的是两个lapply,一个用于迭代每个列表,另一个用于迭代列表的每一列。
result <- unlist(lapply(seq_along(Logreturns), function(i)
lapply(seq_len(ncol(Logreturns[[i]])), function(j)
auto.arima(Logreturns[[i]][,j]))), recursive = FALSE)https://stackoverflow.com/questions/63953097
复制相似问题