在 R 中生成具有均值、标准差和特定自相关的随机序列
Generate random sequence with mean, standard deviation and a specific autocorrelation in R
我正在寻找一种从均值为 0 且具有指定标准差的高斯分布生成随机序列的方法。我还需要此序列具有从一个值到下一个值的 指定自相关 ,例如 0.9。 0.5 或 -0.9。 (具体来说;自相关将在 X1
和 X2
之间,以及 X2
和 X3
之间,但是 X1
和 X3
之间的自相关并不重要.)
经过大量搜索,我找到了这个博客 (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
我正在寻找一种从均值为 0 且具有指定标准差的高斯分布生成随机序列的方法。我还需要此序列具有从一个值到下一个值的 指定自相关 ,例如 0.9。 0.5 或 -0.9。 (具体来说;自相关将在 X1
和 X2
之间,以及 X2
和 X3
之间,但是 X1
和 X3
之间的自相关并不重要.)
经过大量搜索,我找到了这个博客 (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