生成具有平均值、标准差和 R 中特定自相关的随机序列



我正在寻找一种方法来从平均值为 0 和指定标准差的高斯分布生成随机序列。我还需要这个序列具有从一个值到下一个值的指定自相关,例如 0.9。0.5 或 -0.9。(具体来说,自相关在X1X2之间,X2X3之间,但X1X3之间的自相关并不重要。

经过大量搜索,我找到了这个博客(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

最新更新