Material disponible en http:// |
Para el desarrollo de este curso se recomienda consultar la siguiente bibliografía
Six Sigma With R Emilio L. Cano |
|
Quality Control With R Emilio L. Cano |
|
Business Statistics for Competitive Advantage with Excel 2007 Cinthya Fraser |
|
R in Action Robert I. Kabacoff |
|
Simulación de Negocios Ricardo Palma 2nd. Ed. |
|
Técnicas de Simulación de Negocios: Para entornos competitivos y de elevada innovación (Innovación en Ingeniería Industrial nº 1) (Spanish Edition) by Ricardo R. Palma Kindle Edition |
|
Business Economics and Finance with MATLAB, GIS, and Simulation Models by Patrick L. Anderson |
Vivimos tiempos de cambio en la región de américa latina y caribe. La irrupción de la pandemia del SARS Co-ViD-16 ha provocado cambios en todas las dimensiones imaginables de nuestras actividades. Cambios que se pensaban que llevarían años implementar en el terreno de las tecnologías, se han tenido que implementar en meses (incluso en semanas). Muchos aspectos vinculados a las cadenas de suministros han requerido que los países del mundo entero se pregunten si la deslocalización industrial globalizada, que permite la externalización de las acciones no convenientes en sistemas productivos que no las controlan, clama sobre replantearse muchas cosas que dábamos por ciertas. Fenómenos como el del container shortage o los temibles impactos que esperamos en nuestras cadenas de suministros en las semanas 7 y 25 de el año en curso reclaman de nosotros, los que intentamos dar respuestas desde la academia a estas preguntas nuevas habilidades y competencias que no pudimos desarrollar en el grado y que el posgrado debe necesariamente responder.
Este curso que está pensado para introducir los conceptos de Gestión de la Cadena de Suministros en el contexto del Post Covid y pensar esta instancia como punto de partida para la Industria 4.0 en nuestro continente utiliza como excusas los interrogantes que se plantean en el primer párrafo e intentará apoyarse en las competencias que este grupo de alumnos del posgrado han desarrollado en torno a las TICs.
Comprender la diferencia entre gestión de proveedores y desarrollo de proveedores que la crisis de las cadenas de suministro han impuesto en nuestras economías.
Desarrollaro habilidades y competencias para facilitar el proceso de comunicación en las cadenas de suministros de las empresas que intervienen en el sector de comunicaciones, sea como proveedores de servicios o en instancias de manufactura o puesta en marcha de hardware.
Adoptar el paradigma que permita pasar del pensamiento del modelo Logístico de Porter, al que está emergiendo como consecuencia del COVID-19 representado por Redes de Cadenas de Suministros (Supply Network Management)
Incentivar a la creación de spin-off en el ámbito Empresa / Universidad que faciliten llenar el vacío que existe en latinoamérica y caribe sobre este aparente divorcio.
Involucrarte fuertemente y tomar posición sobre los desafíos que nuestra región enfrenta en todos sus sistemas productivos procuranto una fuerte integración con investigadores de LAC (Latinoamérica y Caribe) para captar la inversión de la CAF, BID, Programas de la Unión Europea y China están ofreciendo en la región para ingresar al modelo de manufactura de Industria 4.0 - Smart Grid - Ciudades Inteligentes.
Presentación
La Norma ISO 9001:2015 se basa en 7 principios de gestión de la calidad, siendo uno de ellos la gestión de las relaciones con las partes interesadas (stakeholders y shareholders. Un claro ejemplo de parte interesada lo constituyen el conjunto de los proveedores de una organización, y resulta más claro aún que gestionar con éxito estas relaciones contribuye el éxito sostenido de toda la organización.
Es fácil comprender entonces que es esencial establecer una buena comunicación en toda la cadena de suministro de la empresa, ya que tendrá repercusión directa en el producto o servicio brindado al cliente y en la relación con los proveedores.
Desde luego que entre el conjunto de todos los proveedores de una organización existen grandes diferencias en cuanto a la relevancia que cada uno de ellos tiene para la propia organización, pues no inciden de igual manera en el producto o servicio final.
Por tanto es importante identificar las diferencias en cuanto al impacto que pueden tener en la organización.
Con respecto a la comunicación en toda la cadena de suministro de la empresa, la organización debe comunicar a los proveedores externos los requisitos aplicables para los siguientes aspectos:
El control de los proveedores externos debe asegurar que los procesos, productos y servicios suministrados por los proveedores externos estén conformes a los requisitos especificados.
En estos dias y como consecuencia de la pandemia ISO tiene un debate muy crítico respecto al capítulo 8 de la norma ISO 9000 ya que en la familia de normas (14.000 y 22.000) se han observado resultados mucho más positivos respecto a la satisfacción de las necesidades del cliente cuando en lugar de simplemente controlar y aceptar o rechazar proveedores se ha comenzado a integrarlos utilizando el desarrollo como herramienta básica.
El tipo y alcance de este control se basan en el principio: “asegurar que los procesos, productos y servicios suministrados externamente no afecten negativamente a la capacidad de la organización para entregar de forma regular productos y servicios a sus clientes”.
Es claro que tratar a tu socio estratégico como si fuese un insumo más pone en peligro la gestión del talento humano. Por ello normas como la ISO 22.301 han tenido tanto éxito en el manejo de las burbujas de las pandemias, cuando en contraposición los procedimientos redactados en torno a ISO 9001 V 2015 simplemente sugieren rechazar al proveedor.
Entonces ¿De qué depende el tipo y alcance del control a aplicar al proveedor externo? Al respecto, se debe considerar:
Al aplicar los requisitos de la Norma ISO 9001:2015 en cuanto a la relación con sus proveedores, la organización desempeña un papel importante a través de la adecuada especificación a su proveedor de lo que realmente quiere.
En el caso de las telecomunicaciones no nos debemos limitar a las especificaciones de una API, ni las características técnicas de la UIT respecto a conectores voltajes, etc. sino que deben considerarse la capacitación del recuros humano propio y del proveedor que de simple suministrador pasa a ser socio tecnológico.
Así, en caso de no especificar correctamente sus necesidades, es posible encontrarse con que recibe un producto o un servicio que cumple con todas las los requisitos establecidos y la reglamentación legal aplicable, pero que es absolutamente inadecuado para su aplicación prevista, simplemente por un fenómeno de desplazamiento de contenido y continente o significado y significante que una palabra española tiene para un grupo y el que se le atribuye en otro .
Consultar al profesor por el caso de flexibilidad laboral
A fin de evitar situaciones como esta, la empresa debe concentrarse sobre la especificación de sus necesidades relacionadas con la intención el uso del producto o servicio.
Para ello es importante considerar lo siguiente:
En el presente trabajo se ensaya distintos métodos del software de estadística R-cran para diseñar, implementar, controlar y mejorar sistemas de calidad basados en las recomendaciones de Seis Sigma. En este capítulo trabajaremos con Gráficos con R.
Aquí nos centraremos en describir el contexto de aplicación de la solución que pretendemos presentar en el trabajo de gráficos con R. Los gráficos son particularmente importantes para los proyectos Seis Sigma. El objetivo de un gráfico usualmente es ayudar en la interpretación de datos. Por consiguiente, proveer una adecuada explicación de los datos a través de gráficos es crucial. Gráficos de dos dimensiones pueden ser usados como la base para representaciones más complejas, y datos multidimensionales pueden ser mostrados a través de extensiones de dichos gráficos. Antes de describir los principales gráficos usados en los proyectos de Seis Sigma, en esta sección vamos a explicar algunos conceptos importantes respecto a los gráficos en general.
Los gráficos son muy útiles en las primeras etapas de análisis, cuando necesitamos una descripción del proceso para hacer conjeturas, descifrar relaciones, y planear investigaciones posteriores. Así, el análisis descriptivo es la misión más importante de los gráficos. En el último paso de nuestro análisis, cuando presentamos nuestros resultados, los gráficos serán probablemente la tarjeta de negocio de nuestras conclusiones. Por lo tanto, elegir el tipo adecuado de gráfico para comunicar nuestros avances o propuestas es crucial.
La mayoría de los gráficos que usamos en estadística (y por consiguiente en Sies Sigma) son gráficos bidimensionales. La naturaleza de las variables que estamos midiendo en cada dimensión determina la escala del gráfico. Otra decisión sobre nuestro gráfico es establecer sus límites.
La siguiente tabla muestra los datos de una muestra de 24 cartuchos de impresora de una marca determinada. Son de tres diferentes llenadores, y hay dos tipos de cartucho: color y negro. El volumen y la densidad en cada cartucho se midieron. El conjunto de datos ss.data.pc en el paquete SixSigma contiene estos datos.
**Recuerde instalar y cargar la biblioteca*
library(SixSigma)
<- data(package="SixSigma")
listado # listado$results
$results[13, ] listado
## Package
## "SixSigma"
## LibPath
## "/home/rpalma/R/x86_64-pc-linux-gnu-library/4.1"
## Item
## "ss.data.pc"
## Title
## "Data set for the printer cartridge example"
Mostraremos la cabecera de la tabla de datos a utilizar.
head(ss.data.pc)
## pc.col pc.filler pc.volume pc.density pc.batch pc.op
## 1 C 1 16.75331 1.253419 1 A
## 2 C 2 18.01435 1.112435 1 B
## 3 C 3 15.64487 1.141105 1 C
## 4 C 1 18.02817 1.091772 1 D
## 5 C 2 13.78313 1.146547 2 A
## 6 C 3 16.75840 1.123339 2 B
De manera que ahora, se mostrará la relación entre la densidad y el volumen de los datos con los ajustes ya definidos para la función plot por defecto.
<- ss.data.pc$pc.volume
pc.volume <- ss.data.pc$pc.density
pc.density plot (pc.volume ~ pc.density, pch = 16)
<- ss.data.pc$pc.volume
pc.volume <- ss.data.pc$pc.density
pc.density plot (pc.volume ~ pc.density, pch = 16, main="Volumen vs Densidad cartuchos reciclados", ylab="Volumen Cartucho cm^3", xlab="Densidad g/cm^3")
Ejemplo Gráfica Densidad Volumen de Cartuchos Toner
Un gráfico de barras es un gráfico muy simple donde se muestran algunas cantidades como la altura de las barras. Cada barra representa un factor donde la variable en estudio se está midiendo. Un gráfico de barras es generalmente la mejor representación gráfica para el recuento. Ejemplo 2. El fabricante de cartucho de impresora distribuye su producto a cinco regiones. Una cantidad inesperada de cartuchos defectuosos ha sido devuelta en el último mes. El diagrama de barras en la figura 2 es una manera directa para ver los datos de la Tabla 2 (disponible en el paquete SixSigma dentro del conjunto de datos ss.data.pc.r). Utilizamos el siguiente código en R a partir de la función barplot, tomando en cuenta que podemos hacer un gráfico de barras para cada cartucho y cambiando los colores.
head(ss.data.pc.r)
## pc.regions pc.def.a pc.def.b pc.def
## 1 region.1 37 63 100
## 2 region.2 17 48 65
## 3 region.3 38 39 77
## 4 region.4 41 43 84
## 5 region.5 13 54 67
barplot(as.matrix(ss.data.pc.r[,2:3]),
las = 1,
beside = TRUE,
legend = ss.data.pc.r[,1],
args.legend = list(x=3.5,y=60),
main = "Gráfico de Barras de Defectos por Región y Tipo",
sub = "Ejemplo 2 Cartuchos Reciclados")
abline(h = 5,
col = "#666666")
Un histograma es un gráfico de barras para las variables continuas. Este gráfico de barras muestra la distribución de las mediciones de las variables. En el eje x, cada barra representa un intervalo de los valores posibles de una variable. La altura de las barras (es decir, el eje y) depende de la frecuencia (relativa o absoluta) de las medidas dentro de cada intervalo. La regla es que el área de las barras debe ser proporcional a las frecuencias.
En el Ejemplo 3 , tomaremos los datos del primer ejemplo que realizamos y construiremos un gráfico de barras de volumen vs densidad con la función hist (la gráfica incluye las líneas de densidad).
hist (ss.data.pc$pc.volume,
main = "Printer Cartridge Volume",
xlab = "Volumen", ylab="Densidad",
col = "#BBBBBB",
border = "white",
bg = "red",
freq = FALSE,
ylim = c(0,0.4))
curve (dnorm(x,16,1),
add = TRUE,
lty = 2,
lwd = 2)
lines (density(ss.data.pc$pc.volume),
lwd = 2,col="red")
text (label = expression(paste(mu==16,
"; ",
==1,
sigmasep = "")),
x = 16.5,
y = 0.4,
adj = c(0,1))
grid()
box()
En este histograma, hemos cambiado el color de las barras. La línea continua es una línea de densidad para los datos. La línea discontinua es la línea de densidad teórico para una distribución normal. Los parámetros de esta distribución teórica han sido anotados en el gráfico.
Un diagrama de dispersión es una herramienta importante para revelar las relaciones entre dos variables. En lenguaje estadístico, estas relaciones pueden ser subsumidas en el concepto de correlación. Por lo tanto, podemos tener tres tipos de correlación entre dos variables:
Esta técnica es la base del análisis multidimensional multivariado y es el corazón del marco teórico con el que trabajó Taguchi en los inicios de estandard ISO 9000
En el conjunto de datos ss.data.pc, tenemos dos variables continuas: pc.volume y pc.density. Si queremos comprobar si la densidad y el volumen están relacionados, la primera cosa que tenemos que hacer es generar un diagrama de dispersión para encontrar patrones de esta relación. En el Ejemplo 4, utilizamos el siguiente código para producir el diagrama de dispersión en la figura 4. En este caso volvemos a utilizar nuevamente la función plot, pero con la variante de línea en lugar de puntos.
<- ss.data.pc$pc.volume
pc.volume
<- ss.data.pc$pc.density
pc.density
plot (pc.volume ~ pc.density,
main = "Buscando Correlación entre Densidad y Volumen de Imrpimible", type="l",
col = "#666666",
pch = 16,
sub = "Caso consumibles de impresión",
xlab = "Volumen de Toner",
ylab = "Densidad")
grid()
Matriz de Correlación
str(ss.data.pc)
## 'data.frame': 24 obs. of 6 variables:
## $ pc.col : Factor w/ 2 levels "C","B": 1 1 1 1 1 1 1 1 1 1 ...
## $ pc.filler : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
## $ pc.volume : num 16.8 18 15.6 18 13.8 ...
## $ pc.density: num 1.25 1.11 1.14 1.09 1.15 ...
## $ pc.batch : int 1 1 1 1 2 2 2 2 3 3 ...
## $ pc.op : Factor w/ 4 levels "A","B","C","D": 1 2 3 4 1 2 3 4 1 2 ...
plot(ss.data.pc)
Esta técnica (smooth scatter en inglés) utiliza el criterio de suavizado tratando de minimizar el error cuadrático medio de a tramos de dos o tres pares ordenados por turno. A la línea obtenida se la suaviza con spline o bezier.
scatter.smooth(x=pc.volume, y=pc.density, main="Volumen ~ Densidad") # scatterplot
Un gráfico de serie es un gráfico bidimensional donde el eje x representa una línea de tiempo y en el eje de ordenadas se representa una variable que queremos monitorizar. Esta variable puede ser un parámetro críticos para la calidad (CTQ) y característica de nuestro proceso o por lo menos un parámetro que la afecta en alto grado.
Los gráficos de serie nos permiten detectar patrones que pueden ser indicativos de cambios en un proceso. Los cambios implican variabilidad y, por tanto, menos calidad. En particular, si se detecta ciclos, tendencias o cambios, se debe revisar nuestro proceso. Ejemplo 5. Queremos controlar el volumen en los cartuchos, disponibles en el conjunto de datos ss.data.pc. Supongamos que el valor objetivo para el volumen es de 16. Usando el siguiente código obtenemos el gráfico de serie en la figura SIGUIENTE Empleamos la función plot para realizar el ejemplo.
plot (ss.data.pc$pc.volume,
type = "b",
pch = 16,
ylim = c(12,20),
axes = FALSE,
main = "Run Chart (gráfica control de proceso) Volumen",
sub = "Cartuchos de Toner",
xlab = "Run (Lote)",
ylab = "Volumen")
axis(1,
at = 1:24,
cex.axis = 0.7)
axis(2)
box()
grid()
abline(h = 16,
lwd = 2)
Un gráfico de nivel es similar a un gráfico de serie. Utilizamos gráficos de nivel cuando tenemos más de una observación en cada serie (por ejemplo, lotes, días, etc.). Con el gráfico de nivel podemos ver variación a corto plazo y la variación a largo plazo de manera conjunta en un solo gráfico. A corto plazo la variación es una dentro de cada subgrupo, mientras que la variación a largo plazo es aquella entre todos los grupos.
Supongamos que la muestra de 24 cartuchos proviene de 6 lotes diferentes y que se miden secuencialmente. Es decir, los cartuchos de 1 a 4 son del lote 1, 5 a 8 son del lote 2, y así sucesivamente. La información se encuentra en la variable pc.batch. Podemos crear el gráfico utilizando la función Stripchart y añadiendo una línea para cada subgrupo :
stripchart(pc.volume ~ pc.batch,
data = ss.data.pc,
pch = "-",
cex = 3,
xlab = "Batch (Lote de Fabricación)",
ylab = "Volumen",
ylim = c(12,20),
vertical = TRUE,
main = "Grpaficas de Nivel o Tier Chart (Volumen)",
sub = "Printer Cartridge Example")
grid()
for (i in 1:6){
lines(x = rep(i,2),
lwd = 3,
col = "#666666",
y = c(max(ss.data.pc$pc.volume[ss.data.pc$pc.batch==i]),
min(ss.data.pc$pc.volume[ss.data.pc$pc.batch==i])))}
abline(h = 16,
lwd = 2)
Resume gráficamente la distribución de una variable continua. Los lados de la caja son la primera y tercera cuantiles (25vo y 75vo porcentiles, respectivamente). Por lo tanto, dentro de la caja que tenemos el medio 50% de los datos. La mediana se representa como una línea que atraviesa la caja. Los valores extremos pueden ser los máximos y mínimos de los datos u otros límites más allá de los cuales los datos se consideran valores atípicos. El diagrama de caja nos dice si la distribución está centrada o sesgada (la posición de la mediana con respecto al resto de los datos), si hay valores atípicos (puntos fuera de los extremos), o si los datos son cercanos a los valores centrales.
<- boxplot(ss.data.pc$pc.volume,
my.bp col = "#CCCCCC",
main = "Box Plot of Volume",
sub = "Printer Cartridge Example",
ylab = "Volume",
range = 0.7)
text (x = rep(1, length(my.bp$out)),
y = my.bp$out,
labels = which(ss.data.pc$pc.volume==my.bp$out),
pos = 4)
str(my.bp)
## List of 6
## $ stats: num [1:5, 1] 13.8 15 15.9 16.8 18
## $ n : num 24
## $ conf : num [1:2, 1] 15.4 16.5
## $ out : num 18.2
## $ group: num 1
## $ names: chr ""
Vamos a trazar un diagrama de caja para todos los datos con el siguiente código, considerando para los valores atípicos un rango de 0.7. Se obtiene un valor atípico, correspondiente a la fila 11 del conjunto de datos. Para el ejemplo, utilizamos la función boxplot.
En un gráfico de grupo, identificamos los puntos en el gráfico, mostrando el grupo al que pertenecen. Es útil cuando la característica que estamos midiendo es producida por diferentes corrientes de proceso o se mide en diferentes lugares. Los valores más altos y más bajos de cada grupo están generalmente unidos por líneas. Ejemplo Supongamos que los cuatro cartuchos de toner de impresora en cada lote son etiquetados de acuerdo con el operador que vende el cartucho (A, B, C, y D). La información está contenida en la variable de pc.op del paquete SixSigma. Con el siguiente código obtenemos el gráfico de grupo en la fig. 8. Utilizamos la función strpchart.
stripchart(pc.volume ~ pc.batch,
vertical = TRUE,
data = ss.data.pc,
pch="",
xlab = "Batch (lote)",
ylab = "Volumem",
ylim = c(12,20),
main = "Agrupado por (Operator) Carta de Volumen",
sub = "Printer Cartridge Example")
rect(par("usr")[1],
par("usr")[3],
par("usr")[2],
par("usr")[4],
col = "#CCCCCC")
box(col = "#CCCCCC")
grid(col = "#EEEEEE")
points(pc.volume ~ pc.batch, data = ss.data.pc, pch = 19)
with(ss.data.pc, text(label = pc.op,
x = pc.batch,
y = pc.volume, pos = 4))
lines(aggregate(pc.volume ~ pc.batch, data = ss.data.pc, max), lwd=2)
lines(aggregate(pc.volume ~ pc.batch, data = ss.data.pc, min),
lwd=2)
El análisis de Pareto es una técnica que puede ser usada en varias etapas de un proyecto Seis Sigma. En la fase de medida del ciclo DMAIC (diseño, medición, análisis, mejora (improve) y control, lo usamos para priorizar las posibles causas de los defectos y enfocarnos solamente en los importantes. La base del análisis de Pareto es el principio de Pareto, que se aplica a varios procesos de la vida real. A groso modo, el principio de Pareto dice que la mayoría de los beneficios (aproximadamente el 80%) son consecuencia de un limitado número de acciones claves (aproximadamente el 20%). Es también conocida como la regla 80/20. La búsqueda de estas acciones clave se realiza usualmente usando un diagrama de Pareto, una herramienta que nos permite dar un vistazo de los resultados de un análisis de Pareto.
Vilfredo Pareto (1848-1923) era un economista italiano cuya mayor contribución es el principio conocido por su nombre. Fue también filósofo, ingeniero, sociólogo y un científico político. El principio de Pareto fue el resultado de sus observaciones acerca de la distribución del capital en el siglo 19. Él observó que el 80% del capital estaba en manos del 20% de la población. Es por esto que el principio de Pareto es también conocido como la regla 80/20. Esto aparece en muchas de las situaciones de la vida cotidiana, y por lo tanto es a veces considerado un principio natural. Por ejemplo:
El principio de Pareto es utilizado para priorizar las acciones a tomar desde una lista de opciones. En este sentido, el diagrama de Pareto es una herramienta esclarecedora. Los mejores resultados se consiguen si uno consigue enfocarse en “las pocas cosas vitales en vez de muchas triviales”. Esta expresión fue acuñada por Joseph M. Juran y se encuentra en la literatura referente a la calidad. Sin embargo, Juran confesó que esas “muchas cosas” pueden no ser triviales, y prefiere la expresión “las pocas cosas vitales y las muchas útiles”. Significa que debemos enfocarnos en las pocas cosas triviales pero sin dejar de lado las demás cosas útiles en muchas de las aproximaciones que se hacen del problema.
En los métodos de resolución de problemas, identificar la raíz de las causas de un problema es crítico para encontrar soluciones robustas. Para identificar las posibles causas podemos utilizar varias técnicas, por ejemplo, el “brainstorming” y herramientas de cómo los diagramas causa-efecto, diagramas de afinidad, etc.
Una vez que las posibles causas fueron identificadas, la selección de aquellas que son críticas se puede hacer de varias maneras. Siguiendo el principio de Pareto, el resultado natural debería ser una distribución 80/20 de las causas. Si de hecho tenemos una distribución 80/20, deberíamos reorganizar nuestra información agrupando o separando las causas dependiendo de la distribución que conseguimos.
Esto es el desafío del análisis de Pareto: seleccionar las principales características que llevan a medir la relevancia del problema. En la próxima sección se mostrarán diferentes métodos para realizar el análisis de Pareto.
El diagrama de Pareto es una representación o gráfico de barras que representan las causas en el eje x y los efectos en el eje y, las barras se disponen en orden descendente dependiendo de su influencia en el efecto. Para hacer el diagrama más fácil de interpretar algunas mejoras usualmente se incluyen en estas gráficas, por ej.:
Creemos un algoritmo paso a paso para realizar un diagrama de Pareto.
1- Identifique las causas. 2- Escoja las unidades de medida apropiadas 3- Obtenga información 4- Clasifique en orden de importancia 5- Calcule el porcentaje acumulado 6 Realiza el gráfico de barras para las medidas 7 Diagrame la línea que une los porcentajes acumulados 8 Encuentre las causas responsables del 80% del efecto.
En la siguiente sección se mostrará cómo se construye un diagrama de Pareto usando R. después nos enfocaremos en las causas seleccionadas y mostraremos como usarlo para mejorar el proceso y así reducir errores.
El diagrama de Pareto es esencialmente un gráfico de barras, es fácil de crear con R utilizando el paquete estándar de gráficos. Una manera fácil de crear el diagrama de Pareto para proyectos Seis Sigma es utilizando funciones específicas en “qcc” y el paquete qualityTools. Ejemplo 6.3 (Proyecto de construcción (cont.)). Dibujemos nuestro diagrama de Pareto con datos del ejemplo del proyecto de construcción usando R. Primero podemos dibujar un diagrama de barras (Fig. 6.3) e incluir los porcentajes acumulados como anotación. La función para realizar el gráfico de barras entrega un vector con la posición de las barras en el eje x.
<- "Demora"
b.effect <- c("Personal", "Clima", "Proveedores", "Planificación")
b.groups <- vector(mode = "list", length = length(b.groups))
b.causes 1] <- list(c("Entren.", "Personal Inadecuado"))
b.causes[2] <- list(c("Lluvia", "Temp.", "Viento"))
b.causes[3] <- list(c("Materiales", "Demoras", "Retrabajos"))
b.causes[4] <- list(c("Cliente", "Permisos", "Errores"))
b.causes[<- data.frame(cause=factor(unlist(b.causes)),
b.data count = c(5,1,3,1,2,18,20,4,15,2,4) ,
cost = c(50,150,50,10,20,180,200,10,5,20,150))
<- barplot(rev(sort(b.data$count)),
pChart names.arg = b.data$cause[order(b.data$count, decreasing = TRUE)],
las = 2)
# las=1 leyenda horizontal, las= 2 leyenda vertical
text(pChart, rep(0.5,11),
sort(round(cumsum(100 * (b.data$count/sum(b.data$count))
order(b.data$count,decreasing = TRUE)]), 1))) [
Proyecto de construcción (cont.)). Dibujemos nuestro diagrama de Pareto con datos del ejemplo del proyecto de construcción usando R. Primero podemos dibujar un diagrama de barras (Fig. 6.3) e incluir los porcentajes acumulados como anotación. La función para realizar el gráfico de barras entrega un vector con la posición de las barras en el eje x. Utilizamos este vector para imprimir valores de los porcentajes acumulados en el lugar apropiado del diagrama.
El paquete qcc incluye la función pareto.chart. Entrega una salida con los datos de las causas.
library(qcc)
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
<- b.data$count
b.vector names(b.vector) <- b.data$cause
pareto.chart(b.vector, cumperc = c(80))
##
## Pareto chart analysis for b.vector
## Frequency Cum.Freq. Percentage Cum.Percent.
## Demoras 20.000000 20.000000 26.666667 26.666667
## Materiales 18.000000 38.000000 24.000000 50.666667
## Cliente 15.000000 53.000000 20.000000 70.666667
## Entren. 5.000000 58.000000 6.666667 77.333333
## Retrabajos 4.000000 62.000000 5.333333 82.666667
## Errores 4.000000 66.000000 5.333333 88.000000
## Lluvia 3.000000 69.000000 4.000000 92.000000
## Viento 2.000000 71.000000 2.666667 94.666667
## Permisos 2.000000 73.000000 2.666667 97.333333
## Personal Inadecuado 1.000000 74.000000 1.333333 98.666667
## Temp. 1.000000 75.000000 1.333333 100.000000
Estos atos entregados por el programa R respecto de las causas donde se especifica: Frecuencia de ocurrencia, frecuencia acumulada, porcentaje que cada una de las causas representa del total y el porcentaje acumulado. Sin dudas el aporte de información para el decisor es enormemente mayor.
Otro paquete que se utiliza mucho es el paquete quality.Tools incluye la función paretoChart para realizar diagramas de forma semejante a las anteriores.
*** Atención la biblioteca qualityTools estará en mantenimineto desde Enero de 2022 a Febrero de 2022 por revisión y auditoria de ISO Internacional ***
library(qualityTools)
require(qualityTools)
paretoChart(b.vector, las = 2, percentVec = c(0, 0.5, 0.80, 1))
Ambas funciones requieren un vector numérico con componentes etiquetados, en vez de un marco de datos. Lea la documentación sobre los paquetes para hallar mayor información acerca de estas funciones.
La base del proceso de mejora continua está dada por la recursividad. Que se conoce como proceso DMAC o por sus siglas en inglés DMAIC
Definir: Se refiere a definir los requerimientos del cliente y entender los procesos importantes afectados. Estos requerimientos del cliente se denominan CTQs (por sus siglas en inglés: Critical to Quality, Crítico para la Calidad). Este paso se encarga de definir quién es el cliente, así como sus requerimientos y expectativas. Además se determina el alcance del proyecto: las fronteras que delimitarán el inicio y final del proceso que se busca mejorar. En esta etapa se elabora un mapa del flujo del proceso.
Medir: El objetivo de esta etapa es medir el desempeño actual del proceso que se busca mejorar. Se utilizan los CTQs para determinar los indicadores y tipos de defectos que se utilizarán durante el proyecto. Posteriormente, se diseña el plan de recolección de datos y se identifican las fuentes de los mismos, se lleva a cabo la recolección de las distintas fuentes, se organizan las hipótesis causa - efecto. Por último, se comparan los resultados actuales con los requerimientos del cliente para determinar la magnitud de la mejora requerida.
Analizar: En esta etapa se lleva a cabo el análisis de la información recolectada para determinar las causas raíz de los defectos y oportunidades de mejora. Posteriormente se tamizan las oportunidades de mejora, de acuerdo a su importancia para el cliente y se identifican y validan sus causas de variación.
Mejorar: Se diseñan soluciones que ataquen el problema raíz y lleve los resultados hacia las expectativas del cliente. También se desarrolla el plan de implementación.
Controlar: Tras validar que las soluciones funcionan, es necesario implementar controles que aseguren que el proceso se mantendrá en su nuevo rumbo. Para prevenir que la solución sea temporal, se documenta el nuevo proceso y su plan de monitoreo. Solidez al proyecto a lo largo del tiempo.
Como mencionamos en la los ejemplos anteriores, el principio de Pareto es una herramienta para la resolución de problemas. Por lo tanto, podemos utilizar el diagrama de Pareto en cualquier parte de nuestro proyecto para mejorar nuestros procesos.
En los estadios iniciales de la implementación de Seis Sigma deberemos elegir nuestro proyecto de una lista de proyectos disponibles. Algunos autores incluso transformaron el ciclo DMAIC en la estrategia SDMAIC (la ). Por lo tanto, seleccionar el proyecto es una tarea de suma importancia para el Master Black Belt. Para realizar esta selección podemos usar el diagrama de Pareto escogiendo las unidades de medida adecuadas (por ej., reducción de costos esperada) y enfocándose en los pocos proyectos vitales que nos permitirán alcanzar un ahorro del 80%.
Otra etapa donde se utilizará el diagrama de Pareto es, probablemente, durante la fase de mejora. En las primeras etapas de diseño de experimentos, usualmente medimos muchos posibles efectos, y el diagrama de Pareto es una de las técnicas usadas para seleccionar aquellos importantes cuando no contamos con suficiente información.
El análisis de la capacidad es una parte muy importante en la fase de la medida en un proyecto Seis Sigma. También es parte del control estadístico de procesos clásicos. A través del análisis de capacidad podemos medir cómo encaja en el rendimiento de procesos los requisitos del cliente. Estos requisitos deben traducirse en los límites de especificaciones para la característica de interés, y que puede ser unilateral (sólo superior o límite inferior) o por las dos caras (límites superior e inferior). Con los años, muchos avances han sido hechos, especialmente con respecto a la no normalidad, no linealidad, los procesos con múltiples características, y muchos otros. Variación (a corto plazo y largo plazo), rendimiento, DPU, DPO, DPMO, DDPE, RTY, y Z (la puntuación sigma del proceso) se utilizan para medir el desempeño del proceso. En este capítulo, vamos a repasar las especificaciones , el rendimiento del proceso , su relación , y los índices de capacidad. Nosotros ilustraremos los conceptos a través de un ejemplo práctico.
La especificación es la voz del cliente. Bajo un paradigma Seis Sigma, El proceso debe cumplir con los requisitos del cliente. Estos requisitos deben ser cuantificados de alguna manera para ser alcanzable. Por lo general las Especificaciones son un rango con límites superior e inferior. Por ejemplo, la longitud de un clavo puede ser de entre 9,5 y 10,5 mm, o del tiempo de servicio a un contador no puede contener más de 5 min. Los límites superiores e inferiores se abrevian como USL y LSL, respectivamente (límite de especificaciones superior, límite de especificaciones inferior). Por lo tanto, un valor por encima de la USL el rendimiento del proceso es inaceptable, y un valor por debajo del LSL el rendimiento del proceso es inaceptable. Las especificaciones deben ser realistas. Un método bien conocido para evaluar la validez de las especificaciones en seis Sigma es RUMBA, que significa:
Una vez que nos hemos dado cuenta de lo que nuestro proceso debe lograr, tenemos que saber lo que nuestro proceso está haciendo. Esta es la llamada de voz del proceso (VOP). A simplificación podría ser (y de hecho lo ha sido durante mucho tiempo) que el proceso es correcto cuando el valor actual de la característica está dentro de los límites especificación.
En la metodología seis Sigma, este enfoque no es suficiente. El proceso es correcto cuando nos aproximamos al objetivo, con la menor variación posible. Este puede ser fácilmente entendida bajo el concepto de la función de pérdida de Taguchi
Como vemos en la figura del diagrama, a medida que nos alejamos del objetivo, mayor será la costo, y por lo tanto peor es el rendimiento de nuestro proceso. Por lo tanto, la posición del valor característico dentro de los límites es importante. La línea punteada es el costo de la mala calidad bajo el enfoque tradicional. La línea discontinua es el costo de mala calidad en el enfoque de seis Sigma.
Otra diferencia importante entre lo clásico y el enfoque Seis Sigma es el concepto de fábrica oculto. El rendimiento Y de un proceso es la cantidad de ``buena cosas’’ producido por el proceso. Puede ser evaluado una vez finalizado el proceso, contar los artículos que se ajusten a las especificaciones:
\[ Y = (totaldefectos) / total\]
En Seis Sigma, también hay que tener en cuenta el trabajo en el medio del proceso. Por lo tanto, sin importar el número de elementos correctos en el final del proceso, contamos los elementos correctos como “primera vez” elementos correctos y calculamos la primera vez rendimiento (FTY):
\[ FTY = (totalreworkdefects)/total \]
La diferencia entre Y y FTY es lo que la fábrica está “produciendo”.
En una bodega, la característica clave del producto es el volumen de una botella de vino. El objetivo es de 750 cl. Los límites especificados para el proceso son 740 (LSL) y 760 (USL) cl.
Supongamos que en un día determinado, la bodega ha embotellado 1.915 botellas de vino, cinco de las cuales fueron rechazadas antes de embalaje por estar fuera de las especificaciones. El rendimiento del proceso, tradicionalmente, es:
\[(1915 - 5) / 1915\]
Pero después de una revisión, el Cinturón Negro de seis Sigma descubre que durante la inserción de los corchos, 12 botellas tuvieron que ser procesado de nuevo debido a un exceso de vino. Así que la primera vez rendimiento del proceso es
\[ (1915 - 5 - 12) / 1915\]
En consecuencia, el rendimiento de la primera vez es menor que el rendimiento final. Cuando un proceso está formado por varios procesos vinculados, calculamos el primer FTY de cada proceso individual y entonces el rendimiento laminado RTY del conjunto proceso. Se calcula multiplicando el FTY de cada proceso en cadena: donde n es el número de procesos individuales y la letra griega \(\pi\) significa ``Multiplicar’’ o mejor expresado como productorio.
\[ RTY \prod_{i=1}^{n} FTYi = FTY_1 \cdot FTY_2 \cdot ....FTY_{n−1} \cdot FTY_n \]
\[ \prod_{i=1}^{n} RTY = FTY_1 \cdot FTY_2 .... FTY_{n-1} \cdot FTY_n \]
Para escribir esta ecuación hemos usado esta línea de código de
\[ \prod_{i=1}^{n} RTY = FTY_1 \cdot FTY_2 .... \] \[ FTY_{n-1} \cdot FTY_n \]
En nuestra bodega, tenemos tres procesos en la línea relleno:
1- relleno de botella. 2- Inserte corcho. 3- etiquetado de botella.
3, 12, y 5 será el número de botellas fuera de los límites de especificación en cada subproceso. Entonces el RTY es:
\[((1915-3)/1915) * ((1915-12)/1915) * ((1915-5)/1915)\]
Los defectos son el complemento de rendimiento. La medición más simple para defectos es DPU (defectos por unidad):
Un resumen de un análisis de capacidad puede obtenerse en R con la ss.study función en el paquete de Seis Sigma.
Corramos el estudio de capacidad de la bodega ejemplo.
library(SixSigma)
<- rnorm(300,755,25)
x ss.study.ca(x, LSL = 740, USL = 760,
Target = 750, alpha = 0.5,
f.su = "WiMax Winery Lodge Project")
La figura es la representación gráfica de la función. La gráfica superior es un histograma de los datos de muestra, que incluye el objetivo y los límites de especificación. Líneas de densidad se trazan para las funciones empíricas y teóricas de densidad.
El gráfico inferior es un gráfico-cuantil cuantil (Q-Q parcela) para verificar si los datos normalmente se distribuyen. Cuando lo son, los puntos son aproximadamente de forma lineal línea. Además, los ensayos numéricos más comunes se muestran también. La normalidad es aceptada cuando el valor p de la prueba de hipótesis es mayor que 0,05. Vamos a describir pruebas de hipótesis en detalle en el Cap. 10. En la parte derecha de la figura, tenemos los hechos del análisis. Los límites de las especificaciones son las que hemos entrado en la función. el rendimiento del proceso y los índices se calculan con los datos proporcionados el corto plazo y largo plazo. En este ejemplo, no tenemos datos a largo plazo. Un intervalo de confianza (CI) se calcula para los índices de capacidad. Podemos ver que el índice de capacidad (1.547) es bastante aceptable, aunque puede mejorarse para llegar a la deseado valor 1,67. Además, la estimación de la sigma a largo plazo indica
Mapeo de Procesos o la forma de hacer escuchar la voz del cliente
Identificar Inputs y Outputs
A estos suelen llamarlos X e Y de la caja negra que represnta al proceso
Listar los pasos del proyecto
Las tareas tienen que ejecutarse secuencialmente
Identificar la Y de cada paso
Detallando procesos, productos meteriales y datos de salida o características del produto final
Identificar los parámetros de casa paso
Son las cosas que afectan al proyecto (ver tabla siguiente)
Clasificar los parámetros
Explicar el modo en que afectan al proceso
Abrev. | Significado |
---|---|
N | Noise: (ruido) |
C | Controlable: Factores |
(variables manejables) | |
P | Procedure: Factor controlable |
mediate un procesimiento estandar | |
Cr | Critical: Aquellos con mayor |
influencia en el proceso |
(paso 1 del proceso) * Repetir los pasos del todo el proceso para cada paso}
1- Amasar: (operacion 1 de crear la masa) 2- Parámetro:
Marca de Harina ( C )
Proporción de Agua (P)
Dureza del agua (N)
Y (outputs)
1- Densidad 2- Tamaño y peso del bollo 3- Espesor antes de leudar
El paquete SixSigma permite mapear procesos describiendolos en formato matricial.
Ademas genera un gráfico que es facilmente modificable (no hay que dibujar nuevamente) cada vez que una no conformidad termina en una actualización de proceso
<-c ("Ingredientes", "Cocina", "Horno", "Placas")
inputs <- c ("temperatura", "sabor", "ternura",
outputs "peso", "radio", "tiempo")
<- c("AMASAR", "LEUDAR", "HORNEAR", "REPARTIR") steps
Usaremos una variable tipo lista para definir las X del proceso
<- list()
io
1]] <- list("X")
io[[
2]] <- list("Masa", "ingredientes", "Cocina")
io[[
3]] <- list("Pre Pizza", "Cocina", "Placa de Horno")
io[[
4]] <- list("Pizza al horno", "Emplatado") io[[
<- list()
param 1]] <- list(c("Cocinar", "C"),
param[[c("marca harina", "C"),
c("prop Agua", "P"))
2]] <- list(c("Cocinar", "C"),
param[[c("Marca Ingredientes", "Cr"),
c("cantidad", "P"),
c("tiempo_preparacion", "Cr"))
3]] <- list(c("Cocinar","C"),
param[[c("cola", "N"),
c("TiempoHorneado", "Cr"))
4]] <- list(c("Mozo o Moto","C"),
param[[c("cola", "N"))
<- list()
feat
1]] <- list("Densidad", "Esponjosidad", "Espesor")
feat[[
2]] <- list("Diametro", "Peso", "Grosor")
feat[[
3]] <- list("temperatura", "ternura", "sabor")
feat[[
4]] <- list("temperatura", "sabor", "ternura",
feat[["peso", "radio", "tiempo")
La función ss.pMap genera en forma automática el gráfico (mapa) del proceso
Es necesario entregar listas de pasos, inputs (X), outputs (Y), io (datos de cada paso), parámetros y característica.
ss.pMap(steps, inputs, outputs,io, param, feat, sub = "Pizza UNCuyo sin COVid")
Aydua del sistema
?ss.pMap
¿Qué es un diagrama causa - efecto
<- "Flight Time"
effect <- c("Operator", "Environment", "Tools", "Design",
causes.gr "Raw.Material", "Measure.Tool")
<- vector(mode = "list", length = length(causes.gr))
causes 1] <- list(c("operator #1", "operator #2", "operator #3"))
causes[2] <- list(c("height", "cleaning"))
causes[3] <- list(c("scissors", "tape"))
causes[4] <- list(c("rotor.length", "rotor.width2", "paperclip"))
causes[5] <- list(c("thickness", "marks"))
causes[6] <- list(c("calibrate", "model"))
causes[ss.ceDiag(effect, causes.gr, causes, sub = "Paper Helicopter Project")
Variable crítica = Tiempo de Vuelo
En el caso del helicoptero ¿Cuales pueden ser las causas de las no conformidades?
1- Operador 2- Ambiente 3- Herramientas 4- Herram. Medición 5- Materia Prima 6-Diseño
Preguntar ¿Por qué y por qué? varias veces
1- Juan 2- Micaela 3- Samuel
<- "Tiempo de Vuelo" effect
<- c("Operador", "Ambiente", "Herramientas", "Diseño",
causes.gr "Mat.Prima", "Metrología")
1] <- list(c("Juan #1", "Micaela #2", "Samuel #3")) causes[
2] <- list(c("altura", "silla")) causes[
3] <- list(c("tijera", "cinta")) causes[
4] <- list(c("largo_rotor", "ancho_rotor", "clip")) causes[
5] <- list(c("Grosor_Trazo", "Marcas")) causes[
ss.ceDiag(effect, causes.gr, causes, sub = "Paper Helicopter Project")
La Teoría de las limitaciones o teoría de restricciones fue descrita por primera vez por Eli Goldratt, un doctor en Física israelí, al principio de los 80 y desde entonces ha sido ampliamente utilizada en la industria. Es un conjunto de procesos de pensamiento que utiliza la lógica de la causa y efecto para entender lo que sucede y así encontrar maneras de mejorar. Está basada en el simple hecho de que los procesos multitarea, de cualquier ámbito, solo se mueven a la velocidad del paso más lento. La manera de acelerar el proceso es utilizar un catalizador en el paso más lento y lograr que trabaje hasta el límite de su capacidad para acelerar el proceso completo. La teoría enfatiza la dilucidad, los hallazgos y apoyos del principal factor limitante. En la descripción de esta teoría estos factores limitantes se denominan restricciones o “cuellos de botella”. La esencia de la teoría de las restricciones se basa en cinco puntos correlativos de aplicación que veremos más adelante.
Por supuesto las restricciones pueden ser un individuo, un equipo, una pieza de un aparato o una política local, o la ausencia de alguna herramienta o pieza de algún aparato. La teoría de restricciones establece los siguientes supuestos fundamentales: La Meta de cualquier empresa con fines de lucro es ganar dinero de forma sostenida, esto es, satisfaciendo las necesidades de los clientes, empleados y accionistas. Si no gana una cantidad ilimitada es porque algo se lo está impidiendo: sus restricciones. Contrariamente a lo que parece, en toda empresa existen sólo unas pocas restricciones que le impiden ganar más dinero. Restricción no es sinónimo de recurso escaso. Es imposible tener una cantidad infinita de recursos. Las restricciones, lo que le impide a una organización alcanzar su más alto desempeño en relación a su Meta, son en general criterios de decisión erróneos.
El punto de partida de todo el análisis es que la meta es ganar dinero hoy y siempre, y para hacerlo es necesario elevar el throughput; pero como este está limitado por los cuellos de botella, E. Goldratt concentra su atención en ellos, dando origen a su programa " OPT " del que deriva en " La Teoría de las Restricciones”.
Producir para lograr un aprovechamiento integral de la capacidad instalada, lleva a la planta industrial en sentido contrario a la meta si esas unidades no pueden ser vendidas. La razón dentro del esquema de E. Goldratt es muy sencilla: se elevan los inventarios, se elevan los gastos de operación y permanece constante el throughput; exactamente lo contrario a lo que se definió como meta. E. Goldratt sostiene que todo el mundo cree que una solución a esto sería tener una planta balanceada; entendiendo por tal, una planta donde la capacidad de todos y cada uno de los recursos está en exacta concordancia con la demanda del mercado.
Es necesario comprender que cuando hablamos de formar un modelo mental para la toma de decisiones en gobiernos o empresas, debemos atenernos a la rigurosidad. Que tan cierto es lo que estoy diciendo?. O en otras palabras que margen de error puedo esperar respecto a lo que afirmo.
Goldrat recurre al truco que luego fue más desarrollado en el “Cúrculo de Oro” de Somon Sinek, y ataca por el lado de las dudas antes que por el de las certezas.
Para ello usa el paradigma que menos certezas tiene , La TEORÍA
Paradigma | Rigor |
---|---|
Ley | Se cumple en todo lugar del universo.Ej. Ley Gravitación Universal |
Principio | Es casi tan riguroso como la ley, pero no se ha validado universalmente. Principio 1 Termodinámica |
Empirismo | Funciona, pero no se sabe por qué. Ej. Ciclos de mantenimiento de cojinetes |
Paradigma | Está tan fuertemente arraigado que parece una ley, pero no lo es. Ej. My Flower |
Teoría | Tienen un modelo con el que se ha encontrado respuesta, es muy verosimil, pero su autor lo limita hasta encontrar más evidencia. Ej. TOC |
Conjetura | Con suerte puede derivar en un empirismo |
Teorema | Matemática y Filosóficamente es perfecto. Pero su aplicación a la realidad da lugar a sofismas, falacias y paradojas |
Cada unidad monetaria que gasto en mejorar algo que no sea la restricción en lugar de mejorar, empeorarpa las cosas.
Sistema productivo o de servicios clásico
Es probable que nunca tengas tanta información junta de un sistema productivo (o de servicios) como la que se observa en el gráfico. Has una impresión de esta pantalla y tenla a mano durante todo el desarrollo.
¿Qué es un óptimo global y que es un óptimo local?
Una cadena de suministro consta de dos o más organizaciones legalmente separadas que están conectadas por flujos de materiales, de información y financieros (Stadtler, 2008: p. 9). El problema por antonomasia que sufren los miembros de dichas redes logísticas es el temido “efecto látigo”, fenómeno que se refiere al aumento de la variabilidad en los pedidos incluso cuando la demanda del mercado es estable. En el Gráfico 1 se reporta el clásico ejemplo de efecto látigo en la industria. En la empresa multinacional Procter & Gamble se observó un efecto de distorsión entre las ventas de pañales, generalmente estables como el consumo por parte de bebés es más o menos constante, y los planes de producción. Se nota como las órdenes sufren una visible amplificación pasando de un miembro de la cadena al miembro agua arriba. El efecto látigo determina una continua alteración de los planes de producción y una frecuente inestabilidad de los inventarios2 , cuya consecuencia directa se manifiesta en un aumento de costes innecesarios para las empresas involucradas en el proceso de creación de valor. Se ha estimado que las consecuencias económicas de este síntoma frecuente y dañino del sistema logístico pueden incidir en un incremento de costes innecesarios de hasta el 30% de las ganancias de la red (Metters, 1997). Algunas ineficiencias debidas a este fenómeno son las excesivas inversiones en inventario, la reducción del servicio al consumidor, la disminución de ventas, el aumento en inversión de capacidad, la inutilización de la capacidad de transporte y el incremento de planes de producción no cumplidos. En definitiva, el efecto látigo paraliza la cadena suministro (Lee et al., 2006: p. 2) conllevando todas las plagas de la “Caja de Pandora” de la industria (Holweg et al., 2005).
Modo de amplificacion del efecto
A pesar de ser ampliamente conocido no fe hasta 2008/2009 (Crisis financiera mundial) en que se comenzó a tomar seriamente en el mundo de los negocios este desarrollo teórico que se le atribuye a una investigadora muy humilde, Martha Cooper y si ya mítico paper “Cadena de suministros, mucho más que un nuevo nombre para la logística”.
Luego del final de la segunda guerra mundial fue necesario plantear nuevos posicionamientos económicos. La implementación del plan Marshall para la recuperación de las economías de Europa y Asia-Pacífico fue objeto de debate y tuvo como consecuencia las escuelas de pensamiento económico que sostuvieron grandes maestos del siglo XX como Paul Samuelson, Elinor Ostrom, Wassily Leontief o Milton Friedman.
Puedes tener mayor empatía o rechazo por alguno o todos ellos, pero lo cierto es que esta escuela del pensamiento económico tiene (y sobre todo tuvo) gran interés en conocer y explicar el devenir y deriva de los principales indicadores marcoeconómicos de las economías de todo el planeta. Si estamos pensando como recuperarnos del impacto del covid bueno es observar como analizaron la situación del crecimiento cada uno de ellos.
Puede que las respuestas que ellos encontraron te gusten o nó, que las aprecies o desprecies desde el punto de vista de las consecuencias políticas. Pero lo cierto es que todos ello tienen una base teórica científica que las sustentan y no meras conjeturas discursivas.
Al final de la II Guerra el tema del crecimiento era una cuestión de vital importancia y uno de los temas centrales del debate económico implicaba conocer año a año como evolucionaban los inventarios. En las cuentas nacionales tu podias “mentir” un poco si eliminabas algo de inventario y hacia el final del año fiscal lo transformabas en dinero líquido. Pero el crecimiento sería escaso o nulo si para hacerlo habías reducido tus inventarios a niveles más bajos que los del año anterior.
Es por ese motivo que dentro del área de las universidades que trabajaban entorno a la ingeniería se desarrollar los programa de organización de la producción y planificación de la producción. La misión de los ingenieros que trabajaban en cualquier empresa industrial era poder colaborar con el equipo contable para poder cerrar a final de año el estado del inventario y así poder cerrar las estadísticas globales nacionales.
Para colaborar con esta misión de evaluar el invetario, que no sólo en EEUU fue política de estado para este país sino que se extendió a todo el mundo, se crearon instituciones como la Asociación Americana de Producción y Control de Inventarios. (American Production and Inventory Control Society o APICS)
Una de las preguntas que ingenieros y economistas se planteaban y año a año ajustaban fue el debate abierto que duró casi 50 años sobre cual era el niverl de inventarios óptimo que se debería tener.
Tal vez un aspecto criticable del planteo del problema es que nunca se identificó si el nivel de inventario al que se referían era el de una sola empresa, de una cadena logística, o el de una región o el de toda la nación.
Lo cierto es que hacia fines del siglo XX no se había avanzado mucho y el modelo de Wilson era el más utilizado en todo el mundo.
Como resultado de la creación e innovación de esta sociedad podemos decir que los conceptos de :
Son entre otros conceptos introducidos en el ámbito industrial
Suele asociarse a APICS con Cadena de suministros, pero lo cierto es que esta forma de concebir el problema y la solución son la antítesis de lo que hoy se considera SCM.
“El término ‘Escenario’ proviene del arte dramático y se refiere a un espacio o a un conjunto de directivas para la secuencia de una acción. Según Peter Schwartz, del Global Business Network de California; se puede comparar un escenario con un guión cinematográfico, porque se formulan ideas y desarrollan los caracteres, que son los bloques de construcción de escenarios. En la década del ’50, Herman Kahn de la Rand Corporation, que se ocupaba de estudios militares y estratégicos, introdujo el término escenarios en la técnica del planeamiento.” [1]
En situaciones en las que los modelos inerciales no arrojan resultados verosimiles, es muy habitual utilizarlo para establecer entre las partes interesadas de una red o cadena logística puntos de referencia firmes que sirvan para el planeamiento de las operaciones.
Los escenarios constituyen “descripciones exploratorias y provisionales de un futuro probable, o según la definición de uno de los cultivadores conocidos de esta técnica: “…son secuencias hipotéticas de eventos articulados, con el designio de concentrar la atención en procesos causales y en rompimientos factibles”. Una definición de Eduardo Balbi, que vincula las ideas de escenario y ámbito, dice que “un escenario es un conjunto de circunstancias que pueden producirse en un determinado ámbito, dentro del cual operan actores e intereses que se deben analizar con coherencia y unidad de criterio”[2]
Un escenario “es una imagen o visión que describe una situación futura así como la secuencia de eventos que permiten llegar a esa situación. Este método, permite, entonces, transitar desde la situación actual hasta otra situación futura, deseable y posible, describiendo coherentemente dicho tránsito.
La construcción de escenarios debe ser una tarea de equipo y, como tal, implica la utilización consciente de conocimientos de dinámica grupal. Muchas veces, encaramos esa actividad con una actitud puramente técnica, desprovista, de esta manera de cualquier contenido emocional.”[3]
“La elaboración de escenarios representa una parte fundamental de todo ejercicio prospectivo. Los escenarios (pasados, presentes o futuros) son construcciones conceptuales a partir de supuestos: representan “una fotografía” del fenómeno global que se desea analizar. Los escenarios futuros representan visiones hipotéticas de futuro construidas a partir del desarrollo de un conjunto de premisas disponibles en el presente. Estas diferentes imágenes del futuro nos ayudan a comprender cómo las decisiones y las acciones que hoy tomamos pueden influir en nuestro futuro.
Elaborar escenarios es una forma de pensar el futuro. Debe servir para decidir lo que hay que hacer en el presente. No ponderan probabilidades sino que consideran posibilidades, no son la lista de cosas que nos gustaría que ocurriesen o que pensamos que deberían ocurrir, sino un conjunto de relatos sobre el futuro, consistentes, plausibles y que abarcan un amplio abanico de acontecimientos posibles.”[4]
Los escenarios poseen ciertas características que a continuación se detalla:
“· Son narraciones dinámicas. Generalmente, se diseñan con el fin de ofrecer una imagen viva y real de una posible situación de futuro. Se enmarca en un contexto concreto, que, además, puede estar basado en estimaciones estadísticas.
· Carácter múltiple. Es frecuente que se generen diversas posibilidades de una misma situación y la ventaja que esto ofrece es el contraste y la amplitud de visión ante una situación futura.
· Presentan una progresión del presente al futuro. Los escenarios no sólo tratan de describir cómo será el futuro, sino que además trazan el camino que tomará la situación presente hasta llegar a ese estadio. Se trata de conectar una serie de acontecimientos interrelacionados que se desarrollan a partir de una secuencia necesaria.”[5]
Los escenarios son un método que cumple varias funciones dentro del proceso de planificación como:
Así mismo los escenarios tienen muchas aplicaciones:
Enriquecer el debate y ampliar la conversación estratégica en la organización. El propósito aquí es traer nuevos conceptos e interpretaciones a los usuarios y, en último término, cambiar los mapas mentales.
Desencadenar un proceso formal de planeación que incluya la valoración de estrategias y planes existentes”[6]
Pueden elaborarse y aplicarse escenarios a diferentes escalas. “Por ejemplo a nivel internacional (a escala global o continental); dentro de sistemas nacionales (por ejemplo, en Nueva Zelanda y la Federación Rusa); a escala regional o sectorial (en una industria en concreto como el transporte); e incluso a escala de una institución u organización, ya sea de un organismo de la administración pública, una escuela o un instituto.”[7] En cada una de estas escalas las características de los escenarios difieren, y los motivos de dicha diferencia resultan con frecuencia tantos más específicos cuantos más locales sean los parámetros de aplicación de los escenarios.
library(fpp)
library(ggplot2)
<- window(ausbeer, start=1992)
beer2 <- tslm(beer2 ~ trend + season)
fit.beer <- forecast(fit.beer)
fcast
autoplot(beer2, xlab="Año", ylab="Millones de Galones") + ggtitle("Despacho de Cerveza en Australia")
# No funciona el uso de titulo del gráfico
#autoplot(fcast , ggtitle("Despacho de Cerveza") ,xlab("Year"), ylab("megalitres"))
autoplot(fcast, xlab="Año", ylab="Millones de Galones")
Aunque la relación lineal asumida hasta ahora en este apartado es a menudo adecuada, hay muchos casos en los que una forma funcional no lineal es más adecuada. Para mantener las cosas simples en esta sección asumimos que sólo tenemos un predictor \(X\)
La forma más sencilla de modelar una relación no lineal es transformar la variable de previsión
\(y\) y/o la variable predictora \(X\) antes de estimar un modelo de regresión. Aunque esto proporciona una forma funcional no lineal, el modelo sigue siendo lineal en los parámetros. La transformación más utilizada es el logaritmo (natural) .
Se especifica un formulario funcional log-log como
\[log (y) = \beta_0 + \beta_1 * log (x) + \varepsilon \] En este modelo, la pendiente \(\beta_1\) puede interpretarse como una elasticidad:
Se puede decir que es el cambio porcentual promedio en \(y\) resultado de un
aumento porcentual de \(X\).
También se pueden especificar otras formulas útiles. La formulación log-linear se especifica transformando únicamente la variable de previsión y la formula de registro lineal se obtiene transformando el predictor.
Recuerde que para realizar una transformación logarítmica en una variable, todos sus valores observados deben ser mayores que cero. En el caso de que esa variable
\(X\) contiene ceros, usamos la transformación
\(log (X+1)\) ; Es decir, añadimos uno al valor de la variable y luego tomamos logaritmos. Esto tiene un efecto similar a tomar logaritmos, pero evita el problema de los ceros. También tiene el efecto secundario ordenado de ceros en la escala original ceros aparezcan en la escala transformada como ceros.
Hay casos para los que simplemente transformar los datos no seriá adecuado y puede ser necesaria una especificación más general. Entonces el modelo que usamos será
\[ y=f(x) + \varepsilon\]
Dónde \(F\) es una función no lineal. En regresión estándar (lineal),
$ F (X)=_0+_1 * X$. En la especificación de regresión no lineal que sigue, permitimos
\(F\) para ser una función no lineal más flexible de \(X\) , en comparación con simplemente una transformación logarítmica u otra transformación.
Una de las especificaciones más sencillas es \(F\) lineal por partes . Es decir, introducimos puntos donde la pendiente de
\(F\) puede cambiar. Estos puntos se llaman nodos. Esto se puede lograr dejando que
\(X_{1,t}\) = X , e introducir la variables
$ X_{2,t}$ tal que :
\[x_{2,t} = (x-c) =\]
\[x_{2,t} = (x-c) + =\left\{\begin{array}{l l}
x=0 & x < c \\
(x-c) & x \geq c
\end{array}
\right\}
\]
La notación
\((X − C) +\) significa que si el valor
\(X − C\) si es positivo y 0 de lo contrario. Esto obliga a la pendiente a doblarse en el punto \(C\) . Los pliegues adicionales se pueden incluir en la relación añadiendo otras variables la ecuación anterior.
Un ejemplo de esto sería
\(X= T\) y ajustar una tendencia lineal por tramos a una serie temporal.
Las relaciones lineales por partes construidas de esta manera son un caso especial de splines de regresión. En general, se obtiene una spline de regresión lineal utilizando
\[x_1 = x , x_2 =(x - c_1)_+ ... x_k=(x-c_{k-1})_+ \]
Dónde $ C_1, … c_{k-1} son los nodos (los puntos en los que la línea puede doblarse).
Selecciando del número de nudos \((K-1)\) y dónde deben posicionarse puede ser difícil y algo arbitrario. Algunos algoritmos automáticos de selección de nudos están disponibles en algún software, pero aún no son ampliamente utilizados.
Se puede obtener un resultado más suave utilizando expresiones cúbicas a piezas en lugar de líneas por piezas. Estos están limitados para ser continuos (se unen) y suaves (para que no haya cambios repentinos de dirección, como vemos con splines lineales por piezas). En general, una spline de regresión cúbica se escribe como
\[ x_1=x , x_2= x^2 , x_3=x^3 , x_4=(x - c_1), \ldots , x_k = (x-c_{k-3}) \]
La cantidad de energía para una carga a pulso de un camión de 24 palets es equivalente a la que una persona gasta en una maratón. Hoy , con la existencia de carga mecanizada es inhumano pensar en esta alternativa, pero tomemos las datos a ejemplo ilustrativo.
La figura muestra los tiempos ganadores del maratón de Boston (en minutos). Según las estadística, ll curso se alargó (de 24,5 millas a 26,2 millas) en 1924, lo que condujo a un salto en los tiempos del ganadores, por lo que sólo consideramos datos a partir de esa fecha. La serie temporal muestra una tendencia general a la baja a medida que los tiempos de los ganadores han ido mejorando a lo largo de los años. El panel inferior muestra los residuos entre la correlación de una tendencia lineal a los datos y el tiempo verdadero. La gráfica muestra un patrón no lineal obvio que no ha sido capturado por la tendencia lineal. También hay algo de heteroscedasticidad, con variación decreciente con el tiempo.
library(fpp2)
<- window(marathon, start=1924)
boston_men <- 10
h <- tslm(boston_men ~ trend)
fit.lin <- forecast(fit.lin, h = h)
fcasts.lin <- tslm(boston_men ~ trend, lambda = 0)
fit.exp <- forecast(fit.exp, h = h)
fcasts.exp
<- time(boston_men)
t <- 1950
t.break1 <- 1980
t.break2 <- ts(pmax(0, t - t.break1), start = 1924)
tb1 <- ts(pmax(0, t - t.break2), start = 1924)
tb2
<- tslm(boston_men ~ t + tb1 + tb2)
fit.pw <- t[length(t)] + seq(h)
t.new <- tb1[length(tb1)] + seq(h)
tb1.new <- tb2[length(tb2)] + seq(h)
tb2.new
<- cbind(t=t.new, tb1=tb1.new, tb2=tb2.new) %>%
newdata as.data.frame()
<- forecast(fit.pw, newdata = newdata)
fcasts.pw
<- tslm(boston_men ~ t + I(t^2) + I(t^3) +
fit.spline I(tb1^3) + I(tb2^3))
<- forecast(fit.spline, newdata = newdata)
fcasts.spl
autoplot(boston_men) +
autolayer(fitted(fit.lin), series = "Linear") +
autolayer(fitted(fit.exp), series = "Exponential") +
autolayer(fitted(fit.pw), series = "Piecewise") +
autolayer(fitted(fit.spline), series = "Cubic Spline") +
autolayer(fcasts.pw, series="Piecewise") +
autolayer(fcasts.lin, series="Linear", PI=FALSE) +
autolayer(fcasts.exp, series="Exponential", PI=FALSE) +
autolayer(fcasts.spl, series="Cubic Spline", PI=FALSE) +
xlab("Year") + ylab("Winning times in minutes") +
ggtitle("Boston Marathon") +
guides(colour = guide_legend(title = " "))
arriba muestra las líneas y pronósticos ajustados de las tendencias lineales, exponenciales, lineales por tramos y spline cúbicas. Las mejores previsiones parecen provenir de la tendencia lineal por partes, mientras que la spline cúbica da el mejor ajuste a los datos históricos, pero malas previsiones.
Hay una formulación alternativa de splines cúbicas (llamadas splines de suavizado cúbico natural) que impone algunas restricciones, por lo que la función spline es lineal al final, lo que generalmente da pronósticos mucho mejores sin comprometer el ajuste. En la Figura siguiente, hemos utilizado la función splinef() para producir las previsiones de spline cúbica. Esto utiliza muchos más nudos de los que usamos en la Figura 5.21, pero los coeficientes están restringidos para evitar el sobreajuste, y la curva es lineal en ambos extremos. Esto tiene la ventaja añadida de que la selección de nudos no es subjetiva. También hemos utilizado una transformación de registro (lambda=0) para manejar la heteroscedasticidad.
%>%
boston_men splinef(lambda=0) %>%
autoplot()
Los residuos trazados a continuación muestran que este modelo ha capturado bien la tendencia, aunque queda algo de heteroscedasticidad. El amplio intervalo de predicción asociado con las previsiones refleja la volatilidad observada en los tiempos históricos de victoria.
%>%
boston_men splinef(lambda=0) %>%
checkresiduals()
EL objetivo de este apartado es presentarte el método de gas neural para la reducción de escenarios, y mostrarte cómo utilizar las funciones buildtree y checktree en el paquete de escenarios para construir árboles de escenario con estructuras nodales predefinidas.
para que puedas utilizarlo debes cargar la biblioteca:
install.packages("scenario")
Muchos problemas de optimización deben permitir el la incorporación de control sobre recursos, o la capacidad del operador para cambiar las decisiones de control conforme la incertidumbre se reduce a través del tiempo (pasos).
Teniendo en cuenta este tipo de programación en estocástica se puede lograr transformando las entradas de escenarios con perturbación en el árbol de escenarios. Una manera de hacer esto es mediante la aplicación del método conocido como gas neural. Este enfoque difiere de otros métodos en que permite la usuario predefinir y establecer la estructura nodal del árbol y mediante la perturbación de las probabilidades agrupar los resultados o escenrio final simplificando el árbol que llamaremos realizaciones.
Un árbol de escenarios es una forma reducida de un conjunto de escenarios o realizaciones de un proceso. Los cúmulos de árboles de esas realizaciones se graficon como un conjunto de ramas con probabilidades especificadas de ocurrencia. El árbol está formado por \(S\) escenarios, denotados como \(s_i , (i = 1, 2, . . , S )\). Cada escenario contiene nodos \(t\), denotados \(s_{i,t} , (t = 1, 2, . . , T )\). Una condición fáctica es que todos las realizaciones nacen de el mismo estado actual de situación. Esto implica que \(t = 1\) , todos los escenarios del árbol comparten el mismo nodo $s_{i,1} $ . A medida que \(t\) aumenta, el árbol comienza a ramificarse. Cuando \(t = T\) , todos los nodos pertenecen a un solo escenario. Cada escenario tiene una probabilidad \(P_i\) , y la suma de \(P_i\) en todos los escenarios debe ser igual a 1 .
La estructura de un árbol de escenarios se puede representar mediante una matriz de partición nodal de dicho árbol de escenario, con el número de columnas iguales al número de escenarios (4 en el caso anterior) y el número de filas igual al número de pasos de tiempo (3 en el caso anterior). Esta forma de matriz se introduce en las funciones buildtree y checktree del paquete escenario mediante el parámetro treeStruct.
En el ejemplo anterior la matriz que lo representa sería así.
\[ S = \begin{matrix} & [ ,1] & [ ,2] & [ ,3] & [ ,4] \\ a[1,] & S_{1,1} & S_{1,2} & S_{1,3} & S_{1,4} \\ b[2,] & S_{2,1} & S_{2,2} & S_{2,3} & S_{2,4} \\ c[3,] & S_{3,1} & S_{3,2} & S_{3,3} & S_{3,4} \end{matrix} \] Dato que todos los escenarios en \(t=1\) todos los escenarios comparten el mismo estado inicial (o tabula raza en caso de emprender) Se debe cumplir que \(S_{1,1} = S_{2,1} = S_{3,1} = S_{4,1}\) \(S\) Podría ser cualquier cantidad mesurable (capital, empleados, valor de acción , inflación, etc). Similarmente en el primer paso (estado 2) sólo existen dos escenarios posibles. Por lo tanto \(S{1,2}=S_{2,2}\) y \(S_{3,2} = S_{4,2}\) . De este modo la matris de estados asociados a la matriz nodal de partición del árbol sería escrita así.
\[ S = \begin{matrix} & [ ,1] & [ ,2] & [ ,3] & [ ,4] \\ a[1,] & 1 & 1 & 1 & 1 \\ b[2,] & 2 & 2 & 5 & 5 \\ c[3,] & 3 & 4 & 6 & 7 \end{matrix} \]
La forma más facil de armar la matrix en R-Cran es ir por filas. Sin embrago en el paper de Giorgio Consigli el autor sugiere otro método. Él propone escribir esta matriz avanzando columna por columna, elevando el entero de nodo por 1 para cada nodo que tienes (que aún has definido). Después de escribir una matriz de estructura de árbol, se puede comprobar si es correcta utilizando el comando checktree .
library(scenario)
<- rbind(c(1,1,1,1),
treeStruct c(2,2,5,5),
c(3,4,6,7))
::checktree(treeStruct) scenario
Si entonces quisieses que el árbol cambio o se requiere más o menos complejidad, simplemente hya que alterarlo y vuelver a comprobar antes de usar la estructura con la función buildtree. Por ejemplo:
<- rbind(c(1,1,1,1,1,1),
treeStruct c(2,2,5,5,8,11),
c(3,4,6,7,9,12))
::checktree(treeStruct) scenario
El gas neural es un algoritmo simple para encontrar representaciones de datos óptimas basadas en Vectores. El algoritmo fue acuñado como “gas neural” debido a la dinámica de los vectores de características durante el proceso de adaptación, que se distribuyen como un gas dentro del espacio de datos. Remeda partes de la técnicas de las redes neuronales.
El algoritmo de gas neural se puede utilizar para definir los valores de nodo (y los probabilidades de escenario) de un escenario determinado estructura de un árbol para describir el mejor conjunto de escenarios a partir de una entrada y que satisface las restricciones final (que denominaremos realizaciones para distinguir de la escenarios intermedios pertenecientes al árbol de escenarios).
Cuando se aplica la generación de un árbol de escenario con un nodo inicial predefinido y cierta estructura, el algoritmo de gas neural requiere tres tipos de entrada.
En primer lugar, necesitamos un conjunto inicial de realizaciones de longitud T , que vamos a denominar \(X\) (X puede ser un conjunto de pronósticos, o simplemente un registro de histórico observado disturbios o el resultado de una ronda delphi).
En segundo lugar, necesitamos definir la estructura de árbol de escenario deseada y luego codificarla como un árbol de escenario , tal como hemos visto. Esta matriz de partición nodal, como se describió anteriormente. Es la parte más complicada de la metodología.
En tercer lugar, necesitamos algunos parámetros de entrada que definan la resolución de las iteraciones tomadas por el algoritmo. Estos se establecen de forma predeterminada en los valores recomendados en la función buildtree.
El parámetro que se llama jMax se puede modificar para cambiar la acumulación y el tiempo de cálculo.
Los pasos siguientes se corren el algoritmo con un ejemplo sencillo y estilizado. Aquí generamos el realizaciones artificialmente desde un árbol conocido, con el fin de ilustrar la eficacia del algoritmo.
<- cbind(c(0,2,3),
known_tree c(0,2,1),
c(0,-2,-3),
c(0,-2,-1)
)# now add some noise to the known tree...
<- matrix(rep(known_tree,5), ncol=20) + matrix(rnorm(60,0,1),ncol=20)
realizations matplot(realizations, lty=2, col = "grey", type="l",
ylab = "Disturbance", xaxt = "n", main = "Initial realizations")
axis(1, at=1:3, labels=1:3)
Observe bien como hemos introducido ruido (disturbancia) al estilo de lo que hacemos en el método Montecarlo.
Para inicializar el árbol antes de ejecutar las iteraciones, los nodos de árbol deben recibir un valor inicial. Exactamente lo que estos valores reflejen serán relativamente poco importantes, ya que el algoritmo perturbará rápidamente el árbol a medida que comienza a encajar a las realizaciones.
Una forma sencilla de inicializar el árbol es asignar a cada escenario el valor de un realización, \(X_k ,(k = 1, 2, . . . , K)\) ; Donde \(K\) es el número total de realizaciones— 20 (escenarios finales) en el ejemplo dado anteriormente.
A continuación, se toman promedios para dar a los nodos pertenecientes a más de un escenario el mismo valor, lo que garantiza que se mantiene la estructura del árbol de escenario. A continuación se muestra un ejemplo de una posición inicial del árbol.
El algoritmo tiene una serie de parámetros que se pueden alterar, pero no complicaremos el ejemplo con esto valores ahora. Por defecto el algoritmo toma estos valores para los parámetro tal como se ha señalado en el paper.
\[ \lambda_0 =10 \] \[ \lambda_f = 0.01\] \[ \epsilon_0=0.5\] \[ \epsilon_f=0,05\] \[ \dot{\jmath}{_{max}} =40.000\]
Cada iteración del procedimiento de gas neural comienza con la selección aleatoria de una realización \(X_k\) de \(X\). Un ejemplo se da a continuación, con la realización seleccionada que se muestra como una línea discontinua negra gruesa.
El algoritmo tiene como objetivo determinar cuál de los escenarios en el árbol son más propensos a representar la realización elegida, y luego de mover los escenarios de acuerdo con esas probabilidades. Esto se logra ponderando cada escenario de acuerdo con su distancia de la realización elegida al azar. Para ello, calculamos el Euclidiano distancias desde la realización \(X_k\) a cada escenario para \(( \forall, i = 1, 2, . . , S )\) utilizando:
\[ d_{i,k}= \sqrt {(\sum _{t=1} ^{T} (S_{i,t} -X_{k,t})^2} \]
Para ponderar los escenarios, usamos el rango de las distancias. Para ejemplificar, las distancias euclidianas y las clasificaciones de escenarios para nuestro ejemplo simple son:
Disancia Ranking
[1,] 2.122578 1
[2,] 4.149948 4
[3,] 2.323245 2
[4,] 2.786486 3
Los rangos se almacenan en el vector R para su uso en el paso siguiente. Esos escenarios con el rango más bajo (es decir, más cercano a la realización) serán los más perturbados hacia la realización. A medida que el proceso recorre en iteraciones con nuevos valores elegidos aleatoriamente, el árbol comenzará a extenderse con cada escenario moviéndose hacia las realizaciones que es más probables.
Ajustamos el valor de cada giro del nodo según la siguiente ecuación:
\[ \Delta s_{i,t} = \in(j) . \sum_{i'} h(R_{i'}, \lambda(j). \frac{(X_{t,k} - s_{i',t})}{\sum_i'}) \] donde \(i′\) indexa a través de los escenarios que pasan a través del nodo $s_{i,t} (por ejemplo, cuatro escenarios pasan a través de el primer nodo del árbol simple anterior, por lo que las sumas de ecuación para los cuatro ranking de escenario cuando se aplican a este nodo.
\[ \in(j) = \in_0 . ({\in_f}/{\in_0})^{{j} / {j_{max}} } \]
\[ h(R_{i'},\lambda /λ(j) = e^{-R_{i'}/\lambda(j) } \]
\[ \lambda(j) = \lambda_0 .( \lambda_f / \lambda_0)^{j/j_{max}} \]
Después de ajustar cada nodo (agregando \(\Delta s_{i,t}\) al valor anterior \(s_{i,t})\), agregamos 1 a \(j\) e iniciamos el proceso de nuevo desde el paso 2. La iteración se completa cuando $j = jmax $ .
Una vez que el árbol de escenario ha convergido, las probabilidades de cada escenario se calculan asignando a cada escenario una realización, basada en la distancia euclidiana más baja. Suponiendo que todas las realizaciones sean equiprobablemente, la probabilidad de cualquier escenario es simplemente la proporción de realizaciones totales que se encuentran más cerca de él que cualquier otro escenario.
El algoritmo de gas neural se puede ejecutar fácilmente utilizando la función buildtree() en el escenario. El código a continuación se introducen las realizaciones y la estructura del árbol para el caso de ejemplo simple anterior. \(jmax\) se establece en 1000 para eficiencia; un árbol más representativo se puede encontrar aumentando \(jmax\) , pero tendrá mayor costo computacional. Un valor exageradamente alto podría introducir error de punto flotante.
[,1] [,2] [,3] [,4]
[1,] 1 1 5 4
[2,] 1 2 5 6
[3,] 1 2 3 7
$tree_structure
[,1] [,2] [,3] [,4]
[1,] 1 1 5 4
[2,] 1 2 5 6
[3,] 1 2 3 7
$tree_values
[,1] [,2] [,3] [,4]
[1,] -0.1820697 -0.1820697 -0.9578406 0.1419029
[2,] -0.1820697 2.8183039 -0.9578406 1.4521765
[3,] -0.1820697 2.8183039 -1.7074369 1.3578943
$branch_probabilities
[1] 0.05 0.35 0.45 0.15
Tenga en cuenta que la función devuelve una lista con tres objetos: la estructura de árbol deseada inicial; los valores del árbol final nodos y las probabilidades de cada escenario del árbol. La cifra compara el árbol final con el conocido árbol a partir del cual se generaron las realizaciones.
[1] Firmenich B. Ernesto H. Metodología para la construcción de escenarios. Obtenido en línea el 6 de abril de 2010. Disponible en: http://www.conduces.com.ar/escenarios-completos.pdf
[2] Ibidem.
[3] Tobar, Federico. Análisis de Tendencias y Construcción de Escenarios. Obtenido en línea el 6 de abril de 2010. Disponible en: http://www.federicotobar.com.ar/pdf/Metodologiadelainvestigacion/analisis-de-tendencias%20y%20construccion%20de%20escenarios.pdf
[4] Buenas Tareas: Escenarios Catastróficos. Obtenido en línea el 6 de abril de 2010. Disponible en: http://www.buenastareas.com/ensayos/Escenario-Catastrofico/139162.html
[5] Sin autor. Cómo diseñar un escenario futuro. Obtenido en línea el 4 de mayo de 2010. Disponible en http://winred.com/management/como-disenar-un-escenario-de-futuro/gmx-niv116-con1727.htm
[6] GROSS, Manuel. La planificación por escenarios como estrategia contra la incertidumbre. Obtenido en línea el 4 de mayo de 2010. Disponible en http://manuelgross.bligoo.com/content/view/570258/La-Planificacion-por-Escenarios-como-estrategia-contra-la-incertidumbre.html
[7] Varios Autores. Manual de escenarios. Bélgica. 2004. Obtenido en línea el 4 de mayo de 2010. Disponible en http://www.cedefop.europa.eu/EN/Files/6009_es.pdf
Una de las cosas interesantes sobre la posibilidad de hacer Inteligencia de Negocios (BI por sus siglas en ingles – Business Intelligence) es que nos permite discubrir patrones no visibles en primera instancia, pero que ayudan a preguntarnos ¿por qué sucede esto?. En esta serie de ejercicios teóricos, además de familiarizarnos con el lenguaje R-Cran y su uso en clusters, trataremos de ver como podemos valernos de las bondades del entorno de trabajo para responder a esas preguntas.
Hasta ahora tenemos claro temas referidos al concepto estadísticos clásicos (monovariados), y hemos insinuado algo sobre las estructuras de los entornos multivariados.
Tanto sea para empresas industriales o de servicios en las que sus sistemas de información abarquen los campos de medición y administración de la estrategia o el aspecto operativo; es de crucial importancia determinar los niveles en los que las variables que representan a las perspectivas tengan claramente establecidas sus franjas de flotación. En otras palabras debemos sentar las bases para construir un Cuadro de mando o tablero de control, que no es sólo hacer que luces rojas amarillas y verdes se enciendan en un semáforo, sino tener relevancia para la toma de decisión sobre lo que los datos nos aportan.
Utilizaremos una base de datos ficticia (cualquier semejanza con la realidad es pura coincidencia).
https://themys.sid.uncu.edu.ar/rpalma/R-cran/BSC_proveedores.csv
En ella se ha realizado un estudio sobre varias empresas que son contratistas o proveedores de servicios de alto valor agregado de grandes compañías constructora. Se ha indagado el desempeño de unos 150 contratistas según cuatro dimensiones o indicadores del BSC.
Si bien sería posible cargar datos a mano en R-CRAN, no sería práctico hacer lo así. Todos los datos que se utilizan en este entorno de trabajo se manejan internamente como matrices. Estas matrices de datos (semejantes a bases de datos) se llaman data-frames.
Un data frame podría ser una matriz de una fila por una columna así por ejemplo
> X <-200 ;
> Y= 20 ;
> Y= X+Z
Intente carga dos dataframes a y b con valores numéricos y realizamos la suma de ambos como se muestra en el código.
Esto nos permitiría usar R-CRAN como si se tratase de una calculadora.
Cargando datos desde la línea de comando
Ejecute los comandos "scan()" y luego tipee los números separados por <Enter>.
Para finalizar la carga tipee dos veces
Uno de los requisitos para poder cargar datos es que sepamos en que carpeta estamos trabajando. En este ejercicio veremos como hacer para saber donde estamos parados.
[1] "/media/rpalma/OS/AAA_Datos/2022/Posgrado/U Domingo Savio/Material Curso"
Puedes cambiar tu carpeta (directorio) de trabajo con el comando setwd()
Debes poner entre comillas lo que va dentro del paréntesis
Prepare un archivo en excel y guardelo con formato csv “comma separated values” para capturarlo desde R-CRAN.
Con los siguientes comando importaremos una planilla generada con una hoja de cálculo que contiene las 150 respuestas de las encuestas que se realizaron
Podemos ver el contenido del dataframe BSC_Proveedores que se llama igual que el archivo de texto separado por comas. Para ello ejecutamos el siguiente comando.
X Tecnologia Rec_Humano Capital Equipo Empresa
1 1 5.1 3.5 1.4 0.2 Tenaris
2 2 4.9 3.0 1.4 0.2 Tenaris
3 3 4.7 3.2 1.3 0.2 Tenaris
4 4 4.6 3.1 1.5 0.2 Tenaris
5 5 5.0 3.6 1.4 0.2 Tenaris
70 70 5.6 2.5 3.9 1.1 Tenova
71 71 5.9 3.2 4.8 1.8 Tenova
72 72 6.1 2.8 4.0 1.3 Tenova
73 73 6.3 2.5 4.9 1.5 Tenova
126 126 7.2 3.2 6.0 1.8 Ternium
127 127 6.2 2.8 4.8 1.8 Ternium
128 128 6.1 3.0 4.9 1.8 Ternium
[ reached 'max' / getOption("max.print") -- omitted 1 rows ]
Si quisiésemos ver el desempeño respecto a la variable TECNOLOGÍA tendríamos que interponer entre el nombre del dataset el signo pesos y luego el nombre de la columna
X Tecnologia Rec_Humano Capital Equipo Empresa
1 1 5.1 3.5 1.4 0.2 Tenaris
2 2 4.9 3.0 1.4 0.2 Tenaris
3 3 4.7 3.2 1.3 0.2 Tenaris
4 4 4.6 3.1 1.5 0.2 Tenaris
5 5 5.0 3.6 1.4 0.2 Tenaris
70 70 5.6 2.5 3.9 1.1 Tenova
71 71 5.9 3.2 4.8 1.8 Tenova
72 72 6.1 2.8 4.0 1.3 Tenova
73 73 6.3 2.5 4.9 1.5 Tenova
126 126 7.2 3.2 6.0 1.8 Ternium
127 127 6.2 2.8 4.8 1.8 Ternium
128 128 6.1 3.0 4.9 1.8 Ternium
[ reached 'max' / getOption("max.print") -- omitted 1 rows ]
Repita todo el prceso con el resto de la dimensiones NORMA, CAPITAL, EQUIPO, EMPRESA.
Veremos como se comportan las muestras (contratistar) utilizando el histograma
El gráfico nos muestra que hay dos grupos de contratistas (casi 29 ocurrencias en cada uno) con un desempeño de 6 en la variable TECNOLOGÍA . La escala original era de 1 a 10.
Utilizaremos el comando par() que permite dividir el área de ploteo en una matriz especificada por el comando Numero de Columna (nmfrow)
Haga las interpretaciones de estos gráficos.
** Particionado del área de impresión
Algunas personas prefieren utilizar la envolvente del histograma que es el gráfico de densidad
<<Density,fig=TRUE>>=
Algunas de estas gráficas ya nos muestran que existen ciertas diferencias entre las contratistas, es como si hubiese diferentes campanas de Gauss que agrupan a las diferentes muestras.
Tecnologia Rec_Humano Capital Equipo
1 5.1 3.5 1.4 0.2
2 4.9 3.0 1.4 0.2
3 4.7 3.2 1.3 0.2
4 4.6 3.1 1.5 0.2
5 5.0 3.6 1.4 0.2
6 5.4 3.9 1.7 0.4
7 4.6 3.4 1.4 0.3
8 5.0 3.4 1.5 0.2
9 4.4 2.9 1.4 0.2
10 4.9 3.1 1.5 0.1
11 5.4 3.7 1.5 0.2
12 4.8 3.4 1.6 0.2
13 4.8 3.0 1.4 0.1
14 4.3 3.0 1.1 0.1
15 5.8 4.0 1.2 0.2
16 5.7 4.4 1.5 0.4
17 5.4 3.9 1.3 0.4
18 5.1 3.5 1.4 0.3
[ reached 'max' / getOption("max.print") -- omitted 132 rows ]
Este tipo de análisis multivariado nos permite construir una matriz de gráficas que en la diagonal principal nos muestra los ya conocidos gráficos de densidad. Luego cada una de las otras intersecciones nos señala si existe algún tipo de correlación montónica (creciente o decreciente) entre las variables analizadas. Esto es importante, pues a priori no sabemos si las dimensiones que estamos usando tienen o no relación entre ellas. En otras palabras si las dimensiones o metas tienen correlación quiere decir que podríamos prescindir de una de ellas. Así capital y equipo parecen a priori tener alta linealidad en su correlación.
Notar también las líneas de puntos que nos marcan el intervalo de confianza que podríamos tener sobre esa variable. Es justamente ese margen el que nos perite establecer la franja de flotación que motiva el paso de verde a amarillo. Si se desplazase a tres veces la varianza estaríamos en rojo.
Cuándo nos enfrentamos a situaciones como esta, suele ocurrir que al definir los indicadores nos encontramos con el dilema del gran volumen de datos. Esto no es un problema que provenga tan solo del número de casos que estudiamos con el objeto de conocer el recorrido de una variable, sino más bien por la gran cantidad de variables o calificadores con los que los definimos o estudiamos. Ya vimos en el caso anterior como dimensiones o variables que tienen distinto nombre no son en realidad más que la misma cosa. En el ejemplo anterior la pregunta era si podríamos prescindir de una variable. En este ejercicio trataremos de ver cuantas podemos eliminar. La consigna es Mientras menos variables mejor, y la restricción que impondremos será la de perder variables siempre que podamos seguir describiendo con alto nivel de confianza el comportamiento de todos los casos. Otra mirada sobre el problema podría enunciarse así. “Como puedo saber que valores o recorrido le impondría a la mínima cantidad de variables para calificar como candidato interesante en la nómina de contratistas de las grandes empresas constructoras”.
Para auxilio en este problema utilizaremos el Método de Análisis de Componentes Principales. En este caso y al igual que en el caso anterior usaré un subconjunto de datos (sólo los numéricos) y en especial la matriz de correlación. Esta matriz está armada con las pendientes de las aproximaciones lineales de las rectas del gráfico de densidades.
Las técnicas que usaremos pretenden desde sus diferentes enfoques abrodar el problema de simplificar la interpretación del comportamiento individual y colectivo de los casos (empresas constructoras y contratista) y como podemos valernos del proceso de ingeniería inversa para mover los controles de nuestra “nave” en el tablero de comando con el que fijaremos la altura de la vara del tablero de control.
Crearemos un objeto nuevo que se llamará PC1 (por Principal Component 1) y la instrucción con el que crearemos la matriz de correlaciones es princomp.
Call:
princomp(x = BSC_Rawdata)
Standard deviations:
Comp.1 Comp.2 Comp.3 Comp.4
2.0494032 0.4909714 0.2787259 0.1538707
4 variables and 150 observations.
En el ploteo podemos ver que uno de los componentes principales aporta casi el 4 veces más de la información referida al comportamiento de la varianza de todos los casos. Este componente es el que más incluye en la clasificación o posible identificación del comportamiento de cada individuo de la muestra.
<<sumario_pc1,echo=TRUE>>=
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 2.0494032 0.49097143 0.27872586 0.153870700
Proportion of Variance 0.9246187 0.05306648 0.01710261 0.005212184
Cumulative Proportion 0.9246187 0.97768521 0.99478782 1.000000000
Si observamos bien el reporte que nos entrega el comando summary nos podemos dar cuenta que con los dos primeros componentes podríamos explicar 97.768521% del comportamiento de las muestras de la población. En nuestro caso del total de empresas contratistas analizadas.
¿Qué pasaría si representamos a las empresas en un gŕafico en el que las variables de los ejes sean los dos componentes principales? , pues tendríamos un primer indicio de la bondad de las dimensiones o variables para agrupar a las muestras Esto lo podemos realizar con el comando bilot
Los ńumeros que aparecen el el diagrama son el caso de estudio (renglón en que se encuentra la empresa contratista). A simple vista observamos que hay como tres tipos distintos empresas (tres nubes claramente diferenciadas). Aquí nos queda claro que el principal componente que ordena o divide a estas colonias es indistintamente el CAPITAL o el EQUIPAMIENTO con que cuentas.
También podemos ver que hay empresas como la 15, 16, 132, 118, 61, 107 sobre las que el gráfico nos recomienda estudiarlas más pues no es capaz de clasificarlas bien (son casos extremos o anómalos). Tal vez con poco capital o sin equipo pueden llegar a ser competitivas o interesantes para las grandes constructoras.
Por último la dimensión referida a la cetificación de NORMAS es la dimensión que menos valor aporta. Esto no implica que no certificar sea poco importante, sino que probablemente sea una pregunta irrelevante si todos contestaron que SI certificaron ISO 9000.
Si el comportamiento del componente va hacia el lado positivo, se debe interpretar como que a mayor desempeño mejor resultado o calificación. Si algún componente apunta para el lado negativo tendremos que pensar que a mayor calificación en esa dimensión pero sería el desempeño. La variable PC1 que usamos tiene mucha información valiosa. Revise todo el contenido, voy a mostrar una dimensión que es el score que indica como se comportarían todos los individuos si sólo los analizásemos con los componentes 1 y 2.
Comp.1 Comp.2 Comp.3 Comp.4
[1,] -2.684126 0.31939725 0.02791483 0.002262437
[2,] -2.714142 -0.17700123 0.21046427 0.099026550
[3,] -2.888991 -0.14494943 -0.01790026 0.019968390
[4,] -2.745343 -0.31829898 -0.03155937 -0.075575817
[5,] -2.728717 0.32675451 -0.09007924 -0.061258593
[6,] -2.280860 0.74133045 -0.16867766 -0.024200858
[7,] -2.820538 -0.08946138 -0.25789216 -0.048143106
[8,] -2.626145 0.16338496 0.02187932 -0.045297871
[9,] -2.886383 -0.57831175 -0.02075957 -0.026744736
[10,] -2.672756 -0.11377425 0.19763272 -0.056295401
Voy a realizar el mismo score pero ahora solo con los componentes 1 y 2
Aquí ya podemos ver más claramente la división que se produce entre distintos clusters. Para poder diferencias aún más recurriremos a un nuevo tipo de análisis diferenciado que se llama análisis de clusters
Para realizar este análisis recurriremos a cargar la biblioteca clusters
En el análisis de conglomerados existen dos formas clásicas de estudio. Ambas recurren a las distancias euclídeas entre las muestras. Tenemos aproximaciones Jerárquicas y No Jerárquicas AGNES, CLARA, DIANA, MORA, PAM son nombres de las técnicas que la biblioteca Clusters usa. Todas las técnicas se caracterizan por ser un acrónimo de la combinación de aproximaciones que usan (Single Linkage, Complete Linkage, Average Linkage) .
Todas tienen nombre de mujer, pero esto no quiere necesariamente decir que se trate de una técnica con complicaciones inesperadas, sino más bien que si quieres lo mejor de una de ellas es mejor que la entiendas e indagues en la página del manual.
Con la clasificacion terminada procederemos a ver gráficamente el resultado.
Pasa asignar las muestras a grupos usaré el comendo cuttree que me permite valerme de las franjas blancas de corte del los gráficos para armar los clusters
Método Clara
Estado del arte en herramientas de simulación
Con el advenimiento de la tecnología móvil es hoy más necesario que nunca que las aplicaciones que se desarrollen sean “responsivas”. Es decir que aún cuando no se ejecuten en un equipo sean capaces de adaptarse a pantallas de todo tipo y color. En ese sentido hay dos lenguajes que se han impuesto fuertemente en el ámbito académico. Estos son R-CRAN y Python.