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

Generate random sequence with mean, standard deviation and a specific autocorrelation in R

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

经过大量搜索,我找到了这个博客 (https://www.getyourdataon.com/2019/05/random-autocorrelation-sequences-r.html),但它不允许我指定标准差或自相关。我也不认为多元正态分布是答案,因为我希望生成一个具有自相关性的向量,而不是多个具有相关性的向量。

我得到的最接近的答案是这个问题 here:
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