• Non ci sono risultati.

Analisi e predizione dell'esito dei cicli di sterilizzazione in tempo quasi reale

N/A
N/A
Protected

Academic year: 2021

Condividi "Analisi e predizione dell'esito dei cicli di sterilizzazione in tempo quasi reale"

Copied!
71
0
0

Testo completo

(1)

UNIVERSITÀ DI PISA

Dipartimento di Informatica

Corso di Laurea Magistrale in Informatica per l’economia e per l’azienda (Business Informatics)

TESI DI LAUREA

Analisi e predizione in tempo quasi reale dell’esito dei

cicli di sterilizzazione per una azienda farmaceutica

Tutore Accademico

Prof. Rossano VENTURINI

Tutor Aziendale

Dott. Diego PETACCHI

Candidato

Matteo PERU

(2)

2

R

IASSUNTO

In questo lavoro di tesi, svolto per l’azienda SDG Group, si è sviluppato un sistema per la predizione dell’esito e l’analisi in tempo quasi reale dei cicli di sterilizzazione per una importante multinazionale farmaceutica. Questo sistema utilizza i dati provenienti da alcuni sensori, i quali sono installati nel pannello isolante che è sottoposto alla sterilizzazione.

Nel documento verranno introdotti sia gli aspetti relativi alla modellazione matematica usata al fine di predire l’esito dei cicli di sterilizzazione, sia gli aspetti di progettazione e sviluppo del sistema delegato all’analisi dei sensori e alla visualizzazione di queste previsioni.

Il risultato finale è stato la realizzazione di un prototipo con tutte le funzionalità richieste, già pronto per una sua eventuale conversione in prodotto completo, che garantirebbe al cliente di intervenire in maniera proattiva per correggere o arrestare un processo potenzialmente destinato al fallimento.

(3)

S

OMMARIO

1 Introduzione ... 5

1.1 Presentazione del problema ... 5

1.2 Rassegna della letteratura ... 6

1.3 Contenuto della tesi ... 6

2 Caso di studio ... 8

2.1 Azienda proponente: SDG Group ... 8

2.2 Azienda committente ... 8

2.3 Contesto del progetto ... 9

3 Modellazione ... 11

3.1 Aspetti teorici ... 11

3.1.1 Analisi SSA di serie temporali ... 11

3.1.2 Previsione tramite SSA ... 23

3.1.3 Analisi MSSA ... 25

3.2 Applicazione pratica ... 28

3.2.1 Processo di training ... 28

3.2.2 Processo di test ... 34

3.2.3 Valutazione del modello ... 35

3.3 Osservazioni conclusive... 41

4 Tecnologie e architettura ... 42

4.1 Tecnologie utilizzate ... 42

4.1.1 IBM Infosphere Streams ... 43

4.1.2 IBM PureData for Analytics ... 48

4.1.3 Tableau ... 50

4.2 Architettura... 54

4.2.1 Ingestione e analisi in tempo reale ... 54

(4)

4

4.2.3 Analisi e reportistica ... 55

5 Sviluppo back-end ... 56

5.1 Integrazione fra le componenti ... 56

5.1.1 Integrazione con sorgente dati ... 56

5.1.2 Integrazione con script R ... 57

5.1.3 Integrazione con destinazione dati PDA ... 58

5.2 Sviluppo dei flussi Streams ... 58

6 Reportistica ... 63

6.1 Visualizzazione delle previsioni ... 63

6.2 Visualizzazione dei dati storici ... 66

7 Conclusioni ... 68

(5)

5

1 I

NTRODUZIONE

1.1 Presentazione del problema

SDG Group, società di consulenza gestionale, ha come filosofia aziendale quella di proporre ai suoi clienti nuovi modelli a supporto dei processi di controllo anticipandone le necessità. Queste proposte, qualora ritenute valide, scaturiscono nello sviluppo di prototipi che mostrano nel concreto i loro vantaggi.

È in questo contesto che nasce il progetto oggetto di questa tesi di laurea, che si colloca in una più ampia offerta che la società SDG ha presentato ad uno dei suoi maggiori clienti, una famosa multinazionale farmaceutica, per l’introduzione di nuove tecnologie sia hardware, ne è un esempio IBM PureData for Analytics, che software, come ad esempio IBM Infosphere Streams e Tableau. L’applicazione pratica di questa offerta è stata quella di dare avvio a tutta una serie di POC, acronimo dell’inglese Proof of Concept (prove di fattibilità), che dimostrassero concretamente le possibilità di utilizzo di queste tecnologie.

Il problema affrontato riguarda la possibilità di utilizzare le tecnologie proposte per riuscire a determinare il buono o cattivo esito del ciclo di sterilizzazione del pannello isolante (un componente della linea produttiva in cui vengono riempite le cartucce di insulina), partendo dai dati provenienti da sensori che rilevano alcune grandezze fisiche al suo interno.

L’importanza del progetto appare evidente se si considera che il cliente, allo stato attuale, non dispone di strumenti atti ad un’analisi di questo tipo, la quale, grazie alla segnalazione preventiva di possibili fallimenti, permetterebbe all’azienda di aumentare la sua efficienza attuando manovre correttive o interrompendo preliminarmente il processo in corso, riducendo in questo modo gli sprechi di risorse e ottimizzando tempi e costi di produzione. Un altro fattore degno di nota riguarda il fatto che il POC, seppure realizzato per il caso specifico, prevede la possibilità

(6)

6

di riutilizzare gran parte delle sue logiche per processi diversi. In questo modo sarà possibile avere una buona base di partenza che velocizzerà lo sviluppo di possibili nuovi progetti con caratteristiche simili a questo.

1.2 Rassegna della letteratura

Per la teoria alla base della metodologia di analisi SSA (Singular

Spectrum Analysis) utilizzata nell’algoritmo predittivo, si è fatto

riferimento a [1], in cui, oltre a illustrarla interamente dal punto di vista matematico, viene fornita una conoscenza pratica sul perché, quando e come funziona la SSA. Per lo sviluppo dell’algoritmo in R si è fatto invece riferimento agli articoli [2] e [3] che, oltre a descriverlo dal punto di vista metodologico, ne spiegano l’implementazione in R attraverso il pacchetto Rssa. La validazione del modello proposto usa invece la tecnica descritta in [4], mentre per la valutazione delle prestazioni si fa riferimento alle metriche presenti in [5].

Per le caratteristiche e funzionalità generali del software Infosphere Streams si è fatto riferimento a [6], mentre per gli aspetti più tecnici si è utilizzata la documentazione online fornita da IBM e presente in [7].

Per la descrizione dell’architettura IBM PureData for Analytics, il riferimento principale è stato il documento ufficiale IBM disponibile in [8].

1.3 Contenuto della tesi

Il POC sviluppato si proponeva principalmente l’obiettivo di presentare al cliente le potenzialità del software Infosphere Streams, per l’analisi di dati in tempo reale, e della metodologia matematica per la modellazione e previsione dell’evoluzione di serie temporali. Queste potenzialità sono state messe in luce usando Infosphere Streams per leggere in tempo quasi reale i dati provenienti dai sensori della linea di produzione e applicando su di essi l’algoritmo predittivo, che sfrutta la

(7)

7

metodologia appena menzionata, in modo da prevedere l’esito del processo produttivo di cui questi sensori monitorano l’andamento.

La tesi ha come obiettivo principale quello di mostrare il lavoro che è stato svolto per acquisire questo risultato, motivando i vari passaggi, le scelte implementative e facendo risaltare gli aspetti maggiormente innovativi.

Nel dettaglio, la tesi è composta nel seguente modo.

Nel secondo capitolo è illustrato il caso di studio, in cui vengono presentate brevemente le aziende coinvolte e si espone il contesto in cui si è lavorato. Il terzo capitolo è interamente dedicato al lavoro effettuato per lo sviluppo dell’algoritmo di predizione, partendo dai concetti teorici fino alla sua applicazione pratica. Nel quarto capitolo vengono introdotte nel dettaglio le tecnologie utilizzate ai fini della realizzazione del progetto e la sua architettura complessiva, con particolare attenzione ai motivi alla base delle loro scelte. Il quinto capitolo espone le problematiche affrontate per l’integrazione fra le varie componenti e spiega inoltre dettagliatamente come è stato sviluppato il sistema che a partire dalla sorgente dati, popola le tabelle che verranno poi utilizzate dal software di reportistica. Nel sesto e ultimo capitolo, infine, viene illustrato il lavoro che ha portato alla realizzazione delle dashboard presentate agli utenti finali.

(8)

8

2 C

ASO DI STUDIO

In questo capitolo, vengono presentate le aziende coinvolte e viene introdotto il contesto di riferimento in cui si è sviluppato il progetto, focalizzando l’attenzione sulle fasi preliminari.

2.1 Azienda proponente: SDG Group

SDG Group è una società di consulenza gestionale caratterizzata da un profondo utilizzo delle pratiche di Business Intelligence, Corporate Performance Management e Collaborative Business Analytics per lo sviluppo di modelli e sistemi a supporto dei processi di controllo e governo del business. Oltre 20 anni di esperienza nel settore hanno permesso lo sviluppo di tutta una serie di pratiche innovative di

intelligence management che aprono la strada a nuove soluzioni per una

migliore analisi dei dati.

SDG è stata inoltre l’unica azienda italiana selezionata da Gartner - la più autorevole fonte a livello globale sull’innovazione e le tecnologie dell’informazione - tra le 27 società europee leader nel settore della consulenza di Business Intelligence e Information Management.

Nata nel 1991, la sua crescita ha portato ad avere sedici uffici sparsi per il mondo, più di 350 clienti e un team di oltre trecento consulenti.

2.2 Azienda committente

In questo lavoro di tesi non possono essere fornite informazioni dettagliate sull’azienda committente in quanto la stessa ha richiesto di mantenerne l’anonimato.

L’azienda committente è una multinazionale leader nella ricerca e nella produzione e sviluppo di nuovi farmaci. I campi terapeutici in cui svolge le proprie ricerche riguardano alcuni fra i principali problemi di

(9)

9

salute dell’umanità tra le quali: neuroscienze, obesità, diabete, oncologia e malattie autoimmuni.

Nello stabilimento italiano il processo produttivo dell’azienda riguarda la produzione di cartucce di insulina ed è svolto in impianti all’avanguardia con un’architettura dei sistemi informatici integrata con l’automazione di processo e istruzioni di lavoro totalmente elettroniche. L’enorme capacità produttiva di questo stabilimento fa sì che circa il 98% della produzione sia destinata all’esportazione.

2.3 Contesto del progetto

L’ambito di riferimento per lo sviluppo del progetto, come accennato in precedenza, riguarda il processo di sterilizzazione del pannello isolante. Il pannello isolante è un componente situato nella linea produttiva che si occupa della fase di filling, ossia la fase di riempimento delle cartucce di insulina. Il suo utilizzo avviene quando è necessario un alto grado di protezione da elementi esterni o contaminanti in quanto esso crea una barriera fra il prodotto e l’ambiente di lavoro circostante, il personale tecnico e le attrezzature di produzione.

Per mantenere le sue funzionalità, il pannello isolante è sottoposto periodicamente ad un processo di pulizia il quale, una volta terminato, garantisce l’appropriato livello di sterilizzazione.

A seguito di colloqui con il personale esperto del processo si sono apprese alcune informazioni utili sullo svolgimento del ciclo di sterilizzazione. La prima riguarda la sua composizione in nove fasi diverse, eseguite in questo ordine:

1. leaktest, 2. preparation drying, 3. drying, 4. preparation decontamination, 5. decontamination, 6. preparation aeration, 7. aeration,

(10)

10 8. preparation stand by, 9. No phase running.

La seconda informazione è relativa al criterio utilizzato per stabilire se l’esito di un ciclo è positivo o meno. L’esito è determinato all’inizio della fase di preparation aeration, misurando il valore di un particolare sensore e confrontandolo con un valore soglia. Da una analisi sui dati storici si è notato come questa fase inizia sempre circa due ore dopo l’inizio del ciclo. All’interno del pannello isolante sono presenti un certo numero di sensori che monitorano i livelli di temperatura, umidità e tasso di dosaggio dell’acqua ossigenata. Il cliente ha selezionato trentotto di questi sensori, le cui rilevazioni potrebbero avere impatto sull’esito finale del ciclo di sterilizzazione, così divisi: undici sensori rilevano la percentuale del tasso di umidità; ventiquattro sensori rilevano la temperatura in gradi Celsius; tre sensori rilevano il tasso di dosaggio dell’acqua ossigenata in g/min.

L’accesso a queste rilevazioni, memorizzate nel sistema PI di OSIsoft, è effettuato sfruttando un PI SQL Data Access Server per sottomettere query SQL. Per ritrovare i dati si effettua una operazione di SELECT degli attributi tag, time e value dalla tabella picomp, presente nello schema piarchive, filtrando, nella clausola WHERE, l’attributo tag

sui nomi dei sensori. Ad esempio, la query “select time, value from piarchive.picomp where time>’1h’ and tag=’ITP_AE-066-482-01-Hum.P10.PV’” restituisce le coppie istante temporale e valore dell’ultima

ora di rilevazioni per il sensore specificato.

A partire da questo contesto di riferimento si sono inizialmente studiate le possibilità di modellazione del comportamento delle rilevazioni dei sensori viste come serie temporali, come verrà spiegato nel capitolo successivo, e, in seguito, lo studio dei software utili per costruire un sistema che ne integri la raccolta, previsione e analisi.

(11)

11

3 M

ODELLAZIONE

In questo capitolo verrà introdotta la metodologia utilizzata al fine di costruire un modello matematico capace di:

 prevedere l’andamento futuro dei valori provenienti dai sensori;

 classificare il ciclo di sterilizzazione monitorato come potenzialmente “Good”, se si ritiene vada a buon fine, oppure “Bad”, se si ritiene fallisca.

La prima sezione del capitolo illustra nel dettaglio gli aspetti teorici della metodologia utilizzata per la modellazione, partendo dalla sua versione base per poi arrivare alla versione multivariata, mentre la seconda sezione spiega come questa sia stata applicata al problema oggetto della tesi.

3.1 Aspetti teorici

3.1.1 Analisi SSA di serie temporali

La SSA (Singolar Spectrum Analysis) è una tecnica di analisi e previsione di serie temporali diventata di uso comune nell’analisi di serie temporali climatiche, metereologiche e geografiche. Lo scopo dell’applicazione di SSA è molto ampio, dalla decomposizione e filtraggio non-parametrico di serie temporali alla stima di parametri e previsione. Una delle differenze tra SSA e i metodi tradizionali di analisi delle serie temporali risiede nella possibilità di applicare la SSA a problemi differenti e non convenzionali rispetto a quelli classici dell’analisi come, fra gli altri, l’analisi esplorativa per data-mining e la stima dei parametri nell’elaborazione di segnali.

La scelta di questo metodo, per l’analisi delle serie temporali generate dai sensori, è stata suggerita dalla Business Unit “Predictive &

(12)

12

successo per l’individuazione di anomalie in impianti di produzione dell’energia elettrica. La stessa BU, nel processo di analisi svolto per progetti precedenti, ha studiato e rilevato la bontà di questa metodologia nella sua variante MSSA (Multichannel SSA), in contesti in cui le variabili in esame siano debolmente o mediamente correlate tra loro, nella costruzione di pattern e previsione di serie temporali derivanti dai dispositivi di monitoraggio nell’ambito di sistemi produttivi.

Uno dei vantaggi nell’utilizzo della SSA risiede nella sua capacità di comprendere la struttura di un segnale in termini di componenti di trend e di componenti oscillatorie e poter quindi costruire modelli di comportamento “normale” e di comportamento associato a condizione anomale, come la comparsa di guasti e malfunzionamenti in un processo produttivo. Un altro vantaggio si ritrova nella natura adattiva della SSA; la struttura, dipendendo sostanzialmente solo dall’impostazione del parametro lunghezza della finestra, viene determinata direttamente dai dati (data-driven) e si presta, pertanto, ad una quasi totale automazione nel momento in cui, dopo aver messo in attività il modello predittivo, lo si voglia ulteriormente raffinare.

3.1.1.1 Descrizione SSA

Per la descrizione degli aspetti teorici della SSA si è fatto riferimento ai contenuti presenti in [1].

Sia 𝐹 = (𝑓0, 𝑓1, . . . , 𝑓𝑁 − 1) una serie temporale di lunghezza N, la

versione base della SSA consiste di due fasi, a loro volta suddivise in due passi, eseguite come segue.

Prima fase: decomposizione Primo passo: embedding

La procedura di embedding mappa la serie temporale originale in una sequenza di vettori multidimensionali ritardati.

(13)

13

Sia L un intero che chiameremo “lunghezza finestra”. La procedura crea 𝐾 = 𝑁 − 𝐿 + 1 vettori ritardati 𝑋𝑗 = (𝑓𝑗, … , 𝑓𝑗+𝐿−2)𝑇, 𝑗 = 1,2, … , 𝐾 di dimensione L e la matrice traiettoria

𝐗 = (𝑓𝑖+𝑗−2)𝑖,𝑗=1 𝐿,𝐾 = [𝑋1: … : 𝑋𝐾] = [ 𝑓0 𝑓1 … 𝑓𝐾−1 𝑓1 𝑓2 … 𝑓𝐾 ⋮ ⋮ ⋱ ⋮ 𝑓𝐿−1 𝑓𝐿 … 𝑓𝑁−1 ] (1)

Da notare che X è una matrice di Hankel, quindi gli elementi lungo le antidiagonali sono uguali.

Secondo passo: decomposizione ai valori singolari

Il secondo passo consiste nella decomposizione ai valori singolari detta SVD (dall’acronimo inglese di Singular Value Decomposition) della matrice X. Sia 𝐒 = 𝐗𝐗T. Indichiamo con 𝜆1, … , 𝜆𝐿 gli autovalori di S presi in ordine descrescente di grandezza, con 𝑈1, … , 𝑈𝐿 gli autovettori corrispondenti a questi autovalori. Sia 𝑑 = max {𝑖, 𝑡𝑎𝑙𝑒 𝑐ℎ𝑒 𝜆𝑖 > 0} e sia 𝑉𝑖 = 𝐗𝑇 𝑈𝑖

√𝜆𝑖(𝑖 = 1, … , 𝑑) . In questo caso la SVD della matrice traiettoria

può essere riscritta come somma di matrici elementari di rango 1 𝐗 = 𝐗1+ ⋯ + 𝐗𝑑 𝑐𝑜𝑛 𝐗𝑖 = √𝜆𝑖𝑈𝑖𝑉𝑖𝑇

Nella terminologia SVD le radici quadrate degli autovalori √𝜆𝑖 sono chiamati valori singolari; gli 𝑈𝑖 e 𝑉𝑖 sono, rispettivamente, i vettori

singolari sinistro e destro. L’insieme (√𝜆𝑖, 𝑈𝑖, 𝑉𝑖) è chiamato i-esima autotripla della SVD.

Seconda fase: ricostruzione Terzo passo: raggruppamento

Come terzo passo, si divide l’insieme di indici 𝐼 = {1, … , 𝑑} in diversi gruppi disgiunti 𝐼1, … . , 𝐼𝑚 e si sommano le matrici 𝐗𝑖 all’interno di ogni gruppo. Il risultato di questo passo è la rappresentazione

(14)

14 𝐗 = ∑ 𝐗𝐼𝑘 𝑚 𝑘=1 , 𝑑𝑜𝑣𝑒 𝐗𝐼𝑘 = ∑ 𝐗𝑖 𝑖∈𝐼𝑘

Quarto passo: Medie diagonali

Nel quarto passo si trasforma ogni matrice del passo precedente in una nuova serie di lunghezza N. Per farlo si calcola la media sulle antidiagonali delle matrici 𝐗𝐼𝑘. Questo fornisce la decomposizione SSA; ossia, una decomposizione della serie originale F in una somma di m serie

𝑓𝑛 = ∑ 𝑓̃𝑛(𝑘) , 𝑛 = 𝑚

𝑘=1

0, … , 𝑁 − 1 (2) dove per ogni k la serie 𝑓𝑛(𝑘) è il risultato della media diagonale della matrice 𝐗𝐼𝑘.

Lo scopo generale dell’analisi SSA è proprio quest’ultima decomposizione in componenti additive 𝑓𝑛(𝑘) che rappresentano serie temporali indipendenti e identificabili; queste permettono di analizzare la struttura della serie temporale originale. Una di queste componenti può identificare il trend, l’oscillazione (ad es. la stagionalità) o il rumore. La componente oscillatoria è una serie periodica o quasi periodica che può essere pura o in modulazione d’ampiezza. Il rumore è una qualunque serie non periodica. Il trend è una serie che varia lentamente senza oscillazioni.

3.1.1.2 Qualità della decomposizione

Per capire la bontà della decomposizione tramite SSA è necessario introdurre la nozione di separabilità. La decomposizione ha successo solo se le componenti additive risultanti sono (approssimativamente) separabili dalle altre. Esistono due diversi tipi di separabilità: la separabilità debole, che risponde alla domanda “la somma delle SVD delle matrici traiettoria delle serie 𝐹(1) e 𝐹(2) coincide con una delle SVD della matrice traiettoria della serie 𝐹 = 𝐹(1)+ 𝐹(2)?”, e la separabilità forte, che invece risponde alla domanda “è possibile raggruppare i termini

(15)

15

matriciali di qualunque SVD della matrice traiettoria X della serie 𝐹 = 𝐹(1)+ 𝐹(2), per ottenere le matrici traiettoria delle serie 𝐹(1) e 𝐹(2)?”

Separabilità debole

Data:

 una lunghezza della finestra L;

 una certa SVD della matrice traiettoria X della serie iniziale

F di lunghezza N;

 l’assunzione che F sia la somma di due serie 𝐹(1) e 𝐹(2); allora la separabilità delle serie 𝐹(1) e 𝐹(2) significa che possiamo dividere i termini matriciali della SVD della matrice traiettoria X in due gruppi differenti, tali che la somma dei termini all’interno dei gruppi fornisce le matrici traiettorie 𝐗(1) e 𝐗(2) delle serie 𝐹(1) e 𝐹(2). La separabilità implica immediatamente che ogni riga della matrice 𝐗(1) della prima serie sia ortogonale ad ogni riga della matrice 𝐗(2) della seconda serie, e lo stesso vale per le colonne. Dato che righe e colonne delle matrici traiettoria sono sottoserie della serie corrispondente, la condizione di ortogonalità definita precedentemente può essere vista come la condizione di ortogonalità fra ogni sottoserie di lunghezza L (e

K) della serie 𝐹(1) con ogni sottoserie della stessa lunghezza della serie 𝐹(2).

Se questa ortogonalità vale, allora si può affermare che le serie 𝐹(1) e 𝐹(2) sono separabili debolmente. Una misura per il calcolo dell’ortogonalità è (𝐹(1), 𝐹(2)) 𝑤 ≝ ∑ 𝑤𝑖𝑓𝑖 (1)𝑓 𝑖(2) 𝑁−1 𝑖=0 dove 𝑤𝑖 = { 𝑖 + 1 𝑝𝑒𝑟 0 ≤ 𝑖 ≤ 𝐿∗− 1 𝐿∗ 𝑝𝑒𝑟 𝐿≤ 𝑖 < 𝐾∗ 𝑁 − 𝑖 𝑝𝑒𝑟 𝐾∗ ≤ 𝑖 ≤ 𝑁 − 1 con 𝐿∗= min(𝐿, 𝐾) e 𝐾= max (𝐿, 𝐾)

(16)

16

In questo caso si definiscono le serie 𝐹(1) e 𝐹(2) w-ortogonali se (𝐹(1), 𝐹(2))

𝑤 = 0.

Separabilità approssimata

Nell’utilizzo pratico le serie temporali reali non hanno esatta separabilità e si parla, quindi, di separabilità approssimata. Le caratteristiche che indicano il grado di separabilità riguardano il massimo coefficiente di correlazione, ovvero il massimo valore delle correlazioni tra le righe e tra le colonne delle matrici traiettorie delle due serie (che compongono quella originale). Si può affermare che due serie sono approssimativamente separabili se tutte le correlazioni tra le righe e colonne delle matrici traiettoria 𝐗(1) e 𝐗(2) sono vicine a zero. La quantità w-correlation è una misura naturale della deviazione di due serie temporali dalla w-ortogonalità, ed è definita come

𝜌12(𝑤) = (𝐹 (1), 𝐹(2)) 𝑤 ‖𝐹(1) 𝑤‖𝐹(2)‖𝑤 dove ‖𝐹(𝑖) 𝑤 = √(𝐹(1), 𝐹(2))𝑤, 𝑖 = 1,2 . Se il valore assoluto della w-correlation è piccolo, allora le due serie sono quasi ortogonali, ma, se è elevato, allora le serie si allontanano dalla w-ortogonalità e sono perciò scarsamente separabili.

Separabilità forte

Per la separabilità occorre che sia soddisfatta la condizione di separabilità debole e, in aggiunta, che l’insieme di valori singolari delle matrici traiettoria 𝐗(1) e 𝐗(2) siano disgiunti. Si assume che

𝐗(1) = ∑ 𝐗 𝑘 (1) 𝑘 , 𝐗(2) = ∑ 𝐗 𝑚 (2) 𝑚

siano le SVD delle matrici traiettoria 𝐗(1) e 𝐗(2) delle serie 𝐹(1) e 𝐹(2). Se sono separabili debolmente, allora

𝐗 = ∑ 𝐗𝑘(1) 𝑘

+ ∑ 𝐗𝑚(2) 𝑚

(17)

17

è la SVD della matrice traiettoria X della serie 𝐹 = 𝐹(1)+ 𝐹(2). Si assuma ora che i valori singolari corrispondenti alle matrici elementari 𝐗1(1) e 𝐗1(2) coincidano. Questo vuol dire che usando la SVD sulla matrice X non è possibile identificare univocamente i termini 𝐗1(1) e 𝐗1(2) nella somma 𝐗1(1)+ 𝐗1(2), dato che queste due matrici corrispondono agli stessi autovalori della matrice 𝐗𝐗T.

Nell’utilizzo pratico, la mancanza di separabilità forte (in presenza di quella debole) diventa essenziale quando la matrice 𝐗𝐗T ha due

autovalori simili, in quanto porta ad una instabilità nella computazione della SVD. La presenza di valori singolari simili è la ragione per cui SSA spesso fallisce nel decomporre componenti formate da molte armoniche di peso simile. Se questi pesi sono piccoli è normale considerare queste componenti come rumore.

3.1.1.3 Individuazione delle diverse componenti

Componente di trend

Il trend è una componente che riflette variazioni lente, stabili e sistematiche della serie temporale. Assumendo che la serie temporale stessa sia formata da solo questo componente, si nota come in questo caso uno o più vettori singolari principali varieranno anche loro lentamente. Per una serie generica F si assume tipicamente che la sua componente di trend 𝐹(1) sia (approssimativamente) fortemente separabile da tutte le altre componenti. Questo vuol dire che fra le autotriple della serie F, ce ne sono alcune che corrispondono approssimativamente alle componenti della SVD della serie 𝐹(1). Quindi, per estrarre il trend da una serie, si devono raggruppare tutte le matrici elementari relative a vettori singolari che variano lentamente. Il numero di queste triple dipende non solo dal trend ma anche dalla componente residua 𝐹(2)= 𝐹 − 𝐹(1).

Si prendono in considerazione due casi estremi. Nel primo, la serie

F ha una forte componente di trend 𝐹(1) con una componente meno rilevante di oscillazione-rumore 𝐹(2). In questo caso la maggior parte delle autotriple relative al trend occuperanno le posizioni principali nella

(18)

18

SVD dell’intera serie F. Nel secondo caso estremo abbiamo una forte componente oscillatoria sullo sfondo di una debole e lenta tendenza generale. Qui, la matrice elementare principale descriverà l’oscillazione, mentre le autotriple del trend potranno avere piccoli valori singolari.

Smussamento

Con la SSA si possono smussare tutte le serie temporali, anche quelle che non hanno una ovvia componente di trend. La componente di smussamento sarà quindi composta da autotriple i cui vettori singolari non oscillano rapidamente.

Componente oscillatoria

Si considera, per semplicità, una serie armonica pura con frequenza 𝜔 e una certa fase e ampiezza. Dato che si assume che tale componente 𝐹(1) nella serie originale sia approssimativamente fortemente separabile da 𝐹(2) = 𝐹 − 𝐹(1), si può presumere che due autotriple della SVD della matrice traiettoria generata da F corrispondano a 𝐹(1). Il problema è, quindi, identificare queste coppie di autotriple tra tutte quelle generate da

F. Controllando gli scatterplot a coppie degli autovettori si semplifica la

ricerca di queste coppie. I punti degli scatterplot fra due autovettori con frequenza, fase e ampiezza simile formano i vertici di un poligono regolare con T (periodo dell’armonica) vertici. In pratica, i valori singolari delle due autotriple di una serie armonica sono vicini fra loro, e questo semplifica l’identificazione visuale delle componenti armoniche.

3.1.1.4 Ulteriori indicazioni per la scelta dei gruppi

La condizione necessaria per la separabilità (approssimata) di due serie è che la w-correlation delle componenti ricostruite sia vicina a zero. D’altra parte, componenti altamente correlate andranno a far parte dello stesso gruppo.

Un accorgimento naturale per l’identificazione di gruppi è la matrice dei valori assoluti delle w-correlation, corrispondenti alla decomposizione totale. La forma di questa matrice fornisce un’idea di come raggruppare appropriatamente le componenti prodotte dalla SVD.

(19)

19

In Figura 3.1, in cui sono mostrate le correlazioni fra 30 componenti ricostruite, si vede come la forma della matrice aiuti nella scelta dei gruppi identificando le componenti maggiormente correlate, in questo caso i primi sei autovettori fanno parte di tre diversi gruppi.

Figura 3.1 Matrice della w-correlation

3.1.1.5 Effetto della lunghezza della finestra

La lunghezza della finestra è il parametro principale della SSA, una sua scelta sbagliata implicherebbe l’impossibilità di ottenere una buona scomposizione SSA indipendentemente dalla scelta dei gruppi.

La scelta della finestra dipende dal problema che abbiamo davanti e dalle informazioni preliminari a disposizione. Non esistono regole e raccomandazioni universali per il caso generale e la principale difficoltà consiste nel fatto che le variazioni della lunghezza influenzano la separabilità sia debole che forte.

Esistono comunque principi generali per la selezione della corretta lunghezza della finestra:

1. La SVD della matrice traiettoria, corrispondente alle lunghezze L e 𝐾 = 𝑁 − 𝐿 + 1, sono equivalenti. È quindi inutile prendere una lunghezza maggiore di metà della serie temporale.

(20)

20

2. Maggiore è la lunghezza, più dettagliata sarà la decomposizione della serie temporale. La decomposizione più dettagliata è raggiunta quando la lunghezza è uguale a circa la metà della lunghezza della serie. Le eccezioni sono le serie di rango finito, dove per ogni L maggiore di d e 𝑁 > 2𝑑 + 1 (d è il rango della serie) il numero di componenti non nulle nella SVD è uguale a d e non dipende dalla lunghezza della finestra.

3. Effetti della separabilità debole.

 Dato che i risultati riguardanti la separabilità debole delle componenti delle serie temporali sono per lo più asintotici, nella maggioranza degli esempi per ottenere una migliore separabilità debole si deve scegliere una lunghezza della finestra grande. Una finestra piccola può mescolare componenti interpretabili.

 Se la finestra è relativamente grande, allora la separazione risulta stabile rispetto a piccole perturbazioni presenti in L.  Per specifiche serie e compiti, esistono raccomandazioni concrete per la selezione della lunghezza della finestra, che possono funzionare con un N relativamente piccolo (ad es. per serie periodiche).

4. Effetti della vicinanza di valori singolari. L’effetto negativo dovuto alla vicinanza dei valori singolari relativi a componenti differenti della serie originale (cioè l’assenza di separabilità forte dove invece vale quella debole), non sono facilmente formalizzabili in termini di lunghezza della finestra. Sono inoltre difficili da superare con la sola selezione della lunghezza della finestra.

(21)

21

 Per la serie con una struttura complessa, una finestra troppo grande può produrre una decomposizione indesiderabile delle componenti di interesse della serie, che può portare alla loro confusione con altre componenti. Questa è una spiacevole evenienza, specialmente per il fatto che una riduzione significativa della finestra porta ad una separazione di cattiva qualità.

 In alternativa, spesso in queste circostanze anche una piccola variazione della lunghezza può ridurre il mescolamento e portare ad una migliore separazione delle componenti. Ad ogni modo è sempre preferibile provare diverse lunghezze.

Lunghezza della finestra per l’estrazione di trend

Nel problema dell’estrazione del trend, può emerge spesso una contraddizione tra i requisiti per la separabilità debole e forte. Dato che il trend è una curva relativamente smussata, la sua separabilità dal rumore e oscillazione richiede un valore di L abbastanza grande. D’altra parte, se il trend ha una struttura complessa, un valore troppo grande di L permette di descriverlo solo tramite da un gran numero di autotriple con valori singolari relativamente piccoli. Alcuni di questi valori singolari, inoltre, potrebbero essere vicini a quelli generati da componenti oscillatorie o dal rumore. Si possono considerare, a livello quantitativo, due casi estremi: quando il trend può essere facilmente estratto, e quando la selezione della lunghezza della finestra per l’estrazione del trend è complicata o addirittura impossibile.

1. Nel primo caso, si assume che:

 Sia 𝐹 = 𝐹(1)+ 𝐹(2) dove 𝐹(1) è il trend e 𝐹(2) il residuo.  La serie 𝐹(1) è semplice, cioè approssimabile con una serie

(22)

22

 Si è interessati all’estrazione della tendenza generale della serie piuttosto che al trend particolareggiato.

 In termini di decomposizione SSA, le prime autotriple della decomposizione della matrice traiettoria di 𝐹(1) sono sufficienti per una ragionevolmente buona sua approssimazione, anche per L grande.

Supponendo siano valide queste assunzioni e che la finestra L fornisca una certa separazione delle serie 𝐹(1) e 𝐹(2), ci si può aspettare che nella SVD della matrice traiettoria della serie F, l’autotripla principale corrisponda al trend 𝐹(1); cioè, avrà un valore singolare più grande di tutte le autotriple corrispondenti a 𝐹(2). Inoltre, la finestra L, sufficiente per la separazione, non dovrà essere troppo grande per via della semplicità del trend.

2. Una situazione molto più complessa nasce quando vogliamo estrarre un trend maggiormente raffinato 𝐹(1), ed il residuo 𝐹(2) ha una struttura complessa (ad es. in presenza di una forte componente di rumore). In questo caso un L grande causa non solo il mescolamento delle autotriple corrispondenti a 𝐹(1) e 𝐹(2), ma anche la vicinanza dei corrispettivi valori singolari, e quindi una carenza di separabilità forte.

Esistono certamente molte situazioni intermedie tra questi due casi estremi. In alcune di queste, anche in presenza di una componente residua complessa, si può estrarre facilmente il trend quando questo ha una forma semplice e corrisponde ad una sola autotripla.

Lunghezza della finestra per individuare periodicità

Il problema della scelta della lunghezza della finestra per l’estrazione della componente periodica 𝐹(1) dalla somma 𝐹 = 𝐹(1)+ 𝐹(2) ha alcune peculiarità relative alla corrispondenza tra lunghezza della finestra e il periodo T.

(23)

23

1. Si misura la lunghezza della finestra in termini del numero di periodi. Per ottenere la separazione si deve avere, come regola, la lunghezza N della serie tale che il rapporto N/T sia almeno di alcune unità.

2. Per serie relativamente brevi, se si è a conoscenza che la serie ha una componente periodica con periodo intero T (ad es. se è presente una componente di stagionalità), allora è meglio prendere la lunghezza della finestra proporzionale a questo periodo.

3. Nel caso di serie più lunghe, la richiesta che L/T e (N-1)/T siano interi non è così importante. In questo caso, è meglio scegliere una finestra lunga il più possibile (vicina a N/2). Tuttavia, anche nel caso di serie lunghe, è meglio che L sia scelto in modo che L/T sia un intero.

4. Se la serie 𝐹(2) contiene una componente periodica con periodo 𝑇1 ≈ 𝑇, allora per estrarre 𝐹(1) c’è bisogno di una finestra più lunga rispetto al caso in cui tale componente non sia presente. 5. Dato che due componenti armoniche con uguale ampiezza

produco valori singolari uguali, asintoticamente, quando L e K tendono ad infinito, una lunghezza della finestra ampia può causare una carenza di separabilità forte e quindi una mescolanza delle componenti. Se, inoltre, la frequenza delle due componenti è quasi uguale, allora si ha una contraddizione tra la richiesta per una separabilità forte e una debole; frequenze vicine richiedono una finestra ampia, ma una finestra ampia porta a valori singolari simili.

3.1.2 Previsione tramite SSA

Per una previsione significativa di una serie temporale è necessario che siano soddisfatte le seguenti condizioni:

(24)

24 1. La serie ha una struttura.

2. È possibile trovare un meccanismo che identifica questa struttura. 3. È disponibile un metodo per il prolungamento della serie, basato

sulla struttura identificata.

4. La struttura della serie si preserva anche nel periodo futuro sul quale verrà effettuata la previsione.

Una previsione è quindi possibile se viene costruito un certo modello della serie temporale. Questo modello, per la previsione tramite SSA, è descritto con l’ausilio della relazione di ricorrenza lineare (abbreviata in LRF, acronimo di Linear Recurrent Formulae).

Una serie governata dalla LRF ammette un naturale prolungamento ricorrente dato che ogni termine di questa serie è uguale ad una combinazione lineare di alcuni sui termini precedenti. Per la previsione non è necessario cercare una LRF di dimensione minima, infatti, ogni altra LRF governante la serie produce la stessa continuazione.

Sia d la dimensione minima della LRF che governa la serie F. È possibile dimostrare che se la lunghezza della finestra L è maggiore di d, e la lunghezza della serie è sufficientemente grande, allora lo spazio traiettoria della serie F è d-dimensionale. SSA fornisce una base naturale di questo spazio traiettoria.

Lo spazio traiettoria determina una LRF di dimensione L-1 che governa la serie. Applicando questa LRF agli ultimi elementi della serie iniziale F si ottiene il suo prolungamento. Non è però ragionevole assumere che la serie in esame sia governata da una LRF di dimensione relativamente piccola. Si deve quindi supporre che la serie in considerazione possa essere espressa come somma di una serie 𝐹(1), che ammette una continuazione ricorrente, e una serie residua 𝐹(2) interpretata come rumore.

L’assunzione principale è che per una certa lunghezza della finestra

L, le componenti della serie 𝐹(1) e 𝐹(2) siano, approssimativamente, fortemente separabili. In tal caso, operando come in SSA, si ricostruisce

(25)

25

la serie 𝐹(1) con l’ausilio di un insieme selezionato di autotriple e si ottiene l’approssimazione sia della serie 𝐹(1) che del suo spazio traiettoria. In altre parole, si ottiene sia la LRF, che governa approssimativamente 𝐹(1), che i dati iniziali di questa formula. Queste informazioni sono sufficienti per ottenere una previsione dei valori futuri della serie 𝐹(1), che saranno calcolati come combinazione lineare degli ultimi L-1 elementi.

3.1.3 Analisi MSSA

Una estensione della SSA è data dalla Multichannel SSA o

Multivariate SSA, abbreviata in MSSA, per la sua analisi si è fatto

riferimento a [2]. In questo caso si considera il problema della simultanea decomposizione, ricostruzione e previsione di una collezione di serie temporali. L’idea principale dell’algoritmo è la stessa della SSA, la differenza consiste nel modo in cui viene costruita la matrice traiettoria.

3.1.3.1 Descrizione MSSA

Si considera una serie temporale multivariata, cioè, una collezione {𝐹(𝑝) = (𝑓

𝑗(𝑝))𝑗=1 𝑁𝑝

, 𝑝 = 1, … , 𝑠}

di s serie temporali di lunghezza 𝑁𝑝. Sia 𝐹 = (𝐹(1), … , 𝐹(𝑠)) il dato iniziale per l’algoritmo MSSA. Dato che lo schema generale dell’algoritmo descritto per SSA vale anche per MSSA, si deve definire solamente la mappatura per il passo di embedding.

Sia L la lunghezza della finestra, 1 < 𝐿 < 𝑚𝑖𝑛(𝑁𝑝, 𝑝 = 1, … , 𝑠). Per ogni serie temporale 𝐹(𝑝), la procedura di embedding forma 𝐾

𝑝 = 𝑁𝑝 − 𝐿 + 1 vettori L-ritardati 𝑋𝑗(𝑝) = (𝑓𝑗(𝑝), … , 𝑓𝑗+𝐿−1(𝑝) )

T

, 1 ≤ 𝑗 ≤ 𝐾𝑝. Sia 𝐾 = ∑𝑠 𝐾𝑝

𝑝=1 , la matrice traiettoria della serie multidimensionale X è una matrice L x K della forma

(26)

26

dove 𝐗(𝑝) è la matrice traiettoria della serie monodimensionale 𝐹(𝑝). Gli autovettori {𝑈𝑖} della SVD di X formano le basi degli spazi traiettoria delle colonne di tutte le serie temporali del sistema. I vettori singolari destri 𝑉𝑖 consistono in parti relative ad ogni serie temporale presa separatamente, cioè, 𝑉𝑖 = ( 𝑉𝑖(1) ⋮ 𝑉𝑖(𝑠) )

dove 𝑉𝑖(𝑝) ∈ R𝐾𝑝 e appartengono allo spazio traiettoria delle righe della

p-esima serie.

Gli autovettori 𝑈𝑖 rispecchiano quindi le caratteristiche comuni delle serie temporali, mentre i vettori 𝑉𝑖(𝑝) mostrano come queste caratteristiche appaiono in ogni serie.

Analogamente al caso monodimensionale, il principale risultato dell’applicazione della MSSA è la decomposizione (2) della serie multivariata F in una somma di m serie multivariate.

3.1.3.2 Matching di serie

L’analisi simultanea di diverse serie temporali viene effettuata per identificare le loro relazioni ed estrarre la struttura comune. Una struttura in SSA significa che la matrice traiettoria è rango-deficitaria (cioè non di rango massimo). Si consideri un sistema di serie temporali con matrici traiettoria rango-deficitarie, la struttura delle serie è rappresentata dal loro spazio traiettoria. Si può dire pertanto che due serie hanno la stessa struttura se i loro spazi traiettoria coincidono. Se due serie hanno un match completo, allora lo spazio traiettoria di una può essere usato per ricostruire o predire la seconda. In questo caso il rango in MSSA è uguale al rango SSA di ogni serie temporale.

Si consideri una collezione 𝐹(𝑝) = (𝑓

𝑗(𝑝))𝑗=1 𝑁

, 𝑝 = 1, … , 𝑠 , di s serie di lunghezza N. Sia 𝑟𝑝 il rango SSA di 𝐹(𝑝) (ossia, la dimensione dello spazio traiettoria generato dalla SSA monodimensionale applicata a

(27)

27

questa serie) e sia 𝑟 il rango MSSA di (𝐹(1), … , 𝐹(𝑠)). Vale che 𝑟 𝑚𝑖𝑛 ≤ 𝑟 ≤ 𝑟𝑚𝑎𝑥, dove 𝑟𝑚𝑖𝑛 = max{𝑟𝑝, 𝑝 = 1, … , 𝑠} e 𝑟𝑚𝑎𝑥 = ∑𝑠𝑝=1𝑟𝑝. Il caso meno favorevole per l’applicazione della MSSA si ha quando 𝑟 = 𝑟𝑚𝑎𝑥, il quale indica il fatto che serie differenti non hanno componenti accoppiate. Il caso 𝑟 < 𝑟𝑚𝑎𝑥 indica la presenza di componenti accoppiate e può portare vantaggi nell’elaborazione simultanea del sistema di serie temporali.

3.1.3.3 Separabilità

La nozione di separabilità per serie multidimensionali è analoga a quella per le serie monodimensionali, ma maggiormente restrittiva. In particolare, la condizione sufficiente per la separabilità di due sistemi di serie è la separabilità di ogni serie della prima collezione da ogni serie della seconda.

3.1.3.4 Scelta della lunghezza della finestra

Per la scelta ottima della lunghezza della finestra L non esistono indagini appropriate. Analogamente al caso monodimensionale è possibile formulare alcuni principi generali per la scelta di L. Il principale è lo stesso della SSA, il quale dice che la scelta di L dovrebbe fornire la separabilità (approssimata) della serie. Tuttavia, nel caso della MSSA esistono ulteriori caratteristiche. Ad esempio, mentre nella SSA non ha senso prendere L maggiore della metà della lunghezza della serie, in MSSA una L più grande associata ad un 𝐾𝑝 = 𝑁𝑝 − 𝐿 + 1 più piccolo può essere considerata per l’estrazione della componente di trend e per lo smussamento. Un’altra scelta possibile è 𝐿 = ⌊𝑠𝑁/(𝑠 + 1)⌋ nel caso in cui si hanno poche serie temporali, ma non può essere applicata per sistemi con tante serie brevi in quanto 𝐾𝑝 diverrebbe troppo piccolo per la separabilità. In generale, la scelta 𝐿 = ⌊𝑁/2⌋ è appropriata anche nel caso della MSSA.

(28)

28

3.2 Applicazione pratica

In relazione al problema oggetto della tesi, l’obiettivo dell’uso della metodologia d’analisi appena descritta è quello di prevedere eventuali anomalie prima che queste si verifichino, in modo da poter intervenire in maniera proattiva sul ciclo produttivo al fine di correggerne l’andamento. Per riuscire nello scopo prefisso si ha quindi la necessità di riuscire a classificare il ciclo di sterilizzazione attualmente in corso come potenzialmente “Good”, se si ritiene vada a buon fine, oppure “Bad”, se si ritiene fallisca, sulla base di un numero limitato di rilevazioni dei dati. L’approccio alla risoluzione del problema utilizza una metodologia innovativa, studiata anch’essa insieme alla Business Unit “Predictive &

Streaming Analytics”, che può essere replicata in contesti diversi da quelli

oggetto di questa tesi. Questa peculiarità è stata fortemente richiesta dall’azienda cliente, la quale, nell’ambito della valutazione del prototipo, richiedeva che questo potesse facilmente essere adattato all’individuazioni di altre criticità all’interno dell’ambiente produttivo.

La metodologia prevede due fasi distinte: una fase preliminare detta di “Training” ed una fase detta di “Test”, applicata in tempo quasi reale.

Per la realizzazione degli script necessari al progetto si è utilizzato il software open source R [8]. La sua scelta è dipesa dai seguenti fattori:

 il suo utilizzo in precedenti progetti che usavano la stessa metodologia da parte dell’azienda SDG;

 la disponibilità del pacchetto Rssa, il quale fornisce una implementazione efficiente degli algoritmi per la SSA;  il suo elevato grado di integrazione con i vari sistemi

operativi e con il software di processamento dati utilizzato.

3.2.1 Processo di training

Lo scopo del processo di training è quello di creare due pattern di riferimento, uno per i cicli Good ed uno per i Bad, con il quale confrontare

(29)

29

i dati in arrivo in tempo reale e le loro previsioni. Per la creazione di questi pattern si è utilizzato un dataset storico fornito dall’azienda cliente con i dati relativi alla variazione delle trentotto variabili analizzate per processi già terminati; ciascuno dei quali classificato in base al suo esito.

3.2.1.1 Analisi del dataset

I dati forniti dal cliente riguardano la rilevazioni delle variabili per quarantotto cicli suddivisi in diciassette il cui esito è stato positivo e trentuno il cui esito è stato negativo.

Figura 3.2 Suddivisione esito cicli nel dataset storico

Il dataset è formato da quarantotto file di estensione “.csv”, ognuno contenente i dati di un ciclo conclusosi nel passato. Nei file sono presenti, oltre ad una intestazione in cui si specifica la durata totale del ciclo, tante righe quante sono le diverse rilevazioni delle variabili e due colonne per ogni coppia, formata da un istante temporale e un valore, di ogni variabile. Un esempio è mostrato in Figura 3.1.

Figura 3.3 File CSV contenente le rilevazioni dei sensori per un ciclo di sterilizzazione

I vari cicli hanno tutti durate diverse, si va da un minimo di 4:47:55 fino ad un massimo di 16:19:00 con una media di 8:48:12. Le attuali modalità di rilevazione del fallimento dei cicli, consentono all’azienda cliente di stabilire l’esito della sterilizzazione circa dopo due ore dal suo

Good 35%

Bad 65%

(30)

30

inizio, come specificato in 2.3. Si è scelto quindi di considerare per le varie analisi la prima ora di ogni ciclo, sia per ragioni di performance, in quanto vengono costruiti pattern più corti, che per significatività della predizione, infatti prima si riconosce un potenziale fallimento e prima si possono attuare correzioni.

3.2.1.2 Pre-elaborazione dati e costruzione dei pattern

Il sistema di rilevamento e raccolta dati dai sensori utilizza un approccio basato sulla deadband. Questo significa che quando i dati variano all’interno di un intervallo predefinito, essi si considerano statisticamente equivalenti e non vengono quindi salvati dal sistema. L’approccio adottato è stato quello di definire una scala temporale comune a tutte le variabili, equispaziata secondo la massima risoluzione presente tra i dati, che nel caso specifico corrisponde ad un secondo. Successivamente si allocano i dati delle serie storiche lungo questa scala temporale comune. Per farlo, coerentemente con il metodo di rilevamento dati, in un istante in cui il dato è mancante si assegna il valore corrispondente al primo istante successivo in cui il dato è non nullo. In questo modo si definiscono serie temporali (tante quante sono le variabili in esame) che presentano segmenti costanti fintanto che i dati originali rilevati rimangono all’interno della deadband.

In Figura 3.4 e Figura 3.5 si mostrano, a titolo esemplificativo, rispettivamente i grafici dell’andamento di due cicli con esito Good e i grafici di due cicli con esito Bad risultanti dall’elaborazione appena descritta. Nella rappresentazione, la tipologia di sensore a cui fanno riferimento le variabili è identificabile dalla sua colorazione.

(31)

31

Figura 3.4 Andamento delle variabili nei cicli storici con esito Good

(32)

32

A questo punto si hanno a disposizione un certo numero di processi già classificati, ciascuno dei quali formato da trentotto serie storiche, tutte equispaziate e senza alcun dato mancante. Si applica dunque la fase di decomposizione della MSSA ai dati, separatamente per i cicli Good ed i cicli Bad.

In questa fase, come già anticipato in 3.1.1, si è deciso di utilizzare la decomposizione di tipo MSSA in quanto si è ritenuto più utile estrarre una struttura comune, si veda 3.1.3.2, a tutte le serie piuttosto che considerarle ognuna separatamente. A rafforzare questa scelta ha contribuito la considerazione che le serie evidenziano un certo andamento comune durante tutto il ciclo di sterilizzazione.

In Figura 3.6 sono mostrati, per quattro diversi cicli, gli autovettori risultanti dalla fase di decomposizione. Si può notare come le prime tre componenti singolari descrivano il comportamento della serie smussato rispetto al rumore e alle componenti oscillatorie di frequenza elevata.

Autovettori cicli esito Good Autovettori cicli esito Bad

(33)

33

Terminata la fase di decomposizione si ricostruiscono quindi le serie per entrambi gli insiemi. Il passo di ricostruzione della MSSA produce una versione smussata dei dati originali, come visibile in Figura 3.7 e Figura 3.8, rimuovendo il rumore ed applicando il grado di risoluzione desiderato, questo viene ottenuto raggruppando le prime tre componenti singolari ottenute dalla precedente fase di decomposizione.

I dati così ottenuti andranno a formare i due pattern di riferimento, uno per i cicli Bad e uno per i cicli Good, con cui confrontare i dati in arrivo per effettuare la classificazione.

Tramite lo script in R che realizza questo processo si crea un file di estensione ‘.RData’, contenente le due liste di pattern, che verrà poi usato dal successivo processo di test.

Serie Originale

Serie Ricostruita

(34)

34 Serie

Originale

Serie Ricostruita

Figura 3.8 Ricostruzione MSSA della prima ora dei cicli storici con esito Bad

3.2.2 Processo di test

Questo è il processo che riceve i dati in tempo quasi reale e li elabora per confrontarli con i pattern precedentemente creati, allo scopo di prevedere il fallimento o il successo del ciclo in atto. In questo processo entra in gioco il carattere predittivo del modello MSSA.

Si è scelto di ricevere in input 10 secondi di rilevazioni dalla sorgente dati prima di applicare il processo di test. Questo intervallo temporale permette, da una parte, di avere abbastanza dati per poter applicare la ricostruzione MSSA come descritto in precedenza, dall’altra invece, di essere abbastanza breve da poter fornire un aggiornamento della previsione dell’esito del ciclo in tempo quasi reale.

Una volta ricostruiti i dati si applica il modello di predizione MSSA, il cui funzionamento è identico a quanto descritto in 3.1.2, per ottenere la previsione dei successivi dieci valori, ottenendo così trentotto serie temporali ricostruite lunghe 20 secondi. A questo punto si applica il metodo di classificazione K-Nearest Neighbour confrontando ogni serie

(35)

35

temporale con i pattern ottenuti nel processo di training. Come misura di similarità si è utilizzata la distanza euclidea, scelta motivata soprattutto per le migliori prestazioni in termini di velocità di calcolo a discapito di altre tecniche come ad esempio la Dynamic Time Warping. Considerando la frequenza con cui dovrà essere effettuata la classificazione, si è preferito privilegiare questa caratteristica rispetto ad una maggiore accuratezza. Il confronto viene effettuato tra la sequenza predetta e le serie presenti negli insiemi Good e Bad. Si prende quindi la minore delle distanze per ogni insieme e si classifica ogni variabile in base alla minore fra le due.

Per un calcolo significativo della distanza, considerando che non è possibile conoscere a priori la porzione di pattern da considerare per il confronto, si è studiato un metodo alternativo che prevede di confrontare la sequenza predetta con una finestra scorrevole sui pattern. La finestra ha lunghezza pari alla serie con cui deve essere confrontata, in questo caso 20 secondi, e si sposta in avanti di un secondo alla fine di ogni confronto. Si considera quindi il tempo trascorso tra l’inizio delle rilevazioni e l’inizio del ciclo e si usa questo valore come punto di riferimento per scegliere l’intervallo di tempo in cui fare scorrere la finestra. L’approccio utilizzato è stato quello di scegliere un intervallo temporale di lunghezza 𝑛 secondi e di far scorrere la finestra dagli 𝑛/2 secondi precedenti l’istante temporale di riferimento fino ai successivi 𝑛/2. Vengono quindi effettuati 𝑛 − 20 confronti e si restituisce come output la minima distanza trovata.

3.2.3 Valutazione del modello

Per valutare l’accuratezza del modello proposto si è utilizzato il metodo 5-fold cross-validation. Come descritto in [4], questo metodo segmenta il dataset in cinque partizioni di uguale dimensione e, ad ogni esecuzione, ne seleziona una come insieme di test e le altre come insieme su cui costruire il modello. La divisione dei record nelle partizioni è stata scelta in modo stratificato, cioè mantenendo lo stesso rapporto esistente nel dataset completo fra la classe Good e la classe Bad.

(36)

36

La valutazione è stata effettuata considerando, per ogni ciclo presente nell’insieme di test, una rilevazione di 10 secondi estratta a partire da 30, 40, 50 e 60 minuti dopo l’inizio del ciclo. In questo modo è stato possibile valutare il comportamento del modello quando applicato in momenti diversi. Per il confronto di queste rilevazioni con i pattern, si è scelto un intervallo temporale di 30 secondi nei quali far scorrere la finestra.

L’algoritmo di valutazione ha quindi predetto, ad ogni esecuzione, l’esito per ogni variabile presente nei cicli dell’insieme di test usando i pattern creati dai restanti cicli. A queste predizioni e stata aggiunta la colonna class, contenente l’esito reale del ciclo. Questo procedimento è stato ripetuto per i vari istanti temporali presi in considerazione ed è stato quindi possibile effettuare un’analisi per individuare quali variabili siano utili ai fini dell’individuazione dell’esito del ciclo di sterilizzazione. L’analisi è stata condotta osservando la relazione esiste tra la previsione dell’esito di ogni singola variabile e l’esito reale del ciclo complessivo. Il risultato è visibile in Figura 3.9 in cui è mostrata la correlazione tra le variabili e l’esito del ciclo per i vari istanti temporali.

Figura 3.9 Correlazione fra esito del ciclo ed esito di ogni variabile per quattro diversi istanti temporali

L’analisi della correlazione ha evidenziato come la predizione di alcune variabili non sia utile ai fini dell’individuazione dell’esito del ciclo di sterilizzazione (la correlazione con l’attributo class è molto bassa), inoltre, osservando la correlazione fra coppie di variabili, alcune di esse risultano essere ridondanti in quanto fortemente correlate tra loro come è possibile vedere nell’esempio riportato in Figura 3.10.

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 3600 3000 2400 1800 media

(37)

37

Figura 3.10 Matrice di correlazione fra le variabili

Alla luce delle osservazioni precedenti si è quindi cercato un sottoinsieme delle variabili le cui caratteristiche fossero la maggiore correlazione con l’attributo class e la minore correlazione fra loro, per stabilire un criterio di scelta dell’esito del ciclo. Osservando la Figura 3.9, in particolare l’ultima riga, si può notare come le variabili v1, v11, v28 corrispondenti rispettivamente ai sensori ITP_AE-066-481-01-Hum.P10.PV, ITP_AE-066-492-03-Hum.P10.PV – relativi al controllo

dell’umidità – e ITP_TE-066-483-01.P10.PV – relativo al controllo della temperatura – siano quelle che evidenziano una maggiore correlazione con l’esito finale nei quattro casi considerati. A seguito di analisi euristiche, il criterio scelto consiste nel predire l’esito finale del ciclo guardando gli esiti delle tre variabili sopra indicate e prendendo quello maggioritario.

Per la valutazione delle prestazioni del modello, oltre all’accuratezza generale, si sono usate le metriche descritte in [9]. Queste sono particolarmente utili in presenza di una distribuzione delle classi sbilanciata, come nel caso in oggetto. Considerando infatti la sola accuratezza, un modello che predice sempre la classe Bad come esito del ciclo raggiungerebbe il 64,58%. Un classificatore di questo tipo sarebbe però completamente inutile, per questo nella valutazione vengono considerate anche le misure di:

(38)

38

 Recall: che esprime la frazione di esempi correttamente predetti su tutti quelli della stessa classe presenti nel dataset;  Precision: che esprime la frazione di esempi correttamente predetti su tutti quelli classificati come appartenenti alla stessa classe;

 F1-measure: che riassume le due misure precedenti in una

misura unica, calcolata come 𝐹1 = 2 ×𝑟𝑒𝑐𝑎𝑙𝑙 × 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛𝑟𝑒𝑐𝑎𝑙𝑙 + 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 In questo modo è possibile capire il comportamento del modello focalizzato per le due classi.

Con l’utilizzo del criterio precedentemente descritto si è valutata la prestazione del modello nei tre differenti periodi.

Nel primo caso, dopo 30 minuti dall’inizio del ciclo, l’accuratezza totale è del 66,67% classificando i cicli come visibile in Tabella 3.1.

Predizione Good Bad Classi reali

Good 7 10

Bad 6 25

Tabella 3.1 Matrice di confusione per il primo caso considerato

I risultati poco significativi ottenuti sono dovuti al comportamento delle variabili nell’intervallo temporale considerato. Come si può notare anche dagli esempi in Figura 3.4 e Figura 3.5, infatti, non si evidenziano valori significativi per le variabili, che rimangono per lo più costanti non permettendo di discriminare l’esito dei cicli. Ad ulteriore conferma si possono considerare i valori di recall e precisione per la classe Good contenuti in Tabella 3.2, da cui emerge chiaramente il problema nel riuscire a classificare questi cicli in presenza del comportamento delle variabili appena descritto.

(39)

39 Veri positivi Falsi positivi Veri negativi Falsi negativi

Recall Precisione F1-measure Accuratezza

Good 7 6 25 10 41,18% 53,85% 46,67%

Bad 25 10 7 6 80,65% 71,43% 75,76%

Totale 66,67%

Tabella 3.2 Statistiche accuratezza per il primo caso considerato

Nel secondo caso analizzato, eseguito dopo 40 minuti, si nota un miglioramento generale, arrivando ad una accuratezza del 72,92% classificando i cicli come visibile in Tabella 3.3.

Predizione Good Bad Classi reali

Good 9 8

Bad 5 26

Tabella 3.3 Matrice di confusione per il secondo caso considerato

Osservando la Tabella 3.4, ed in particolate il valore F1-measure, si

nota come sia migliorata in maniera significativa la valutazione soprattutto per la classe Good. Mentre dalla sola osservazione dai grafici sull’andamento delle variabili si può solo intuire come in questa fase le rilevazioni inizino ad assumere valori significativi, questi risultati dimostrano in più come i comportamenti fra i cicli con esito Good e quelli con esito Bad inizino a differenziarsi fra loro.

Veri positivi Falsi positivi Veri negativi Falsi negativi Recall Precisione F1 -measure Accuratezza Good 9 5 26 8 52,94% 64,29% 58,06% Bad 26 8 9 5 83,87% 76,47% 80% Totale 72,92%

Tabella 3.4 Statistiche accuratezza per il secondo caso considerato

Per il terzo caso, effettuato dopo 50 minuti dall’inizio del ciclo, si conferma la tendenza al miglioramento dell’accuratezza raggiungendo il 79,17%.

(40)

40

Predizione Good Bad Classi reali Good 11 6

Bad 4 27

Tabella 3.5 Matrice di confusione per il terzo caso considerato

Il miglioramento più evidente si ha nella classificazione della classe Good. L’aumento dei valori di recall e precisione, visibile in Tabella 3.6, fa infatti capire come si riesca allo stesso tempo sia ad individuare un maggior di casi appartenenti a questa classe sia ad essere maggiormente accurati nel farlo. Anche in questo caso i risultati dicono che all’avanzare del ciclo aumentano le possibilità di differenziare i due esiti.

Veri positivi Falsi positivi Veri negativi Falsi negativi

Recall Precisione F-measure Accuratezza

Good 11 4 27 6 64,71% 73,33% 68,75%

Bad 27 6 11 4 87,10% 81,82% 81,82%

Totale 79,17%

Tabella 3.6 Statistiche accuratezza per il terzo caso considerato

L’ultimo caso analizzato riguarda il confronto fra i valori rilevati dopo un’ora dall’inizio del ciclo. Qui si è ottenuta un’accuratezza totale della previsione del 83,33%, raggiunta classificando correttamente 40 cicli sui 48 totali, come visibile in Tabella 3.7. Si tratta di un risultato significativo che conferma la bontà del metodo scelto anche per questo caso specifico. Predizione Good Bad Classi reali Good 12 5 Bad 3 28

Tabella 3.7 Matrice di confusione per il quarto caso considerato

Data la maggior criticità nell’individuare un ciclo prossimo al fallimento, un dato importante è il valore elevato della F1-measure per la

(41)

41

un gran numero di casi appartenenti a questa classe (il 90,32%), ma che inoltre riesce a farlo con una notevole accuratezza (superiore al 84%).

Veri positivi Falsi positivi Veri negativi Falsi negativi

Recall Precisione F-measure Accuratezza

Good 12 3 28 5 70,59% 80% 75%

Bad 28 5 12 3 90,32% 84,85% 87,49%

Totale 83,33%

Tabella 3.8 Statistiche accuratezza per il quarto caso considerato

3.3 Osservazioni conclusive

La natura di questa tesi, cioè la realizzazione di un prototipo in grado di fornire una bozza di tutte le caratteristiche di un eventuale progetto completo, ha inevitabilmente portato ad intraprendere alcune analisi sulle modalità di sviluppo tenendo maggiormente in considerazione le tempistiche rispetto alla ricerca di soluzione ottime. La decisione di non approfondire ulteriormente le indagini è stata determinata in larga parte dalla dimensione del dataset storico: avendo, infatti, carenza di casi d’esempio c’è la possibilità che si manifesti il fenomeno dell’overfitting, che consiste nel rischiare di adattare troppo il modello ai casi d’esempio perdendo in generalità. Ciò nonostante i risultati ottenuti dalla validazione del modello sono soddisfacenti per il grado di accuratezza ricercato in questa fase e i pattern costruiti dai dati storici saranno poi usati per la successiva analisi dei dati reali.

(42)

42

4 T

ECNOLOGIE E ARCHITETTURA

In questo capitolo verrà trattata la fase del lavoro di tesi relativa all’ingegnerizzazione del sistema oggetto del lavoro di tesi. Nella prima sezione verranno introdotte le tecnologie utilizzate e la motivazioni che ne hanno guidato la scelta, mentre nella seconda sezione verrà illustrata l’architettura scelta per il sistema.

4.1 Tecnologie utilizzate

Il POC realizzato prevede l’impiego di una serie di tecnologie innovative che l’azienda SDG ha intenzione di proporre ai vari clienti per la soluzione di problemi inerenti la gestione e analisi dei Big Data. Uno degli obiettivi della realizzazione di questo prototipo riguarda appunto il riuscire ad introdurre nell’azienda cliente la consapevolezza che queste tecnologie possono dare un valore aggiunto fondamentale nell’ambito concorrenziale in cui si trova a competere. Un giudizio positivo sull’esito finale del POC risulterebbe quindi fondamentale per dare luogo all’avvio di tutta una serie di progetti che consoliderebbero, da una parte, il rapporto con il cliente e, dall’altra, lo sviluppo interno di una serie di best practice da riutilizzare per acquisirne di nuovi.

Le tecnologie principali, che verranno descritte in dettaglio nelle sezioni successive, su cui si è incentrato il lavoro sono:

 IBM Infosphere Streams per l’analisi in tempo reale dei dati;  IBM PureData for Analytics per la memorizzazione;

 Tableau per la visualizzazione.

Come già anticipato nel capitolo precedente è stato inoltre utilizzato il software R per l’implementazione degli script necessari alla modellazione e previsione dell’esito dei cicli di sterilizzazione.

Riferimenti

Documenti correlati

xx/xx del xx.xx.xxxx , che approva lo schema della presente convenzione, la giunta regionale stante la conferma dell’utilizzo dei documenti indicati dal Piano di protezione

Il Sistema Solare è popolato da una miriade di corpi minori che orbitano intorno al Sole; questi vengono classificati, in base alla loro natura e alla loro massa, in pianetini,

Svolgi l’analisi grammaticale dei seguenti nomi sul quaderno, specificando il genere e se sono individuali (singolari o plurali)o collettivi (singolari o plurali):..

Il sistema realizzato si basa su una centralina di monitoraggio collegata ad un server centrale di raccolta dati per mezzo della rete GPRS. All’interno della centralina

Il sistema nervoso regola la vita psichica dell'uomo, le sue sensazioni, i suoi movimenti, la funzione di tutti gli organi e di tutti gli apparati.. Il sistema nervoso è una

Nel caso in cui le domande siano più di 70 e qualora il Consiglio Scientifico del Master ritenga di voler ampliare il numero degli iscritti, l’ammissione sui posti aggiuntivi

Ambiente sonoro = fenomeno fisico | Soundscape (paesaggio sonoro) = costrutto percettivo.. Ambiente sonoro 

il documento &#34; Linee guida per la progettazione e la gestione delle reti di monitoraggio acustico aeroportuale&#34;, allegato alla presente delibera di cui fa