El script primero crea un conjunto de datos 'Travel' a partir de datos brutos para registrar los tiempos de viaje para diferentes modos de transporte (Automóvil, Avión, Tránsito), la edad del encuestado y el modo elegido. Luego, transforma este conjunto de datos a un formato 'largo' ('Travel2') adecuado para el análisis con PROC BCHOICE, donde cada observación representa una alternativa de elección para un sujeto dado. Finalmente, ejecuta dos modelos BCHOICE: el primero evalúa los efectos del modo de transporte y el tiempo de viaje, y el segundo introduce una interacción entre el modo y la edad centrada para explorar cómo la edad influye en la elección del modo.
Análisis de datos
Type : CREATION_INTERNE
Los datos se crean directamente en el script a través de un bloque DATALINES para el conjunto de datos 'Travel'. El conjunto de datos 'Travel2' se crea luego a partir de 'Travel' mediante un DATA STEP de transformación.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque de código crea el conjunto de datos 'Travel' a partir de datos brutos proporcionados a través de `datalines`. Define las variables `AutoTime`, `PlanTime`, `TranTime` (tiempos de viaje para automóvil, avión y tránsito respectivamente), `Age` del individuo y `Chosen` (el modo de transporte realmente elegido). Una nueva variable, `AgeCtr` (edad centrada), se calcula restando 34 a `Age`, lo que es útil para la interpretación de los modelos de interacción.
Explicación : Este bloque transforma el conjunto de datos 'Travel' del formato 'ancho' (una fila por individuo, varias columnas para las alternativas) al formato 'largo' requerido por PROC BCHOICE (una fila por alternativa de elección para cada individuo). Para cada observación del conjunto de datos original, genera tres nuevas observaciones. `Subject` identifica al individuo (`_n_` es el número de iteración del DATA STEP), `Mode` es el modo de transporte potencial, `TravTime` es el tiempo de viaje correspondiente, y `Choice` es una variable binaria que indica si este modo fue efectivamente elegido por el individuo.
¡Copiado!
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);
Explicación : Este procedimiento muestra las primeras 20 observaciones del conjunto de datos transformado 'Travel2'. La opción `by Subject` asegura que las observaciones para cada sujeto se agrupen, e `id Subject` utiliza la variable `Subject` como identificador principal en la salida, mejorando la legibilidad.
¡Copiado!
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 Bloque de código
PROC BCHOICE
Explicación : Este bloque ejecuta el primer análisis de elección discreta utilizando PROC BCHOICE. Modela la probabilidad de `Choice` (variable binaria que indica la elección) en función del `Mode` de transporte y `TravTime` (tiempo de viaje). `Mode` y `Subject` se declaran como variables de clasificación, `param=ref` utiliza la última categoría como referencia, y `choiceset=(Subject)` indica que las elecciones se agrupan por sujeto para la estimación del modelo. La opción `seed=124` asegura la reproducibilidad de los resultados estocásticos.
¡Copiado!
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 Bloque de código
PROC BCHOICE
Explicación : Este segundo modelo BCHOICE es similar al primero pero incluye un término de interacción `Mode*AgeCtr`. Esta interacción permite explorar cómo el efecto del modo de transporte en la elección varía en función de la edad centrada del individuo, agregando así un componente específico del individuo al análisis de las elecciones. `Mode` y `Subject` siguen siendo variables de clasificación, y `seed=124` se utiliza nuevamente para la reproducibilidad.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : S A S S A M P L E L I B R A R Y
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.