我正在寻找一种方法来从平均值为 0 和指定标准差的高斯分布生成随机序列。我还需要这个序列具有从一个值到下一个值的指定自相关,例如 0.9。0.5 或 -0.9。(具体来说,自相关在X1
和X2
之间,X2
和X3
之间,但X1
和X3
之间的自相关并不重要。
经过大量搜索,我找到了这个博客(https://www.getyourdataon.com/2019/05/random-autocorrelation-sequences-r.html(,但这不允许我指定标准偏差或自相关。我也不认为多元正态分布是答案,因为我希望生成一个具有自相关的向量,而不是几个具有相关性的向量。
我得到的最接近的是这里对这个问题的回答:x <- diffinv(rnorm(999))
虽然这将允许我指定标准偏差,但我不能设置或更改自相关(如果我错了,请纠正我!!
您能给我的任何帮助将不胜感激!
您可以创建自己的。
data <- c(rnorm(1,0,sd=2)) # Mean=0, standard deviation=2
for(i in 1:1000) { # Number of the observations is 1000
data[i+1]<-data[i]* -0.9 + rnorm(1,0,sd=2) # -0.9 is the desired coefficient. You can change whatever you want.
}
#plot(data,type="l")
要检查,
summary(lm(data[-1]~data[-length(data)]))
给
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.06382 0.06222 1.026 0.305
data[-length(data)] -0.90118 0.01375 -65.554 <2e-16 ***
编辑:
在@TimothyBilton的贡献下,
输出可以重新缩放以根据需要设置标准偏差,
finaldata = (scale(data) + mean(data))*sd