AR 1 공정 시뮬레이션


0

나는 칼만 필터 시뮬레이션을 위해 STATA를 사용하고 싶었고 다음과 같은 방법으로 가고 싶었다.

1. Generate iid error terms 

$$ {e_t}, {n_t}, {u_t} $$

2. Generate three AR1 process like so

$$              \ beta_t = a * b_ {t-1} + u_t $$ $$              x_t = c_0 + c_1 * x_ {t-1} + n_t $$ $$              y_t = b_t * x_t + e_t $$

 3. use Kalman filter to predict b_hat

나는 iid 오류 조건을 생성하기 위해 rnorm ()을 사용할 수 있었지만 두 번째 단계에서 멈추었다. 나는 칼만 필터 추정치를 얻기 위해 상태 공간 모델을 실행하는 방법을 알고 있지만 AR1은 실제로 나를 트립했다.

답변:


0

당신은 단지 추측에 매달 렸기 때문에 AR(1) 모델 내가 제시 한 방정식을 추정하기위한 몇 가지 예제 코드를 보여줄 수 있습니다. 슬로프를 설정하지 않았다는 것을 명심하십시오 : $ a $ 및 $ c_1 $ random walkrandom 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()

AR(1) process simulation

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.