Le script crée d'abord un jeu de données 'Travel' à partir de données brutes pour enregistrer les temps de trajet pour différents modes de transport (Auto, Avion, Transit), l'âge du répondant et le mode choisi. Il transforme ensuite ce jeu de données en un format 'long' ('Travel2') adapté à l'analyse par la PROC BCHOICE, où chaque observation représente une alternative de choix pour un sujet donné. Enfin, il exécute deux modèles BCHOICE : le premier évalue les effets du mode de transport et du temps de trajet, et le second introduit une interaction entre le mode et l'âge centré pour explorer comment l'âge influence le choix du mode.
Analyse des données
Type : CREATION_INTERNE
Les données sont créées directement dans le script via un bloc DATALINES pour le jeu de données 'Travel'. Le jeu de données 'Travel2' est ensuite créé à partir de 'Travel' par un DATA STEP de transformation.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc de code crée le jeu de données 'Travel' à partir de données brutes fournies via `datalines`. Il définit les variables `AutoTime`, `PlanTime`, `TranTime` (temps de trajet pour l'automobile, l'avion et le transit respectivement), `Age` de l'individu et `Chosen` (le mode de transport effectivement choisi). Une nouvelle variable, `AgeCtr` (âge centré), est calculée en soustrayant 34 à `Age`, ce qui est utile pour l'interprétation des modèles d'interaction.
Explication : Ce bloc transforme le jeu de données 'Travel' du format 'large' (une ligne par individu, plusieurs colonnes pour les alternatives) au format 'long' requis par la PROC BCHOICE (une ligne par alternative de choix pour chaque individu). Pour chaque observation du jeu de données original, il génère trois nouvelles observations. `Subject` identifie l'individu (`_n_` est le numéro d'itération du DATA STEP), `Mode` est le mode de transport potentiel, `TravTime` est le temps de trajet correspondant, et `Choice` est une variable binaire indiquant si ce mode a été effectivement choisi par l'individu.
Copié !
data Travel2(keep=Subject Mode TravTime Age AgeCtr Choice);
array Times[3] AutoTime PlanTime TranTime;
array Allmodes[3] $ _temporary_ ('Auto' 'Plane' 'Transit');
set Travel;
Subject = _n_;
do i = 1 to 3;
Mode = Allmodes[i];
TravTime = Times[i];
Choice = (Chosen eq Mode);
output;
end;
run;
1
DATA Travel2(keep=Subject Mode TravTime Age AgeCtr Choice);
Explication : Cette procédure affiche les 20 premières observations du jeu de données transformé 'Travel2'. L'option `by Subject` assure que les observations pour chaque sujet sont groupées, et `id Subject` utilise la variable `Subject` comme identifiant principal dans la sortie, améliorant la lisibilité.
Copié !
proc print data=Travel2 (obs=20);
by Subject;
id Subject;
run;
1
PROC PRINTDATA=Travel2 (obs=20);
2
BY Subject;
3
id Subject;
4
RUN;
4 Bloc de code
PROC BCHOICE
Explication : Ce bloc exécute la première analyse de choix discrets utilisant la PROC BCHOICE. Il modélise la probabilité de `Choice` (variable binaire indiquant le choix) en fonction du `Mode` de transport et du `TravTime` (temps de trajet). `Mode` et `Subject` sont déclarés comme variables de classification, `param=ref` utilise la dernière catégorie comme référence, et `choiceset=(Subject)` indique que les choix sont regroupés par sujet pour l'estimation du modèle. L'option `seed=124` assure la reproductibilité des résultats stochastiques.
Copié !
proc bchoice data=Travel2 seed=124;
class Mode Subject / param=ref order=data;
model Choice = Mode TravTime / choiceset=(Subject);
run;
1
PROC BCHOICEDATA=Travel2 seed=124;
2
class Mode Subject / param=ref order=DATA;
3
model Choice = Mode TravTime / choiceset=(Subject);
4
RUN;
5 Bloc de code
PROC BCHOICE
Explication : Ce deuxième modèle BCHOICE est similaire au premier mais inclut un terme d'interaction `Mode*AgeCtr`. Cette interaction permet d'explorer comment l'effet du mode de transport sur le choix varie en fonction de l'âge centré de l'individu, ajoutant ainsi une composante spécifique à l'individu à l'analyse des choix. `Mode` et `Subject` restent des variables de classification, et `seed=124` est à nouveau utilisée pour la reproductibilité.
Copié !
proc bchoice data=Travel2 seed=124;
class Mode Subject / param=ref order=data;
model Choice = Mode Mode*AgeCtr TravTime / choiceset=(Subject);
run;
1
PROC BCHOICEDATA=Travel2 seed=124;
2
class Mode Subject / param=ref order=DATA;
3
model Choice = Mode Mode*AgeCtr TravTime / choiceset=(Subject);
4
RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.