IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macro Discussion :

[Macro] lissage par moyennes mobiles


Sujet :

Macro

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [Macro] lissage par moyennes mobiles
    bonjour,

    j'ai un petit souci en sas.
    je dois trouver une procédure pour réaliser un lissage par moyennes mobiles.
    j'essaye la proc expand mais je ne comprends pas les arguments qui'il faut rentrer. j'ai chercher aussi une autre procédure comme la proc smooth mais qui n'existe pas a priori dans la derniere version de sas. dans un tuto, on me donne ce code mais jene sais pas quoi en faire :
    %medmob(DATA=,OUT=,VAR=,DATE=,LISSEUR=,TWICE=,
    INTER=,PRINT=,GRAPH=,CBRUT=,CLIS=);

    quelqu'un pourrait m'aider svp ?
    merci beauxoup par avance

    bonne journée

  2. #2
    Responsable SAS


    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Points : 16 157
    Points
    16 157
    Par défaut
    Bonjour,
    C'est une macro que tu as là!
    Sans le code de cette macro nous ne pouvons t'aider, et même avec ça risque d'être dur!

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    merci pour ta reponse
    et sans cette macro mais avec une procedure, c'est possible ?

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Je continue ma tournée promotionnelle de la proc Expand, qui est à mes yeux le meilleur moyen de faire ce genre de lissage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PROC EXPAND DATA=sashelp.air OUT=work.air ;
    	CONVERT air / TRANSFORMIN=(CMOVAVE 3) ;
    RUN ;
    DATA work.air ;
    	MERGE work.air sashelp.air (RENAME=(air = air_original)) ;
    RUN ;
    SYMBOL i = join ;
    PROC GPLOT DATA	= work.air ;
    	PLOT (air air_original) * date / OVERLAY ;
    RUN ; QUIT ;
    Le 3 indiqué après CMOVAVE est l'ordre de la moyenne mobile.

    Si par contre il s'agit de mettre sur pied un modèle ARMA (Box & Jenkins), c'est le boulot de la proc ARIMA.

    Olivier

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    merci merci merci bcp
    je vais juste encore un peu te déranger
    je comprends plus ou moins ta réponse avec les tables préinstallées sous sas (sashelp et work.air) mais le probleme c'est que j'ai qu'une seule table et qu'une seule variable à lisser donc j'ai aucun merge...
    comment faire ?
    merci bcp
    bonne aprem

  6. #6
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Le MERGE est là uniquement pour pouvoir comparer aux données "brutes" et faire le graphique à la fin.
    Si tu as une seule variable, c'est elle que tu indiques dans CONVERT. Ta table en entrée va dans DATA=, une nouvelle table (pour ne pas écraser l'existant) dans OUT=.
    J'espère que c'est clair.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    t'es au top !
    merci pour ta reponse, ca tourne mais comme j'ai une table avec pres de 1 million de données, on obtient un graph qui ressemble à un coloriage au feutre rouge.
    2 questions s'imposent :
    le rouge correspond aux moyennes mobiles ou à la variable initiale?
    comment faire pour obtenir un graph lisible si j'ai beaucoup de données ; est ce que le CMOVAVE influe ?

    merci enormément par avance

  8. #8
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Si tu n'as pas fait de MERGE mais juste un graphique sur la sortie brute de la proc EXPAND, le feutre rouge c'est ta série lissée.
    Evidemment, sur autant de lignes, pour obtenir un vrai effet de lissage, il faut largement augmenter la fenêtre de la moyenne mobile : 3 c'est tout petit à ton échelle.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    ca marche nickel
    merci infiniment pour le lissage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Calculer moyenne mobile d'une série à partir d'un macro
    Par jinane13 dans le forum Excel
    Réponses: 5
    Dernier message: 18/03/2013, 10h48
  2. lissage moyennes mobiles
    Par libititi dans le forum SAS STAT
    Réponses: 4
    Dernier message: 23/12/2009, 10h43
  3. [VxiR2] Variables globales et objets pour moyennes mobiles par mois glissant
    Par sfbertrand dans le forum Designer
    Réponses: 3
    Dernier message: 02/06/2009, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo