J'essaye de calculer la moyenne mobile de 3 mois des données suivantes par produit par pays (j'ai seulement deux variables de pays ici). Y a-t-il un moyen de le faire?sas Proc élargir la procédure
Voici le tableau des ventes que j'ai:
Date Product Country Sales
201101 Sofa US 100
201102 Sofa US 200
201103 Sofa US 250
201104 Sofa US 300
201101 Sofa CA 250
201102 Sofa CA 300
201103 Sofa CA 250
201104 Sofa CA 300
201101 Chair US 300
201102 Chair US 300
201103 Chair US 300
201104 Chair US 300
201101 Chair CA 300
201102 Chair CA 300
201103 Chair CA 300
201104 Chair CA 300
J'ai essayé quelque chose comme ce qui suit, mais la moyenne mobile est calculée uniquement par pays. Y a-t-il un moyen de le calculer par pays, par produit? Toutes les idées sont les bienvenues. merci :)
PROC SORT DATA=Sales;
BY Country Product Date;
RUN;
PROC EXPAND DATA=Sales out =ma;
By Country Product;
CONVERT Value=Value_ma/transformin=(setmiss 0) transformout=(movave 3);
run;
Je ne suis pas sûr de la moyenne 3 mois, parce que votre tableau fournit 4 mois et je ne sais pas comment doit être calculé 3 mois avg, mais vous COU ld utilise proc sql avec avg et group by pour obtenir une moyenne globale sur tous les mois par produit et par pays puis l'augmenter d'une certaine façon à 3 mois, ou peut-être construire quelque chose avec proc, mais je suppose que vous voulez autre chose? – kl78
Merci Kl78. Je suis en train de tracer une ligne de tendance pour montrer la moyenne mobile de 3 mois de ventes par produit par pays. Donc le 1er et le 2ème mois n'a pas de mouvement avg. Le 3ème mois mobile avg est basé sur les 3 premiers mois. Ensuite, le 4ème mois de déplacement Avg est basé sur les 2ème, 3ème et 4ème. etc. – lisa
hm, ok. Je ne sais pas grand chose à propos de proc, mais vous pouvez faire une colonne en combinant le produit et le pays, puis utiliser le par seulement sur la nouvelle colonne, comme 'copr = catx (" _ ", Product, country); et si le résultat est correct, supprimez copr lors de l'affichage des données. – kl78