Bonjour à tous,
je cherche a code un AR(1) roulant sous SAS IML mais je ne sais pas comment faire ma boucle.
Mon AR(1) Initial s'écrit (et fonctionne) :
Avec évidemment Ya et Xa définis en amont.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Ya=lag(Xa); Y=Ya[2:nrow(Ya)]; X=Xa[2:nrow(Xa)]; B=inv(X)*X*t(X)*Y; end;
Comment faire une fenêtre roulante ? Je voudrais faire un AR(1) Sur la moitié de nrow(Ya) et le décaler jusqu'à la dernière valeur ?
Je débute en SAS IML donc je n'arrive pas a coder ma boucle, si boucle il faut.
J'étais parti pour faire quelque chose comme ceci :
mais ça ne fonctionne pas et je sens que je fais n'importe quoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Ya=lag(Xa); Roll=(nrow(R)-1)/2; do i=1 to Roll; Y[i]=Ya[i+1:i+Roll]; X[i]=Xa[i+1:i+Roll]; B[i]=inv(t(X[i])*X[i])*t(X[i])*Y[i]; end;
Merci d'avance pour votre aide.
Bonne journée.
Partager