Avec le logiciel SAS, il est possible de modifier les fonctions des boutons. Un changement utile permet d’effacer le Log et l’Output lorsqu’on fait rouler un programme, de sorte que seul le nouveau log et le nouvel output est affiché. Pour ce faire il suffit d’aller cliquer sur tools dans la barre d’outils puis choisir Customize dans le menu déroulant. Ensuite, sous l’onglet Customize, on peut choisir de créer un nouveau bouteau ou modifier le fonctionnement d’un bouton. Pour effectuer le changement proposé, il suffirait d’inscrire le code output; clear; log; clear; wnextedit; SUBMIT sur la ligne command du bouton voulu.
Effacer l’output et le log lorsqu’on fait rouler un programme.
16 octobre 2008 par nilidasAnalyses de trajectoires (suite)
11 août 2008 par nilidasTel que promis, voici la suite du premier article, avec la programmation de PROC TRAJ (désolé pour l’écriture peut conviviale, mais je ne comprends toujours pas très bien comment ajuster le format des textes du blog.)
PROC TRAJ DATA = OUT =/*Fichier de sortie avec les probabilités prédites que l’individu appartienne à chaque trajectoire*/
OUTPLOT =/*Fichier de sortie qui servira à tracer les graphiques*/
OUTSTAT =/*Fichier de sortie qui contient les équations des trajectoires*/
OUTEST =/*Fichier de sortie avec les paramètres des trajectoires et les statistiques d’ajustement du modèle*/
ITDETAIL/*Pour obtenir les détails sur les itérations*/
CI95M/*Option à mettre pour pouvoir obtenir des intervals de confiance autour des trajectoires*/
OUTPLOT2 = OUTSTAT2 =/*Même fichiers, mais pour effectuer de l’analyse duale, c’est-à-dire pour coupler les trajectoires de deux phénomènes, par exemple la motivation et la pérception de compétence*/;
MODEL cnorm/zip/logit/*Définition de la variable réponse :CNORM : Normal censurée, c’est le cas des études en psychologie où les individus doivent répondre selon une échelle bien définie, par exemple allant de 0 à 5.
ZIP : Zero inflated Poisson, c’est le cas lorsque la variable réponse est un dénombrement, avec possibilité que zéro (0) soit une valeur plus probable qu’avec la loi de Poisson standard.
Logit: La variable réponse est dichotomique.*/;
VAR /*Toutes les variables réponses pour chaque temps, s’il y a 5 temps de mesure, les 5 temps doivent être dans une variable différente, par exemple
id temps1 temps2 temps3 temps4 temps5 mot1 mot2 mot3 mot4 mot5
1 1 2 3 4 5 1.5 3.47 1.25 4.25 5.24
Alors on doit inscrire : VAR mot1-mot5*/;
TCOV /*Toutes les covariables variant dans le temps. Chacune doivent être écrites pour chacun des temps, comme pour la variable réponse.Par exemple : age1-age5 sexe1-sexe5 (bien que le sexe ne varie pas dans le temps, on peut mettre le sexe comme une TCOV*/;
RISK /*Les variables qui sont des facteurs de risque d’appartenir à une trajectoire plutôt qu’une autre. Les facteurs de risque ne sont mesurée qu’à un temps*/
INDEP /*Toutes les variables qui représente les temps de mesure, dans l’exemple précédent : temps1-temps5*/;
MIN/*À inscrire si la variable réponse est CNORM, il s’agit de la plus petite valeur possible pour la variable réponse*/;
MAX/*À inscrire si la variable réponse est CNORM, il s’agit de la plus grande valeur possible pour la variable réponse*/;
ORDER/*L’ordre de chacune des trajectoires, s’il y a trois trajectoires, une constante, une linéaire, une quadratique, il faut inscrire : 0 1 2*/;
NGROUPS /*Le nombre de trajectoires à modéliser*/;
ID /*Variable indiquant le numéro d’idendification de l’observation*/;
/*Pour de l’analyse duale*/
MODEL2;
VAR2;
INDEP2 /*Il faut inscrire un nom différent de variables que pour indep1, même si les deux phénomènes ont lieu en même temps*/;
MIN2;
MAX2;
ORDER2;
NGROUPS2 ;
TCOV2 ;
RISK2 ;
RUN;
%TRAJPLOT(/*Fichier Outplot*/, /*Fichier outstat*/, /*Titre 1*/, /*Titre 2*/, /*Titre Axe des Y*/, /*Titre Axe des X*/);
/*Graphiques des trajectoires, en ligne pleine la trajectoire observée. La trajectoire prédite est en ligne pointillée */
%TRAJPLOTNEW(/*Fichier Outplot*/, /*Fichier outstat*/, /*Titre 1*/, /*Titre 2*/, /*Titre Axe des Y*/, /*Titre Axe des X*/);
/*En ligne pleine, la trajectoire prédites, autour l’intervalle de confiance*/
Denis
Analyse de Trajectoire
26 juillet 2008 par nilidasIl vous est peut-être déjà arrivé, ou il vous arrivera peut-être un jour, de vouloir modéliser un phénomène et de déterminer les facteurs qui influencent les changements de ce phénomène dans le temps. L’approche classique consiste à effectuer une analyse de la variance en mesure répétées. Cependant, peut-être que le changement moyen dans le temps n’est pas celui auquel vous vous attendiez. Peut-être aussi qu’il n’y a tout simplement pas de changement en moyenne. Il vous vient peut-être à la tête qu’en fait, la trajectoire du phénomène que vous étudiez n’est pas homogène pour tous les individus.
Prenons un exemple concret, pour notre projet de fin d’études, Simon Olivier et moi tentions de modéliser le niveau de motivation scolaire des élèves du secondaires. Le niveau de motivation des élèves augmentait dans le temps, ce qui est contraire à ce qui a été observé dans la population en général. De plus, les élèves ayant de moins bons résultats scolaires au début de l’étude tendaient à connaître davantage une hausse de motivation que ceux qui avaient de moins bons résultats. Une hypothèse qui a été soulevée pour expliquer ce phénomène était que peut-être que la plupart des élèves avaient une motivation relativement stable, mais qu’un certain nombre des élèves qui avaient de mauvais résultats au départ ont redoublés d’effort, ont connus une hausse de leurs résultats et de leur motivation scolaire.
Pour vérifier cette hypothèse, j’ai utiliser un modèle d’analyse des trajectoires. Ce type de modèle permet de déterminer combien de trajectoires différentes sont suivies par les individus de notre échantillon, de déterminer la forme des trajectoires suivies par les individus (linéaire, quadratique, cubique…), de déterminer les facteurs de risque qui font qu’un individu suit une trajectoire plutôt qu’une autre et de déterminer des covariables variant dans le temps et qui font que l’individu subit une déviation par rapport à la moyenne de la trajectoire qu’il suit. Pour télécharger la procédure, pour connaître plus d’information, pour lire des articles qui expliquent le fonctionnement de base de la procédure et ses possibilités plus avancées, vous pouvez consulter : http://www.andrew.cmu.edu/user/bjones/ .
Nalgin a également écrit un livre sur l’analyse des trajectoires, qui est assez intéressant, bien qu’il ne parle pas de la procédure qu’il a implanté en SAS pour effectuer l’analyse. Principalement, il donne des lignes directrices pour effectuer l’analyse. Voici quelques conseils:
1. Prenez un phénomène que vous désirez étudier. Supposez d’abord qu’il y a une trajectoire d’un ordre donné (par exemple 2) et aucune covariable ni facteurs de risque, puis 2 trajectoires, puis 3, et ainsi de suite. Notez la valeur du critère BIC. La plus grande valeur (ou la plus petite valeur en valeur absolue) vous indique le bon nombre de trajectoire à utiliser.
2. Déterminer successivement l’ordre de chacune des trajectoires. Trajectoire par trajectoire, changez son ordre et notez le critère BIC. Même critère de décision qu’en 1.
3. Ajoutez des facteurs de risque, des covariables ou effectuez une analyse de trajectoire duale en utilisant comme valeur de départ de votre algorithme les valeurs des paramètres donnés dans le log de votre programme en 2.
L’analyse des trajectoires est certainement quelque chose d’assez complexe. Si vous avez des questions, n’hésitez pas à poster.
Denis
P.S.: Je vais surement refaire un post éventuellement pour axer davantage sur la programmation SAS de la procédure, car je ne trouve pas les indications du site hyper hyper claires. Ça m’a pris pratiquement une semaine à temps plein à ne me concentrer que cette procédure avant de commencer à être capable de l’utiliser.
Median Absolute Deviation
24 juillet 2008 par nilidasLa deuxième chronique le saviez-vous de l’été!
Cette fois çi, elle porte sur le MAD (Median absolute deviation), qui est une mesure robuste de la variation des données similaire à l’écart-type.
Certains d’entre nous ont programmé à la main des programmes pour calculer le MAD, cependant, SAS est capable de le faire pour nous avec la procédure UNIVARIATE et l’option ROBUSTSCALE.
Exemple:
PROC UNIVARIATE DATA = perm.transition2 ROBUSTSCALE; VAR AMI BMI CMI AIDEN BIDEN CIDEN AINTRO BINTRO CINTRO BREGE CREGE AAMO BAMO CAMO; RUN;
Bonne journée!
Denis
Conditions avec SELECT
24 juillet 2008 par nilidasAllo
J’ai appris une nouvelle façon de faire des if, mais c’est beaucoup plus compact comme méthode. Voici un exemple :
SELECT(toto);
WHEN (“valeur de toto” : ex. : 2) x = 3; (Cela veut dire que if toto = 2 then x = 3.)
WHEN (“valeur de toto” : ex. : 4) x = 5;
… (Autant qu’on en veut.)
OTHERWISE x = .; (Optionnel, on peut s’arrêter avec un when.)
END;
Ou
SELECT;
WHEN (toto < 2) x = 2;
WHEN (2 <= toto < 6) x = 4;
…
OTHERWISE x = .;
END;
Dans un programme, ça fait pas mal plus beau qu’un paquet de if et de then.
Aussi, j’ai découvert une nouvelle procédure : PROC GLIMMIX. Par contre, elle doit être downloadé sur le site de SAS.
http://www.sas.com/apps/demosdownloads/sasstatglimmix_PROD__sysdep.jsp?packageID=000353&jmpflag=N
Elle fait sensiblement la même chose que GENMOD et s’écrit vraiment presque pareil. Elle permet cependant d’ajouter des effets aléatoires comparativement à GENMOD où on peut seulement lui ajouter un paramètre de dispersion (scale = d ou p avec l’option aggregate = ).
C’est tout pour ma chronique le saviez-vous. J’espère que vous avez appris des choses nouvelles.
Marie