Desmitificar valores atípicos en series temporales 2/4

Derrumbando valores atípicos en series temporales 2/4

Descifrando los valores atípicos en la serie temporal de las redes sociales del fútbol

¿Qué sucedió ayer?

Después de distribuir café a todos, Morelli, Zappa y yo repasamos lo que sucedió ayer:

Desmitificando los valores atípicos en las series temporales: 1/4

Rovella y los Datos Rebeldes

pub.towardsai.net

Comenzamos con los tweets relacionados con #rovella, una serie temporal densamente poblada de valores atípicos, y los localizamos de una manera muy sencilla utilizando solo dos piezas básicas de información: la media y la desviación estándar.

import pandas as pd
import numpy as np

link = 'https://raw.githubusercontent.com/ianni-phd/Datasets/main/rovella_tweets.csv'
tweets = pd.read_csv(link, sep=';', decimal=',', index_col='date', parse_dates=['date'])
tweets_series = tweets['target']

Luego comenzamos a eliminarlos sin piedad, como si estuviéramos usando una motosierra.

El trabajo de cortar puntos: 3 2 1... ¡ya!
# DEFINICIÓN de la función
def detect_outliers_zscore(ts, thres=3, points_not_to_touch=60, max_window=40, outliers_param=0.9):
    '''
    param ts                  : Serie temporal con índice de fecha y hora
    param thres               : Umbral mayor de 3 para hacer que la detección de valores atípicos sea más estricta
    param points_not_to_touch : Puntos que no manipulas al principio de la serie
    param max_window          : Ventana considerada para calcular el máximo local
    param outliers_param      : [0, 1] menor si quiero seguir los valores atípicos
    '''
    ts_reworked = ts.copy(deep=True)
    outliers = []
    dates = []
    for i, d in zip(ts, ts.index):
        ts_so_far = ts[ts.index <= d]
        ts_so_far = ts_so_far.iloc[points_not_to_touch:]
        ts_so_far = ts_so_far[~ts_so_far.index.isin(dates)]
        length_so_far = ts_so_far.shape[0]
        mean = np.mean(ts_so_far)
        std = np.std(ts_so_far)
        max_so_far = np.max(ts_so_far.iloc[:-max_window])
        
        surplus = (outliers_param * (i - max_so_far))...

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Detecta contenido perjudicial utilizando la detección de toxicidad de Amazon Comprehend

Las comunidades en línea están impulsando el compromiso de los usuarios en industrias como los videojuegos, las redes...

Inteligencia Artificial

Aprendizaje adaptativo a través de la difusión Un paradigma de vanguardia

Introducción En el dinámico panorama de la educación y el aprendizaje automático, la integración del Aprendizaje Adap...

Inteligencia Artificial

La IA detecta emisiones de metano desde el espacio

Una nueva herramienta de aprendizaje automático utiliza datos de satélites hiperespectrales para detectar automáticam...

Ciencia de Datos

El enemigo invisible de la IA enfrentando el desafío de la materia oscura digital

La materia oscura digital es el resultado de los científicos que toman prestadas técnicas computacionales de la intel...