Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
R 多列时间序列的线性回归_R_Time Series_Regression_Multiple Columns_Zoo - Fatal编程技术网

R 多列时间序列的线性回归

R 多列时间序列的线性回归,r,time-series,regression,multiple-columns,zoo,R,Time Series,Regression,Multiple Columns,Zoo,我有以下问题。我想用矩阵形式计算年度时间序列的回归。总的来说,我有56个时间序列,我从一个我想检查的区域的网格点中提取,所以我每年有56个值。我已将所有值绘制为一个图形中的点。现在我想在此图形中添加一条回归线,其中包含所有数据 我的目标是计算整个矩阵的回归 library(zoo) pdf(file="/home/user/name.pdf", pointsize=20, onefile = FALSE, width=18, height=11, paper = "special") plot

我有以下问题。我想用矩阵形式计算年度时间序列的回归。总的来说,我有56个时间序列,我从一个我想检查的区域的网格点中提取,所以我每年有56个值。我已将所有值绘制为一个图形中的点。现在我想在此图形中添加一条回归线,其中包含所有数据

我的目标是计算整个矩阵的回归

library(zoo)

pdf(file="/home/user/name.pdf", pointsize=20, onefile = FALSE, width=18, height=11, paper = "special")
plot(mat.zoo[,1], pch=20, type="p", ylim=c(8,max(mat.zoo)),
     yaxt = "n", xaxt = "n", lwd = 1.5, main = "Some title", 
     ylab = "ylabtext", xlab ="", col = "black")

tt <- time(mat.zoo)
ix <- seq(1, length(tt), by=1) #every year a tick
labs <- format(tt[ix])
axis(side = 1, at = tt[ix], labels = labs,  tcl = -0.7, cex.axis = 1)

for (i in 2:ncol(mat.zoo)) {  
  #plot every column
  points(mat.zoo[,i], pch=20, lwd = 1.5)
}

## create ticks at every first y value 
axis(side = 2, at = seq(0, max(mat.zoo), by = 1), labels = FALSE)
iy <- seq(0, max(mat.zoo), 2)
axis(side = 2, at = iy, cex.axis = 1)

#this line doesn't work
abline( lm(mat.zoo ~ tt), col="light blue", lwd=3 )

dev.off()

尝试将
lm
语句修改为

lm(as.vector(mat.zoo) ~ rep(tt, length.out = length(mat.zoo)))

谢谢你提供的信息。我的目标是计算整个矩阵(所有值)的回归。抱歉,如果一开始不清楚的话。如果我分别计算每一列的回归,它将与您的代码行一起工作。有没有可能把所有的东西都放在一个向量中,首先是1960年的56个值,然后是1961年的56个值,依此类推?我能把我的矩阵转换成这样的向量吗?下面这行就可以了,但我必须为新向量创建一个时间戳:as.vector(t(mat.zoo))tt.vec不幸的是,上面的代码不能工作。我得到以下错误:在zoo(rval[I],index(x)[I]):如果'order.by'中的索引项不唯一,“zoo”对象的某些方法不起作用
lm(as.vector(mat.zoo) ~ rep(tt, length.out = length(mat.zoo)))