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 $ 입니다.