計量經濟學
AR 1 過程模擬
我想使用 STATA 進行卡爾曼濾波器模擬,並希望通過以下方式進行
1. Generate iid error terms
$$
{e_t}, {n_t}, {u_t} $$2. Generate three AR1 process like so
$$
\beta_t = ab_{t-1} + u_t $$ $$ x_t = c_0 + c_1x_{t-1} + n_t $$ $$ y_t = b_t*x_t + e_t $$3. use Kalman filter to predict b_hat
我已經能夠使用 rnorm() 生成 iid 錯誤術語,但我被困在第二步。我知道如何執行狀態空間模型來獲得卡爾曼濾波器估計,但 AR1 真的讓我大吃一驚。
由於您只停留在估計
AR(1)
模型上,我可以向您展示一些範常式式碼來估計您給出的方程。請記住,我沒有設置斜坡: $ a $ 和 $ c_1 $ 在random walk
和random walk with drift
。此外,範常式式碼在 中Python
,但在 中應該是不言自明和可重現STATA
的import numpy as np import matplotlib.pyplot as plt # Setting sample size sample_size = 100 # Vectors with variables of interest b = np.zeros(sample_size) x = np.zeros(sample_size) y = np.zeros(sample_size) # IID random errors (normally distributed) u = np.random.normal(size = sample_size) n = np.random.normal(size = sample_size) e = np.random.normal(size = sample_size) # Drift c_0 = 2 # Simulating each series for t in range(sample_size): b[t] = b[t-1] + u[t] x[t] = c_0 + x[t-1] + n[t] y[t] = b[t] * x[t] + e[t] # Plotting the results plt.rcParams["figure.figsize"] = [10,10] plt.subplot(321) plt.plot(b) plt.title('Random walk: $b_t = b_{t-1} + u_t$') plt.subplot(322) plt.plot(x) plt.title('Random walk with drifft: $x_t = c_0 + x_{t-1} + n_t$') plt.subplot(323) plt.plot(y) plt.title('$y_t = b_t * x_t + e_t$') plt.show()