Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
n行的ARIMA用法_R - Fatal编程技术网

n行的ARIMA用法

n行的ARIMA用法,r,R,我有一个data.frame,如下所示。这是原始的DF: Min1 Min2 Min3 | Min4 Min5 1.05 1.01 0.99 | x x 1.01 0.99 1.05 | x x 0.99 1.05 1.01 | x x Min4和Min5这里是每个股票的预测值。我有大约100k行和数百列。每一行表示特定股票在某个时期(列)内的收益(在原始文件中,每一行都有自己的ID和其他参数的数量,这些参数在此处被删除,以便于执行分析)。我想为每只股票(例如每一行)建

我有一个
data.frame
,如下所示。这是原始的
DF

Min1 Min2 Min3 | Min4 Min5
1.05 1.01 0.99 |  x    x
1.01 0.99 1.05 |  x    x
0.99 1.05 1.01 |  x    x
Min4
Min5
这里是每个股票的预测值。我有大约100k行和数百列。每一行表示特定股票在某个时期(列)内的收益(在原始文件中,每一行都有自己的ID和其他参数的数量,这些参数在此处被删除,以便于执行分析)。我想为每只股票(例如每一行)建立一个ARIMA模型,并预测该特定股票的n个未来值(
x
Min4和
Min5

所以,我需要你的帮助,让一切都处于循环或类似的状态。目前,我使用的代码如下:

Y <- DF[1,]
arima1 <- arima(Y, order = c(1,0,1))
pred1 <- predict(arima1 , n.ahead=2)
pred2 <- as.data.frame(pred1$pred)

Y当
apply
wrap被转置时,它被强制到
matrix
类。从那里,您可以创建一个数据框,在需要时可以附加该数据框:

as.data.frame(t(apply(df, 1, function(Y) {
  arima1 <- arima(Y, order = c(1,0,1))
  predict(arima1 , n.ahead=2)$pred
  }
)))
#          V1       V2
# 1 1.0308173 1.015321
# 2 0.9789147 1.031609
# 3 1.0345989 1.015456
as.data.frame(t)应用(df,1,函数(Y){

arima1您可以使用
apply
MARGIN=1
将新的预测值(对于第1、2、…、n行)写入DF而不相互覆盖吗?例如,apply将在新DF中创建nrow向量?如果示例数据集只有3列,并且最后2列显示供我们理解,
t(do.call(cbind,apply)(DF,1,FUN=function(Y)){arima1@akrun您很可能不需要
do.call(cbind(..
call@PierreLafortune是的,我也这么认为。
pred2
部分如果是
vector
应该会让事情变得更简单,但我一直在遵循OP的代码。谢谢。这对我帮助很大。