Visualizzazione delle serie temporali

Esplorazione visiva delle serie temporali

Errori comuni

Supponiamo di avere una serie temporale che rappresenta le ore di lavoro come freelance in un periodo di tempo:

import pandas as pdimport plotly.express as pximport numpy as npimport datetime    link = 'https://raw.githubusercontent.com/ianni-phd/Datasets/main/Timeseries/working_hours.csv'df = pd.read_csv(link)# Visualizzazionefig = px.line(df, x='day', y='working_hours', title='Ore di lavoro')fig.show()

Sappiamo che i freelance non lavorano dalle 9 alle 17.

Loro lavorano 24/7, dove un giorno sembra una maratona di lavoro e il successivo sembra una siesta lavorativa!

Tuttavia, la serie temporale sembra piuttosto strana… a causa di un errore comune nelle rappresentazioni delle serie temporali.

Creiamo quindi un grafico più rappresentativo:

import pandas as pdimport plotly.express as pximport plotly.graph_objects as go# Lettura dei dati link = 'https://raw.githubusercontent.com/ianni-phd/Datasets/main/Timeseries/working_hours.csv'df = pd.read_csv(link)# Plotting, aggiungendo alcuni markerfig = px.line(df, x='day', y='working_hours', title='Ore di lavoro')fig.add_trace(    go.Scatter(x=df['day'], y=df['working_hours'],     mode='markers', marker=dict(size=7, color='darkblue')))fig.show()

Iniziamo a percepire il problema, ma supponiamo di essere ancora confusi.

Per individuare un pattern, cerchiamo di capire se il giorno della settimana influisce sul fenomeno:

# Valore medio per giorno della settimanadf['day'] = pd.to_datetime(df['day']) df['day_of_week'] = df['day'].dt.day_name()  weekly_avg = df.groupby('day_of_week')['working_hours'].mean().reset_index()# Grafico a barrefig = px.bar(weekly_avg, x='day_of_week', y='working_hours', title='Valore medio')# Impostazioni grafichefig.update_traces(marker_color='dodgerblue')fig.update_layout(template='plotly_dark'…