--- title: forecast keywords: fastai sidebar: home_sidebar summary: "Forecast para deteccao **anomalias em series temporais**." description: "Forecast para deteccao **anomalias em series temporais**." ---
{% raw %}
{% endraw %} {% raw %}
{% endraw %}

Arima

{% raw %}
{% endraw %} {% raw %}

anomaly_arima[source]

anomaly_arima(ts, train_split=0.4, d=None, seasonal=False, seasonal_periods=7, only_lower=False)

Utiliza Auro-Arima para detectar anomalias.

Input: Serie Temporal ts: Serie Temporal pd.Series() com DateTimeIndex

Parametros de Treino
train_split: % Porcentagem do conjunto de dados inicial usado para treinar o modelo.

Parametros do ARIMA
d: Número minimo de diferenciações
seasonal: Se True o ARIMA irá modelar a sazonalidade
seasonal_periods: Inteiro indicando o periodo da serie temporal

Output: pd.Series com os valores de anomalia

{% endraw %} {% raw %}
{% endraw %} {% raw %}

check_int[source]

check_int(y, conf_interval, only_lower=False)

Check if y is inside the conf_interval Input: y: Numpy Array 1D conf_int: Numpy Array 2D with (-1, 2) Shape [[9.0, 15.0], [4.5, 8.7], [.. ..], [10.4, 13.2]]

{% endraw %}

Using anomaly_arima()

{% raw %}
df1 = pd.read_csv('./dados/daily-min-temperatures.csv')

df1['Date'] = pd.to_datetime(df1['Date'])
df1.set_index('Date', inplace=True)
df1.head().T
Date 1981-01-01 1981-01-02 1981-01-03 1981-01-04 1981-01-05
Temp 20.7 17.9 18.8 14.6 15.8
{% endraw %}

Holt-Winters

{% raw %}
{% endraw %} {% raw %}

anomaly_holtwinters[source]

anomaly_holtwinters(ts, seasonal, seasonal_periods, only_low_values=False, return_fitted_model=False)

Predict anomaly with one stepm ahead forecast.

Input:

# Serie Temporal
ts: Serie Temporal pd.Series() com DateTimeIndex

# Parametros do algoritmo
seasonal: 'add', 'mul', None
seasonal_periods: Inteiro indicando o periodo da serie temporal
{% endraw %}

Using anomaly_holtwinters()

{% raw %}
ts = df1['Temp']
ts = ts.resample('D').backfill() # Avoid warnings

anomalies = anomaly_holtwinters(ts, seasonal='add', seasonal_periods=7, only_low_values=True)
anomalies.head().T
Date
1984-07-13     0.7
1985-11-15    10.0
1986-11-07     8.6
1987-11-04     9.6
1988-11-14     7.5
Name: Temp, dtype: float64
{% endraw %} {% raw %}
plot_anomalies(ts, anomalies);
{% endraw %}