arima.sim을 사용하여 ARMA (1,1)을 시뮬레이션 할 때 표준 편차 오류

ARMA (1,1) 프로세스를 시뮬레이션하려고합니다. 자기 회귀 및 이동 평균 매개 변수는 각각 0.74와 0.47입니다. 또한 시뮬레이션 된 데이터의 평균은 900이고 표준 편차는 230입니다.이를 위해 저는

합성 시계열의 평균은 허용됩니다.

mean(fit) #922.749 

하지만 표준 편차를 계산할 때 계산 된 값이고 fit의 표준 편차로 지정한 값이 너무 큽니다.

sd(fit) #511.3077 - almost two times higher than the value I thought I"d observe 

시뮬레이트 된 시리즈의 표준 편차가 arima.sim 함수 내에 규정 된 표준 편차에 근접하도록 코드를 변경하려면 어떻게해야합니까?

p>

답변

sd(fit) $ \ sqrt {Var (y_t)} $ 이며 여기서 $ y_t $ 은 ARIMA (1,1)이지만 arima.sim 호출에서 지정한 sd는 시리즈의 백색 소음.

AR (1)-프로세스 고려 $$ y_t = b y_ {t-1} + u_t $$ $$ u_t = \ sigma \ epsilon_t $$ $$ \ epsilon_t \ sim \ mathcal N (0,1) $$ $ sd (y_t) = \ sqrt {Var (y_t)} $ , $$ Var (y_t) ) = b ^ 2Var (y_ {t-1}) + \ sigma ^ 2Var (\ epsilon_t) $$

$$ Var (y_t) = \ frac {\ sigma ^ 2} {1-b ^ 2} $$

$ \ sigma $ $ u_t $ 의 표준 편차입니다.

R에서 모델 지정

set.seed(100) b <- 0.5 s <- 0.9 fit = arima.sim(list(order = c(1,0,0), ar = b), n = 100000, rand.gen= rnorm, sd = s) sd(fit) sqrt(s^2/(1-b^2)) 

출력

> sd(fit) [1] 1.041033 > sqrt(s^2/(1-b^2)) [1] 1.03923 

arima.sim<의 sd를 반환합니다. / div>는 $ \ sigma $ 입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다