Tengo la siguiente configuración:
En mi fábrica, tenemos varias líneas de montaje (>10). Cada línea produce una cantidad de piezas cada día, con algunos picos de producción semanales y mensuales.
Por lo tanto, se trata básicamente de un panel de líneas múltiples que producen un cierto rendimiento durante un período de tiempo. A veces, la línea se detiene por razones técnicas y la producción también se detiene en esa línea inmediatamente. Esto puede afectar indirectamente a las líneas en funcionamiento, ya que pueden compensar la línea parada. Esa parada puede durar varios días o solucionarse en el mismo día.
La pregunta es cómo puedo estimar el impacto de los paros de línea - ¿Cuál es aquí la mejor manera de hacerlo?
-----> ¿Las líneas paradas provocan un aumento de la producción en las líneas en funcionamiento?
-----> ¿Existe alguna forma de cuantificar el desplazamiento/desplazamiento global con la correspondiente incertidumbre, como por ejemplo: "Si una línea se detiene, la producción global de artículos disminuye/aumenta en cierta cantidad dentro de algún intervalo de confianza"?
# Example data where machine_stops correspond to either True or False
# Line1
dates_machine_works = seq(as.Date('2016-01-01'),as.Date('2017-12-31'), by ="day")
machine_output <- ts(rpois(length(dates_machine_works), lambda = 100), # random data
start = c(2016, as.numeric(format(dates_machine_works[1], "%j"))),
frequency = 365)
machine_stops <- rbinom(n=length(dates_machine_works), size=1, prob=0.01)
line_name = rep("machine_line1", length(dates_machine_works))
output_machine_line1 <- cbind.data.frame(dates_machine_works, machine_stops, machine_output,line_name)
# Line2
dates_machine_works = seq(as.Date('2016-01-01'),as.Date('2017-12-31'), by ="day")
machine_output <- ts(rpois(length(dates_machine_works), lambda = 100), # random data
start = c(2016, as.numeric(format(dates_machine_works[1], "%j"))),
frequency = 365)
machine_stops <- rbinom(n=length(dates_machine_works), size=1, prob=0.01)
line_name = rep("machine_line2", length(dates_machine_works))
output_machine_line2 <- cbind.data.frame(dates_machine_works, machine_stops, machine_output,line_name)
# Line3
dates_machine_works = seq(as.Date('2016-01-01'),as.Date('2017-12-31'), by ="day")
machine_output <- ts(rpois(length(dates_machine_works), lambda = 100), # random data
start = c(2016, as.numeric(format(dates_machine_works[1], "%j"))),
frequency = 365)
machine_stops <- rbinom(n=length(dates_machine_works), size=1, prob=0.01)
line_name = rep("machine_line3", length(dates_machine_works))
output_machine_line3 <- cbind.data.frame(dates_machine_works, machine_stops, machine_output,line_name)
Los datos son así.
R> head(output_machine_line3)
dates_machine_works machine_stops machine_output line_name
1 2016-01-01 0 92 machine_line3
2 2016-01-02 0 78 machine_line3
3 2016-01-03 0 128 machine_line3
4 2016-01-04 0 95 machine_line3
5 2016-01-05 0 119 machine_line3
6 2016-01-06 0 90 machine_line3
#----------------------------------------------------------------------------------------#
# First approach using vars
#----------------------------------------------------------------------------------------#
library(xts)
library(vars)
line1 <- ts(output_machine_line1$machine_output, start=c(2016, 1), end=c(2017, 12), frequency=365)
line2 <- ts(output_machine_line2$machine_output, start=c(2016, 1), end=c(2017, 12), frequency=365)
line3 <- ts(output_machine_line3$machine_output, start=c(2016, 1), end=c(2017, 12), frequency=365)
rates.ts = cbind(line1,line2,line3)
plot(rates.ts)
drates.ts <- diff(rates.ts)
plot(drates.ts)
VARselect(drates.ts, lag.max = 8, type = "const")
mod1 <- VAR(drates.ts, p = 5, type = "const")
irf1 <- irf(mod1, impulse = "line1", response = c("line1","line2", "line3"), ortho = TRUE, n.ahead = 6)
plot(irf1)
En general, no estoy seguro de si se trata de las direcciones correctas ya que de alguna manera no estoy utilizando la naturaleza del panel en absoluto. Además, el impulso está cambiando entre las series de tiempo y tiene una naturaleza recíproca. Aprecio cualquier idea.