如何在不使用 arima.sim 的情况下在 R 中生成不相关的白噪声序列?

机器算法验证 r 时间序列 白噪声
2022-03-15 12:10:20

我想知道如何在不使用 ** 的情况下在 R **中生成不相关的白噪声序列WN(0,σ2)arima.sim(list(order=c(0,0,0)),200)

我在这里而不是 stackoverflow 发布这个的原因是因为我觉得这需要了解白噪声的数学结构,以便我们可以构建一个关于它的程序。如果观众觉得这个问题真的属于stackoverflow,请不要对这个问题投反对票请告诉我,然后我会将其迁移到 stackoverflow。

2个回答

您将必须指定一些分布,但如果您乐于使用正态分布的默认选择(事实上,arima.sim除非您使用其参数的其他选择覆盖默认值rand.gen),那么rnorm(200)就可以了:它产生了一系列不相关(事实上,甚至是独立的)且分布相同的 rv

白噪声只是一个 iid 随机变量的序列。因此,您可以使用:

rnorm(n, mean = 0, sd = 1)

为了让您更深入地了解,以下是我将如何使用它来生成随机游走:

set.seed(15) 
x=NULL
x[1]=0
for (i in 2:100) {
   x[i] = x[i-1] + rnorm(1,0,1)
}
ts.plot(x, main = 'Random walk 1(Xt)', xlab = 'Time', ylab = '', col='blue', lwd = 2)