簡體   English   中英

"如何模擬高階 AR(N) 過程?"

[英]How to simulate high order AR(N) process?

我需要模擬高階 AR(N) 系列。 我沒有系數,只有 N 是已知的。 II 嘗試使用 arima.sim,但我需要提供特定的系數來進行模擬,不幸的是,隨機選擇保持平穩性條件的有效系數是不可能的。 有任何想法嗎? 我需要任何 AR(N) 樣本(很多)。 謝謝。

"

一個平穩的 AR(p) 過程將具有在單位圓外具有 p 個根的特征方程。 因為特征方程有實系數,所以這些根是共軛對的,如果 p 是奇數,就會有一個實根。 因此生成系數的一種有效方法是首先生成根,然后構造特征多項式,從中可以輕松提取系數。

這是一些代碼來做到這一點。

在單位圓內生成逆根,然后將它們取反更簡單。

library(polynom)

# Order of AR polynomial
p <- 50
n_real_roots <- p %% 2
inv_real_roots <- runif(n_real_roots, -1, 1)
# Generate inverse complex roots in conjugate pairs
n_complex_roots <- (p - n_real_roots) / 2
r <- runif(n_complex_roots, -1, 1)
angle <- runif(n_complex_roots, -pi, pi)
inv_complex_roots <- c(complex(argument = angle, modulus = r), 
                       complex(argument = -angle, modulus = r))
# Find polynomial with these as roots
poly <- suppressWarnings(polynom::poly.calc(1/c(inv_real_roots, inv_complex_roots)))
# Scale to have constant 1
poly <- poly / poly[1]
phi <- -as.numeric(poly)[-1]

y <- arima.sim(n = 100, model=list(ar = -coefficients(poly)[-1]))
plot(y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM