Jeg prøver å simulere en ARMA (1,1) prosess hvis autoregressive og glidende gjennomsnittsparametere er henholdsvis 0,74 og 0,47. Videre vil jeg at de simulerte dataene skal ha gjennomsnitt 900 og standardavvik lik 230. For å oppnå dette prøvde jeg
set.seed(100) fit = arima.sim(list(order = c(1,0,1), ar = 0.74, ma = 0.47), n = 10000, rand.gen= rnorm, sd = 230) + 900 
Gjennomsnittet for den syntetiske tidsserien er akseptabelt.
mean(fit) #922.749 
 Når jeg beregner standardavviket, er imidlertid forskjellen mellom beregnet verdi og den jeg fastslo som standardavvik for fit er for stort. 
sd(fit) #511.3077 - almost two times higher than the value I thought I"d observe 
Hvordan kan jeg endre koden min for å sikre at den simulerte serien vil ha et standardavvik i nærheten av det jeg angir i
arima.sim-funksjonen?
Svar
 sd(fit) er  $ \ sqrt {Var (y_t)} $  der  $ y_t $  er ARIMA (1,1), men sd du angir i arima.sim samtalen er sd av den hvite støyen i serien. 
Vurder AR (1) -prosessene $$ y_t = b y_ {t-1} + u_t $$ $$ u_t = \ sigma \ epsilon_t $$ $$ \ epsilon_t \ sim \ mathcal N (0,1) $$ her $ sd (y_t) = \ sqrt {Var (y_t)} $ som kan bli funnet å være $$ Var (y_t ) = b ^ 2Var (y_ {t-1}) + \ sigma ^ 2Var (\ epsilon_t) $$ slik at
$$ Var (y_t) = \ frac {\ sigma ^ 2} {1-b ^ 2} $$
og $ \ sigma $ er standardavvik på $ u_t $ .
Spesifisering av en modell i 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)) 
returnerer utdata
> sd(fit) [1] 1.041033 > sqrt(s^2/(1-b^2)) [1] 1.03923 
 slik at sd i arima.sim er  $ \ sigma $ .