IN58B - Universidad de Chile

Anuncio
Universidad de Chile
Facultad de Ciencias Físicas y Matemáticas
Escuela de Ingeniería y Ciencias
IN58B
“Análisis de Tarifas Dinámicas en Compañías Aéreas”
CURSO
:
IN58B
SECCIÓN
:
01
PROFESOR
:
MARCEL GOIC.
FECHA DE ENTREGA :
16 / 11 / 2004
INTEGRANTE
MARIO SALGADO R.
:
OSCAR UNANUE
DAVID VILLASECA
IN58B-Ingeniería en Marketing
Tarea # 3
Determinación de Precio Bajo/Alto/Oportunista
El problema de la determinación de precios de los pasajes de las líneas aéreas es
un problema no trivial. Existen un buen número de variables a determinar y el
modelo puede ser tan complejo como uno lo desee (o más bien, dependiendo del
dinero que se desea gastar en la investigación y análisis de éstos modelos).
Ahora bien, dado los datos del archivo Excel que contiene las reservas de 20
vuelos, sus horarios, tarifa y otros datos relevantes nuestra solución ante el
problema fue la siguiente:
Para determinar la distribución de la llegada de clientes con intenciones de
Baja/Alta/Oportunista utilizamos el software StatFit2, el cual nos arrojó los
siguientes ajustes:
Clientes “Baja”:
2
IN58B-Ingeniería en Marketing
Tarea # 3
Clientes “Alta”:
3
IN58B-Ingeniería en Marketing
Tarea # 3
Cliente “Oportunistas”:
Ahora bien, dado que los ajustes aquí vistos no son de los mejores que existan,
decidimos cambiar de enfoque ante el problema y aprovechando la cantidad de
datos y estadísticas que poseíamos nos pusimos a trabajar en una simulación.
Para esto hicimos un programa en Perl que fuera capaz de ir cambiando cada vez
el número de clientes en los cuales la tarifa iba a cambiar de “baja” a “alta”.
El programa fue el siguiente:
#!/usr/bin/perl
@promedio;
for($j=1;$j<21;$j++){
$archivo="datos".$j.".csv";
open(arch,$archivo);
@data=<arch>;
close(arch);
4
IN58B-Ingeniería en Marketing
Tarea # 3
$max=0;
$i_max=0;
$corte=0;
$veces=scalar @data;
print "$j\n";
for($i=1;$i<=$veces;$i++){
$utilidad=0;
foreach $data (@data){
chomp($data);
($n,$hora,$disp,$plata,$boolean,$resto)=split(/;/,$data);
if($n < $i && ($disp eq "Alta" || $disp eq "Baja") && $boolean eq "Si
Vuela"){
$utilidad=$utilidad+$plata;
}
if($n >= $i && $disp eq "Alta" && $boolean eq "Si Vuela"){
$utilidad=$utilidad+$plata;
}
}
if ($max < $utilidad){
$max=$utilidad;
$i_max=$i;
}
#print "utilidad:$utilidad en: $i\n"
}
print "utilidad maxima:$max con corte en: $i_max\n";
push(@promedio,$i_max);
}
$resultado=0;
foreach $num (@promedio){
$resultado=$resultado+$num;
}
$resultado=$resultado/20;
print "resultado final: $resultado\n";
EL programa al ser compilado arrojo los siguientes resultados:
[21:02:29] mana $ ./optimo.pl
1
utilidad maxima:8160250 con corte
2
utilidad maxima:8675000 con corte
3
utilidad maxima:7824000 con corte
4
utilidad maxima:8105250 con corte
5
utilidad maxima:8283750 con corte
6
utilidad maxima:8606500 con corte
7
utilidad maxima:8373000 con corte
8
en: 43
en: 50
en: 49
en: 49
en: 42
en: 49
en: 50
5
IN58B-Ingeniería en Marketing
utilidad maxima:8620000
9
utilidad maxima:8304500
10
utilidad maxima:8016000
11
utilidad maxima:7824000
12
utilidad maxima:8263000
13
utilidad maxima:7590500
14
utilidad maxima:8318000
15
utilidad maxima:8441500
16
utilidad maxima:8373000
17
utilidad maxima:8585750
18
utilidad maxima:8304500
19
utilidad maxima:7837500
20
utilidad maxima:7789750
resultado final: 48.25
Tarea # 3
con corte en: 49
con corte en: 50
con corte en: 45
con corte en: 49
con corte en: 50
con corte en: 50
con corte en: 43
con corte en: 50
con corte en: 49
con corte en: 50
con corte en: 50
con corte en: 48
con corte en: 50
Por lo que determinamos que el precio pasará de “bajo” a “alto” cuando hayan
comprado 48 personas sus asientos.
En el caso del “oportunista” decidimos realizar una inspección de las tablas. Al
hacer esto, nos dimos cuenta de que se necesitaban alrededor de 10
“oportunistas” por vuelo para que se vendieran los 100 cupos del avión.
Los oportunistas llegan a una media de 112mins, por lo que dado que necesitamos
10 tendremos que cambiar el precio 1120mins antes de que finalice la venta de
boletos. Con esto nos aseguramos de que por lo menos lleguen 10 oportunistas y
así poder completar la venta de los tickets.
6
IN58B-Ingeniería en Marketing
Tarea # 3
Caso Sobreventa de Boletos
En el caso de la sobreventa de boletos, se vio que en promedio no vuelan 12
personas en cada vuelo, por lo que estamos perdiendo capacidad de sobreventa.
Cuando analizamos con mayor detención en cuales circunstancias los pasajeros no
volaban nos percatamos de que era de lo más randomico posible, es decir no
dependía de ninguna otra variable sino tan solo de si misma ( i.e variable
independiente).
Dado el precio que hay que recompensar a un cliente si este llega al vuelo y se
encuentra sobrevendido, decidimos dejarlo en 9 el número de pasajes a
sobrevender, ya que se observó un mínimo de 7 personas que no vuela y un
máximo de 20, pero la tendencia es mas a 12 (preferimos ser precavidos que estar
compensando en casi el doble a los pasajeros).
Conclusiones
Al finalizar este informe nos sorprende la complejidad del asunto, ya que en un
principio no aparentaba a ser demasiado complejo el problema a optimizar.
También nos llamó la atención que el Booking de pasajes no siguiera una Poisson
o una Expotencial, sino más bien otras distribuciones un tanto desconocidas para
nosotros.
La simulación parece ser un buen modelo a seguir en casos que no se tiene la
certeza de los comportamientos de los clientes, ni la frecuencia o distribuciones
que realmente los representan.
Si bien en nuestro caso parece ser bastante cauta nuestra aproximación al
problema, creemos fielmente de que el modelo puede ser mejorado con reglas
más complejas de decisión pero como una primera instancia de análisis nos parece
bastante buena.
Esperamos que también tenga un buen resultado en los 5 tests de vuelos como
esperamos.
□
7
Descargar