R 多列时间序列的线性回归
我有以下问题。我想用矩阵形式计算年度时间序列的回归。总的来说,我有56个时间序列,我从一个我想检查的区域的网格点中提取,所以我每年有56个值。我已将所有值绘制为一个图形中的点。现在我想在此图形中添加一条回归线,其中包含所有数据 我的目标是计算整个矩阵的回归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
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)))