Jessaye de simuler un processus ARMA (1,1) dont les paramètres de moyenne autorégressive et mobile sont respectivement de 0,74 et 0,47. De plus, je veux que les données simulées aient une moyenne égale à 900 et un écart type égal à 230. Pour ce faire, jai essayé
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 
La moyenne de la série chronologique synthétique est acceptable.
mean(fit) #922.749 
 Cependant, lorsque je calcule lécart type, la différence entre la valeur calculée et celle que jai spécifiée comme écart type pour fit est trop grande. 
sd(fit) #511.3077 - almost two times higher than the value I thought I"d observe 
Comment puis-je changer mon code pour massurer que la série simulée aura un écart type proche de celui que je stipule dans la fonction
arima.sim?
Réponse
 Le sd(fit) est  $ \ sqrt {Var (y_t)} $  où  $ y_t $  est ARIMA (1,1), mais le sd que vous spécifiez dans lappel arima.sim est le sd du bruit blanc de la série. 
Considérez les procédures AR (1) $$ y_t = b y_ {t-1} + u_t $$ $$ u_t = \ sigma \ epsilon_t $$ $$ \ epsilon_t \ sim \ mathcal N (0,1) $$ ici le $ sd (y_t) = \ sqrt {Var (y_t)} $ qui peut être trouvé comme $$ Var (y_t ) = b ^ 2Var (y_ {t-1}) + \ sigma ^ 2Var (\ epsilon_t) $$ tel que
$$ Var (y_t) = \ frac {\ sigma ^ 2} {1-b ^ 2} $$
et $ \ sigma $ est lécart type de $ u_t $ .
Spécification dun modèle dans 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)) 
renvoie la sortie
> sd(fit) [1] 1.041033 > sqrt(s^2/(1-b^2)) [1] 1.03923 
 donc le sd dans arima.sim est  $ \ sigma $ .