import warnings
import math
import time
import pandas as pd
import numpy as np
import plotly.graph_objects as go
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_squared_error
from scipy import stats
warnings.filterwarnings("ignore")
titles_font_style = dict(family='Roboto Condensed', size=14, color='rgb(67, 67, 67)')
values_font_style = dict(family='Roboto Condensed', size=14, color='rgb(248, 248, 255)')
plot_background_color='rgb(243, 243, 243)'
paper_background_color='rgb(243, 243, 243)'
fill_color='rgba(255, 144, 14, 1)'
light_fill_color='rgba(255, 144, 14, 0.5)'
line_color='rgba(193, 104, 0, 1)'
line_color2='rgba(93, 164, 214, 1)'
line_color3='rgba(255, 0, 0, 1)'
grid_line_color='rgba(200, 200, 200, 0.5)'
rolling_factor = 20
Análisis de los tiempos de fabricación de un elemento, haciendo uso de modelos de autorregresión. Se emplea la metodologÃa Box-Jenkins, considerando los siguientes bloques:
La serie está compuesta por un conjunto de observaciones ordenadas de la variable timesheet_incurred, que representa el tiempo de fabricación, en segundos, que se ha consumido en la ejecución de una determinada operación sobre un elemento.
Con una simple descriptiva se observa una gran amplitud en la distribución de los valores, sobre todo teniendo en cuenta la naturaleza de los mismos.
data = pd.read_json('example.json')
data = data.set_index(['index'])
data.describe().T
fig = go.Figure()
fig.add_trace(go.Histogram(x=data['timesheet_incurred'], name="Incurred Time", marker_color=fill_color, xbins=dict(start=0,size=100)))
fig.update_layout(
title="Incurred Time Freq",
xaxis=dict(
title='Time (seconds)',
showgrid=True,
linecolor=grid_line_color,
gridcolor=grid_line_color
),
yaxis=dict(
title='Count',
showgrid=False,
linecolor=grid_line_color,
gridcolor=grid_line_color
),
paper_bgcolor=paper_background_color,
plot_bgcolor=plot_background_color,
bargap=0.1)
fig.show()
fig = go.Figure()
fig.add_trace(go.Box(x=data['timesheet_incurred'], boxpoints='all', name='', jitter=0.5, whiskerwidth=0.2, fillcolor=light_fill_color, line_color=line_color, marker_size=4, line_width=1))
fig.update_layout(
xaxis=dict(
showgrid=True,
zerolinecolor=grid_line_color,
linecolor=grid_line_color,
gridcolor=grid_line_color
),
paper_bgcolor=paper_background_color,
plot_bgcolor=plot_background_color,
showlegend=False)
fig.show()