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) :

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;
Avec évidemment Ya et Xa définis en amont.
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 :

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;
mais ça ne fonctionne pas et je sens que je fais n'importe quoi.

Merci d'avance pour votre aide.
Bonne journée.