Publicado el :
Estadística CREATION_INTERNE

Modelo de Elección con Logit Anidado - Ejemplo PROC BCHOICE

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script analiza las preferencias de modo de transporte (Auto, Avión, Tránsito) en función del tiempo de viaje y la edad de los sujetos. Los datos se crean primero internamente y luego se reestructuran para que coincidan con el formato requerido por los modelos de elección discreta (una fila por alternativa). Luego, el script compara dos enfoques bayesianos: un modelo logit anidado que agrupa los transportes terrestres (Auto, Tránsito) frente al transporte aéreo, y un modelo logit multinomial clásico.
Análisis de datos

Type : CREATION_INTERNE


Los datos 'Travel' se crean a través de DATALINES. La tabla 'Travel2' se deriva de 'Travel' para transformar la estructura de los datos del formato ancho (wide) al formato largo (long).

1 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla fuente 'Travel' que contiene los tiempos de viaje para cada modo, la edad del sujeto y la elección final observada.
¡Copiado!
1DATA Travel;
2 INPUT AutoTime PlanTime TranTime Age Chosen $;
3 AgeCtr=Age-34;
4 DATALINES;
510.0 4.5 10.5 32 Plane
65.5 4.0 7.5 13 Auto
74.5 6.0 5.5 41 Transit
83.5 2.0 5.0 41 Transit
91.5 4.5 4.0 47 Auto
1010.5 3.0 10.5 24 Plane
117.0 3.0 9.0 27 Auto
129.0 3.5 9.0 21 Plane
134.0 5.0 5.5 23 Auto
1422.0 4.5 22.5 30 Plane
157.5 5.5 10.0 58 Plane
1611.5 3.5 11.5 36 Transit
173.5 4.5 4.5 43 Auto
1812.0 3.0 11.0 33 Plane
1918.0 5.5 20.0 30 Plane
2023.0 5.5 21.5 28 Plane
214.0 3.0 4.5 44 Plane
225.0 2.5 7.0 37 Transit
233.5 2.0 7.0 45 Auto
2412.5 3.5 15.5 35 Plane
251.5 4.0 2.0 22 Auto
26;
2 Bloque de código
DATA STEP Data
Explicación :
Reestructuración de los datos: conversión a formato largo donde cada fila representa una alternativa de elección para un sujeto. Creación de la variable binaria 'Choice' (1 si se elige, 0 si no).
¡Copiado!
1DATA Travel2(keep=Subject Mode TravTime Age AgeCtr Choice);
2 array Times[3] AutoTime PlanTime TranTime;
3 array Allmodes[3] $ _temporary_ ('Auto' 'Plane' 'Transit');
4 SET Travel;
5 Subject = _n_;
6 DO i = 1 to 3;
7 Mode = Allmodes[i];
8 TravTime = Times[i];
9 Choice = (Chosen eq Mode);
10 OUTPUT;
11 END;
12RUN;
3 Bloque de código
PROC BCHOICE
Explicación :
Estimación de un modelo Logit Anidado (Nested Logit). La opción 'nest=(1 2 1)' define la estructura jerárquica agrupando los modos 1 (Auto) y 3 (Tránsito) en un nido, separados del modo 2 (Avión).
¡Copiado!
1PROC BCHOICE DATA=Travel2 seed=124 nmc=20000 nthin=2 dic;
2 class Mode Subject / param=ref order=DATA;
3 model Choice = Mode TravTime / choiceset=(Subject) type=nlogit nest=(1 2 1);
4RUN;
4 Bloque de código
PROC BCHOICE
Explicación :
Estimación de un modelo Logit Multinomial estándar (sin estructura de anidamiento) en los mismos datos para permitir la comparación de los criterios de información (DIC).
¡Copiado!
1PROC BCHOICE DATA=Travel2 seed=124 nmc=20000 nthin=2 dic;
2 class Mode Subject / param=ref order=DATA;
3 model Choice = Mode TravTime / choiceset=(Subject);
4RUN;
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 : SAS SAMPLE LIBRARY