手计算R中的变异函数

时间:2018-01-23 17:48:58

标签: r time-series formula

我试图通过“手”计算R中的变异函数,以创建不同滞后的几个值的向量k。

基本上我试图计算一下:

Gk = Var (yt+k − yt)/ Var (yt+1 − yt), k = 1, 2, … , 12 

时间序列观察由yt。

表示

我的尝试如下(其中diff.df是差异数据长度为72的矢量。

k <- seq(1,12,1)
x <- seq(1,length(diff.df)-length(k),1)    
vario <- var(diff.df[x+k,]-diff.df[x,])/ var(diff.df[x+1,]-dif[x])

产生“尺寸数不正确”的错误

我不确定我在这里做错了什么。任何帮助,将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:0)

I realized that I was acting as if the vector was a data frame ([x,] as opposed to simply looking up index of x, [x])

for (i in 1:70){
x <- seq(1,71-i,1)
vario[i] <- var(diff2.df[x+i]-diff2.df[x])/ var(diff2.df[x+1]-diff2.df[x])
}
vario
plot(vario,type = 'l',xlab = 'Lag', ylab = 'Variogram')

is the final working code for anyone that cares.