Está en la página 1de 12

capítulo 22

Análisis e fi ciencia: Cómo utilizar el análisis


envolvente de datos para comparar Ef fi ciencias de
Garajes

Contenido
Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

Formulación de programación matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

Datos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

Declaraciones PROC OPTMODEL y salida . . . . . . . . . . . . . . . . . . . . . . . . . . 255

características demostrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Planteamiento del problema

Un fabricante de automóviles quiere evaluar la e fi ciencias de los diferentes talleres que han recibido una franquicia para vender sus coches. 1 El
método a utilizar es Análisis Envolvente de Datos (DEA). Las referencias a esta técnica se dan en la Sección 3.2. Cada garaje tiene un cierto
número de entradas '' medibles. Estos se toman como:
Personal, Espacio sala de exposición, Población de captación en diferentes categorías económicas y anual Consultas para diferentes marcas de
coche. Cada garaje también tiene un cierto número de salidas '' medibles. Estos se toman como: número Vendido de diferentes marcas de coche y
anual Pro fi t. Tabla 22.1 da las entradas y salidas de cada uno de los 28 garajes franquiciados.

Una suposición central de DEA (aunque los modelos modi fi cados pueden ser construidos para alterar este supuesto) es que con- vuelve constante a
escala son posibles, es decir, doblando las entradas de un garaje debe dar lugar a una duplicación de todos sus salidas. Un garaje se considera que es
e fi ciente si no es posible encontrar una mezcla de proporciones de otros garajes cuyos combinado entradas no excedan de las del garaje ser
considerado, pero cuyas salidas son iguales a, o superar, aquellos del garaje. Si esto no fuera posible, entonces el garaje se considera que es
ineficiente y los garajes de comparación puede ser identi fi cado.

1 Reproducido con permiso de John Wiley & Sons Ltd. (Williams 1999, pp. 253-255).
252 F Capítulo 22: Análisis Ef fi ciencia

Tabla 22.1

entradas salidas

Espectáculo- Enq. Enq.


sala de Popn. Popn. Alfa Beta Alfa Beta
Personal espacio gato. 1 gato. Modelo 2 Modelo ventas ventas Pro fi t
Garaje (100 m 2) (1000) (1000) (100s) (100s) (1000) (1000) (millones)

1 Winchester 7 8 10 12 8.5 4 2 0.6 1.5


2 Andover 6 6 20 30 9 4.5 2.3 0.7 1.6
3 Basingstoke 2 3 40 40 2 1.5 0.8 0.25 0.5
4 Poole 14 9 20 25 10 6 2.6 0.86 1.9
5 Woking 10 9 10 10 11 5 2.4 1 2
6 Newbury 24 15 15 13 25 1.9 8 2.6 4.5
7 Portsmouth 6 7 50 40 8.5 3 2.5 0.9 1.6
8 Alresford 8 7.5 5 8 9 4 2.1 0.85 2
9 Salisbury 5 5 10 10 5 2.5 2 0.65 0.9
10 Guildford 8 10 30 35 9.5 4.5 2.05 0.75 1.7
11 Alton 7 8 7 8 3 2 1.9 0.70 0.5
12 Weybridge 5 6.5 9 12 8 4.5 1.8 0.63 1.4
13 Dorchester 6 7.5 10 10 7.5 4 1.5 0.45 1.45
14 Bridport 11 8 8 10 10 6 2.2 0.65 2.2
15 Weymouth 4 5 10 10 7.5 3.5 1.8 0.62 1.6
16 Portland 3 3.5 3 20 2 1.5 0.9 0.35 0.5
17 Chichester 5 5.5 8 10 7 3.5 1.2 0.45 1.3
18 Peters campo 21 12 6 6 15 8 6 0.25 2.9
19 Petworth 6 5.5 2 2 8 5 1.5 0.55 1.55
20 Midhurst 3 3.6 3 3 2.5 1.5 0.8 0.20 0.45
21 lectura 30 29 120 80 35 20 7 2.5 8
22 Southampton 25 dieciséis 110 80 27 12 6.5 3.5 5.4
23 Bournemouth 19 10 90 22 25 13 5.5 3.1 4.5
24 Henley 7 6 5 7 8.5 4.5 1.2 0.48 2
25 Maidenhead 12 8 7 10 12 7 4.5 2 2.3
26 Fareham 4 6 1 1 7.5 3.5 1.1 0.48 1.7
27 Romsey 2 2.5 1 1 2.5 1 0.4 0.1 0.55
28 Ringwood 2 3.5 2 2 1.9 1.2 0.3 0.09 0.4

Un modelo de programación lineal se puede construir para identificar e fi ciente y garajes ineficientes y sus comparadores.

Formulación de programación matemática

La formulación descrita aquí se aplica a cada uno de garaje k. Las declaraciones PROC OPTMODEL llaman el solucionador de programación lineal en un

bucle, con uno a resolver por el garaje.


Conjuntos de índice y sus miembros F 253

Conjuntos de índice y sus miembros

Los siguientes conjuntos de índice y sus miembros se utilizan en este ejemplo:

✏ yo 2 ENTRADAS

✏ yo 2 SALIDAS

✏ j; k 2 GARAJES

✏ j; gramo 1 2 INEFFICIENT_GARAGES

✏ j; gramo 2 2 EFFICIENT_GARAGES

parámetros
Tabla 22.2 muestra los parámetros utilizados en este ejemplo.

Tabla 22.2 parámetros

Nombre del parámetro Interpretación

garage_name [Garaje] Nombre del garaje


de entrada [i, j] Entrada coeficiente de entrada yo de garaje j

salida [i, j] coef de salida fi ciente de salida yo de garaje j


k índice mudo para recorrer más de garajes
ef fi ciency_number [k] número e fi ciencia de garaje k
weight_sol [k, j] Peso de garaje j cuando se maximiza ineficiencia de garaje k

Variables
Tabla 22.3 muestra las variables utilizadas en este ejemplo.

Tabla 22.3 Variables

Nombre de la variable Interpretación

Peso [j] Peso de garaje j


Ine fi ciencia Ine fi ciencia de garaje actual

Objetivo
El objetivo es maximizar ineficiencia.
254 F Capítulo 22: Análisis Ef fi ciencia

restricciones

Las siguientes restricciones se utilizan en este ejemplo:

✏ límites en las variables

✏ para yo 2 ENTRADAS,

X
de entrada [i, j] Peso [j] • de entrada [i, k]

j 2 GARAJES

✏ para yo 2 SALIDAS,

X
salida [i, j] Peso [j] salida [i, k] Ine fi ciencia
j 2 GARAJES

Datos de entrada

Los siguientes conjuntos de datos contienen los datos de entrada que se usan en este ejemplo:

entradas de datos;
Entrada de $ 9 .; líneas de datos;

el personal de sala de exposición

pop1 pop2

alpha_enq
beta_enq;

salidas de datos;
de entrada y salida $ 11 .;
líneas de datos; alpha_sales
beta_sales ganancia;

garage_data datos;
garage_name entrada de $ 12. sala de exposición del personal pop1 pop2 alpha_enq beta_enq
alpha_sales beta_sales ganancia; líneas de datos;
Winchester 7 8
10 12 8,5 4 2 0,6 1,5
Y más 66 20 30 9 4,5 2,3 0,7 1,6
Basingstoke 2 3 40 40 2 1,5 0,8 0,25 0,5
Poole 14 9 20 25 10 6 2,6 0,86 1,9
Woking 10 9 10 10 11 5 2,4 1 2
Newbury 24 15 15 13 25 19 8 2,6 4,5
Declaraciones PROC OPTMODEL y salida F 255

Portsmouth 6 7 50 40 8,5 3 2,5 0,9 1,6


alresford 8 7,5 5 8 9 4 2,1 0,85 2
Salisbury 55 10 10 5 2.5 2 0,65 0,9
Guildford 8 10 30 35 9,5 4,5 2,05 0,75 1,7
Alton 78 7 8 3 2 1,9 0,7 0,5
Weybridge 5 6.5 9 12 8 4,5 1,8 0,63 1,4
Dorchester 6 7,5 10 10 7,5 4 1,5 0,45 1,45 Bridport
11 8 8 10 10 6 2,2 0,65 2,2
Weymouth 45 10 10 7,5 3,5 1,8 0,62 1,6
Portland 3 3,5 3 2 2 1,5 0,9 0,35 0,5
Chichester 5 5.5 8 10 7 3,5 1,2 0,45 1,3
Petersfield 21 12 6 8 15 8 6 0,25 2,9
petworth 6 5.5 2 2 8 5 1,5 0,55 1,55
midhurst 3 3,6 3 3 2,5 1,5 0,8 0,2 0,45
Leyendo 30 29 120 80 35 20 7 2,5 8
Southampton 25 16 110 80 27 12 6,5 3,5 5,4 Bournemouth 19 10 90 12 25 13 5,5
3,1 4,5 Henley
76 5 7 8,5 4,5 1,2 0,48 2
Maidenhead 12 8 7 10 12 7 4,5 2 2.3
fareham 46 1 1 7,5 3,5 1,1 0,48 1,7
romsey 2 2,5 1 1 2,5 1 0,4 0,1 0,55
Ringwood 2 3,5 2 2 1,9 1,2 0,3 0,09 0,4
;

Declaraciones PROC OPTMODEL y salida

Las declaraciones primer varios PROC OPTMODEL declaran conjuntos de índices y parámetros y luego se leen los datos de entrada:

optmodel proc;
set <str> ENTRADAS;
leer entradas de datos en ENTRADAS = [entrada];

set <str> SALIDAS;


leer salidas de datos en salidas = [Salida];

Set <NUM> GARAJES; str garage_name


{GARAJES}; de entrada num {ENTRADAS,
garajes}; salida num {SALIDAS, garajes};

leer garage_data datos en GARAJES = [_ N_] garage_name


{I en ENTRADAS} <input [i, _N _] = col (i)> {i en SALIDAS}
<salida [i, _N _] = col (i)>;

num k;
num efficiency_number {GARAJES}; num weight_sol
{GARAJES, garajes};

Las siguientes afirmaciones se corresponden directamente con la formulación de programación matemática descrita Lier oído-:
256 F Capítulo 22: Análisis Ef fi ciencia

var Peso {} GARAJES> = 0; var


Ineficiencia> = 0;

max Objetivo = ineficiencia;

estafar Input_con {i} en ENTRADAS:


suma {j} en los garajes de entrada [i, j] * Peso [j] <= entrada [i, k];

Côn Output_con {i} en SALIDAS:


suma {j} en los garajes de salida [i, j] * Peso [j]> = salida [i, k] * Ineficiencia;

Las siguientes declaraciones de bucle para todos los garajes, llame al solucionador de programación lineal una vez al garaje, y almacenar los resultados en

los parámetros ef fi ciency_number y weight_sol:

hacer k = garajes;
resolver;
efficiency_number [k] = 1 / Inefficiency.sol; para {j} en garajes

weight_sol [k, j] = (si Peso [j] .sol> 1e-6 entonces Peso [j] .sol otra cosa.); fin;

Tenga en cuenta que el bucle DO no contiene instrucciones de declaración. A medida que el valor de k cambios, la declaración RESOLVER actualiza

automáticamente las limitaciones de utilizar los valores de de entrada [i, k] y salida [i, k]. El enfoque que se muestra aquí es mucho más e fi ciente de las siguientes

alternativas:

✏ Llamando OPTMODEL PROC una vez al garaje

✏ La ampliación del conjunto de variables de decisión mediante la inclusión de un índice adicional, lo que resulta en las variables

Peso [k, j] y Inef deficiencia [k]. Dentro del bucle DO, a continuación, debe fi jar la mayor parte de las variables a 0 y se basan en la
presolver para eliminarlos, pero es un método utiliza mucha más memoria y tiempo de cálculo.

Después termina el bucle DO, las siguientes afirmaciones partición de los garajes en dos conjuntos mediante el uso de un viejo umbral en los números e fi

ciencia resultantes:

establecer EFFICIENT_GARAGES = {j en garajes: efficiency_number [j]> = 1}; establecer


EFFICIENT_GARAGES diff INEFFICIENT_GARAGES = garajes;

Las siguientes declaraciones se imprimen los números de e fi ciencia, como se muestra en Figura 22.1 Y ellos escribir en el
ef fi ciency_data conjunto de datos:

impresión efficiency_number garage_name;


crear efficiency_data datos de [Garaje] efficiency_number garage_name;
Declaraciones PROC OPTMODEL y salida F 257

Figura 22.1 ef fi ciency_number Parámetro

El Procedimiento OPTMODEL

eficiencia_
[1] garage_name número

1 Winchester 0.84017
2 Y más 0.91738
3 Basingstoke 1.00000
4 Poole 0.86189
5 Woking 0.86732
6 Newbury 1.00000
7 Portsmouth 1.00000
8 alresford 1.00000
9 Salisbury 1.00000
10 Guildford 0.81417
11 Alton 1.00000
12 Weybridge 0.85435
13 Dorchester 0.83920
14 Bridport 0.97101
15 Weymouth 1.00000
dieciséis Portland 1.00000
17 Chichester 0.82434
18 petersfield 1.00000
19 petworth 0.98824
20 midhurst 0.82928
21 Leyendo 0.98205
22 Southampton 1.00000
23 Bournemouth 1.00000
24 Henley 1.00000
25 Virginidad 1.00000
26 fareham 1.00000
27 romsey 1.00000
28 Ringwood 0.87587

Las siguientes instrucciones CREATE datos de escritura los garajes ineficientes y los múltiplos correspondientes de garajes e fi ciente a conjuntos de
datos SAS (tanto en forma densa y escaso), como en la Tabla 14.8 en Williams:

crear weight_data_dense datos de [inefficient_garage] = INEFFICIENT_GARAGES


garage_name
efficiency_number
{} Efficient_garage en EFFICIENT_GARAGES
<Col ( 'w' || efficient_garage) = weight_sol [inefficient_garage, efficient_garage]>; crear datos de weight_data_sparse

[Efficient_garage inefficient_garage] =
{G1 en INEFFICIENT_GARAGES, g2 en EFFICIENT_GARAGES:. Weight_sol [g1, g2] ne} weight_sol; dejar;

Las siguientes declaraciones ordenar la ef fi ciency_data conjunto de datos por e fi ciencia e imprimir los resultados, se muestra en la

Figura 22.2 :
258 F Capítulo 22: Análisis Ef fi ciencia

proc datos sort = efficiency_data;


descendiendo efficiency_number; correr;

proc de impresión;

correr;

Figura 22.2 e fi ciency_data conjunto de datos

eficiencia_
Obs garaje garage_name número

1 3 Basingstoke 1.00000
2 6 Newbury 1.00000
3 7 Portsmouth 1.00000
4 8 alresford 1.00000
5 9 Salisbury 1.00000
6 11 Alton 1.00000
7 15 Weymouth 1.00000
8 dieciséis Portland 1.00000
9 18 petersfield 1.00000
10 22 Southampton 1.00000
11 23 Bournemouth 1.00000
12 24 Henley 1.00000
13 25 Virginidad 1.00000
14 26 fareham 1.00000
15 27 romsey 1.00000
dieciséis 19 petworth 0.98824
17 21 Leyendo 0.98205
18 14 Bridport 0.97101
19 2 Y más 0.91738
20 28 Ringwood 0.87587
21 5 Woking 0.86732
22 4 Poole 0.86189
23 12 Weybridge 0.85435
24 1 Winchester 0.84017
25 13 Dorchester 0.83920
26 20 midhurst 0.82928
27 17 Chichester 0.82434
28 10 Guildford 0.81417

Las siguientes declaraciones ordenar la weight_data_dense conjunto de datos por e fi ciencia e imprimir los resultados, se muestra en la

Figura 22.3 :

datos proc sort = weight_data_dense;


descendiendo efficiency_number; correr;

proc de impresión;

correr;
Declaraciones PROC OPTMODEL y salida F 259

Figura 22.3 weight_data_dense conjunto de datos

inefficient_ garage_ eficiencia_


Obs garaje nombre número W3 W6 w7 W8 W9

1 19 petworth 0.98824 . 0,066345. . .


2 21 Leyendo 0.98205 1.26862. . . .
3 14 Bridport 0.97101 0.03278. . . .
4 2 Y más 0.91738 . . . . .
5 28 Ringwood 0.87587 0.00771. . . .
6 5 Woking 0.86732 . . . 0,95253.
7 4 Poole 0.86189 0.32859. . . .
8 12 Weybridge 0.85435 . . . . .
9 1 Winchester 0.84017 . . 0.00528 0.41627 0.40328
10 13 Dorchester 0.83920 0.13436. . 0,10448.
11 20 midhurst 0.82928 . . . . 0.05957
12 17 Chichester 0.82434 0.05825. . 0,09682.
13 10 Guildford 0.81417 0.42459. 0.14961 0.62272.

Obs w11 w15 w16 w18 w22 w23 w24 W25 w27 w26

1. . . 0,015212. . . 0.03409 0.67493.


2. 0.54441 1.19914. . . 2.86247 0.13753. .
3. . 0,46969. . . 0.78310 0.19489. .
4. 0,85714. . . . . 0,21429. .
5. . 0,31973. . . 0,14649. . .
6 0,021078. . . . 009092662. . 0,14838. .
7. . 0,75733. . . 0.43442 0.34463. .
8. 0,79656. . . . . 0.14524 0.01773.
9. 0.33333 0.09614. . . . . . .
10. 0.11929 0.75163. . . 0,03532. 0,47905.
11. 0,06651 0,47189 0,043482. . . 0,00894. .
12. 0.33543 0.16523. . . 0,23637. 0,15424.
13. 0.19180 0.16807. . . . . . .

los weight_data_sparse conjunto de datos contiene la misma información en formato escaso, como se muestra en Figura 22.4 :

datos de impresión proc = weight_data_sparse; correr;


260 F Capítulo 22: Análisis Ef fi ciencia

Figura 22.4 weight_data_sparse conjunto de datos

ineficiente_ eficiente_ peso_


Obs garaje garaje Sol

1 1 7 0.00528
2 1 8 0.41627
3 1 9 0.40328
4 1 15 0.33333
5 1 dieciséis 0.09614
6 2 15 0.85714
7 2 25 0.21429
8 4 3 0.32859
9 4 dieciséis 0.75733
10 4 24 0.43442
11 4 25 0.34463
12 5 8 0.95253
13 5 11 0.02108
14 5 22 0.00909
15 5 25 0.14838
dieciséis 10 3 0.42459
17 10 7 0.14961
18 10 8 0.62272
19 10 15 0.19180
20 10 dieciséis 0.16807
21 12 15 0.79656
22 12 25 0.14524
23 12 26 0.01773
24 13 3 0.13436
25 13 8 0.10448
26 13 15 0.11929
27 13 dieciséis 0.75163
28 13 24 0.03532
29 13 26 0.47905
30 14 3 0.03278
31 14 dieciséis 0.46969
32 14 24 0.78310
33 14 25 0.19489
34 17 3 0.05825
35 17 8 0.09682
36 17 15 0.33543
37 17 dieciséis 0.16523
38 17 24 0.23637
39 17 26 0.15424
40 19 6 0.06635
41 19 18 0.01521
42 19 25 0.03409
43 19 26 0.67493
44 20 9 0.05957
45 20 15 0.06651
46 20 dieciséis 0.47189
47 20 18 0.04348
48 20 25 0.00894
49 21 3 1.26862
50 21 15 0.54441
51 21 dieciséis 1.19914
52 21 24 2.86247
53 21 25 0.13753
54 28 3 0.00771
55 28 dieciséis 0.31973
56 28 24 0.14649
características demostrada F 261

características demostrada

Las siguientes características se demuestran en este ejemplo:

✏ Tipo de problema: programación lineal

✏ conjuntos de índices numéricos y de cadena

✏ leer y escribir múltiples conjuntos de datos

✏ lectura densa de datos en dos dimensiones

✏ llamar a un programa de solución en un bucle DO

✏. Sol suf variable de fi x

✏ el almacenamiento de una solución en un parámetro numérico

✏ utilizando dos puntos (:) para seleccionar miembros de un conjunto

✏ conjunto DIFF operador

✏ escritura densa de datos en dos dimensiones

✏ la escritura de datos en dos dimensiones escasa


262

También podría gustarte