POLITECNICO DI TORINO Tesi di Laurea Specialistica

POLITECNICO DI TORINO
III Facoltà di Ingegneria
Corso di Laurea Specialistica in Ingegneria Informatica
Tesi di Laurea Specialistica
Individuazione di situazioni di rischio
in dati clinici rilevati da sensori
Relatrice
Prof.ssa Elena Baralis
Candidati
Daniele Apiletti
Giulia Bruno
Settembre 2005
Desideriamo ringraziare
Tania, per l’aiuto e la disponibilità
e Raffaele, per il prezioso supporto medico.
Indice
CAPITOLO 1 – INTRODUZIONE .........................................................................1
CAPITOLO 2 – ANALISI DI DATI CLINICI ..........................................................3
2.1 Esigenze delle persone anziane ..................................................................3
2.2 Apparecchiature per la misura dei segnali fisiologici..............................4
2.2.1 Battito cardiaco .....................................................................................4
2.2.2 Pressione arteriosa.................................................................................5
2.2.3 Saturazione di ossigeno.........................................................................6
2.3 Progetti .........................................................................................................7
2.4 Discussione .................................................................................................11
CAPITOLO 3 – TECNICHE DI ANALISI DEI DATI..............................................12
3.1 Introduzione ..............................................................................................12
3.2 Data mining e knowledge discovery ........................................................13
3.3 Applicazioni di data mining .....................................................................15
3.4 Fasi del processo di data mining..............................................................15
3.4.1 Preparazione dei dati ...........................................................................15
3.4.2 Data mining.........................................................................................18
3.4.3 Visualizzazione, interpretazione e previsione.....................................18
3.5 Data mining ...............................................................................................18
3.5.1 Funzionalità di data mining.................................................................19
3.6 Clustering...................................................................................................23
3.6.1 Descrizione generale ...........................................................................23
3.6.2 Misure di distanza ...............................................................................24
3.6.3 Principali metodi di clustering ............................................................25
3.7 Sequenze temporali ...................................................................................31
3.8 Discussione .................................................................................................31
3.8.1 Scelta della funzionalità di data mining ..............................................31
3.8.2 Scelta dell’algoritmo di clustering ......................................................33
CAPITOLO 4 – IGUANA – IDEA .....................................................................35
4.1 Introduzione ..............................................................................................35
Indice
4.2 Creazione del modello...............................................................................37
4.2.1 Evoluzione ..........................................................................................37
4.2.2 Funzione di rischio..............................................................................38
4.2.3 Ipotesi sulla frequenza.........................................................................42
4.2.4 Clustering ............................................................................................43
4.3 Classificazione ...........................................................................................43
4.4 Rischio totale .............................................................................................47
CAPITOLO 5 – IGUANA – IMPLEMENTAZIONE ............................................49
5.1 Introduzione ..............................................................................................49
5.2 Introduzione a R........................................................................................49
5.3 Main............................................................................................................52
5.4 Lettura dei dati..........................................................................................53
5.5 Pre-elaborazione dei dati..........................................................................54
5.6 Calcolo della media mobile.......................................................................57
5.7 Creazione del modello...............................................................................60
5.7.1 Modello 1 ............................................................................................60
5.7.2 Modello 2 ............................................................................................61
5.7.3 Modello 3 ............................................................................................63
5.8 Classificazione dei dati..............................................................................64
5.8.1 Classificatore 1....................................................................................65
5.8.2 Classificatore 2....................................................................................67
5.8.3 Classificatore 3....................................................................................71
CAPITOLO 6 – BASI DI DATI MEDICHE ...........................................................75
6.1 Introduzione ..............................................................................................75
6.2 La base di dati MIMIC .............................................................................76
6.2.1 Research Resource for Complex Physiologic Signals ........................76
6.2.2 Descrizione..........................................................................................78
6.2.3 Scelta dei dati ......................................................................................79
6.3 La base di dati Fantasia............................................................................81
6.4 Pre-elaborazione dei dati..........................................................................82
6.4.1 PhysioToolkit ......................................................................................82
6.4.2 Conversione di formato.......................................................................83
6.4.3 Elaborazione........................................................................................85
Indice
CAPITOLO 7 – ANALISI DEI RISULTATI ..........................................................94
7.1 Introduzione ..............................................................................................94
7.2 Modelli generati con IGUANA per MIMIC ...........................................95
7.2.1 Pazienti scelti ......................................................................................95
7.2.2 Parametri impostati .............................................................................97
7.3 Modello generato con IGUANA per Fantasia ........................................99
7.4 Esperimenti con MIMIC ........................................................................100
7.4.1 Campione di pazienti ........................................................................101
7.4.2 Numero di cluster..............................................................................107
7.4.3 Ampiezza della sliding window ........................................................113
7.4.4 Frequenza di campionamento ...........................................................116
7.4.5 Soglie di normalità ............................................................................119
7.4.6 Algoritmo di clustering .....................................................................124
7.4.7 Distanza inter-cluster ........................................................................134
7.4.8 Pesi ....................................................................................................141
7.4.9 Livelli di rischio ................................................................................152
7.5 Esperimenti con Fantasia .......................................................................158
7.5.1 Confronto tra pazienti sani ................................................................158
7.5.2 Confronto tra pazienti in diverso stato di salute................................161
7.6 Prestazioni del classificatore ..................................................................164
7.6.1 Risorse di calcolo ..............................................................................164
7.6.2 Risorse di memoria ...........................................................................166
7.7 Commenti generali ..................................................................................168
CAPITOLO 8 – CONCLUSIONI .......................................................................169
8.1 Obiettivi raggiunti...................................................................................169
8.2 Sviluppi futuri .........................................................................................170
8.2.1 Studio delle correlazioni ...................................................................170
8.2.2 Funzione di rischio totale ..................................................................171
8.2.3 Macchina a stati.................................................................................171
8.2.4 Frequenza di misurazione .................................................................171
8.2.5 Creazione del modello bilanciata ......................................................171
INDICE DELLE FIGURE ...................................................................................... 172
INDICE DELLE TABELLE .................................................................................... 175
BIBLIOGRAFIA................................................................................................... 176
Capitolo 1
Introduzione
Un insieme relativamente vasto di persone è affetto da patologie o presenta
disturbi di coscienza tali da non poter formulare richieste di aiuto al di fuori di contesti
perimetralmente definiti. Spesso l’assistenza permanente o il ricovero in ospedale non
sono indispensabili, ma richiesti ugualmente dal paziente per avere un soccorso
immediato in caso di necessità (ad esempio un malore improvviso o un’alterazione
pericolosa di valori fisiologici).
Grazie ai recenti sviluppi tecnologici nell’area delle reti di sensori è possibile
monitorare continuamente i segnali fisiologici dei soggetti sotto osservazione,
indipendentemente dalle attività da loro svolte e dai luoghi in cui si trovano. Diversi
segnali vitali possono essere rilevati attraverso una piccola rete di sensori, integrati in
oggetti poco invasivi come orologi o bracciali, distribuiti sul corpo umano. In caso di
malessere o di alterazione significativa di uno o più segnali vitali, è possibile
identificare una situazione di rischio e richiedere un intervento adeguato. Recentemente
si stanno sviluppando progetti per realizzare sia dispositivi tecnologici adatti alla
raccolta e alla ritrasmissione dei dati, sia algoritmi per il trattamento dei dati misurati e
la loro interpretazione, allo scopo di individuare situazioni di rischio in tempo reale e
inviare immediatamente in modo automatico richieste di aiuto. La nostra tesi si
concentra su questo secondo punto.
L’obiettivo che ci siamo prefissati riguarda la definizione e la realizzazione di
algoritmi di analisi dei dati volti alla caratterizzazione e all’individuazione tempestiva di
situazioni rischiose a partire dai flussi di dati inviati dai sensori.
Ci siamo concentrati sull’analisi di situazioni di emergenza e abbiamo
considerato solo flussi di dati relativi a segnali fisiologici vitali. Tali segnali devono
permettere di riconoscere gravi alterazioni dello stato di salute del paziente e devono
poter essere misurati tramite sensori indossabili e non invasivi, senza limitare i
movimenti dei pazienti ad un ambiente chiuso, per considerare anche le situazioni di
rischio all’esterno dell’abitazione. Abbiamo scelto di considerare i segnali di battito
cardiaco, pressione arteriosa sistolica e diastolica, saturazione arteriosa di ossigeno.
Abbiamo studiato un algoritmo di classificazione in grado di riconoscere il
profilo di una situazione a rischio per il paziente, a partire dai dati rilevati dai sensori e
valutati entro appropriate finestre temporali. Ad ogni profilo può essere associato, se
1
Capitolo 1 - Introduzione
necessario, un particolare soccorso o intervento richiesto automaticamente al centro
medico più vicino. Un aspetto innovativo del classificatore, che sarà installato a bordo
di un dispositivo mobile alimentato a batterie, sarà il contenimento del suo consumo
energetico.
Analizzando l’andamento dei segnali fisiologici di persone anziane, abbiamo
ideato una funzione di calcolo del rischio del paziente ad ogni istante. Attraverso
tecniche di clustering abbiamo diviso i valori del rischio in classi corrispondenti a
diversi livelli di pericolosità, dalla normalità all’emergenza, in modo che ad ogni istante
il paziente si trovi in una determinata classe. Le classi con livello di rischio più elevato
possono avere associato un allarme da inviare al medico o all’ospedale.
Abbiamo realizzato un prototipo in grado di creare un modello e di utilizzarlo
per classificare i nuovi dati. Per mantenere una maggiore flessibilità abbiamo introdotto
alcuni parametri e abbiamo confrontato i risultati ottenuti variandone uno per volta.
Il documento è organizzato nel modo seguente.
Nel Capitolo 2 presentiamo lo stato dell’arte della ricerca ad oggi, in particolare
le apparecchiature esistenti da poter utilizzare per le misure di pressione arteriosa,
battito cardiaco e saturazione di ossigeno e i progetti in corso o previsti, con relativi
pregi e difetti. Infine discutiamo brevemente le differenze di tali progetti dal nostro
approccio e le motivazioni che ci hanno portato a svilupparlo.
Nel Capitolo 3 forniamo una panoramica sul data mining, spiegando le fasi che
caratterizzano questo processo. Ci concentriamo principalmente sulle tecniche di
clustering, che abbiamo deciso di utilizzare, ritenendole migliori per la risoluzione del
nostro problema.
Nel Capitolo 4 illustriamo il nostro framework, denominato IGUANA
(Individuation of Global Unsafe ANomalies and activation of Alarms), spiegando i
concetti fondamentali. Descriviamo il funzionamento generale e i meccanismi di
interazione tra i vari moduli, in modo indipendente dall’implementazione sottostante. In
particolare motiviamo la funzione di calcolo del rischio che abbiamo ideato, illustriamo
la fase di creazione del modello e quella della sua applicazione in tempo reale ai nuovi
dati rilevati dai sensori.
Nel Capitolo 5 ci soffermiamo sui dettagli implementativi del prototipo di
IGUANA. Descriviamo la struttura del programma, che abbiamo scritto in R, riportando
le parti di codice più significative.
Nel Capitolo 6 descriviamo i dati analizzati, che abbiamo prelevato da database
disponibili in Internet, data l’enorme difficoltà di reperirli in forma diretta. In questo
capitolo descriviamo anche la fase di pre-elaborazione dei dati, perché concettualmente
è più inerente ad essi che all’algoritmo di analisi.
Nel Capitolo 7 analizziamo i risultati ottenuti e il diverso comportamento
dell’algoritmo al variare dei parametri impostabili. Assegniamo di volta in volta un
valore diverso ad ogni parametro, riportiamo i grafici relativi in modo da visualizzare i
diversi risultati, e motiviamo le nostre scelte dove necessario.
Nel Capitolo 8, infine, riportiamo le conclusioni e le idee per eventuali sviluppi
futuri.
2
Capitolo 2
Analisi di dati clinici
2.1 Esigenze delle persone anziane
La salute e la qualità della vita degli anziani costituiscono un tema di grande
rilevanza che ancora non si riflette appieno nell’azione dei servizi di prevenzione.
La popolazione italiana ha subito un progressivo invecchiamento nel corso degli
ultimi decenni (circa il 18% ha un’età superiore ai 65 anni1), dovuto ai profondi
mutamenti demografici derivati dal calo della natalità e dalla consistente riduzione della
mortalità. Spesso però all’allungamento della vita non corrisponde un effettivo
miglioramento della sua qualità: la diminuzione dell’autosufficienza, la presenza di
patologie multiple e l’isolamento sociale sono problemi che aumentano e si aggravano
con l’età.
L’aumento del numero degli anziani con problemi di salute, la diminuzione del
numero dei membri della famiglia che possono prendersi cura di loro, l’aumento del
fabbisogno di servizi sanitari, inclusa l’assistenza a domicilio, e l’aumento dei costi
sono i problemi principali cui si deve far fronte quando la popolazione invecchia.
Tra le patologie più diffuse negli anziani si registrano l’insufficienza cardiaca e
l’ipertensione arteriosa come riportato in [1, 2]. In particolare appartengono al primo
gruppo le seguenti malattie:
ƒ l’angina pectoris, dal latino “dolore di petto”, dovuta ad un’improvvisa
riduzione dell’apporto di sangue al cuore, o a parte di esso, quando la
presenza di restringimenti nelle arterie coronarie non consente l’afflusso
regolare di sangue;
ƒ la fibrillazione atriale, un’aritmia, o anomalia del ritmo cardiaco,
caratterizzata da un aumento della frequenza con battiti non regolari; può
impedire al cuore di pompare la quantità di sangue e ossigeno sufficiente a
soddisfare i bisogni del corpo;
ƒ l’attacco ischemico transitorio, detto anche TIA, che consiste in
un’interruzione di breve durata del flusso di sangue in una parte del cervello
e spesso rappresenta un campanello di allarme per un ictus.
1
http://www.ministerosalute.it
3
Capitolo 2 - Analisi di dati clinici
L’ipertensione arteriosa invece è un aumento eccessivo della pressione arteriosa,
cioè della forza con cui il cuore pompa il sangue nelle arterie. La parete delle arterie
reagisce a questo aumento accumulando sostanze grasse (colesterolo), ispessendosi e
indurendosi. Queste alterazioni pericolose della parete delle arterie vengono definite con
il nome di arteriosclerosi (calcificazione dell’arteria). Un’arteria ristretta è un buon
terreno per la formazione di coaguli, che possono portare a un’occlusione improvvisa e
totale del vaso.
L’ipertensione ha conseguenze devastanti per i reni, compromettendo
progressivamente la loro funzione escretoria. Il cuore, nel tentativo di vincere la
resistenza maggiore delle arterie, reagisce con l’ingrossamento della parete muscolare
(ipertrofia). Tuttavia, se questo sforzo eccessivo non viene alleggerito abbassando la
pressione, con il tempo la parete cardiaca si trasforma, la cavità si dilata e la capacità di
pompare sangue diventa inadeguata (insufficienza cardiaca).
Gli obiettivi verso i quali si sta muovendo la medicina contemporanea, in
particolare quella rivolta all’assistenza delle persone anziane ma ancora autosufficienti,
sono:
ƒ il monitoraggio continuo dei segnali fisiologici, attraverso apparecchiature
non invasive (non ingombranti e che non limitino i movimenti del paziente);
ƒ l’analisi dei dati raccolti per individuare tempestivamente situazioni di
rischio, riducendo l’assistenza a domicilio, i periodi di osservazione in
strutture ospedaliere e i ricoveri in case di cura.
2.2 Apparecchiature per la misura dei segnali fisiologici
Non ci siamo occupati direttamente della parte di rilevazione delle misure
tramite sensori; per dimostrare però che esistono in commercio strumenti adatti,
forniamo una breve panoramica sul funzionamento di quelli che ci sarebbero utili per i
parametri che abbiamo preso in considerazione in questa tesi, ossia battito cardiaco,
pressione arteriosa e saturazione periferica di ossigeno nel sangue.
2.2.1 Battito cardiaco
Il battito cardiaco è generato dagli impulsi elettrici provenienti dalle
terminazioni nervose nell’atrio, i quali attivano i muscoli del cuore affinché inizino il
movimento meccanico per pompare il sangue nelle arterie.
La frequenza può variare nel corso della giornata, diminuendo durante il sonno e
aumentando durante le attività fisiche. È importante rilevare le aritmie, cioè i movimenti
non ritmici del cuore, dovuti a impulsi elettrici anomali o provenienti da altre aree che
di solito non li originano. Un’aritmia può manifestarsi come battiti rapidi e regolari
(tachicardia), battiti rapidi e irregolari (fibrillazione), battiti troppo lenti (bradicardia) o
battiti straordinari (contrazioni premature), come descritto in [3].
4
Capitolo 2 - Analisi di dati clinici
I dispositivi in commercio, provenienti da diverse case produttrici, in particolare
nella forma di orologi o bracciali come quelli riportati in Figura 2.1, in vendita al costo
di qualche centinaio di euro [4, 5], misurano l’intervallo di tempo in millisecondi tra un
battito e il successivo, o più precisamente l’intervallo tra i due punti R della forma
d’onda di esempio riportata nella Figura 2.2.
Figura 2.1 Esempi di orologi per la misura del battito cardiaco
Figura 2.2 Intervallo tra due punti R
2.2.2 Pressione arteriosa
La pressione nella circolazione sanguigna viene generata dall’azione ritmica di
pompaggio del cuore, che è un potente muscolo cavo (come descritto in [1]).
Contrariamente ai tubi rigidi delle canalizzazioni, le arterie hanno pareti elastiche e
muscolari che fanno in modo che nell’intervallo tra un battito e l’altro la pressione non
crolli e arrivi ossigeno agli organi che ne hanno maggior bisogno.
Quando il muscolo cardiaco si contrae, espelle con forza il sangue nelle arterie,
generando un picco di pressione. Questo picco viene rilevato nella misurazione sotto
forma di pressione massima o sistolica. Il termine sistolico indica che è determinato dal
cuore che si contrae (sistole = contrazione).
Nella fase di rilasciamento del cuore (diastole), le sue cavità si riempiono di
sangue, mentre nelle arterie cala moderatamente la pressione. Quando il cuore si rilassa,
la misurazione registra il valore minimo (diastolico), che corrisponde alla resistenza che
5
Capitolo 2 - Analisi di dati clinici
trova il flusso sanguigno nello scorrere nelle piccole biforcazioni delle arterie a livello
degli organi e dei tessuti.
La pressione arteriosa è misurabile nei suoi valori di massima e minima tramite
l’uso di appositi bracciali, come quelli riportati in Figura 2.3.
Figura 2.3 Esempi di bracciali per la misura della pressione arteriosa
2.2.3 Saturazione di ossigeno
Il puls-ossimetro (SpO2) misura in modo continuo e non invasivo la saturazione
arteriosa di ossigeno (percentuale di ossiemoglobina) su un sito periferico (ad esempio
un dito del piede o della mano, o il lobo dell’orecchio), come spiegato in [6, 7, 8].
Il monitoraggio della SpO2 offre informazioni generali sul sistema
cardiorespiratorio e particolari sul trasporto di ossigeno nel corpo. Viene usato per il
monitoraggio di pazienti a rischio di ipossiemia. È utile perché indolore, facile da
applicare, continuo e non invasivo.
Il sensore per ossimetria (Figura 2.4) contiene due diodi a emissione luminosa
(LED) che trasmettono luce rossa e infrarossa attraverso le estremità. La luce trasmessa
viene quindi ricevuta da un rivelatore ottico. Il sangue saturo di ossigeno assorbe la luce
in modo diverso dal sangue non saturo. Pertanto, la quantità di luce rossa e infrarossa
assorbita dal sangue che scorre attraverso una zona periferica del corpo adatta, in genere
un dito negli adulti e un piede nei neonati, può essere usata per calcolare il rapporto fra
l’emoglobina ossigenata e l’emoglobina totale nel sangue arterioso. Un monitor
visualizza tale rapporto come percentuale di SpO2. In alternativa al sensore a pinza è
possibile usare anche un cerotto (Figura 2.5).
Figura 2.4 Sensore a pinza per la misura della saturazione di ossigeno
6
Capitolo 2 - Analisi di dati clinici
Figura 2.5 Cerotto per la misura della saturazione di ossigeno
2.3 Progetti
La ricerca a livello europeo ed italiano sull’industria dei sensori indossabili è
uno dei temi caldi del momento.
La comunità europea ha già finanziato progetti di ricerca nel V progetto quadro,
in particolare il progetto MobiHealth [9]. Tale progetto, come tutti quelli attivi in questo
settore, ha favorito lo sviluppo di nuovi servizi mobili nell’area della salute,
permettendo al paziente di stare in movimento durante il processo di monitoraggio. La
diversa dislocazione dei sensori che acquisiscono i dati spinge verso la ricerca di
dispositivi capaci di operare all’interno di BAN (Body Area Network) e trasmettere ad
un sistema di monitoraggio centrale. In tale progetto, però, la parte di analisi e
correlazione dei segnali vitali avviene soltanto in ospedale ed è automatizzata solo per
poche e specifiche combinazioni di segnali; in tutti gli altri casi richiede l’intervento di
un operatore medico per la diagnosi.
Attualmente sono in corso, o previsti, parecchi progetti di monitoraggio a
distanza di persone anziane, in collaborazione con ospedali o case di riposo.
Le componenti dei progetti sono in genere tre:
ƒ uso di dispositivi mobili da parte dei pazienti per il monitoraggio di alcuni
parametri (battito cardiaco, pressione, respirazione, inclinazione e
accelerazione lungo gli assi),
ƒ ricezione dei dati dei sensori da parte di una stazione base in modalità
wireless (senza fili),
ƒ raccolta dei dati di tutte le stazioni in un centro di monitoraggio.
A tale proposito si possono citare in particolare due progetti italiani, entrambi
presentati nel 2005.
7
Capitolo 2 - Analisi di dati clinici
Il primo, il progetto Aditech [10], riguarda la sperimentazione su venti anziani
piemontesi di un innovativo sistema di monitoraggio a distanza per migliorare la qualità
della vita delle persone con problemi di autonomia ed ottimizzare i percorsi di
assistenza. La sperimentazione, voluta dalla Regione Piemonte e realizzata dal CETAD
(Centro Eccellenze Tecnologie per Anziani e Disabili) e dall’Istituto Superiore Mario
Boella (ISMB), è stata presentata alla casa di riposo Città di Asti dall’assessore
regionale alle Politiche Sociali Mariangela Cotto, dal presidente dell’ISMB Rodolfo
Zich e dal presidente del CETAD Carlo Poggio, che hanno dato dimostrazione pratica
del funzionamento del sistema di telemonitoraggio.
Il progetto Aditech è costituito da tre componenti:
ƒ un dispositivo mobile da indossare al polso, come un normale orologio,
ƒ una stazione base che riceve in modalità wireless i dati dell’orologio,
ƒ un centro di monitoraggio che raccoglie e gestisce i dati provenienti dalle
diverse stazioni.
Il prototipo dell’orologio, attraverso appositi sensori, è in grado di rilevare i
seguenti parametri:
ƒ ambientali (temperatura, luminosità),
ƒ fisiologici (temperatura cutanea, mobilità della persona e quindi movimenti
bruschi o immobilità, battito cardiaco),
ƒ di funzionamento (rimozione dal polso, guasto, copertura radio, livello
batteria).
La prima sperimentazione partirà su venti anziani, nella casa di riposo Città di
Asti e all’Istituto di Riposo per la Vecchiaia di Torino, con la collaborazione degli
operatori e degli anziani: il metodo di lavoro sarà centrato sulla persona anziana,
considerata nell’insieme delle sue caratteristiche, delle sue esigenze e dell’ambiente in
cui vive. Tenendo conto di questi aspetti sarà possibile migliorare la funzionalità,
l’efficienza, la semplicità d’uso e la sicurezza dell’intero sistema di telemonitoraggio.
Il secondo progetto, descritto in [11] e realizzato dalla SOGIT ONLUS - Sezione
di Lignano Sabbiadoro - con la collaborazione del Comune di Lignano Sabbiadoro,
riguarda il telemonitoraggio dei segnali fisiologici per la popolazione anziana residente
e turistica della città di Lignano Sabbiadoro. Prevede l’utilizzo di MEMS (MicroElectro-Mechanical Systems), sensori micro-elettro-meccanici intelligenti, che abbinano
funzioni elettriche, di gestione di fluidi, ottiche, biologiche, chimiche e meccaniche in
uno spazio estremamente ridotto. Tali sensori possono essere impiegati per il
monitoraggio continuo delle funzioni vitali attraverso il loro interfacciamento con
ricevitori domestici e territoriali a radiofrequenze collegati ad una centrale operativa
sanitaria.
La ditta Wireless Sensor Networks di Monza ha recentemente perfezionato un
particolare registratore di dati biomedici, basato su sensori MEMS e dotato di scheda
flash di raccolta dei dati.
Nell’ambito di tale progetto, si svilupperanno le seguenti azioni:
ƒ posizionamento di stazioni riceventi automatiche in tre punti ad alta densità
di popolazione all’interno della città di Lignano Sabbiadoro;
8
Capitolo 2 - Analisi di dati clinici
ƒ
predisposizione e fornitura di sensori ai pazienti con scheda di memoria e
scaricamento wireless automatico dei dati in prossimità delle colonnine
riceventi (“BIOTOTEM wireless”);
ƒ progettazione ed attivazione di un sito internet gestito da server protetto per
la consultazione e gestione di dati e referti da parte di personale medico
locale e non (medici di fiducia nazionali ed internazionali dei vari pazienti,
con password d’accesso; specialisti sempre con password);
ƒ creazione di una rete di assistenza locale ed eventualmente convenzione con
un call center specializzato.
Si è scelta la città di Lignano Sabbiadoro perché è una località turistica
internazionale che durante il periodo estivo presenta due peculiari problematiche:
ƒ i familiari anziani dei lavoratori stagionali lamentano notevole difficoltà ad
eseguire molte attività, tra cui le visite di controllo, soprattutto a causa della
mancanza dell’accompagnatore;
ƒ i pazienti non residenti, in particolar modo quelli stranieri, che svolgono
alcuni controlli medici di routine riferiscono difficoltà a trasmettere
velocemente i referti grafici e testuali al proprio medico di fiducia nel paese
d’origine.
Con questa iniziativa si desidera facilitare l’applicazione di protocolli di
prevenzione ed assistenza medica continuativa a favore delle categorie più deboli. Gli
obiettivi prefissati sono la diffusione di protocolli di prevenzione basati su nuove
tecnologie a favore della popolazione anziana carente in accompagnatori, mezzi di
trasporto o lontana da strutture sanitarie (esclusa l’emergenza), e la gestione elettronica
della documentazione sanitaria dei pazienti semi e non autosufficienti non residenti.
Non solo in Italia si assiste all’avanzamento della ricerca nel campo del
monitoraggio continuo di anziani, disabili o pazienti di malattie croniche nelle loro
abitazioni, per evitare il ricovero in una casa di cura.
Un sistema simile è stato progettato nell’Università nazionale coreana di
Hankyong dal prof. Yong Tae-Kim. Come descritto in [12], i dati medici del paziente, o
biosegnali, raccolti con sensori applicati sulle zone di interesse del corpo, vengono
automaticamente elaborati in un palmare, a cui l’intero sistema è collegato. Questo
dispositivo trasmette a sua volta le informazioni via web usando una rete senza fili da
casa direttamente all’ospedale o al medico curante. L’eventuale emergenza viene
segnalata via SMS tramite un sistema di telefonia collegato. Lo stato di salute è
continuamente monitorato e quindi è possibile prevenire o intervenire in tempo. Il
prototipo, presentato a Sidney al convegno organizzato dal Korea Advanced Institute of
Science and Technology e dalla University of New South Wales, è già in
sperimentazione in alcuni ospedali coreani.
Nell’ambito del data mining i ricercatori si sono dedicati alla scoperta di profili
comportamentali analizzando le variazioni temporali di parametri qualitativi e
quantitativi registrati da sensori. In particolare Florence Duchene, come spiegato in [13,
14], ha sviluppato un metodo per trovare strutture ed estrarre regolarità nelle sequenze
dei dati registrati, per individuare i comportamenti frequenti e definire un pattern
9
Capitolo 2 - Analisi di dati clinici
comportamentale di una persona nella propria abitazione. Ogni deviazione da questo
profilo è considerata come una possibile situazione critica. L’attività di una persona,
direttamente legata al suo stato di salute, è spesso descrivibile intuitivamente in termini
di azioni semplici (alzarsi, chiudere una porta, ecc.) e poi di attività (mangiare, dormire,
vestirsi, ecc.). Un deterioramento nello stato di salute di solito causa disordini
comportamentali, osservabili come aumento del rischio di cadute, lentezza nell’eseguire
semplici operazioni e in generale incapacità di eseguire attività quotidiane.
In [14] Florence Duchene prende in considerazione, per un certo periodo di
tempo, i dati di battito cardiaco, livello di attività (tramite un accelerometro), postura
(persona sdraiata, seduta o in piedi) e quelli relativi alla casa (come l’occupazione delle
stanze). Individua quindi le fasi di astrazione e di data mining; la prima permette di
ottenere una rappresentazione sintetica dei dati come sequenze di simboli, ognuno dei
quali denota l’esecuzione di un’attività per un certo tempo, la seconda seleziona le
sottosequenze temporali più frequenti (chiamate tentative motifs) e poi applica su di esse
un algoritmo di clustering (le sequenze rappresentative delle classi sono chiamate timeseries motifs).
La maggior parte dei ricercatori si concentra sul monitoraggio all’interno di
edifici, in particolare la casa dei pazienti [15, 25, 26, 27, 28, 29, 30, 31].
Ad esempio in [15] viene descritta una Smart Home, ovvero un ambiente
intelligente in grado di acquisire conoscenza sui suoi abitanti e di gestire
automaticamente il controllo di parecchi aspetti come la climatizzazione e
l’illuminazione della casa, oltre alle emergenze.
Lo scenario illustrato, che vede come protagonista un ragazzo chiamato Bob, è il
seguente. Per minimizzare il consumo energetico, la Smart Home spegne il
riscaldamento durante la notte; alle 6:45 lo accende, perché sa che la casa impiega un
quarto d’ora a riscaldarsi. Alle 7 fa suonare la sveglia, accende la luce in camera da letto
e mette in moto la macchinetta del caffè. Quando Bob entra in bagno accende
automaticamente la luce, la spegne quando esce, e trasmette le ultime notizie su uno
schermo, ricordandogli le medicine da prendere a colazione.
Durante il funzionamento la Smart Home registra e analizza i dati e se rileva una
situazione anomala, ad esempio il fatto che Bob non esce più dal bagno (magari perché
si è addormentato sotto la doccia), se ne accorge e prende provvedimenti.
In altri casi l’interesse è rivolto ad aspetti molto specifici, ad esempio l’analisi
dei dati relativi ai malati di diabete, come descritto in [16].
Per quanto riguarda le tecniche di analisi dei dati, il problema dell’approccio
classico di ricerca delle regole di associazione è limitato all’individuazione dei
comportamenti più frequenti (si pensi ad esempio ai numerosi studi sul cosiddetto caso
del “carrello della spesa”, in cui si individuano regole del tipo “se il cliente compra un
certo prodotto x all’istante t1, è probabile che compri il prodotto y all’istante t2”). Nel
nostro caso, però, questi approcci non sono adeguati, perché le situazioni di rischio sono
per definizione quelle meno frequenti, e non vengono rilevate dagli algoritmi classici,
come Apriori [18], GSP [19], SPIRIT [20], SPADE [21] e PrefixSpan [22], che
individuano regole basate su un numero minimo di casi. Non si può risolvere il
10
Capitolo 2 - Analisi di dati clinici
problema riducendo la soglia oltre la quale una sequenza è considerata frequente
altrimenti si rischia di estrarre troppe regole e associazioni casuali.
Un’altra soluzione può essere quella di utilizzare dati già classificati, ovvero una
sequenza di valori con i relativi allarmi che sono stati lanciati. Come descritto in [23],
l’algoritmo proposto scopre i comportamenti frequenti prima che si verifichi un guasto
(il campo di applicazione è la meccanica idraulica). Nel nostro caso, però, abbiamo
dovuto escludere questo approccio in quanto non avevamo a disposizione dati già
classificati.
Il testo [17] presenta una buona panoramica sulle tecniche di analisi delle
sequenze temporali, il testo [24] fornisce un riassunto dettagliato dei problemi e delle
soluzioni nello stesso ambito.
2.4 Discussione
La ricerca in questo campo è ancora agli inizi, soprattutto per la mancanza di
dati adeguati. Il principale difetto che hanno le soluzioni citate è di limitare il
monitoraggio all’interno di edifici (in genere la casa del paziente, l’ospedale o strutture
residenziali sociosanitarie), lasciando scoperte le situazioni di rischio all’esterno. Inoltre
non bisogna dimenticare che il nostro obiettivo è individuare tempestivamente le
situazioni di rischio, quindi, a differenza del lavoro descritto in [14], siamo interessati al
riconoscimento di situazioni anomale istantanee e non a lungo termine.
A differenza del progetto descritto in [9], il nostro obiettivo è un’analisi
completamente automatica, eseguita direttamente su un dispositivo mobile, senza
l’intervento di un operatore medico per la diagnosi; la richiesta del collegamento con un
centro di soccorso avviene solo per situazioni a rischio. In tal caso si può inviare un
codice di allarme che indica la gravità dell’evento fisiologico verificatosi nel paziente.
Il lavoro presentato in [13] ha richiesto lo sviluppo di un simulatore di dati
clinici, data la grande difficoltà nel reperimento di dati reali. Noi invece abbiamo
utilizzato due database disponibili in Internet di pazienti monitorati per diverse ore,
come spieghiamo meglio nel Capitolo 6.
Parecchi lavori prendono in considerazione la correlazione tra le sequenze; la
prassi medica, invece, sembra più orientata a valutare i valori assoluti assunti dai singoli
segnali e la loro comparazione con soglie determinate dall’esperienza e dalle
conoscenze del medico. Inoltre, per intervenire in emergenza, basta che un solo segnale
fisiologico raggiunga una soglia di rischio per lanciare l’allarme: non ci siamo quindi
occupati dello studio delle correlazioni tra i segnali.
Rispetto agli obiettivi di Smart Home ci siamo concentrati solo sull’analisi dei
segnali fisiologici, senza prendere in considerazione altre rilevazioni: il riconoscimento
di pattern di comportamento esula infatti dal nostro obiettivo.
11
Capitolo 3
Tecniche di analisi dei dati
3.1 Introduzione
La crescita della quantità di informazione disponibile e l’aumentata disponibilità
della stessa hanno portato allo sviluppo di metodologie e strumenti in grado di elaborare
i dati e ricavarne informazioni non ovvie e di grande importanza per l’utilizzatore finale.
I sistemi di gestione delle basi di dati (Data Base Management System, DBMS)
hanno certamente permesso di manipolare i dati in maniera efficace, ma non hanno
risolto il problema di come supportare l’uomo nell’interpretazione e nell’analisi dei dati
stessi. Storicamente, lo sviluppo dei metodi statistici ha prodotto un certo numero di
tecniche di analisi dei dati utili nel caso in cui si debbano confermare delle ipotesi
predefinite. Tali tecniche risultano però inadeguate nel processo di scoperta di nuove
correlazioni e dipendenze tra i dati, che crescono in quantità, dimensione e complessità.
Come spiegato in [32], possiamo individuare tre fattori che hanno cambiato il
panorama dell’analisi dei dati:
1. la disponibilità di grande potenza di calcolo a basso costo;
2. l’introduzione di dispositivi di raccolta automatica dei dati, insieme alla
disponibilità di vaste memorie di massa a basso costo;
3. l’introduzione di un nuovo insieme di metodi sviluppati nell’ultima decade
dalla comunità dei ricercatori di intelligenza artificiale; questi metodi
permettono l’analisi e l’esplorazione dei dati, consentendo una più efficace
rappresentazione della conoscenza.
Il processo globale di analisi ed elaborazione dell’informazione, allo scopo di
estrarne della conoscenza di supporto alle decisioni, è noto come knowledge discovery.
Si vuole introdurre, in questo capitolo, la definizione di data mining e, più in
generale, di Knowledge Discovery in Databases (KDD), senza fare particolare
riferimento ad uno specifico dominio di applicazione.
12
Capitolo 3 - Tecniche di analisi dei dati
3.2 Data mining e knowledge discovery
Il processo di KDD è caratterizzato dalle seguenti fasi:
1. selezione – partendo dai dati contenuti nelle basi di dati, i “dati grezzi”, si
estrae l’insieme dei dati che si ritengono maggiormente significativi per il
tipo di analisi che si vuole effettuare;
2. pre-elaborazione – in questa fase viene effettuata l’integrazione dei dati, se
provengono da diverse fonti e presentano delle incongruenze, l’eliminazione
di eventuali errori ed il trattamento dei dati mancanti;
3. data mining – questo processo ha lo scopo di fornire all’utente finale una
rappresentazione della conoscenza che ha acquisito, applicando uno o più
metodi di data mining, partendo dai dati ottenuti dalla fase di preelaborazione.
Il data mining si presenta come il punto di confluenza dei risultati della ricerca
di settori come l’intelligenza artificiale ed il machine learning, la statistica inferenziale,
le basi di dati ed il data warehousing. La difficoltà nell’esporre una visione unificata ed
omogenea è dovuta alla vastità del settore ed in molti casi la stessa definizione di data
mining è oggetto di discussione.
In ogni caso, è possibile individuare due elementi tipici che caratterizzano il
processo del KDD: la grande dimensione degli archivi di dati utilizzati e
l’automatizzazione del processo di acquisizione della conoscenza. Questo settore è
attualmente in fase di grande sviluppo e la sua importanza aumenta nel corso degli anni.
È possibile evidenziare una serie di fattori di natura tecnologica ed economica
che sono alla base di questo fenomeno. Tra questi vi è l’importanza di valorizzare il
patrimonio informativo, cioè le informazioni che si hanno a disposizione. Questa
necessità viene particolarmente sentita nelle organizzazioni a scopo commerciale, basti
pensare alle molteplici iniziative di raccolta delle informazioni dei clienti, fatte in modo
più o meno occulto dalle organizzazioni commerciali.
Un tipico esempio è quello della “tessera sconto”: l’organizzazione propone la
compilazione di una scheda, che permette all’organizzazione di ottenere un profilo
informativo di ogni cliente. Il cliente, che compila la scheda credendo di ottenerne un
beneficio (lo sconto), in realtà sta fornendo all’organizzazione qualcosa di infinitamente
più prezioso, l’informazione.
Chi saprà valorizzare meglio l’informazione che ha a disposizione, anche grazie
ai metodi di data mining, probabilmente sarà in grado di prevedere, e quindi guidare, o
perlomeno non subire, il comportamento del mercato.
Un’ applicazione di data mining è l’attuazione del processo di data mining su un
caso specifico, utilizzando programmi ad hoc che implementano algoritmi specifici o
sfruttano strumenti generali in maniera opportuna.
In Figura 3.1 si fornisce una schematizzazione dell’intero processo di KDD.
13
Capitolo 3 - Tecniche di analisi dei dati
dati grezzi
SELEZIONE
1.
estrazione dati significativi per l’analisi
dati target
PRE-ELABORAZIONE
1.
2.
3.
dati pre-elaborati
pulizia dei dati (eliminazione errori)
trattamento dati mancanti
integrazione dati (trattamento incongruenze su
dati provenienti da fonti diverse)
TRASFORMAZIONE
1.
2.
dati pronti
3.
4.
deduzione nuovi attributi (elaborazione sugli
attributi esistenti)
trasformazione dati per adattamento al mining
usato (conversione di tipo, …)
campionamento (o partizionamento)
discretizzazione
DATA MINING
1.
scelta dei metodi (o algoritmi) di data mining
Percorsi (pattern) e/o
regole tra i dati
(conoscenza indotta)
INTERPRETAZIONE,
VISUALIZZAZIONE E
PREVISIONE
1.
verifica sul significato dell’informazione prodotta
dal mining
knowledge
Figura 3.1 Il processo di knowledge discovery nelle basi di dati
14
Capitolo 3 - Tecniche di analisi dei dati
3.3 Applicazioni di data mining
Si possono individuare almeno due tipologie di applicazioni di data mining, a
seconda dell’obiettivo che l’applicazione intende raggiungere:
1. applicazioni di interpretazione;
2. applicazioni di predizione.
Un’applicazione di interpretazione ha l’obiettivo di produrre conoscenza che sia
il più facilmente interpretabile dall’utente. In particolare si può richiedere la produzione
di regole secondo un determinato formalismo oppure l’utilizzo di rappresentazioni
grafiche. In ogni caso l’attenzione è posta sull’aspetto conoscitivo. Appare evidente che
esiste una problematica riguardante la valutazione automatica della “bontà”
dell’informazione acquisita, non solo dal punto di vista dell’accuratezza e della
rilevanza, ma anche della novità rispetto ad una conoscenza pre-esistente.
Un’applicazioni di predizione, invece, ha come obiettivo la costruzione di un
modello predittivo che sia il più accurato possibile. In questo caso si può anche
rinunciare, del tutto o in parte, all’interpretabilità del modello medesimo (che è
denominato opaco), purché quest’ultimo sia efficace (ossia accurato) ed efficiente (ossia
richieda risorse limitate) nell’applicazione su nuovi dati.
3.4 Fasi del processo di data mining
Il processo di data mining si può suddividere in tre fasi principali:
1. trasformazione o preparazione dei dati;
2. data mining;
3. interpretazione, visualizzazione e previsione.
3.4.1 Preparazione dei dati
La fase di preparazione dei dati dipende dal metodo di data mining che verrà
utilizzato nell’applicazione.
Le attività tipiche di questa fase sono:
1. l’introduzione di nuovi attributi mediante l’applicazione di operatori logici e
matematici, aumentando così la quantità di informazioni utili disponibili;
2. la trasformazione dei dati per essere adattati al metodo di data mining che
verrà applicato;
3. il campionamento o partizionamento dei dati;
4. la discretizzazione dei dati.
Le operazioni di trasformazione dei dati sono, in genere, associate a particolari
limitazioni dei metodi di data mining che si vogliono utilizzare, ad esempio incapacità
di gestire contemporaneamente informazione numerica e categorica o di gestire valori
mancanti. Nel seguito descriviamo le principali tecniche delle attività di
discretizzazione e campionamento.
15
Capitolo 3 - Tecniche di analisi dei dati
Discretizzazione
Il processo di discretizzazione di attributi numerici è una fase fondamentale per
la maggior parte degli algoritmi di apprendimento che trattano l’informazione
simbolica. È importante sottolineare come tale processo sia critico dal punto di vista
della qualità della conoscenza acquisita dall’algoritmo di data mining, infatti la semplice
scelta del numero di intervalli di discretizzazione per un attributo può avere
conseguenze considerevoli:
1. se il numero di intervalli è troppo piccolo si potrebbero perdere
informazioni utili (tanto varrebbe eliminare l’attributo);
2. se il numero di intervalli è troppo grande, al contrario, si potrebbe ricadere
in un problema di sovra-addestramento e l’algoritmo potrebbe non essere in
grado di estrarre conoscenza significativa, o quanto meno interpretabile, dai
dati.
Purtroppo non esistono delle regole generali valide per guidare questa fase. Gli
algoritmi più utilizzati per la discretizzazione degli attributi, che meglio si adattano alle
situazioni in cui la quantità dei dati da processare è notevole, sono:
1. EWD (Equal Width Discretization) – genera intervalli di uguale ampiezza;
2. EFD (Equal Frequency Discretization) – genera intervalli che contengono
approssimativamente lo stesso numero di elementi;
3. discretizzazione mediante clustering – usa un algoritmo di clustering per
raggruppare i valori numerici, quindi desume gli intervalli dalle estensioni
dei vari cluster;
4. 1RD (One Rule Discretization) – suddivide inizialmente l’insieme dei valori
dell’attributo in intervalli tali che ciascuno contenga almeno un numero
predeterminato di elementi, quindi procede ad accrescere gli intervalli in
modo tale che ognuno di essi contenga elementi compresi, per la maggior
parte, nella stessa classe.
Campionamento
La fase di campionamento ha lo scopo di estrarre dalla totalità dei dati a
disposizione un sottoinsieme (campione) sul quale verrà eseguito l’algoritmo di data
mining. Sebbene il processo di data mining valorizzi la conoscenza latente contenuta nei
dati, in certe situazioni un approccio poco oculato può comportare costi tali da renderlo
addirittura sconveniente. In particolare bisogna tenere in considerazione il processo di
data cleaning, il cui costo è proporzionale alla massa di dati trattati.
Inoltre, è opportuno ridurre il numero di esempi da analizzare affinché
l’algoritmo di apprendimento non sia sovra-addestrato o confuso dal rumore dei dati al
punto di non essere in grado di produrre informazione facilmente interpretabile. Si
consideri che tutti gli algoritmi di apprendimento sono sensibili a questi aspetti, sebbene
alcuni lo siano in misura minore, ma in genere questi ultimi sono quelli con il minore
potere espressivo.
16
Capitolo 3 - Tecniche di analisi dei dati
Infine, si può pensare che un’opera di selezione dei dati sia utile al fine di evitare
la scoperta di un numero eccessivo di regole di bassa qualità.
Per evitare che venga prodotta della conoscenza già nota o per indirizzare la
sensibilità del modello in una certa direzione, si possono usare le seguenti tecniche di
campionamento.
1. Campionamento casuale
Ogni elemento dell’insieme ha la stessa probabilità di essere estratto e
considerato nel processo di creazione del modello. Garantisce delle buone
prestazioni sia dal punto di vista delle risorse computazionali necessarie, sia dal
punto di vista della qualità del campione estratto.
2. Campionamento mediante clustering
Si procede con un pre-raggruppamento dei dati in base ad un opportuno criterio,
ricadendo così nel problema più generale del clustering. Quindi si estraggono,
sempre casualmente, da ogni cluster un numero di campioni proporzionale alla
dimensione del cluster sull’insieme di partenza. All’interno di ogni cluster ogni
campione ha la stessa probabilità di essere estratto.
Se il clustering viene effettuato in modo opportuno, ossia scegliendo in modo
oculato l’algoritmo e la metrica, vi è la possibilità di ridurre sostanzialmente il
rumore dei dati, in quanto esempi anomali e poco significativi possono venire
esclusi dall’algoritmo di clustering e pertanto avranno una probabilità nulla di
essere estratti. Rispetto al campionamento casuale, vi è ovviamente, un maggiore
costo computazionale.
3. Campionamento stratificato
In presenza di attributi non numerici gli algoritmi di clustering possono risultare
inadeguati; per migliorare la qualità del campionamento si può ricorrere alla
stratificazione. Si selezionano una serie di attributi nominali di particolare
interesse e si raggruppano i dati rispetto ad essi. Ogni gruppo viene denominato
strato e si procede in modo analogo a quanto fatto per il campionamento
mediante clustering; ogni elemento all’interno di uno strato ha la medesima
probabilità di essere estratto e ogni strato contribuisce con un numero di
campioni proporzionali al suo peso. Se uno strato ha un peso troppo basso, può
essere scartato in quanto assimilabile a rumore nei dati. Alla fine si ottiene un
campione in cui le frequenze degli attributi utilizzati per la stratificazione sono
simili a quelle dell’insieme originario. Gli attributi utilizzati per la stratificazione
devono assumere pochi valori distinti e ogni strato deve contenere un numero
minimo di valori.
17
Capitolo 3 - Tecniche di analisi dei dati
3.4.2 Data mining
In questa fase si determinano i percorsi, le eventuali regole e le caratteristiche
dei dati mediante l’applicazione di uno o più metodi. Se il risultato ottenuto non è
soddisfacente, si può operare una nuova trasformazione, tornando alla fase precedente e
applicando nuovamente la fase di data mining, utilizzando lo stesso metodo o uno
diverso. Questa fase può essere indicata anche come fase di apprendimento o di
esplorazione e modellazione, in base alle denominazioni correntemente in uso del
campo dell’intelligenza artificiale e della statistica, rispettivamente.
3.4.3 Visualizzazione, interpretazione e previsione
Il risultato della fase di data mining è costituito da conoscenza indotta dai dati
rappresentata secondo un dato formalismo. Tuttavia, prima di utilizzare ai fini pratici
tali informazioni, è necessario che queste ultime siano opportunamente validate, ossia si
deve verificare che il processo di data mining abbia prodotto risultati significativi.
Verificato questo aspetto, a seconda della tipologia di applicazione, si presentano
almeno due possibili alternative:
1. se l’applicazione di data mining è destinata alla previsione, il risultato passa,
come si è soliti dire, “in produzione”, ovvero viene utilizzato per analizzare
nuove situazioni;
2. se l’applicazione è di tipo interpretativo, la conoscenza acquisita dal sistema
di data mining deve essere opportunamente trattata al fine di poter essere
visualizzata ed interpretata da un analista, per ottenere le informazioni
necessarie in fase di supporto alle decisioni.
Si osservi che in entrambi i casi il risultato del data mining è sfruttato per
guidare un processo decisionale. La differenza è costituita dal livello e dalle modalità
con cui ciò avviene.
3.5 Data mining
Un sistema di data mining è formato da un insieme di programmi ad hoc o da
uno strumento generico che permette di eseguire una applicazione di data mining. In
letteratura non esiste una visione unificata dei sistemi di data mining, ma è possibile
evidenziare due aspetti comuni a tutte le classificazioni:
1. le funzionalità offerte dal sistema all’utente;
2. i metodi impiegati per realizzare le funzionalità.
Quando si parla di funzionalità, si intende tutto ciò che un sistema di data mining
mette a disposizione dell’utente, affinché possa ottenere nuova conoscenza dai dati. Il
termine metodo, invece, si riferisce a come la funzionalità viene offerta. Si può
distinguere il concetto di metodo tra formalismo e tecnica: a volte un metodo di data
18
Capitolo 3 - Tecniche di analisi dei dati
mining (o tecnica) non determina direttamente la funzionalità, ma produce un
formalismo che viene utilizzato dall’utente per realizzare la funzionalità.
Riportiamo in Tabella 3.1 una suddivisione delle funzionalità in base al
formalismo o alla tecnica che la genera; di seguito le descriviamo dettagliatamente.
Tecnica
Metodi ad hoc per reti
Neurali
Algoritmi di Clustering
Metodi ad hoc per regole
di associazione
Metodi ad hoc per pattern
sequenziali
Metodi ad hoc per alberi di
decisione
Formalismo
Cluster
Funzionalità
Classificazione/Regressione
Clustering
Clustering
Regole di Associazione
Associazioni
Pattern sequenziali
Sequenze
Alberi di decisione
Classificazione
Analisi esplorativa
*
Associazioni
Sequenze
Clustering
Reti Neurali
Tabella 3.1 Tecniche, formalismi e funzionalità di data mining
3.5.1 Funzionalità di data mining
Descriviamo in questo paragrafo le principali funzionalità di un sistema di data
mining.
Scoperta di Regole
Questa funzionalità permette di individuare delle correlazioni tra i record di una
base di dati. Le regole possono essere di due tipi:
1. associazioni – si collegano (associano) tra loro più eventi elementari in un
unico evento globale, quando tali eventi elementari hanno una certa
probabilità di verificarsi in concomitanza. Ad esempio se consideriamo
come fatti elementari “il robot riconosce un ostacolo” e “il robot è fermo”,
potremmo scoprire la regola “nel 30% dei casi, se il robot vede un ostacolo,
si ferma”;
2. sequenze (o associazioni sequenziali) – gli eventi elementari si collegano
non se si verificano in concomitanza, ma se hanno una certa probabilità di
verificarsi progressivamente nel tempo (in sequenza). Ad esempio se
consideriamo come eventi elementari “il robot vede la palla vicina” e “il
robot prende la palla”, la regola scoperta potrebbe essere “nel 60% dei casi,
se il robot vede la palla vicina, dopo 2 secondi prende la palla”.
La regola di associazione è una relazione che lega fra loro un insieme di oggetti
(rule body) che precedono un altro oggetto (rule head); la regola contiene sia
19
Capitolo 3 - Tecniche di analisi dei dati
informazioni statistiche circa la frequenza di occorrenza dei gruppi di oggetti (itemset),
sia l’attendibilità dei dati considerati, sia l’importanza della relazione stessa.
Formalmente la regola associativa appare in questo modo:
rule body → rule head [supporto, confidenza, lift]
Le tre misure tipiche delle regole di associazione sono:
ƒ supporto;
ƒ confidenza;
ƒ lift.
Il supporto è il rapporto fra il numero di transazioni che soddisfano la regola di
associazione (la transazione deve contenere sia il rule body che il rule head) ed il
numero totale di transazioni contenute nel database.
La confidenza è la percentuale di transazioni che soddisfano la regola tra tutte
quelle che soddisfano il rule body. Una transazione soddisfa il rule body se contiene
tutti gli oggetti del rule body. La confidenza indica l’attendibilità della regola di
associazione.
Il lift è il fattore per il quale una regola supera il valore di confidenza atteso. E’
espresso come il rapporto fra la confidenza della regola ed il supporto associato alla rule
head. Ad esempio, data la regola A→B, e indicando con P(A) il supporto di A e P(B|A)
la confidenza della regola, il lift è pari al rapporto:
lift = P(B|A) / P(A).
Un elevato lift equivale ad una stretta correlazione fra rule body e rule head.
Classificazione e Regressione
La classificazione e la regressione fanno parte dell’apprendimento
supervisionato (supervised learning), ossia il processo che porta a classificare un record
di una base di dati a partire dal valore assunto dai suoi attributi: da un insieme di record
già classificati si determinano certe regolarità che permettono di predire il valore di un
nuovo attributo del record, la classe.
Si parla di:
ƒ classificazione quando la variabile da predire può assumere valori in un
insieme discreto,
ƒ regressione quando deve essere predetto un valore continuo.
La classificazione individua un modello: spesso si parla di regole di
classificazione intendendo dire che il modello prodotto dalla classificazione può essere
tradotto in una serie di regole.
L’utente assiste parzialmente il classificatore nella creazione del modello
fornendo un database di prova per la costruzione del modello dove i dati sono già
associati ad etichette di classe, ed un database di test per verificare la bontà del modello
creato. L’apprendimento supervisionato viene utilizzato per costruire modelli di
classificazione a partire da insiemi di dati e, una volta che il modello di classificazione è
stato creato, viene utilizzato per classificare nuovi casi.
20
Capitolo 3 - Tecniche di analisi dei dati
L’albero decisionale su cui si basa la classificazione è una semplice struttura in
cui i nodi non terminali rappresentano i test di uno o più attributi sui record considerati
ed i nodi terminali (foglie) riflettono le decisioni risultanti.
Lo scopo della classificazione è quello di poter inserire i record in classi a
seconda del valore di determinati attributi in esso presente, in modo da poterli
classificare secondo alcune caratteristiche.
L’albero decisionale generalizza i dati e ci offre una sintesi degli attributi e delle
loro relazioni, che sono importanti per effettuare una diagnosi accurata. I casi utilizzati
per creare l’albero decisionale sono detti dati di training; tali casi sono gli unici
conosciuti per essere classificati correttamente, ma il modello sarà in grado di
classificare nuovi casi per i quali la classificazione non è nota a priori.
È bene che il training set ed il test set siano differenti altrimenti si otterrebbe
sempre una perfetta classificazione dei casi di test, dato che il modello è stato costruito
sugli stessi.
La classificazione è quindi un processo a due passi.
ƒ Costruzione del modello:
à
ogni tupla campione appartiene ad una classe predeterminata come
determinato dall’attributo dell’etichetta di classe;
à
gli insieme di tuple utilizzati nel modello prendono il nome di training
set;
à
il modello è rappresentato da regole di classificazione, alberi
decisionali, formule matematiche;
à
per stimare la bontà del modello creato (percentuale di predizioni esatte
per un determinato dataset) si utilizza un test set e si verifica quanti casi
vengono classificati correttamente;
ƒ Utilizzo del modello:
à
classificazione di nuovi oggetti.
Nell’albero decisionale i rami rappresentano l’uscita da un test.
Anche la regressione è una tecnica di previsione, in quanto prevede un risultato
futuro analizzando il passato. A differenza della classificazione il risultato è numerico:
ƒ continuo (ad esempio il reddito annuale di una persona);
ƒ discreto (ad esempio la scelta tra due valori: 1 per indicare che si è
verificato un evento, 0 per indicare che non si è verificato).
Si può usare la regressione anche per problemi di classificazione che contengono
solo due categorie ad esempio SI e NO: mappando il SI con il numero 1 e il NO con lo
0, se i valori previsti dal modello sono vicini a 1, allora ricadono nella categoria dei SI,
altrimenti in quella dei NO.
Dato un record, il processo di regressione serve a predire il valore di un campo
numerico (target field) conoscendo il valore degli altri campi dello stesso record (input
field). I campi di input possono essere numerici o categorici.
La regressione può essere usata per creare modelli e per testarli. Un modello è
costruito a partire da un dataset di record, di cui sono noti i target field; poi può essere
applicato sia a record di cui si conoscono solo gli input field, sia a quelli di cui si
21
Capitolo 3 - Tecniche di analisi dei dati
conoscono tutti i campi (il cosiddetto test mode, per valutare la qualità del modello).
Anche in questo caso bisogna dividere i dati e tenerne una parte per validare il modello
corrente (validation mode). La differenza tra validation e test mode è che il primo è
eseguito durante la costruzione del modello e può causare delle modifiche, invece il
secondo è eseguito dopo la costruzione del modello e lo lascia invariato.
Clustering (o raggruppamento)
È un processo che porta a risultati simili a quelli della classificazione. A
differenza della classificazione, però, è in grado di produrre una suddivisione dei record
in gruppi (cluster) in maniera del tutto autonoma: si tratta di una classificazione non
addestrata. Il raggruppamento è fatto in modo tale che i record in ogni cluster siano
simili secondo certi criteri o metriche. Il clustering è anche detto unsupervised learning
(apprendimento non supervisionato).
Vista l’importanza del clustering nella nostra tesi, abbiamo deciso di dedicargli
un paragrafo a parte.
Considerazioni
Nella letteratura statistica si usa riferirsi ai problemi di classificazione e
regressione come modellazione predittiva, in quanto il risultato dell’analisi è un
modello, rappresentato secondo un opportuno formalismo. Ricevuti in input i dati
relativi a un nuovo caso, il modello è in grado di fornire la classificazione più probabile,
oppure il valore stimato della variabile obiettivo nel caso di una regressione. Per
estensione si usa la denominazione di modello per indicare il risultato del processo di
data mining.
Un’altra distinzione molto diffusa, derivante dall’ambito dell’apprendimento
automatico, è tra algoritmi di apprendimento supervisionato e non supervisionato.
Infatti, dal punto di vista della ricerca in intelligenza artificiale, il data mining è
riconducibile ad un problema di apprendimento, pertanto si parla di apprendimento
supervisionato nei casi di classificazione e regressione, dal momento che durante
l’addestramento il sistema conosce l’esatta classificazione degli esempi analizzati.
L’obiettivo dell’apprendimento è individuare la legge secondo cui i vari esempi sono
classificati. Il clustering, invece, rappresenta un tipico esempio di apprendimento non
supervisionato, in quanto il sistema non conosce a priori la suddivisione degli esempi,
ma ha il compito di proporne una che sia, in qualche modo, particolarmente
significativa. Anche la scoperta di regole di associazione e sequenza sono da
considerarsi come un caso di apprendimento non supervisionato.
22
Capitolo 3 - Tecniche di analisi dei dati
3.6 Clustering
3.6.1 Descrizione generale
Il clustering, come descritto in [33, 34], è un metodo attraverso il quale grandi
insiemi di dati vengono partizionati in gruppi più piccoli, detti cluster (letteralmente
“grappolo”). Eseguire il clustering di un dataset assegnato, contenente oggetti descritti
da un insieme di attributi, significa individuare gruppi di oggetti tali che:
1. elementi appartenenti ad un cluster siano più simili l’uno all’altro (alta
similarità intra-classe);
2. elementi appartenenti a cluster diversi siano meno simili l’uno all’altro
(bassa similarità inter-classe).
La discriminazione degli oggetti avviene valutandone gli attributi in base ad una
prestabilita misura di similarità.
Il clustering è una classificazione non supervisionata, per la quale non ci sono
classi predefinite. Esso viene generalmente utilizzato come mezzo per verificare ipotesi
intuitive relative a distribuzioni di dati, o come passo di pre-elaborazione in altri
algoritmi di data mining. In generale si utilizza il cluster detection quando si sospetta
che nei dati da analizzare esistano raggruppamenti naturali rappresentativi di classi (per
esempio clienti o prodotti con molte caratteristiche comuni), oppure per ridurre la
complessità dell’analisi ed aumentare così le probabilità di successo di una tecnica di
data mining, nel caso in cui la coesistenza di diversi pattern nell’insieme dei dati renda
altrimenti difficile l’identificazione di un singolo schema.
I settori applicativi nei quali si fa uso di metodi di clustering sono numerosi e
molto diversi fra loro. Per esempio, nell’ambito del marketing si ricercano insiemi di
clienti simili nelle basi di dati, per favorire lo sviluppo di programmi mirati; in
urbanistica è di interesse l’identificazione di gruppi di edifici in base a tipo, valore e
locazione geografica; nello studio dei fenomeni tellurici si mira all’individuazione delle
fratture continentali a partire dagli epicentri dei terremoti.
La variabilità dei campi di applicazione e le differenti caratteristiche dei
problemi specifici da affrontare comportano, per la scelta di un metodo di clustering
appropriato, l’utilizzo di uno o più criteri discriminativi. Tra i requisiti generalmente
richiesti in problemi di data mining figurano:
1. scalabilità;
2. possibilità di trattare differenti tipi di attributi;
3. individuazione di cluster con forma arbitraria;
4. necessità di minima conoscenza del dominio per determinare i parametri;
5. robustezza rispetto al rumore e agli outlier;
6. insensibilità all’ordine dei record in input;
7. capacità di operare su dati ad alta dimensionalità;
8. incorporazione di vincoli specificati dall’utente;
9. interpretabilità ed usabilità dei risultati.
23
Capitolo 3 - Tecniche di analisi dei dati
3.6.2 Misure di distanza
Generalità.
I coefficienti di distanza (o dissimilarità) forniscono una misura del grado di
associazione fra due osservazioni, restituendo un valore nullo per osservazioni identiche
ed un valore variabile da coefficiente a coefficiente per osservazioni totalmente
differenti. Le proprietà che devono essere soddisfatte affinché un coefficiente di
distanza sia di tipo metrico (ossia consenta di ordinare le osservazioni in uno spazio
metrico) sono le seguenti:
1. D jk = 0 se j = k;
2.
D jk > 0 se j ≠ k;
3.
D jk = Dkj ;
D jk + Dkh ≥ D jh (assioma della disuguaglianza triangolare).
In generale è la quarta ed ultima proprietà quella che risulta discriminante ed il
fatto che sia o meno soddisfatta distingue le misure metriche da quelle cosiddette
semimetriche.
4.
Distanze metriche
I coefficienti di distanza metrici sono stati sviluppati per trattare dati di tipo
quantitativo e, con poche eccezioni, trattano lo zero come una misura e non come una
mancanza di informazione.
La più familiare fra le misure di distanza è certamente quella euclidea, che
corrisponde esattamente a quella che si può calcolare o misurare nello spazio fra due
oggetti fisici:
D jk =
p
∑(x
− xik ) 2
ij
i =1
È importante rilevare il fatto che il quadrato della distanza euclidea, che non di
rado viene utilizzato al posto di quest’ultima, è una semimetrica.
È evidente che la scala dei singoli descrittori è molto influente nel determinare
una distanza euclidea fra due osservazioni; è dunque necessario riservare questa scelta
ai casi in cui i descrittori sono dimensionalmente omogenei o a quelli in cui essi
vengono centrati e standardizzati, al fine di eliminare l’effetto di eventuali differenze di
scala.
Una soluzione molto flessibile è costituita dalla metrica di Minkowski:
p
D jk = r ⋅
∑x
ij
i =1
24
− xik
r
Capitolo 3 - Tecniche di analisi dei dati
dove r può essere assegnato in maniera teoricamente arbitraria. In realtà il caso
r=2 corrisponde ad una distanza euclidea ed un valore di r maggiore di questo, in
generale, non è desiderabile per non enfatizzare l’effetto della diversa scala dei
descrittori.
Più interessanti sono i valori di r inferiori a questa soglia e, fra questi, un caso
particolare è quello che si verifica per r=1. In questo caso la distanza che si ottiene è
nota come metrica di Manhattan:
p
D jk = ∑ xij − xik
i =1
Il nome di questa misura di distanza è dovuto al fatto che la distanza fra due
punti è data dalla somma della distanza in ascissa e di quella in ordinata e corrisponde al
percorso più breve che unisce due punti in una città le cui strade si incrociano ad angolo
retto, come, per l’appunto, a Manhattan. La metrica di Manhattan presenta gli stessi
problemi legati all’influenza della scala dei descrittori di cui si è detto a proposito della
metrica euclidea.
Una delle varianti che, laddove necessario, la correggono in questo senso è
quella proposta da Lance & Williams (1966) con il nome di metrica di Canberra:
p
xij − xik
D jk = ∑
i =1 ( xij + xik )
I doppi zeri devono essere esclusi dal calcolo per evitare problemi di
indeterminazione. Pur senza normalizzare i dati, questa distanza assegna alla differenza
fra i valori che un descrittore assume in due osservazioni un peso inversamente
proporzionale alla somma dei valori stessi: la medesima differenza ha un peso maggiore
se è osservata fra due valori piccoli.
Uno degli inconvenienti di questa soluzione è costituito dal fatto che, se uno dei
due valori relativi ad un dato descrittore è uguale a zero, allora il contributo alla distanza
totale è pari a 1, cioè il massimo possibile. La metrica di Canberra, dunque, si presta
meglio a trattare serie di dati in cui esista eterogeneità di scala fra i descrittori senza,
però, che siano presenti molti valori nulli.
3.6.3 Principali metodi di clustering
Dal punto di vista dell’approccio al problema, le tecniche di clustering possono
essere suddivise in alcune grandi categorie:
1. algoritmi di partizionamento: eseguono la costruzione di un numero
variabile di cluster, per poi valutarli e selezionare quelli definitivi;
2. algoritmi gerarchici: creano una decomposizione gerarchica del dataset;
possono essere di tipo top down o bottom up, a seconda che partano da un
cluster principale che comprende tutti i punti e poi man mano lo
suddividano secondo un certo criterio, o viceversa, partano da tanti cluster
25
Capitolo 3 - Tecniche di analisi dei dati
quanti sono i punti e poi man mano li accorpano fino ad arrivare ad un unico
cluster;
3. metodi density-based: basandosi su connettività e funzioni di densità, fanno
“crescere” i cluster finché la densità di punti nel vicinato non supera un
prefissato limite; sono in grado di trovare cluster di forma arbitraria;
4. metodi grid-based: sono basati su una struttura a livelli multipli di
granularità, che forma una griglia sulla quale vengono eseguite tutte le
operazioni; le prestazioni dipendono solo dal numero di celle della griglia;
5. metodi model-based: ipotizzano un modello per ciascun cluster cercando il
miglior adattamento di quel modello con ciascun altro.
In particolare esaminiamo le prime due categorie, visto che sono quelle prese in
considerazione nella nostra tesi.
Algoritmi di partizionamento
Prevedono la costruzione di k cluster a partire da un database D di n oggetti. Il
parametro k è un dato di input del problema e il risultato è un partizionamento che
ottimizza il criterio di ripartizione scelto. Due noti metodi euristici sono il k-means e il
k-medoids: sono rilevanti da esaminare perché spesso costituiscono la base per varianti
più o meno sofisticate.
1. Il metodo k-means
Sia n il numero di oggetti e k il numero desiderato di cluster. L’algoritmo
prevede quattro step:
ƒ si partizionano gli n oggetti in k sottoinsiemi non vuoti;
ƒ si calcolano i centroidi (punti medi) dei cluster del partizionamento attuale e
si designano come semi;
ƒ si assegna ogni oggetto al cluster con il seme ad esso più vicino;
ƒ si riprende dallo step 2, arrestandosi quando non è più possibile effettuare
nuovi assegnamenti.
Dal punto di vista dell’efficienza, la complessità è O(t k n) , dove t è il numero di
iterazioni. Normalmente si ha k, t << n.
L’algoritmo spesso termina in un ottimo locale. L’ottimo globale può essere
trovato usando tecniche di compattamento deterministico ed algoritmi genetici.
La limitazione principale del metodo k-means consiste nel fatto che per la sua
applicazione è necessario definire il numero desiderato di cluster. Da notare infine che il
metodo non è affidabile per trovare cluster di forma non convessa.
26
Capitolo 3 - Tecniche di analisi dei dati
2. Il metodo k-medoids
Sua caratteristica principale è la rappresentazione del cluster per mezzo di uno
degli oggetti che gli appartengono, piuttosto che per mezzo di una media di essi.
Ognuno degli oggetti rappresentativi dei cluster è detto medoid. Tra gli algoritmi che
sfruttano questo approccio sono rilevanti i seguenti:
ƒ “PAM” (Partitioning Around Medoids) [36]: comincia da un set iniziale di
medoid e cerca di minimizzare la somma delle distanze tra gli oggetti del
cluster; lavora efficacemente su piccoli dataset, ma non scala;
ƒ “CLARA” (Clustering LARge Applications) [36]: estrae un campione del
dataset ed applica PAM sul campione per trovare i medoid; tratta
efficientemente dataset più grandi rispetto a PAM, anche se l’efficienza
dipende dalla dimensione del campione; inoltre è da sottolineare
l’importanza dell’estrazione di un campione rappresentativo;
ƒ “CLARANS” (Randomized CLARA) [35]: il processo di clustering può
essere presentato come un grafo di ricerca, dove ogni nodo è una potenziale
soluzione, cioè un set di k medoid; il problema di ottenere un buon
clustering corrisponde a quello di cercare il minimo sul grafo; rispetto a
CLARA, che estrae un campione dei nodi solo all’inizio, CLARANS ha il
vantaggio di non restringere la ricerca ad un’area limitata.
Algoritmi gerarchici
Gli algoritmi di clustering gerarchico utilizzano una matrice di similarità (o
distanza) fra gli oggetti come base per l’aggregazione di questi ultimi. È importante
sottolineare il fatto che la scelta del coefficiente di similarità risulta in molti casi
addirittura più determinante di quella dell’algoritmo di clustering ai fini del
conseguimento dei risultati desiderati. Tale scelta, dunque, deve essere preceduta da una
accurata esplorazione dell’informazione disponibile e da una chiara identificazione del
tipo di relazione fra gli oggetti da rappresentare.
I risultati di una procedura di clustering gerarchico possono essere illustrati in
diversi modi, anche se in prevalenza si preferisce utilizzare un dendrogramma. I legami
orizzontali in un dendrogramma vengono chiamati nodi, mentre le linee verticali sono
dette internodi.
La distanza di un nodo dalla base del dendrogramma è proporzionale alla
similarità (o distanza) fra i due oggetti o gruppi di oggetti di cui il nodo rappresenta la
fusione. La similarità è di solito riportata su una scala al lato del dendrogramma. La
disposizione relativa degli oggetti alla base del dendrogramma è vincolata solo in parte
dalla struttura di quest’ultimo e, entro questi limiti, gli oggetti possono essere
liberamente riarrangiati.
In molti casi è utile anche visualizzare l’andamento progressivo delle similarità a
cui via via avvengono le fusioni fra oggetti o gruppi di oggetti. Questa rappresentazione
è fornita dal diagramma di aggregazione, grazie al quale è possibile individuare
facilmente le discontinuità più rilevanti incontrate nella procedura di clustering. Tali
27
Capitolo 3 - Tecniche di analisi dei dati
discontinuità, in molti casi, possono corrispondere a partizioni "naturali" dell’insieme di
oggetti analizzati e costituiscono un utile riferimento laddove sia necessario ripartire
questi ultimi in un certo numero di classi (es. se si usa la partizione ottenuta come un
nuovo descrittore sintetico dell’insieme degli oggetti).
La distanza tra i cluster individuati può essere calcolata secondo i metodi
descritti di seguito.
1. Single linkage
Il metodo del legame singolo [36] è certamente il più semplice fra quelli
disponibili e deve il suo nome al fatto che la fusione fra due oggetti o gruppi di oggetti
può avvenire se la distanza fra due oggetti non appartenenti allo stesso gruppo è la più
bassa fra quelle possibili. La distanza tra un’unità e un gruppo è la distanza minore tra
quelle dell’unità da tutte le altre del gruppo.
La procedura operativa, supponendo di lavorare su una matrice di distanza, è la
seguente:
ƒ si individua il valore minimo nella matrice (con esclusione, ovviamente,
della diagonale) e si fondono i due oggetti corrispondenti in un primo
gruppo;
ƒ si individua il valore minimo residuo, cioè escludendo le distanze intragruppo, e si fondono i due oggetti che corrispondono a tale valore o i due
gruppi a cui essi appartengono;
ƒ si procede fino a quando tutti gli oggetti sono assegnati ad un unico gruppo.
Come si può notare, la procedura di clustering è elementare e non richiede alcun
calcolo aggiuntivo oltre quello della matrice di distanza.
L’algoritmo del legame singolo, tuttavia, non è molto utilizzato, soprattutto per
la sua tendenza al concatenamento degli oggetti, che rende sempre più facile
l’aggregazione di nuovi elementi man mano che un gruppo diventa più numeroso.
Questo comportamento è dovuto al fatto che basta un solo legame, cioè una sola coppia
di oggetti simili fra loro, a far fondere due gruppi: è evidente quanto più è grande il
numero di oggetti che appartengono ad un gruppo, tanto più è probabile che almeno uno
di essi possa costituire un ponte verso un altro oggetto o un altro gruppo di oggetti. In
altre parole, si può immaginare che l’algoritmo del legame singolo provochi una
contrazione dello spazio di riferimento intorno ai gruppi proporzionale alla loro
dimensione.
2. Complete linkage
Una soluzione affine a quella precedentemente descritta da un punto di vista
procedurale, ma completamente opposta per ciò che riguarda le regole di fusione dei
gruppi è quella che prevede l’uso dell’algoritmo del legame completo [36]. In questo
caso, infatti, si ammette la fusione di due gruppi di oggetti soltanto se tutte le distanze
fra coppie di oggetti non appartenenti allo stesso gruppo sono inferiori alla soglia che
permetterebbe la fusione di un’altra coppia di gruppi. La distanza tra un’unità e un
gruppo è la distanza maggiore tra quelle dell’unità da tutte le altre del gruppo.
28
Capitolo 3 - Tecniche di analisi dei dati
In questo modo si garantisce una notevole omogeneità intra-gruppo, favorendo
la formazione di gruppi a cui appartiene un numero non troppo variabile di oggetti,
poiché quanto più un gruppo è numeroso, tanto più è difficile che esso sia
sufficientemente simile ad un altro. In contrapposizione a quanto avviene per
l’algoritmo del legame singolo, in questo caso si verifica una dilatazione dello spazio di
riferimento intorno ai gruppi già formati che è proporzionale alla loro dimensione.
Il lato negativo, peraltro comune ad altri algoritmi, è costituito dalla possibilità
di incontrare casi particolari in cui la scelta dell’aggregazione non è definibile in
maniera univoca. Pur senza scendere nel dettaglio, si tenga conto che queste situazioni
possono essere risolte applicando nell’ordine alcune semplici regole. In particolare, sarà
privilegiata l’aggregazione che:
ƒ genera il gruppo più numeroso;
ƒ accelera la diminuzione del numero di gruppi;
ƒ massimizza la similarità media intra-gruppo.
3. Average linkage
Il metodo della media di gruppo utilizza come criterio per la fusione di due
gruppi di oggetti la media aritmetica delle distanze fra tutti gli oggetti dei due gruppi e
ad ogni oggetto viene attribuito lo stesso peso. La distanza tra un’unità e un gruppo è
data dalla media aritmetica delle distanze tra l’unità e tutte le altre del gruppo.
È un metodo molto efficiente quando gli oggetti formano naturalmente blocchi
distinti e si comporta comunque bene con cluster di tipo concatenato.
4. Centroid
Il metodo dei centroidi [36] è caratterizzato dal fatto che, dopo che due oggetti o
gruppi di oggetti sono stati uniti, essi vengono rappresentati dal loro centroide. Questo
può essere ottenuto in diversi modi, ma in genere è possibile sostituire le righe e le
colonne relative agli oggetti che appartengono ad un gruppo appena formato con un
vettore di valori, uguale per tutti gli oggetti, che si ottiene utilizzando una media, meglio
se ponderata, delle similarità relative ai singoli oggetti.
Questo metodo può dare luogo, talvolta, a delle inversioni nella struttura del
dendrogramma, cioè si può verificare il caso in cui un nodo di ordine gerarchico
superiore corrisponda ad un livello di distanza (o di similarità) minore (maggiore) di
quello relativo ad un nodo di ordine gerarchico inferiore. Il fatto che l’algoritmo non
garantisca la monotonicità del diagramma di aggregazione e del dendrogramma rende
talvolta difficile l’interpretazione dei risultati, che in ogni caso devono essere utilizzati
con cautela per la definizione di partizioni vere e proprie.
5. Ward
Il metodo di Ward è basato sulla minimizzazione della variabilità all’interno dei
gruppi: obiettivo della partizione è, infatti, minimizzare la quota di variabilità interna,
massimizzando la variabilità fra i gruppi, così da ottenere classi omogenee e ben
separate le une dalle altre. Ad ogni passo, l’algoritmo di Ward (o del “salto minimo di
29
Capitolo 3 - Tecniche di analisi dei dati
varianza interna”) aggrega le unità o i gruppi che determinano la minor perdita di
inerzia tra le classi.
Si definisce inerzia [37] di una nuvola di unità statistiche la somma dei quadrati
delle distanze dal centro di gravità (ossia il punto che ha coordinate medie) della nuvola
stessa. Se la nuvola è suddivisa in vari gruppi, si può calcolare l’inerzia all’interno dei
singoli gruppi rispetto ai loro centri di gravità e l’inerzia dei centri di gravità dei gruppi
rispetto a quello di tutta la nuvola. L’inerzia totale è uguale all’inerzia tra i gruppi (interclassi) più l’inerzia all’interno dei gruppi (intra-classi).
Nel caso in cui si possano utilizzare distanze metriche, e ci si trovi pertanto
nell’ambito di uno spazio euclideo, la migliore partizione è quella per la quale l’inerzia
inter-classi è forte e l’inerzia intra-classi è debole. Quando si passa, però, da una
partizione in k+l gruppi ad una in k gruppi e se ne aggregano due in uno, l’inerzia interclassi diminuisce. Il criterio scelto per l’aggregazione nelle successive partizioni è
quello di fondere i due gruppi per i quali la perdita di inerzia inter-classi è la più debole:
tale perdita di inerzia è quindi assunta come misura della distanza fra i gruppi.
Il metodo di Ward fornisce generalmente un insieme di gruppi di densità più o
meno uguale, soddisfacendo dunque a due requisiti: il bilanciamento della numerosità
dei gruppi e la garanzia che la distanza tra un gruppo e un’unità esterna non è maggiore
della distanza tra due individui appartenenti allo stesso gruppo.
6. Conclusioni
La scelta di un algoritmo di classificazione rispetto ad un altro dipende dai tipi di
cluster e dalla loro dimensione in funzione delle ipotesi formulate. Le differenze tra un
tipo di aggregazione ed un’altra influiscono sui risultati dell’analisi.
Il metodo del legame singolo aggrega secondo una struttura a catena che fa
riferimento a uno o pochi gruppi cui si uniscono le altre unità, con un effetto di
concatenamento successivo che non permette di delineare gruppi ben distaccati o di
forma sferica con il rischio di includere nello stesso gruppo unità molto lontane.
Il metodo del legame completo risolve questo problema e fornisce dei cluster
equilibrati rispetto al numero di unità, ma se i dati non permettono una separazione netta
tra i gruppi si possono ottenere alcuni gruppi densi e una serie di gruppi piccoli.
Il metodo della media del gruppo tiene invece conto di tutte le distanze tra le
unità.
L’estrema soggettività nella scelta del metodo da usare in questi casi fa sì che sia
raccomandabile procedere a varie classificazioni usando, di volta in volta, algoritmi
diversi. Se viene seguita questa strada e non si riscontrano grosse differenze tra le
partizioni nella parte alta dell’albero, la classificazione può considerarsi valida. Se,
invece, le partizioni sono grandemente differenziate, l’insieme delle unità studiate mal
si presta ad essere classificato, risulta cioè indifferenziato.
30
Capitolo 3 - Tecniche di analisi dei dati
3.7 Sequenze temporali
Siccome in questa trattazione facciamo riferimento alle sequenze temporali (time
series), riteniamo opportuno riportare una serie di definizioni utili per una impostazione
formale del problema.
Si definisce itemset un insieme non vuoto e non ordinato di item (o oggetti).
Una sequenza temporale T = t1, t2, …, tm è una lista ordinata di m itemset; m è la
lunghezza della sequenza.
Data una sequenza temporale T di lunghezza m, si definisce sottosequenza Cp di
T una sequenza di lunghezza w (con w < m) data da Cp = tp, tp+1, …, tp+w-1, con p
compreso tra 1 e m-w+1.
Data una sequenza temporale T di lunghezza m, e una dimensione w definita
dall’utente, si può costruire una matrice S di tutte le possibili sottosequenze facendo
“scivolare” una finestra di ampiezza w (sliding window) lungo la sequenza temporale e
posizionando la sottosequenza Cp di volta in volta ottenuta nella riga p di S. S è una
matrice di dimensioni (m-w+1)·w.
3.8 Discussione
In questo paragrafo motiviamo la scelta di usare il clustering come tecnica di
data mining e, tra gli algoritmi a disposizione, la scelta di quelli gerarchici e di
partizionamento come più adatti alla nostra situazione.
3.8.1 Scelta della funzionalità di data mining
Come abbiamo visto, per ricavare informazione dai dati, le funzionalità offerte
dal data mining sono:
1. scoperta di regole;
2. apprendimento supervisionato,
a. regressione,
b. classificazione;
3. apprendimento non supervisionato (clustering).
Inizialmente pensavamo di utilizzare la prima funzionalità. La letteratura infatti
fornisce molti esempi di utilizzo di algoritmi per la scoperta di regole. Dallo studio del
comportamento di più entità in un medesimo contesto temporale (regole di
associazione), sono state estese, andando oltre l’analisi del comportamento nella singola
transazione, per estrarre sequenze di comportamenti interessanti e legati a più istanti
(regole sequenziali). L’applicazione più tipica è la market basket analysis, l’analisi del
carrello della spesa, ma è facilmente estendibile a qualunque altro settore ove sia
presente un rapporto di tipo acquisto o vendita [18].
Avendo anche noi a che fare con sequenze temporali, avevamo pensato di
utilizzare uno degli algoritmi già ideati, e ricavare le sottosequenze più frequenti nelle
31
Capitolo 3 - Tecniche di analisi dei dati
sequenze di valori dei segnali fisiologici misurati. In questo modo pensavamo di
individuare i comportamenti più frequenti dei pazienti e, una volta ottenuti, sottoporli al
giudizio di un medico, affinché stabilisse il grado di rischio di ognuno.
Ci siamo però accorti che, rilevando i comportamenti più frequenti, non
necessariamente avremmo rilevato i più rischiosi, anzi, avremmo solo individuato le
condizioni di normalità per il paziente, senza acquisire alcuna informazione utile. Noi
infatti siamo interessati alle situazioni anomale, per definizione caratterizzate da una
maggiore pericolosità.
Non potevamo diminuire le soglie di supporto, oltre le quali una regola è
considerata frequente, altrimenti sarebbe stato impossibile riconoscere le regole
effettivamente interessanti da quella casuali. Abbiamo quindi abbandonato l’ipotesi di
utilizzare la scoperta di regole.
Non abbiamo preso in considerazione l’uso della regressione perché utilizzata
per analizzare valori continui, come abbiamo spiegato nel Paragrafo 3.5.1; invece il
nostro obiettivo era di ottenere dei livelli di rischio discreti.
Abbiamo quindi considerato la seconda alternativa dell’apprendimento
supervisionato, la classificazione. Non avevamo però a disposizione un albero di
decisione (e quindi un modello già pronto), né dei dati già suddivisi in classi da cui
ricavarlo. Non potevamo nemmeno chiedere ad un medico di classificare i punti di
alcuni grafici o di indicare dove andassero lanciati gli allarmi, non avendo un supporto
medico ufficiale che garantisse l’autorevolezza dei risultati; abbiamo quindi scartato
anche la possibilità di utilizzare l’apprendimento supervisionato.
Infine abbiamo valutato l’uso del clustering. Il clustering può essere utilizzato
per raggruppare sequenze temporali simili oppure per individuare comportamenti simili
all’interno della stessa sequenza. L’applicazione adatta al nostro scopo è la seconda.
Sebbene la letteratura illustri svariati esempi di applicazione di una sliding window per
ottenere le sottosequenze da raggruppare, abbiamo deciso di non adottare questa
soluzione, in quanto irrilevante, come spiegato in [38].
Dopo aver opportunamente trasformato i dati, come spiegato nel Paragrafo 4.2,
applichiamo il clustering per dividere i valori in intervalli discreti e normalizzarli prima
di proseguire con l’elaborazione.
Il clustering inoltre presenta i seguenti vantaggi:
ƒ divide i dati in base a criteri di somiglianza, che dipendono dagli algoritmi
scelti per calcolare la distanza;
ƒ non necessita di dati già classificati da cui apprendere la suddivisione, in
quanto la determina dai dati stessi.
Abbiamo quindi deciso di utilizzare questo approccio e nel paragrafo successivo
spieghiamo meglio le nostre scelte.
32
Capitolo 3 - Tecniche di analisi dei dati
3.8.2 Scelta dell’algoritmo di clustering
Ricordiamo che i principali metodi di clustering esistenti sono gli algoritmi:
1. di partizionamento, come il k-means;
2. gerarchici, di tipo top down (divisivo) o bottom up (agglomerativo);
3. basati sul calcolo della densità, come DBSCAN [39];
4. basati sull’applicazione di una griglia, come CLIQUE [40] e STING [41].
Ci siamo concentrati sull’analisi delle prime due tipologie.
Gli algoritmi di partizionamento suddividono i punti in un certo numero (k) di
partizioni e poi le valutano secondo vari criteri. Hanno i seguenti pregi:
ƒ ogni punto è inserito esattamente in uno dei k cluster non sovrapposti;
ƒ sono algoritmi relativamente efficienti, la cui complessità dipende
linearmente dal numero di punti;
ƒ terminano sempre in un ottimo locale, ma si può ricavare l’ottimo globale
attraverso altre tecniche, ad esempio gli algoritmi genetici.
Presentano i seguenti difetti:
ƒ è necessario conoscere a priori il numero k di cluster desiderati;
ƒ si possono applicare solo a dati numerici e non categorici;
ƒ non gestiscono gli outlier;
ƒ hanno difficoltà a individuare cluster di forma non convessa;
Abbiamo deciso di applicare questo algoritmo per i seguenti motivi:
ƒ non abbiamo considerato come limite il fatto di non poter riconoscere
cluster di forma arbitraria, in quanto abbiamo applicato il clustering in uno
spazio monodimensionale;
ƒ non riteniamo limitativo il fatto di dover determinare a priori il numero k, in
quanto, essendo scalabile, è possibile ripetere le prove per vari valori oppure
sfruttare altre informazioni per determinare il valore ottimale (noi lo
abbiamo determinato dall’analisi del dendrogramma, ottenuto applicando il
clustering gerarchico);
ƒ abbiamo affrontato la gestione degli outlier nella fase di pre-elaborazione
dei dati, sopperendo alla carenza dell’algoritmo;
ƒ siccome i dati analizzati sono esclusivamente numerici, non è necessaria la
gestione di quelli categorici.
Gli algoritmi gerarchici, rispetto agli algoritmi di partizionamento, hanno il
vantaggio di non richiedere la conoscenza a priori del numero di partizioni in cui
dividere i punti. Producono infatti un dendrogramma (come mostreremo in Figura 7.6,
Figura 7.7 e Figura 7.8), dalla cui analisi si può decidere il numero di cluster ottimale
per la suddivisione.
Gli svantaggi principali sono però la soggettività nell’interpretazione dei risultati
e la scarsa scalabilità: la complessità, infatti, aumenta con il quadrato del numero di
punti. È presente anche il problema degli ottimi locali, come in ogni altro algoritmo
euristico.
Abbiamo deciso di considerare anche questo algoritmo per i seguenti motivi:
33
Capitolo 3 - Tecniche di analisi dei dati
ƒ
l’analisi del dendrogramma ci permette di osservare i diversi
raggruppamenti al variare del numero di cluster, e quindi scegliere quello
più adeguato;
ƒ permette di valutare diversi metodi di calcolo della distanza inter-cluster;
ƒ non abbiamo considerato come limite il fatto di avere una complessità
proporzionale al quadrato del numero di punti, siccome prevediamo di
applicarlo in una fase svolta off-line.
Abbiamo trascurato l’applicazione degli algoritmi basati su funzioni di
connettività e densità, perché:
ƒ il concetto stesso di densità non è applicabile a questo contesto;
ƒ non abbiamo gli elementi per valutare i parametri di densità richiesti come
condizione di terminazione;
ƒ non ci interessa trovare cluster di forma arbitraria.
Non abbiamo considerato gli algoritmi basati su una struttura a griglia, con più
livelli di granularità, perché dividono lo spazio in celle rettangolari: su uno spazio
monodimensionale il concetto di cella non è applicabile.
In generale gli algoritmi che non abbiamo preso in considerazione sono stati
pensati per uno spazio multidimensionale, quindi i vantaggi che introducono non sono
applicabili alla nostra situazione.
34
Capitolo 4
IGUANA – idea
4.1 Introduzione
Il problema che abbiamo affrontato consiste nell’individuare la gravità delle
eventuali situazioni di rischio in cui si trova un paziente in un dato istante di tempo,
avendo a disposizione le misure del monitoraggio continuo di alcuni segnali fisiologici
rilevati da sensori.
La soluzione che proponiamo si sviluppa in due fasi:
1. creazione di un modello attraverso l’analisi di una parte dei dati a
disposizione, in modo da determinare quali situazioni sono più frequenti
(normali) e quali meno frequenti (più rischiose);
2. applicazione del modello per classificare i restanti dati.
Entrambe le fasi sono precedute da una pre-elaborazione dei dati: sostituzione
dei valori errati dovuti al malfunzionamento dei sensori con valori nulli, in modo che
non influenzino né il modello creando classi sbagliate, né il classificatore causando falsi
allarmi, ed eventuale ricampionamento dei dati se la frequenza di campionamento dei
sensori è troppo elevata. La prima fase è preceduta da un ulteriore passo di calcolo della
più lunga sottosequenza senza valori nulli, per selezionare dati adeguati alla costruzione
del modello. La Figura 4.1 mostra graficamente quanto spiegato.
dati
ABP ABP
t
HR SpO2
dias sys
-
PREELABORAZIONE
sottosequenza
senza NA
creazione
MODELLO
dati
dati classificati
PREELABORAZIONE
CLASSIFICAZIONE
Figura 4.1 Schema generale di funzionamento
35
rischio
Capitolo 4 - IGUANA – idea
Le sequenze temporali vengono pre-elaborate e poi analizzate per creare il
modello; i nuovi dati vengono quindi classificati usando il modello prodotto e ogni
valore è etichettato con il livello di rischio corrispondente; tali livelli sono combinati per
ottenere il rischio totale per il paziente ad ogni istante di tempo.
Abbiamo considerato le sequenze temporali dei valori dei segnali fisiologici
(pressione arteriosa diastolica e sistolica, battito cardiaco e saturazione di ossigeno),
valutando il relativo rischio secondo i seguenti aspetti:
ƒ un valore è tanto più rischioso quanto più è raro, e viceversa, tanto più
normale quanto più è frequente;
ƒ il rischio dipende dalla distanza dalla media dinamica del paziente calcolata
sui valori più recenti;
ƒ l’andamento dei valori precedenti influisce sul rischio del valore attuale.
Alla luce di queste considerazioni, i punti a rischio elevato possono essere
definiti anomalie delle sequenze temporali. Siccome il nostro obiettivo è determinare il
livello di rischio dei punti, abbiamo realizzato un metodo che valuta quanto sono
anomale le situazioni analizzate. Il nostro approccio prevede il raggruppamento dei
punti in classi, in modo che ogni classe rappresenti un diverso grado di anomalia; i gradi
di anomalia maggiori corrispondono a rischi maggiori.
La letteratura fornisce numerosi esempi di utilizzo delle tecniche di
riconoscimento di anomalie (anomalies detection). Una di queste è descritta in [47] e
sfrutta l’algoritmo gerarchico di clustering Gecko, simile a Chameleon [48], ma
applicabile alle sequenze temporali in modo che i cluster non si sovrappongano nella
dimensione temporale. L’invenzione di questo algoritmo è inserita nell’obiettivo più
ampio di creare un modello per scoprire le anomalie facilmente interpretabile e
modificabile da un utente.
Il nostro modello, invece, pur essendo creato per lo stesso obiettivo (limitato
però all’ambito medico di rilevare situazioni di emergenza) non prevede l’invenzione di
un nuovo algoritmo di clustering: la scelta è lasciata all’utente, che può decidere quale
utilizzare a seconda delle esigenze e alla luce delle nuove scoperte della ricerca.
Per mantenere traccia dell’evoluzione della nostra idea, e continuare nella specie
dei rettili degli autori che ci hanno ispirati, abbiamo deciso di denominare il nostro
framework IGUANA (Individuation of Global Unsafe ANomalies and activation of
Alarms), intendendo includere in questo termine tutto il processo composto dalle fasi
descritte in questo paragrafo.
La descrizione dettagliata delle fasi di creazione del modello e della sua
applicazione per classificare i nuovi dati sono descritte nel seguito di questo capitolo. La
fase di pre-elaborazione è invece descritta nel Paragrafo 6.4, perché strettamente
correlata al tipo di dati utilizzati.
36
Capitolo 4 - IGUANA – idea
4.2 Creazione del modello
La fase di creazione del modello prevede l’analisi di dati clinici relativi a un
campione di pazienti per individuare quali situazioni sono più frequenti (normali) e
quali più rare (rischiose).
4.2.1 Evoluzione
Alla base del nostro lavoro vi è l’ideazione di una funzione di calcolo del rischio
per il paziente, in modo che si avvicini il più possibile alla valutazione che farebbe un
medico. Abbiamo fatto l’ipotesi di considerare una situazione tanto più rischiosa quanto
meno è frequente.
Il nostro obiettivo è ottenere una classificazione del rischio in un certo numero di
livelli. Associamo un livello di rischio ad ogni segnale in ogni istante, e uno
complessivo al paziente, come combinazione dei rischi di tutti i segnali fisiologici
analizzati.
Pur avendo a disposizione sequenze temporali, abbiamo deciso di calcolare il
rischio puntuale (relativo ad ogni istante), poiché lo scopo principale è individuare
tempestivamente le situazioni pericolose e permettere interventi in grado di salvare una
vita umana.
Ci siamo quindi concentrati sugli aspetti che incidono sulla determinazione del
rischio considerando un solo segnale fisiologico, ad esempio il battito cardiaco.
Considerando una sequenza di valori, abbiamo esaminato due fattori di rischio:
1. la distanza del valore attuale da una media dinamica che rappresenta il
comportamento del paziente negli ultimi minuti (abbiamo denominato offset
tale valore);
2. la pendenza, cioè la variazione del valore attuale rispetto al precedente, per
considerare quanto rapidamente il paziente sta variando la sua condizione;
in pratica si tratta del coefficiente angolare della retta che unisce i due punti
(denominato slope); siccome i punti sono tutti alla stessa distanza sull’asse
del tempo, abbiamo deciso di calcolare tale valore solo come differenza tre
le ordinate dei punti, senza dividere per la differenza tra le ascisse.
Parlando con un esperto del settore, ci siamo resi conto che, per valutare
effettivamente il rischio di un paziente, serve considerare la posizione del punto rispetto
a certe soglie, dette di “normalità” (un valore massimo e uno minimo). Abbiamo quindi
introdotto un terzo fattore, denominato dist, per poter incrementare il rischio se il valore
oltrepassa tali soglie.
Le soglie di normalità andrebbero impostate direttamente dal medico e
personalizzate a seconda del paziente e della malattia; non avendo questa possibilità
abbiamo pensato di ricavarle direttamente dai dati, impostandole come i valori minimo
e massimo della media mobile calcolata come spiegato nel Paragrafo 5.6.
Sempre parlando con un esperto abbiamo scoperto che ci sono ulteriori soglie, che
abbiamo chiamato “assolute”, oltre le quali va sempre lanciato l’allarme: ai valori che le
37
Capitolo 4 - IGUANA – idea
oltrepassano è assegnata automaticamente la classe di rischio più elevato. La Figura 4.2
mostra graficamente quanto spiegato.
valore
dati originali
soglie assolute
media mobile
soglie di normalità
dist
offset
slope
tempo
Figura 4.2 Esempio di calcolo di offset, slope e dist
4.2.2 Funzione di rischio
Dopo aver trasformato i dati provenienti dalla fase di pre-elaborazione nei
corrispondenti valori di offset, slope e dist, abbiamo ricavato la funzione matematica
indicata dalla Formula (4.1), in grado di combinarli per ottenere il rischio.
(4.1) risk = offset + slope + (offset ) 2 + ( slope) 2 + dist
Spieghiamo ora il contributo dei vari termini e il loro significato.
Consideriamo ad esempio il grafico riportato in Figura 4.3. Supponiamo che
derivi dalla trasformazione di alcuni punti di una sequenza temporale nelle rispettive
coordinate di slope e offset. Non consideriamo il contributo di dist, quindi supponiamo
che i punti siano all’interno delle soglie di normalità; in caso contrario avremmo un
grafico tridimensionale. I punti nel primo e nel terzo quadrante sono quelli che
caratterizzano le situazioni più rischiose, perché indicano che il segnale analizzato si sta
allontanando dalla media (offset e slope concordi); quelli nel secondo e nel quarto
quadrante, invece, caratterizzano situazioni meno rischiose, perché il segnale si sta
avvicinando alla media (offset e slope discordi).
38
Capitolo 4 - IGUANA – idea
offset
slope
Figura 4.3 Trasfomazione di alcuni punti nelle coordinate slope-offset
Il primo termine della Formula (4.1), offset + slope , considera le quattro
possibili combinazioni di slope e offset:
1. offset positivo e slope positivo: il valore è sopra la media e si sta
allontanando; il rischio aumenta, infatti le componenti si sommano;
2. offset negativo e slope negativo: il valore è sotto la media e sta diminuendo;
anche in questo caso il rischio deve aumentare della somma delle due
componenti, come si ottiene applicando il valore assoluto;
3. offset positivo e slope negativo: il valore è sopra la media ma sta
diminuendo, le componenti si sottraggono e il rischio è minore;
4. offset negativo e slope positivo: il valore è sotto la media ma si sta
avvicinando ad essa; anche in questo caso il rischio è minore.
Evidenziando i punti con lo stesso rischio, si ottengono delle rette inclinate a
–45° e simmetriche rispetto all’origine. Raggruppando quelli a rischio simile, si ottiene
un grafico come quello riportato in Figura 4.4. Possiamo notare che:
ƒ l’ampiezza tra le “fasce” a rischio simile dipende dal metodo di
raggruppamento utilizzato, nel nostro caso un algoritmo di clustering;
ƒ la simmetria delle rette rispetto all’origine dipende dai pesi assegnati a slope
e offset: come infatti spiegato nel seguito del paragrafo, assegnando lo
stesso peso a valori positivi e negativi dei parametri si ottengono rette
simmetriche, in caso contrario questo non si verifica;
ƒ i punti centrali hanno rischio basso (offset e slope quasi nulli, quindi valori
nella norma) e il rischio cresce allontanandosi dall’origine.
39
Capitolo 4 - IGUANA – idea
offset
slope
Figura 4.4 Contributo del primo termine nel calcolo del rischio
offset
slope
Figura 4.5 Contributi dei primi due termini nel calcolo del rischio
Il primo termine della Formula (4.1), però, non è sufficiente a valutare il rischio
in modo adeguato. Considerando che un punto nell’origine è meno rischioso di uno che
ha slope e offset uguali, discordi ma non nulli, abbiamo introdotto un altro contributo,
40
Capitolo 4 - IGUANA – idea
(offset ) 2 + ( slope) 2 , che rappresenta la distanza dall’origine. Otteniamo quindi delle
ellissi allineate con l’asse maggiore a –45°, come mostrato in Figura 4.5.
Infine, per aumentare il rischio nel caso in cui il valore esca dalle soglie di
normalità abbiamo introdotto il terzo contributo, dist.
Per aggiungere flessibilità alla soluzione, abbiamo pensato di permettere al
medico di modificare il contributo delle componenti del rischio pesandole in modo
opportuno a seconda del parametro; ad esempio per il battito cardiaco sono poco
importanti le variazioni, anche se brusche, rispetto al valore assoluto, quindi slope deve
influenzare di meno il calcolo del rischio. Quindi abbiamo introdotto dei pesi (con
valori da 0 a 1) per ognuna delle componenti. La Formula (4.2) tiene conto di queste
considerazioni.
(4.2) risk = wo ⋅ offset + ws ⋅ slope + wr ⋅ (offset ) 2 + ( slope) 2 + wd ⋅ dist
Nell’equazione riportata wo indica il peso (weight) di offset, ws quello di slope e
wd quello di dist. Agendo sui primi due pesi si varia l’inclinazione delle rette; il peso wr
serve invece a regolare l’importanza del raggio, cioè della distanza dal centro, e sul
grafico di slope-offset ha l’effetto di “deformare” l’ellisse.
I valori dei pesi wo, ws, wd sono impostabili dall’utente, mentre wr non è un
parametro libero ma dipende dai primi due; abbiamo deciso di definire il suo valore
come media tra wo e ws in quanto se wo e ws sono posti a zero, anche la distanza
dall’origine del piano cartesiano individuato da slope e offset non deve contribuire al
rischio; se invece wo e ws sono maggiori di zero, wr deve influire in modo
proporzionale ad essi.
Un’ulteriore considerazione ci ha portato a introdurre una differenziazione dei
pesi, a seconda che il valore sia positivo o negativo. Da valutazioni mediche, infatti,
abbiamo capito che è più pericoloso se i valori scendono sotto la media, perché
generalmente sono situazioni provocate da malfunzionamenti dell’organismo. Ad
esempio, se il battito cardiaco scende sotto i 60 battiti al minuto, probabilmente si tratta
di un problema di percorso elettrico tra cuore superiore e inferiore, un cosiddetto blocco
cardiaco, che causa una contrazione dei ventricoli troppo lenta o una perdita di
sincronizzazione tra cuore superiore o inferiore; oppure un problema di pacemaker, che
non invia più segnali alla frequenza necessaria determinando un numero minore di
contrazioni. Un aumento dei valori oltre la media, invece, può essere causato anche da
sforzi fisici, come una corsa.
Non avendo a disposizione misure per capire se il paziente sta facendo attività
fisica, abbiamo previsto di considerare separatamente le due situazioni (valori positivi o
negativi di offset, slope e dist). Nel caso in cui, in futuro, si presentasse questa
possibilità, sarebbe possibile modificare il framework per gestire l’integrazione delle
nuove misure di movimento/attività in modo semplice.
41
Capitolo 4 - IGUANA – idea
4.2.3 Ipotesi sulla frequenza
Abbiamo ipotizzato che le situazioni più frequenti siano quelle meno rischiose,
come abbiamo verificato facendo l’istogramma dei valori di slope, offset e dist, e
notando che avevano un andamento simile a quello riportato in Figura 4.6. La maggior
parte dei punti si trova in situazioni poco rischiose, corrispondenti a bassi valori di
slope, offset e dist: tali situazioni sono quindi le più frequenti. Al contrario, solo pochi
punti hanno valori elevati: le situazioni più rischiose sono quindi le più rare.
Figura 4.6 Istogramma della distribuzione dei valori ipotizzata
Se questa ipotesi non fosse vera, potremmo avere un andamento dei valori di
slope, offset e dist simile a quello riportato in Figura 4.7. IGUANA funzionerebbe allo
stesso modo nel rilevare un certo numero di situazioni significative, ma l’effetto sarebbe
quello di differenziare le situazioni di normalità e lasciare un’unica classe di rischio
elevato con tanti punti.
Figura 4.7 Istogramma della distribuzione dei valori alternativa
42
Capitolo 4 - IGUANA – idea
4.2.4 Clustering
Definiti i concetti di slope, offset e dist, abbiamo pensato ad un metodo per
classificarli; ricordiamo infatti che l’obiettivo di questa fase è ottenere un modello di
classificazione. Per le motivazioni spiegate nel Paragrafo 3.8.1, abbiamo pensato di
applicare la classificazione non supervisionata, ovvero il clustering.
Le scelte prese in considerazione sono:
1. applicare il clustering tridimensionale sui valori dei tre parametri per vedere
se individua situazioni di rischio simile, e riportare in output i centri di
cluster; l’effetto è quello di raggruppare i punti con slope, offset e dist
simili;
2. calcolare il rischio direttamente nel modello, usando la Formula (4.2), e
applicare il clustering (monodimensionale) ai valori di rischio ottenuti, in
modo da dividerli in classi, e riportare in output le soglie;
3. applicare il clustering (monodimensionale) in modo separato ai valori di
slope, offset e dist, riportando in output le soglie delle classi individuate per
ciascuno, e spostare il calcolo del rischio nella parte di classificazione
(applicazione del modello).
Per quanto riguarda la scelta degli algoritmi di clustering, abbiamo preso in
considerazione sia gli algoritmi di partizionamento (k-means), sia quelli gerarchici,
provando per questi ultimi vari metodi di calcolo della distanza inter-cluster (single
linkage, complete linkage, average linkage, centroid e ward), riportando le
considerazioni teoriche nel Paragrafo 3.8.2 e i confronti sperimentale nel Paragrafo
7.4.7.
Per avere a disposizione una visualizzazione dei risultati, abbiamo progettato un
classificatore per ognuno dei modelli e l’abbiamo applicato a nuovi dati. Rimandiamo
quindi la discussione sulla scelta del modello più adatto al Paragrafo 4.3.
4.3 Classificazione
Dopo la creazione del modello, possiamo passare alla fase della sua applicazione
per classificare nuovi dati. Ricordiamo che la creazione del modello può essere
effettuata off-line, senza particolari limiti di tempo o prestazioni, invece la
classificazione va fatta on line sul flusso di dati che arriva dai sensori, nel più breve
tempo possibile. Non avendo a disposizione apparecchiature che ci permettessero di
registrare un flusso in tempo reale, l’abbiamo simulato leggendo i dati da file (diversi da
quelli usati per la creazione del modello).
A questo punto non è necessaria la fase di pre-elaborazione dei dati, o meglio, si
riduce al solo campionamento, nel caso in cui la frequenza dei sensori sia troppo
elevata. Prevediamo, infatti, che durante il periodo di monitoraggio possano verificarsi
malfunzionamenti dei sensori, e quindi siano presenti dei valori non significativi nelle
sequenze. Abbiamo deciso che, se un sensore non rileva la misura di un segnale, tale
43
Capitolo 4 - IGUANA – idea
segnale non va ad influire sul calcolo del rischio complessivo per il paziente in
quell’istante.
A seconda del modello scelto, si deve utilizzare un diverso classificatore. In
Figura 4.8 mostriamo lo schema dei tre tipi di classificatori.
MODELLO 1
<cluster offset,
slope, dist>
offset
dato
slope
confronto
dato
classificato
dist
MODELLO 2
<cluster rischio>
offset
dato
slope
rischio
dato
classificato
confronto
dist
MODELLO 3
<cluster offset>
< cluster slope>
<cluster dist>
offset
dato
slope
dist
offset class
confronto
slope class
rischio
discretizzazione
dato
classificato
dist class
Figura 4.8 Classificatori per i tre tipi di modelli
Il primo passo, ossia la scomposizione del dato di input nei corrispondenti valori
di slope, offset e dist, è comune a tutti e tre.
Nel primo classificatore si assegna la terna di valori al cluster più vicino tra
quelli disponibili nel modello, ossia al cluster il cui centro ha distanza minima dal
punto. Abbiamo verificato che il modello creato per il primo classificatore individua dei
cluster che non corrispondono a classi di rischio diverse, non avendo ancora definito il
rischio come risultato della funzione descritta nella Formula (4.2). Riconosce invece i
cosiddetti “comportamenti simili”, raggruppando i punti che hanno slope, offset e dist
analoghi, come si può notare nella Figura 4.9 (relativa alla pressione arteriosa sistolica
della registrazione mimic-pulmEde-f92-71h-414n): ad esempio si distinguono le
situazioni in cui il paziente è sotto la media o poco sopra (punti arancioni e gialli, a
seconda che slope sia negativo o positivo) o decisamente sopra la media (punti verdi).
44
Capitolo 4 - IGUANA – idea
Non essendoci utile al raggiungimento dell’obiettivo iniziale, abbiamo scartato questa
soluzione.
Figura 4.9 Risultato dell’applicazione del primo modello
Nel secondo classificatore si calcola il rischio con la Formula (4.1) e si confronta
il valore ottenuto con le soglie ricavate dal modello. In questo modo si ottiene la classe
di rischio del segnale ad uno specifico istante di tempo.
La Figura 4.10, relativa alla pressione arteriosa sistolica della registrazione
mimic-pulmEde-f92-71h-414n, mostra il risultato dell’applicazione di questo
secondo metodo: si nota che i punti vicini alla media e dentro le soglie sono poco
rischiosi (di colore verde), mentre quelli più lontani lo sono di più (punti rossi e viola).
Con questo approccio la parte di classificazione è semplice, e lasciando il clustering (e
quindi la discretizzazione) alla fine è possibile mantenere la massima accuratezza.
D’altra parte, calcolando il rischio nel modello si ha uno svantaggio: siccome
l’operazione richiede l’impostazione di molti parametri, ogni volta che se ne modifica
uno bisogna eliminare il vecchio modello e costruirne uno nuovo; al crescere della
dimensione dei dati esaminati, tale operazione richiede parecchio tempo.
45
Capitolo 4 - IGUANA – idea
Per quanto riguarda l’aspetto pratico, il principale svantaggio di questa soluzione
sta nella valutazione delle situazioni di rischio solo in base al valore finale del rischio
calcolato, senza considerare se questo sia dovuto a una o più delle tre componenti slope,
offset e dist. Possono verificarsi situazioni in cui il valore del rischio è elevato solo a
causa di una componente, e altre situazioni in cui il rischio non è elevato, anche se una
componente assume valori anomali.
Figura 4.10 Risultato dell’applicazione del secondo modello
Nel terzo classificatore, prima si confrontano i valori di slope, offset e dist con le
soglie ricavate dal modello, e dopo ci si occupa del calcolo del rischio, pesandoli in
modo opportuno. La Figura 4.11, relativa alla pressione arteriosa sistolica della
registrazione mimic-pulmEde-f92-71h-414n, mostra il risultato ottenuto.
Il principale vantaggio della terza soluzione presentata è quello di analizzare le
tre componenti del rischio per valutarne l’impatto singolarmente. Lo svantaggio è che la
classificazione è più complessa, ma la differenza nel tempo di elaborazione è
dell’ordine dei millisecondi e le prestazioni finali sono comunque accettabili (Paragrafo
7.6).
Anticipare il clustering (quindi la discretizzazione) prima del calcolo del rischio
ci permette di eliminare il rumore dovuto alle imprecisioni delle misure dei sensori.
46
Capitolo 4 - IGUANA – idea
Inoltre questo passo è utile anche per normalizzare le tre misure ed evitare che i valori
assoluti influenzino in modo errato il calcolo del rischio.
Figura 4.11 Risultato dell’applicazione del terzo modello
Dalle considerazioni teoriche e dai risultati sperimentali, riteniamo che la terza
soluzione sia la migliore; esperti del settore, ai quali abbiamo mostrato i grafici ottenuti,
hanno confermato tale scelta. Per questi motivi abbiamo svolto le prove per la
determinazione dei parameri del framework e dei pesi usando il terzo modello; i risultati
sono analizzati nel Capitolo 7.
4.4 Rischio totale
Avendo assegnato un rischio ad ogni segnale rilevato in ciascun istante di tempo,
l’ultimo problema è determinare il rischio complessivo del paziente.
Siccome in questa tesi abbiamo considerato solo segnali fisiologici vitali,
abbiamo deciso di assegnare come rischio complessivo il massimo tra quelli individuali.
Se in futuro si aggiungessero altri segnali meno significativi o nuove conoscenze, si
potrebbe modificare questa scelta in modo semplice.
47
Capitolo 4 - IGUANA – idea
Il grafico in Figura 4.12 mostra il rischio totale per il paziente, comune a tutti i
parametri.
Figura 4.12 Rischio totale riportato sui quattro parametri
Si notano frequenti situazioni in cui il rischio complessivo è massimo a causa del
basso livello di ossigenazione anche se il paziente presenta battito cardiaco e pressione
sanguigna nella norma. Questo è dovuto all’ipotesi di considerare tutti i segnali
fisiologici della stessa importanza per determinare la gravità della situazioni clinica del
paziente.
48
Capitolo 5
IGUANA – implementazione
5.1 Introduzione
In questo capitolo descriviamo i dettagli implementativi del nostro framework
IGUANA. Presentiamo una breve introduzione sul funzionamento di R, l’ambiente che
abbiamo usato per realizzare il prototipo (maggiori informazioni sono disponibili sul
sito [42]). Inoltre dettagliamo le fasi di lettura dei dati da file, pre-elaborazione dei dati
e calcolo della media mobile, e specifichiamo le fasi di creazione del modello e
classificazione dei dati riportando l’implementazione dei tre metodi individuati nel
capitolo precedente. Abbiamo ritenuto opportuno inserire solo le parti di codice più
significative.
5.2 Introduzione a R
R è un linguaggio e un ambiente specifico per l’utilizzo di funzioni statistiche e
la visualizzazione di grafici. Il codice sorgente è disponibile come software libero nei
termini delle licenze della GNU Free Software Foundation2; si compila e si esegue sotto
parecchie piattaforme UNIX (inclusi i sistemi FreeBSD e Linux), Windows e MacOS.
Figura 5.1 Logo di R
R è un’integrazione di strumenti per la manipolazione dei dati, di calcolo e di
grafica; deriva dall’implementazione del linguaggio S, sviluppata da Rick Becker, John
Chambers e Allan Wilks nei laboratori Bell. Permette un’efficiente gestione e
memorizzazione dei dati, comprende parecchi operatori per fare calcoli direttamente su
2
http://www.gnu.org
49
Capitolo 5 - IGUANA – implementazione
vettori e matrici, include una notevole collezione di strumenti per l’analisi dei dati
(integrati e coerenti) e la loro rappresentazione grafica, e utilizza un linguaggio di
programmazione semplice ed efficace, che permette all’utente di definire nuove
funzioni, e può richiamare a run-time codice scritto in C, C++ e Fortran.
Con il termine “ambiente” si intende affermare che R è un sistema ben
progettato e coerente, piuttosto che un insieme di strumenti troppo specifici e poco
flessibili, come in genere succede nel caso di altri software per l’analisi dei dati. Inoltre,
R può essere facilmente esteso tramite package: alcuni sono già inclusi nella
distribuzione, gli altri sono scaricabili da Internet3.
I comandi possono essere eseguiti direttamente dal prompt o richiamati da uno
script, salvato su un file con estensione “.r”, tramite
> source("commands.r")
Le entità create sono chiamate “oggetti” (variabili, vettori, stringhe, funzioni o
strutture più complesse) e, durante una sessione, sono creati e memorizzati per nome.
Il comando
> objects()
serve a visualizzare i nomi degli oggetti correntemente memorizzati in R (che
prendono il nome di workspace). Tutti gli oggetti creati durante una sessione possono
essere salvati in un file per essere riutilizzati in una sessione futura; sono scritti su un
file con estensione RData e le linee di comando usate sono scritte in un file con
estensione Rhistory. Quando R viene riavviato, carica il workspace da questi file.
R opera su strutture dati; la più semplice è il vettore numerico, costituito da una
sequenza ordinata di numeri. Per creare un vettore di nome x di cinque numeri, 10.4,
5.6, 3.1, 6.4 e 21.7, si usa il comando
> x <- c(10.4, 5.6, 3.1, 6.4, 21.7)
La funzione c() concatena un numero arbitrario di elementi passati come
argomenti. Nella maggior parte dei casi si può usare “=” come simbolo alternativo di
assegnazione, o la funzione assign()
> assign(“x”,c(10.4, 5.6, 3.1, 6.4, 21.7))
Se si scrive un’espressione senza assegnare il risultato ad una variabile, esso
viene solo visualizzato ma non memorizzato. Per accedere a un elemento di un vettore
si usano le parentesi quadre. Ad esempio x[c(1:3)] restituisce i primi tre elementi del
vettore.
I vettori possono essere usati in espressioni aritmetiche, in cui le operazioni sono
fatte elemento per elemento. Non sempre i vettori devono essere della stessa lunghezza;
se non lo sono, il risultato sarà un vettore con lunghezza pari al vettore più lungo, e
quelli più corti sono ripetuti finché non raggiungono la lunghezza necessaria. Ad
esempio, mantenendo x definito prima, nel comando
> y <- 2*x + 1
la variabile 1 è ripetuta cinque volte per essere sommata a tutti gli elementi di x.
3
http://CRAN.R-project.org
50
Capitolo 5 - IGUANA – implementazione
Gli operatori aritmetici elementari sono +, -, *, / e ^ per elevare a potenza;
inoltre sono disponibili altre funzioni aritmetiche comuni (log(x), exp(x), sin(x),
cos(x), tan(x), sqrt(x)) e statistiche: max(x) e min(x) per selezionare il più
grande o il più piccolo elemento di un vettore, length(x) per ricavare il numero di
elementi che lo compongono, sum(x) per la somma totale degli elementi, prod(x) per
il loro prodotto, mean(x) e var(x) per il calcolo di media e varianza, sort(x) per
ordinare gli elementi.
R ha una serie di funzioni per generare facilmente sequenze di numeri, ad
esempio
> 1:30
è il vettore c(1, 2, …, 29, 30), equivalente a
> seq(1,30,by=1)
A volte alcune componenti di un vettore possono non essere note: quando un
elemento è “Not Available” viene sostituito dal valore speciale NA. In genere ogni
operazione con un NA dà come risultato NA. La funzione is.na(x) restituisce un
vettore logico, della stessa lunghezza di x, con TRUE in corrispondenza degli elementi
NA in x. C’è un secondo caso di valori mancanti, i cosiddetti “Not a Number” (NaN),
derivanti da forme indeterminate come 0/0 o Inf-Inf. Anche nel caso di questi valori la
funzione is.na() restituisce un valore TRUE. Per sapere se si tratta di NA o NaN
bisogna effettuare un secondo controllo tramite is.nan().
Spesso servono anche vettori di caratteri, in genere per le etichette dei grafici. Le
stringhe vanno racchiuse tra doppi apici e si possono concatenare tramite le funzioni
c() o paste(): quest’ultima ha un numero arbitrario di argomenti e li concatena in
una stringa, separati da uno spazio (il separatore è modificabile).
Altri tipi di oggetti, oltre ai vettori, sono le matrici (generalizzazioni dei vettori,
indicizzate da due o più indici), le liste (forme generali di vettori, in cui gli elementi non
devono necessariamente essere dello stesso tipo, anzi sono a loro volta vettori o liste;
sono usate per memorizzare i dati di un calcolo statistico), i data frame (strutture simili a
matrici, in cui le colonne possono essere di tipo diverso, ad esempio per rappresentare le
diverse variabili prese in considerazione durante varie osservazioni), e le funzioni.
Non ci soffermiamo sulla trattazione di tutte le strutture dati e dei comandi,
anche perché facilmente comprensibili intuitivamente, ma dedichiamo un’ultima parte
alle funzioni grafiche. Per aprire una nuova finestra grafica si usa il comando x11().
Si usa il comando
> plot(x)
per visualizzare gli elementi del vettore (asse y) e il loro indice nel vettore (asse
x); se x è un vettore di numeri complessi produce il grafico della parte reale e di quella
immaginaria. Oppure si usa
> plot(x,y)
per visualizzare i punti che hanno coordinate x nel vettore x, e y in y (i due
vettori devono avere la stessa lunghezza).
Inoltre si possono impostare altri argomenti, tra cui:
51
Capitolo 5 - IGUANA – implementazione
1.
type, per il tipo di grafico
a. type = “p”, disegna solo i punti (impostato di default);
b. type = “l”, disegna solo le linee che congiungono i punti;
c. type = “b”, disegna sia i punti che le linee;
d. type = “h”, disegna linee verticali dal punto all’asse x;
e. type = “n”, non disegna i punti ma solo gli assi;
xlab, per l’etichetta sull’asse x;
ylab, per l’etichetta sull’asse y;
main, per il titolo del grafico;
sub, per il sottotitolo (posto sotto l’asse x, a caratteri più piccoli).
2.
3.
4.
5.
Se questo non è sufficiente a produrre il grafico desiderato, si possono usare altri
comandi più a basso livello, in particolare:
> points(x,y)
per aggiungere dei punti al grafico corrente;
> text(x,y,labels,…)
per aggiungere del testo posizionato nel punto (x,y);
> abline(a,b)
per aggiungere una linea di pendenza b e intercetta a;
> abline(h=y,v=x)
per aggiungere una linea orizzontale ad altezza y o verticale a distanza x;
> polygon(x,y,…)
per disegnare un poligono definito dai vertici in (x,y);
> legend(x,y,legend,…)
per aggiungere una legenda nella specifica posizione (x,y).
5.3 Main
Abbiamo strutturato il programma in modo da avere un flusso principale di
poche righe, che richiama le varie funzioni, in particolare quelle di pre-elaborazione dei
dati, di creazione del modello, della sua applicazione, e di visualizzazione dei risultati.
La prima parte, relativa alla costruzione del modello, comprende le fasi di:
1. lettura dei dati su cui costruire il modello da file;
2. calcolo delle statistiche globali (somma, minimo, massimo, media) di ogni
parametro;
3. pre-elaborazione dei dati (individuazione NA, campionamento);
4. calcolo della media mobile;
5. calcolo delle soglie di normalità;
6. creazione del modello (passando come parametri di input i dati, la media
mobile, il numero di cluster, l’algoritmo da utilizzare per il clustering
gerarchico, l’algoritmo di implementazione del k-means, il metodo di
calcolo della distanza e i valori delle soglie di normalità);
7. visualizzazione del modello (per mostrare il dendrogramma ottenuto).
52
Capitolo 5 - IGUANA – implementazione
La fase 6, a seconda del tipo di modello utilizzato, può ricevere o no come
parametro il vettore dei pesi per slope, offset e dist, che va quindi appositamente
impostato.
La seconda parte, relativa all’applicazione del modello per classificare i dati,
comprende le fasi di:
1. lettura dei dati da classificare;
2. calcolo delle statistiche globali (somma, minimo, massimo, media) di ogni
parametro;
3. campionamento dei dati;
4. calcolo della media mobile;
5. calcolo delle soglie di normalità;
6. impostazione dei pesi (solo nel caso di utilizzo del terzo tipo di modello);
7. classificazione dei dati applicando il modello;
8. visualizzazione dei risultati (i punti sono colorati con colori diversi in base
al rischio, secondo la scala verde, giallo, arancione, rosso, viola).
Nel resto del capitolo spieghiamo le fasi più significative.
5.4 Lettura dei dati
I dati vengono letti da file. I file, come spiegato nel Capitolo 6, sono composti da
una riga iniziale di intestazione e tante colonne quanti sono i parametri misurati, più una
per il tempo. Bisogna specificare il numero totale di file da leggere (in nfile) e i loro
nomi (nel vettore inputFiles). Il ciclo for riportato di seguito crea una lista
(filelist) con i nomi completi dei file (filename), ottenuti aggiungendo la cartella
appropriata (inputPath) prima del nome originale e il suffisso (filesuffix) dopo.
for ( i in 1:nfile ) {
filename <- paste(inputPath,inputFiles[i],filesuffix ,sep="")
filelist <- c( filelist, filename )
}
Per leggere i dati da un file, bisogna usare il comando read.table, come
indicato nel codice riportato. Il significato degli argomenti è il seguente:
ƒ filelist[n]: il nome del file da cui leggere i dati (può essere il percorso
relativo, assoluto o una URL);
ƒ header: un valore logico per specificare se la prima riga del file contiene i
nomi delle variabili (header = TRUE) o no (header = FALSE);
ƒ colClasses: un vettore per specificare i tipi delle colonne (ad esempio
numerico, logico, intero, complesso, carattere, ecc...); nel nostro caso sono
tutti numerici; tale vettore si costruisce come indicato nella prima riga di
codice seguente, ripetendo una volta il valore NULL, per non considerare la
prima colonna, quella dei tempi, e nparam volte il valore “numeric”.
53
Capitolo 5 - IGUANA – implementazione
Il risultato di questo comando è la produzione di un data frame; per manipolarlo
secondo le nostre esigenze abbiamo dovuto trasformarlo in una matrice, usando il
comando as.matrix. L’operazione va ripetuta per tutti i file, i cui valori vengono
quindi memorizzati in una lista di matrici, denominata originaldata.
Il codice seguente mostra quanto descritto.
datacol <- c( rep("NULL",1), rep("numeric",nparam) )
for ( n in 1:length(filelist) ) {
# for every file
originaldata[[n]] <- as.matrix(
read.table( filelist[n],
header = TRUE,
colClasses = datacol ) )
}
In Figura 5.2 mostriamo graficamente la fase di lettura dei dati da file. La
funzione, denominata IGUANA_read riceve come argomento la lista dei file
(filelist) da cui leggere i dati e restituisce come risultato una lista di matrici
contenenti i dati letti (originaldata).
filelist
originaldata
ABP ABP
t
HR SpO2
dias sys
-
IGUANA_read
- - - - - - -
- - - - - - -
Figura 5.2 Fase di lettura dei dati
5.5 Pre-elaborazione dei dati
L’operazione di pre-elaborazione, eseguita sui dati letti dai file per la
costruzione del modello, si divide in quattro fasi distinte:
1. sostituzione degli outlier (valori errati dovuti a malfunzionamenti dei
sensori) con il valore NA (Not Available);
2. sostituzione degli NA isolati con la media tra il valore precedente e il
successivo;
3. selezione della più lunga sottosequenza senza NA;
4. campionamento dei dati per adeguarsi alla frequenza desiderata.
La prima fase comprende un ciclo, ripetuto per ogni file e per ogni parametro,
che individua gli indici dei valori che oltrepassano le soglie oltre le quali sono da
considerarsi come malfunzionamenti dei sensori (ad esempio i valori negativi o nulli).
54
Capitolo 5 - IGUANA – implementazione
Tali soglie, denominate NAthresholds, sono impostate da letteratura medica, come
indicato in Tabella 5.1.
ABPsys ABPdias
HR
SpO2
[mmHg] [mmHg] [bpm] [%]
min
20
20
20
80
max
250
150
170
100
Tabella 5.1 Soglie di outlier
Il comando which ritorna gli indici per cui è soddisfatta la condizione racchiusa
tra parentesi, cioè quelli dei valori che oltrepassano le soglie. A tali indici viene poi
assegnato come valore NA. Il codice seguente compie le operazioni descritte.
for( p in 1:nparam ) {
NAi <- c( which(originaldata[[n]][,p]<NAthresholds["min",p]),
which(originaldata[[n]][,p]>NAthresholds["max",p]) )
if( length( NAi ) > 0 )
originaldata[[n]][NAi,p ] <- c(NA)
}
La seconda fase comprende il ciclo, ripetuto per ogni file e per ogni parametro,
che individua gli indici dei valori. Il comando attr ritorna uno specifico attributo di un
oggetto: in questo caso l’oggetto è il risultato di na.omit, ovvero il vettore originale
senza i valori NA, e l’attributo è "na.action", cioè gli indici dei valori NA. In NAs
abbiamo quindi gli indici di tutti i valori NA: sia quelli che abbiamo rimosso al passo
precedente, sia gli eventuali già presenti in origine. Con il comando sort li abbiamo
ordinati in ordine crescente.
NAs <- attr(na.omit(originaldata[[n]][,c]),"na.action")
if( is.null(NAs) ) next
NAs <- sort( NAs )
Se c’è un solo NA e non è il primo valore della sequenza né l’ultimo, questo
viene sostituito dalla media del valore precedente e di quello successivo.
len <- length( NAs )
if (len < 1) next
if (len==1 && NAs[1]!=1 && NAs[1]!=length(originaldata[[n]]))
originaldata[[n]][NAs[1]]
<- mean(c(originaldata[[n]][NAs[1]-1,c],
originaldata[[n]][NAs[1]+1,c]) )
55
Capitolo 5 - IGUANA – implementazione
Se ci sono più NA, bisogna individuare quelli isolati, e sostituirli con la
medesima formula se non sono all’inizio o alla fine della sequenza; in questi casi
particolari non possono essere sostituiti.
if ( NAs[1]+1 != NAs[2] && NAs[1] != 1 ) {
originaldata[[n]][NAs[1],c] <- mean( c(
originaldata[[n]][NAs[1]-1,c],
originaldata[[n]][NAs[1]+1,c]) )
}
if ( NAs[len]-1 != NAs[len-1] &&
NAs[len] != dim(originaldata[[n]])[1] ) {
originaldata[[n]][NAs[len],c] <- mean( c(
originaldata[[n]][NAs[len]-1,c],
originaldata[[n]][NAs[len]+1,c]) )
}
for( i in 2:(len-1) ) {
NArow <- NAs[i]
#if it is an isolated NA (not precedeed nor followed by NA)
if( (NArow-1 != NAs[i-1]) && (NArow+1 != NAs[i+1]) ) {
originaldata[[n]][NArow,c] <- mean(c(
originaldata[[n]][NArow-1,c],
originaldata[[n]][NArow+1,c] ))
}
La terza fase comprende la selezione della più lunga sottosequenza senza NA.
Avendo gli indici dei valori a NA, per ottenere la dimensione di tutte le sottosequenze
senza NA basta fare la sottrazione tra ogni indice e quello precedente. Poi abbiamo
scelto quella più lunga tramite il comando max.
NArows <- c(sort(attr(na.omit(originaldata[[n]]),"na.action") ),
(dim(originaldata[[n]])[1]+1)
NArows2 <- NArows[2:length(NArows)]
notNAseq <- NArows2 - NArows[1:length(NArows2)]
NAi <- which.max( notNAseq )
originaldata[[n]] <originaldata[[n]][(NArows[NAi]+1):(NArows2[NAi]-1),]
La quarta fase, infine, su una finestra mobile di dimensione nsamples, calcola
la media e memorizza i valori, poi li campiona ogni nsamples.
Per calcolare la media mobile si usa il comando filter, che richiede come
argomenti:
ƒ una sequenza temporale;
ƒ un vettore di coefficienti di filtro, in questo caso una sequenza di 1;
ƒ un metodo, che può essere di convoluzione (come in questo caso, per
calcolare la media mobile), o di ricorsione (per l’autoregressione);
56
Capitolo 5 - IGUANA – implementazione
ƒ
nel caso in cui il metodo sia di convoluzione bisogna specificare per quali
valori sono i coefficienti (sides=1 se sono per quelli precedenti).
In originaldata abbiamo quindi i dati pronti per essere passati alla funzione
di costruzione del modello.
originaldata[[n]] <- filter( originaldata[[n]],
filter = rep(1,nsamples),
method=‘conv’, sides=1 ) / nsamples
i = c( 1:floor(dim(originaldata[[n]])[1]/nsamples) ) * nsamples
originaldata[[n]] <- originaldata[[n]][i,]
In Figura 5.3 mostriamo graficamente la fase di pre-elaborazione dei dati. La
funzione, denominata IGUANA_prepare riceve come argomenti:
ƒ la lista di matrici contenenti i dati letti dai file (originaldata),
ƒ l’indicazione dell’ampiezza della finestra di campionamento, espressa in
numero di campioni da analizzare (nsamples).
Restituisce come risultato la lista di matrici contenenti la più lunga
sottosequenza di valori senza NA comune a tutti i parametri (alldata).
originaldata
- - - - - - -
- - - - - - -
alldata
nsamples
IGUANA_prepare
- - - - - - -
- - - - - - -
Figura 5.3 Fase di pre-elaborazione dei dati
5.6 Calcolo della media mobile
Il problema del calcolo della media mobile richiede una particolare attenzione.
In Figura 5.4 mostriamo la situazione a regime: la media mobile (mm) su una finestra
temporale di dimensione d, ad un certo istante di tempo t si calcola secondo la Formula
(5.1).
(5.1)
mm[t ] =
mm[t − 1] ⋅ (d − 1) + valore[t ]
d
La Formula (5.1) in realtà è corretta solo per i valori di t > d. Infatti,
inizializzando la variabile con
mm[1] = valore[1]
57
Capitolo 5 - IGUANA – implementazione
si nota che al secondo passo questo valore pesa molto nella media, perché
moltiplicato per (d–1), mentre sarebbe opportuno che su due punti la media mobile
fosse semplicemente la loro media. Abbiamo quindi corretto la Formula (5.1) nel modo
seguente.
mm[t] = mean(valore[1:t]), per t ≤ d
mm[t − 1] ⋅ (d − 1) + valore[t ]
, per t > d
mm[t ] =
d
d
t-1
t
valore
mm[t-1]
mm[t]=(mm[t-1]*(d-1)+valore[t])/d
Figura 5.4 Calcolo della media mobile
Figura 5.5 Media mobile senza considerare il rischio dei punti
A questo proposito, come si nota dal grafico riportato in Figura 5.5, la media
mobile (linea blu) calcolata in questo modo non si adatta correttamente alla situazione
mostrata. In questo grafico il nero indica i punti a rischio minore, il rosso quelli a
rischio intermedio, il verde quelli a rischio massimo. La media mobile tende a seguire
troppo fedelmente i punti a rischio elevato e causa degli errori di valutazione nel rischio
dei punti che rientrano nella media dopo un picco (nel grafico sono quelli con indice
prossimo a 300).
Durante la fase di classificazione si conosce il rischio del punto all’istante
considerato. Abbiamo pensato che la media mobile non debba adattarsi alle situazioni di
58
Capitolo 5 - IGUANA – implementazione
rischio elevato, quindi i punti a rischio più alto devono pesare di meno nella media
mobile. Di conseguenza abbiamo introdotto la seguente correzione alla Formula (5.1).
mm[t] = mean(valore[1:t]), per t ≤ d
mm[t ] =
( nrisklev + 1 − risklev[t ])
nrisklev
, per t > d
( nrisklev + 1 − risklev[t ])
( d − 1) +
nrisklev
mm[t − 1] ⋅ ( d − 1) + valore[t ] ⋅
In questo modo il valore del punto viene pesato in base al suo rischio: nrisklev è
il numero di livelli di rischio totali e risklev[t] è il rischio del punto. Se ad esempio il
punto ha rischio 2, su un massimo di 5 livelli, il valore viene moltiplicato per 4/5; se ha
rischio 5, viene moltiplicato solo per 1/5, quindi influisce di meno nel calcolo della
media.
In Figura 5.6 mostriamo graficamente la fase di calcolo della media mobile. La
funzione, denominata IGUANA_movmean riceve come argomenti:
ƒ la lista di matrici contenenti le sottosequenze di dati senza NA (alldata),
ƒ la dimensione della finestra; siccome quest’ultima è espressa in minuti nel
parametro mwin, per convertirla nel numero di valori da considerare bisogna
moltiplicare i minuti per 60, ottenendo i secondi (siccome la frequenza di
campionamento originale dei sensori è di un valore al secondo), e dividere
per nsamples.
La funzione restituisce come risultato la lista di matrici contenenti le medie
mobili calcolate per ogni parametro (alldataMM).
Il calcolo della media mobile è implementato in modo diverso a seconda del tipo
di classificatore utilizzato.
alldata
- - - - - - -
mwin*60/nsamples
- - - - - - -
IGUANA_movmean
alldataMM
- - - - - - -
Figura 5.6 Fase di calcolo della media mobile
59
- - - - - - -
Capitolo 5 - IGUANA – implementazione
5.7 Creazione del modello
Come spiegato nel capitolo precedente, abbiamo costruito i tre tipi di modelli,
corrispondenti alle tre diverse applicazioni del clustering ai dati. Di seguito riportiamo
le parti più rilevanti di ognuno di essi.
5.7.1 Modello 1
Nel primo modello eseguiamo il clustering tridimensionale sui valori di slope,
offset e dist4.
Avendo quindi nei vettori offsets[,c], slopes[,c], ndists[,c] i valori
relativi ad un parametro (in posizione c), eseguiamo il clustering k-means con il
comando
kcluster <- kmeans( cbind( offsets[c,],
slopes[,c],
ndists[c,] ),
nclust,
iter.max = 10000,
nstart = 1000,
algorithm = kalg )
in cui nclust è il numero di cluster desiderati, 10000 è il numero massimo di
iterazioni, 1000 è il numero massimo di insiemi da scegliere a caso e kalg è il tipo di
algoritmo che implementa il k-means (noi abbiamo usato quello di Hartigan and Wong
del 1979, perché più efficiente).
Per memorizzare i risultati abbiamo usato una lista di nome res:
res <- list()
res[["kclusters"]]
<- kclusters
In Figura 5.7 mostriamo graficamente la fase di creazione del modello. La
funzione, denominata IGUANA_model, riceve come argomenti:
ƒ la lista di matrici contenenti i dati letti dai file (alldata),
ƒ la lista di matrici delle medie mobili (alldataMM),
ƒ le soglie di normalità (Nthtesholds),
ƒ il numero di cluster (nclust),
ƒ l’algoritmo di implementazione del k-means da utilizzare (kalg).
Restituisce come risultato il modello, ovvero i centri di cluster calcolati.
4
Il parametro dist nella nostra implementazione è denominato ndist, per distinguerlo dalla
funzione di calcolo della distanza dist().
60
Capitolo 5 - IGUANA – implementazione
allata
- - - - - - -
- - - - - - -
alldataMM
- - - - - - -
- - - - - - -
Nthresholds
nclust
IGUANA_model
MODELLO 1
<cluster offset,
slope, dist>
kalg
Figura 5.7 Fase di creazione del primo tipo di modello
5.7.2 Modello 2
Nel secondo modello, invece, calcoliamo prima il rischio e poi eseguiamo il
clustering. Per ogni parametro concateniamo nel vettore risks[,c] i rischi di ogni
punto calcolati secondo la Formula (5.2).
(5.2)
risk = wo ⋅ offset + ws ⋅ slope + wr ⋅ (offset ) 2 + ( slope) 2 + wd ⋅ dist
Per il clustering gerarchico abbiamo effettuato le seguenti operazioni.
distance <- dist( risks[,c], method = dmethod )
hcluster <- hclust( distance, method = cmethod )
myclust <- cutree( hcluster, nclust )
Il commando dist() serve a calcolare la matrice delle distanze, usando
dmethod come misura di distanza (nel nostro caso quella euclidea).
Il comando hclust() esegue il clustering gerarchico usando il metodo di
calcolo della distanza inter-cluster specificato in cmethod (single linkage, complete
linkage, average linkage, ward o centroid): all’inizio ogni punto è in un cluster diverso,
poi si procede iterativamente, unendo ad ogni passo i due più simili, fino a raggiungere
un unico cluster che comprende tutti i valori. Il risultato di quest’operazione è un
dendrogramma, come mostrato in Figura 5.8.
Infine il comando cutree() “taglia” il dendrogramma ad un’altezza pari al
numero di cluster indicato in nclust. La scelta del numero di cluster va fatta dopo aver
analizzato il dendrogramma, in modo da avere una divisione significativa dei punti, non
distorta dagli outlier.
61
Capitolo 5 - IGUANA – implementazione
Figura 5.8 Esempio di dendrogramma
Nel caso invece del k-means abbiamo eseguito i comandi
kcluster <- kmeans( risks[,c], nclust, iter.max = 1000,
nstart = 100, algorithm = kalg)
kmcluster[,c] <- kcluster$cluster
Il secondo comando serve a memorizzare le etichette di cluster.
Per entrambi i tipi di clustering abbiamo ordinato i cluster in modo che nel
primo ci siano i valori più bassi del rischio e nell’ultimo quelli più alti. Abbiamo infine
memorizzato le soglie delle classi come i valori massimi dei punti di ogni cluster, e le
abbiamo salvate nella lista dei risultati.
In Figura 5.9 mostriamo graficamente la fase di creazione del modello. La
funzione, denominata IGUANA_model, riceve come argomenti:
ƒ la lista di matrici contenenti i dati letti dai file (alldata),
ƒ la lista di matrici delle media mobili (alldataMM),
ƒ le soglie di normalità (Nthtesholds),
ƒ il numero di cluster (nclust),
ƒ l’algoritmo di implementazione del k-means (kalg),
ƒ il metodo di calcolo della distanza inter-cluster (cmethod) del gerarchico,
ƒ il metodo di calcolo della distanza intra-cluster (dmethod) del gerarchico,
ƒ il vettore dei pesi di offset, slope e dist per il calcolo del rischio (wrisk).
Restituisce come risultato il modello, ovvero i cluster del rischio, come soglie
massime di ogni cluster.
62
Capitolo 5 - IGUANA – implementazione
allata
- - - - - - -
- - - - - - -
Nthresholds
- - - - - - -
wrisk
IGUANA_model
alldataMM
- - - - - - -
nclust
dmethod cmethod
MODELLO 2
<cluster rischio>
kalg
Figura 5.9 Fase di creazione del secondo tipo di modello
5.7.3 Modello 3
Nel terzo modello eseguiamo il clustering separatamente sui tre vettori di slope,
offset e dist, e riportiamo in output le soglie delle classi.
Prima abbiamo calcolato il valore assoluto dei tre vettori tramite il comando
abs, eseguendo il codice seguente. Questo passo è necessario perché abbiamo previsto
che due valori identici ma di segno opposto debbano appartenere allo stesso cluster.
offsets <- abs( offsets )
slopes <- abs( slopes )
ndists <- abs( ndists )
Riportiamo il codice per il calcolo su slope, per gli altri due parametri (offset e
dist) il procedimento è analogo.
Riportiamo anche il ciclo per l’ordinamento dei cluster, che prima avevamo
omesso. Per entrambi i tipi di clustering abbiamo ordinato i cluster, in modo che nel
primo ci siano i valori più bassi e nell’ultimo quelli più alti. Questo passaggio è svolto
perché, secondo l’ipotesi iniziale descritta nel Paragrafo 4.2.3, supponiamo che i
comportamenti più frequenti, e quindi meno rischiosi, di slope, offset e dist siano quelli
con valori più bassi.
Per il clustering gerarchico si ha:
distance <- dist( slopes[,c], method = dmethod )
hcluster <- hclust( distance, method = cmethod )
myclust <- cutree( hcluster, nclust )
for( k in 1:nclust ) {
slopelevh[k,c] <- max( slopes[ which(myclust==k) ,c] )
}
slopelevh[,c] <- sort( slopelevh[,c] )
63
Capitolo 5 - IGUANA – implementazione
E per il k-means:
kcluster <- kmeans( slopes[,c], nclust, iter.max = 1000,
nstart = 100, algorithm = kalg )
kcluster <- kcluster$cluster
for( k in 1:nclust ) {
slopelevk[k,c] <- max( slopes[ which(kcluster==k) ,c] )
}
slopelevk [,c] <- sort( slopelevk[,c] )
In Figura 5.10 mostriamo graficamente la fase di creazione del modello. La
funzione, denominata IGUANA_model, riceve come argomenti:
ƒ la lista di matrici contenenti i dati letti dai file (alldata),
ƒ la lista di matrici delle media mobili (alldataMM),
ƒ le soglie di normalità (Nthtesholds),
ƒ il numero di cluster (nclust),
ƒ l’algoritmo di implementazione del k-means (kalg),
ƒ il metodo di calcolo della distanza inter-cluster (cmethod) del gerarchico,
ƒ il metodo di calcolo della distanza intra-cluster (dmethod) del gerarchico.
allata
Nthresholds
- - - - - - -
- - - - - - -
alldataMM
- - - - - - -
- - - - - - -
nclust
IGUANA_model
dmethod cmethod
MODELLO 3
<cluster offset>
< cluster slope>
<cluster dist>
kalg
Figura 5.10 Fase di creazione del terzo tipo di modello
Restituisce come risultato il modello, ovvero i cluster di offset, slope, e dist,
come soglie massime di ogni cluster.
5.8 Classificazione dei dati
Non avendo a disposizione un vero flusso di dati in tempo reale, per la fase di
classificazione l’abbiamo simulato leggendo i valori da file, riga per riga. I file usati per
la classificazione sono diversi da quelli usati per la creazione del modello.
64
Capitolo 5 - IGUANA – implementazione
In questa fase bisogna anche gestire i valori non significativi, per simulare il
vero comportamento dei sensori, che possono staccarsi o non funzionare per brevi
periodi di tempo.
Dopo aver letto i dati dei parametri all’istante di tempo t, per ogni parametro p,
si trasforma il dato nei valori corrispondenti di slope e offset: in patientData c’è il
valore del dato, in mm quello della media mobile.
slopes [t,p] <- slopew <- patientData[t,p] - patientData[t-1,p]
offsets[t,p] <- offsetw <- patientData[t,p] - mm[t-1,p]
Controlliamo se il valore oltrepassa le soglie di normalità (Nthresholds), e in
tal caso calcoliamo la distanza dalla soglia come valore di ndist; altrimenti tale valore è
zero.
if( (is.na( patientData[t,p] ) == FALSE ) && (
(patientData[t,p] > Nthresholds["max",p]) ||
(patientData[t,p] < Nthresholds["min",p]) ) )
{
ndists[t,p]<-min(abs(patientData[t,p]-Nthresholds["max",p]),
abs( patientData[t,p]-Nthresholds["min",p]))
} else {
ndists[t,p] <- 0
}
Per la gestione degli NA non è sufficiente controllare solo che il valore del punto
corrente non sia NA, perchè se era nullo quello precedente, la slope del punto corrente è
comunque NA; quindi controlliamo il valore corrente di slope. Se è NA a seconda che t
sia minore o maggiore della dimensione della finestra su cui calcolare la media mobile,
si aggiorna quest’ultima in modo diverso (anche a seconda del tipo di classificatore
utilizzato). Vediamo nel dettaglio come abbiamo implementato i classificatori.
5.8.1 Classificatore 1
Il primo classificatore assegna direttamente il punto al cluster più vicino tra
quelli calcolati nel modello. Per eseguire questa operazione trasforma il punto nei
corrispondenti valori di slope, offset e dist, calcola la distanza da tutti centri di cluster
disponibili e lo assegna a quello a distanza minima; poi aggiorna la media mobile.
Di seguito riportiamo il codice per il parametro p all’istante t.
kc <- kclusters[[p]]$centers
for( n in 1:nclust ) {
distance <- sqrt( (kc[n,1] - offsets[t,p])^2 +
(kc[n,2] - slopes [t,p])^2 +
65
Capitolo 5 - IGUANA – implementazione
(kc[n,3] - ndists [t,p])^2 )
if( n==1 ) {
minclust <- 1
mindist <- distance
} else {
mindist <- min( c(mindist, distance) )
if( mindist==distance ) {
minclust <- n
}
}
clabels[t,p] <- minclust
Il primo comando serve a ricavare i centri di cluster, sotto forma delle loro
coordinate tridimensionali, come riportato in Tabella 5.2 (supponendo che il modello sia
stato creato per ottenere 5 centri di cluster). In kclusters, infatti, avevamo
memorizzato il risultato del commando kmeans, cioè i punti etichettati in base al cluster
di appartenenza e i relativi centri di cluster, oltre a informazioni aggiuntive. Per
accedere al campo center di kcluster, relativo al primo parametro, occorre digitare
il comando kcluster[[1]]$centers.
numero di cluster
offset
slope
dist
1
0.5910311 2.6369520 0.0000000
2
2.8033333 0.6556225 2.8033333
3
2.8033333 3.0425926 2.8033333
4
0.5972663 0.5659132 0.0000000
5
0.8881410 6.7040385 0.3881538
Tabella 5.2 Esempio di coordinate dei centri di cluster
Il ciclo for ricava la distanza del punto da ogni centro di cluster e memorizza
quella minima in minclust. L’ultimo comando assegna al punto l’etichetta del cluster
corrispondente.
Per aggiornare la media mobile, si esegue il codice seguente.
if ( is.na(slopes[t,p]) ) {
if( t <= mmlen ) {
mm[t,p] <- mean( patientData[1:t,p], na.rm=TRUE )
} else {
mm[t,p] <- mm[t-1,p]
}
next
}
66
Capitolo 5 - IGUANA – implementazione
# standard situation: not NA value
if( t <= mmlen ) {
## updating moving mean
mm[t,p] <- mean( patientData[1:t,p], na.rm=TRUE )
} else {
mm[t,p] <- mean( patientData[(t-mmlen):t,p], na.rm=TRUE )
}
In Figura 5.11 mostriamo graficamente la fase di classificazione dei dati.
Abbiamo denominato la funzione IGUANA_cell perché dovrebbe essere implementata
su un cellulare o un dispositivo in grado di ricevere i dati dai sensori. Tale funzione
riceve come argomenti:
ƒ il modello con i centri di cluster (MODELLO 1),
ƒ la matrice contenente i dati da classificare (data),
ƒ le soglie di normalità per il paziente (Nthtesholds),
ƒ la dimensione della finestra su cui fare la media mobile
(mwin*60/nsamples).
data
MODELLO 1
<cluster offset,
slope, dist>
classified data
IGUANA_cell
Nthresholds
mwin*60/
nsamples
Figura 5.11 Fase di classificazione usando il primo tipo di classificatore
Restituisce come risultato i dati classificati, non secondo i valori di rischio, ma
in base ai cosiddetti “comportamenti simili”.
5.8.2 Classificatore 2
Il secondo classificatore, dopo aver trasformato il punto nei corrispondenti valori
di slope, offset e dist, calcola il rischio applicando la Formula (5.2) e individua il cluster
a cui assegnarlo confrontando il valore di rischio con le soglie di rischio dei cluster
individuati dal modello. Poi deve aggiornare la media mobile, tenendo conto del rischio
del punto, affinché questa non sia influenzata in modo errato, come spiegato nel
Paragrafo 5.6.
67
Capitolo 5 - IGUANA – implementazione
Di seguito riportiamo il codice per ricavare il cluster a cui assegnare il punto,
confrontando il rischio del parametro p al tempo t, risks[t,p], con le soglie
memorizzate in patientRisk[RL,p]: tali soglie sono relative ai risultati ottenuti con
l’algoritmo k-means o con quello gerarchico, a seconda di quanto specificato
dall’utente. Ricordiamo che nparam è il numero di parametri rilevati dai sensori.
for( p in 1:nparam ) {
# for every column/parameter
for( RL in 1:(nclust-1) ) {
# for every cluster/risk level
# we want to find in which risk level the present risk falls
if( risks[t,p] <= patientRisk[RL,p] ) {
risklevs[t,p] <- RL
# current risk level of p is RL
break
}
} # end for each risk level
}
Esempi di tabelle con le soglie massime dei cluster sono riportate in Tabella 5.3
e Tabella 5.4. Nel ciclo for confrontiamo quindi il valore di rischio di ogni parametro
con le soglie dei cluster, ricordando che sono già ordinate per valori di rischio crescenti.
Quando il valore risulta minore di una soglia, si è individuato il cluster adatto e si passa
al parametro successivo.
numero cluster
ABPsys
ABPdias
HR
SpO2
1
15.33279 17.63010
8.93434
1.775887
2
23.47524 24.41488
27.78596
4.585371
3
37.18844 38.04287
39.92303
6.223571
4
51.97725 61.13793
43.92269
9.229552
5
57.47440 77.82098 113.74589 10.918692
Tabella 5.3 Esempio di soglie di cluster per algoritmo gerarchico
68
Capitolo 5 - IGUANA – implementazione
numero cluster
ABPsys
ABPdias
HR
SpO2
1
2.931438
1.872022
3.302531
0.4666667
2
6.412665
4.215327
8.673692
1.1592245
3
11.783693
9.333811
17.496219
2.2750281
4
22.850577 24.414878
43.922686
4.5853711
5
57.474395 77.820975 113.745893 10.9186922
Tabella 5.4 Esempio di soglie di cluster per algoritmo kmeans
Bisogna quindi verificare che il punto non oltrepassi le soglie assolute, in caso
contrario si assegna automaticamente al cluster a rischio più elevato. Di seguito
riportiamo il codice corrispondente.
# checking global thresholds
for( p in 1:nparam ) {
if( patientData[t,p] < Athresholds["min",p] ||
patientData[t,p] > Athresholds["max",p] ) {
risklevtot[t] <- nclust
}
}
Le soglie assolute sono memorizzate nella matrice Athresholds (absolute
thresholds), riportata in Tabella 5.5, e sono state assegnate da letteratura medica [43, 44,
45, 46].
ABPsys ABPdias HR SpO2
min
80
40
40
90
max
220
120
150
100
Tabella 5.5 Soglie assolute
Infine, dopo aver ricavato le classi di rischio per tutti i parametri all’istante t,
abbiamo definito il rischio totale per il paziente in quell’istante come il massimo tra i
rischi dei vari parametri, come indicato di seguito.
# current risk level of the patient is the max among all par
risklevtot[t] <- max( risklevs[t,] )
69
Capitolo 5 - IGUANA – implementazione
A questo punto si può aggiornare la media mobile. Riportiamo il codice
corrispondente all’implementazione della Formula (5.1). Ricordiamo che in mmlen c’è
la dimensione della finestra temporale su cui calcolare la media mobile, in mm c’è il
valore di quest’ultima e in patientData ci sono i dati originali.
if (t <= mmlen) {
for( p in 1:nparam ) {
## for every column/parameter
mm[t,p] <- mean( patientData[1:t,p], na.rm = TRUE )
}
} else {
mm[t,] <- (mm[t-1,]*(mmlen-1)+patientData[t,]*1/risklevs[t,])/
(rep(mmlen-1,nparam) + 1/risklevs[t,])
}
In Figura 5.12 mostriamo graficamente la fase di creazione del modello. La
funzione, denominata IGUANA_cell, riceve come argomenti:
ƒ il modello con le soglie di rischio (MODELLO 2),
ƒ la matrice contenente i dati da classificare (data),
ƒ le soglie di normalità (Nthtesholds),
ƒ il metodo per specificare se classificare usando il modello costruito con il kmeans oppure quello con l’algoritmo gerarchico (method),
ƒ il vettore con i pesi di offset, slope e dist per la funzione di calcolo del
rischio (wrisk), coincidenti con quelli usati nel modello,
ƒ la dimensione della finestra su cui calcolare la media mobile
(mwin*60/nsamples).
data
MODELLO 2
<cluster rischio>
classified data
risk
IGUANA_cell
mwin*60/
nsamples
Nthresholds
method
wrisk
Figura 5.12 Fase di classificazione usando il secondo tipo di classificatore
Restituisce come risultato i dati classificati secondo il rischio, e il rischio totale
del paziente ad ogni istante di tempo.
70
Capitolo 5 - IGUANA – implementazione
5.8.3 Classificatore 3
Il terzo classificatore, dopo aver trasformato il punto nei corrispondenti valori di
offset, slope e dist, individua per ognuno il cluster a cui assegnarlo, confrontando i
valori con le soglie ricavate dal terzo modello e memorizzate in offsetlev,
slopelev e ndistlev. Esempi di tali soglie sono riportati in Tabella 5.6, Tabella 5.7
e Tabella 5.8. Di seguito riportiamo il codice corrispondente, che corrisponde a quello
analizzato per il secondo classificatore, ripetuto tre volte.
# standard situation: not NA value
for( c in 1:(nclust-1) ) {
## for every cluster
if( abs(offsets[t,p]) <= offsetlev[c,p] ) {
offsetclust <- c
break
}
}
for( c in 1:(nclust-1) ) {
## for every cluster
if( abs(slopes[t,p]) <= slopelev[c,p] ) {
slopeclust <- c
break
}
}
for( c in 1:(nclust-1) ) {
## for every cluster
if( abs(ndists[t,p]) <= ndistlev[c,p] ) {
ndistclust <- c
break
}
}
Il comando abs ritorna il valore assoluto dell’argomento. Il modello infatti è
stato costruito utilizzando i valori assoluti di slope, offset e dist, quindi le soglie di
cluster sono tutte positive.
71
Capitolo 5 - IGUANA – implementazione
numero cluster
ABPsys
ABPdias
HR
SpO2
1
5.786667
2.595000
5.330000
0.2816667
2
8.343333
4.288333
9.916667
0.8133333
3
12.190000
6.593333
13.521667 1.3400000
4
18.158333
8.236667
19.430000 1.7800000
5
21.393333 10.813333 25.208333 2.0966667
6
27.035000 12.081667 28.711667 2.5316667
7
32.071667 14.108333 33.648333 2.9216667
8
36.648333 17.090000 38.220000 3.4400000
9
40.903333 18.320000 41.628333 4.0066667
10
44.963333 21.860000 46.145000 5.2833333
Tabella 5.6 Esempio di soglie di cluster di offset
numero cluster
ABPsys
ABPdias
HR
SpO2
1
2.018333
1.286667
2.223333
0.4383333
2
4.733333
2.230000
5.190000
1.0700000
3
7.670000
3.508333
9.193333
1.3466667
4
8.996667
4.506667
11.720000 1.8333333
5
10.428333
5.751667
16.163333 2.2533333
6
12.253333
6.925000
20.133333 2.6783333
7
14.358333
8.598333
22.730000 2.9333333
8
17.506667
9.251667
26.233333 3.4316667
9
19.130000 11.880000 28.738333 4.0700000
10
24.141667 13.511667 35.351667 4.4633333
Tabella 5.7 Esempio di soglie di cluster di slope
72
Capitolo 5 - IGUANA – implementazione
numero cluster
ABPsys
ABPdias
HR
SpO2
1
2.411667
0.8233333
3.316667
0.2100000
2
5.295000
2.2833333
8.430000
0.6766667
3
7.701667
3.7100000
10.925000 1.1433333
4
10.418333
5.1850000
13.421667 1.5766667
5
12.493333
6.0466667
15.543333 2.1433333
6
15.685000
7.2633333
20.230000 2.4733333
7
19.265000
9.4516667
22.791667 2.9433333
8
23.065000 11.0516667 28.993333 3.3066667
9
26.465000 12.1850000 33.460000 3.8100000
10
28.931667 15.3183333 36.593333 4.2583333
Tabella 5.8 Esempio di soglie di cluster di dist
Il passo successivo consiste nel calcolare il rischio applicando la Formula (5.2),
in cui al posto di slope, offset e dist originali, ci sono le etichette di cluster
corrispondenti (offsetclust, slopeclust, ndistclust).
A seconda che i valori di slope, offset e dist originali siano positivi o negativi, si
moltiplicano le etichette di cluster corrispondenti per i pesi appropriati e infine si
applica la formula per ottenere il rischio istantaneo. Di seguito riportiamo il codice
relativo al calcolo del rischio per il parametro p all’istante t.
if( offsets[t,p] > 0 ) {
offsetclustw <- wrisk["woffsetpos"] * (offsetclust-1)
} else {
offsetclustw <- wrisk["woffsetneg"] * (offsetclust-1) * -1
}
if( slopes[t,p] > 0 ) {
slopeclustw <- wrisk["wslopepos"] * (slopeclust-1)
} else {
slopeclustw <- wrisk["wslopeneg"] * (slopeclust-1) * -1
}
if( ndists[t,p] > 0 ) {
ndistclustw <- wrisk["wglobalpos"] * (ndistclust-1)
} else {
ndistclustw <- wrisk["wglobalneg"] * (ndistclust-1)
}
73
Capitolo 5 - IGUANA – implementazione
# RISK EVALUATION #
risklevs[t,p] <- 0
risklevs[t,p] <- ( risklevs[t,p] +
abs( offsetclustw + slopeclustw ) )
risklevs[t,p] <- ( risklevs[t,p] +
mean( wrisk[1:4] ) * ## ex-wradius
sqrt(offsetclustw^2 + slopeclustw^2) )
risklevs[t,p] <- ( risklevs[t,p] + ndistclustw )
Inoltre bisogna controllare che il valore del punto non oltrepassi le soglie
assolute, e poi aggiornare la media mobile con la stessa formula vista nel paragrafo
precedente, ossia tenendo conto del rischio, affinché questa non sia influenzata in modo
errato dai valori più rischiosi.
Infine bisogna discretizzare il rischio negli intervalli desiderati (nrisklev) e
calcolare il rischio del paziente all’istante t come il massimo tra i livelli di rischio dei
parametri.
# converting risklevs to a value in 1:nrisklev
risklevs[t,p] <- ceiling(risklevs[t,p]*nrisklev/risklevmax[p])
# current risk level of the patient is the max among all param
risklevtot[t] <- max( c(1,risklevs[t,]), na.rm=TRUE )
In Figura 5.13 mostriamo graficamente la fase di creazione del modello. La
funzione, denominata IGUANA_cell, riceve gli stessi argomenti di quella spiegata nel
paragrafo precedente, varia solo il tipo di modello utilizzato.
Restituisce come risultato i dati classificati secondo il rischio, e il rischio totale
del paziente ad ogni istante di tempo.
data
MODELLO 3
<cluster offset>
< cluster slope>
<cluster dist>
classified data
IGUANA_cell
mwin*60/
nsamples
Nthresholds
method
wrisk
Figura 5.13 Fase di classificazione usando il terzo tipo di classificatore
74
risk
Capitolo 6
Basi di dati mediche
6.1 Introduzione
Per costruire un algoritmo di individuazione delle situazioni di rischio, avremmo
voluto analizzare dei dati classificati da un medico che indicasse quali fossero gli eventi
rischiosi da riconoscere. Analizzando la classificazione dell’esperto umano, avremmo
cercato di riprodurne il comportamento e saremmo stati in grado di verificare i risultati
del nostro algoritmo con certezza.
Purtroppo il reperimento di dati adeguati è stato difficile anche senza pretendere
la presenza di annotazioni mediche, quindi abbiamo deciso di limitare i requisiti a quelli
elencati di seguito in ordine di priorità.
1. Segnali fisiologici di rilevanza medica vitale e facili da misurare (battito
cardiaco, pressione sanguigna e saturazione arteriosa di ossigeno).
2. Periodo di rilevazione di alcune ore o maggiore.
3. Frequenza delle misure dell’ordine dei secondi o decine di secondi.
4. Pazienti anziani in condizioni di salute variabili.
5. Disponibilità immediata.
Per soddisfare questi requisiti abbiamo privilegiato come fonte la rete Internet e
abbiamo preso contatto con altri gruppi di ricerca che svolgono analisi simili. Questo ci
ha portato ad escludere istituzioni mediche e sanitarie (ospedali, cliniche, facoltà di
Medicina) che sono probabilmente in possesso di dati utili, ma il cui accesso richiede
una lenta burocrazia cartacea, anche in considerazione di eventuali problematiche legate
alla privacy. Purtroppo, il primo requisito ha escluso quasi tutte le fonti trovate in
Internet, principalmente perché si tratta di progetti specifici (es. pazienti diabetici [16]),
o che sfruttano dati simulati [14].
Delle rimanenti, solo una rimane accettabile: la base di dati MIMIC dell’archivio
PhysioBank. Fortunatamente MIMIC soddisfa parzialmente tutti i requisiti, sebbene
richieda un lavoro attento di pre-elaborazione dei dati prima di poter essere usata con il
prototipo di IGUANA da noi implementato.
In questo capitolo descriviamo le caratteristiche di MIMIC (Paragrafo 6.2), la
pre-elaborazione dei dati per l’analisi con IGUANA (Paragrafo 6.4) e il data-set
75
Capitolo 6 - Basi di dati mediche
alternativo Fantasia5 (Paragrafo 6.3), che, sebbene contenga solo misure relative al
battito cardiaco, ci è servito per trarre utili conclusioni sui risultati ottenuti.
6.2 La base di dati MIMIC
La base di dati “Multi-parameter Intelligent Monitoring for Intensive Care”
(MIMIC6) fa parte dell’archivio PhysioBank della Research Resource for Complex
Physiologic Signals7. Nel prossimo paragrafo illustriamo il progetto di cui fa parte
MIMIC, successivamente descriveremo le caratteristiche di questa base di dati.
6.2.1 Research Resource for Complex Physiologic Signals
La Research Resource for Complex Physiologic Signals è stata fondata dal
National Center for Research Resources8, che fa parte dei National Institutes of Health9
degli Stati Uniti, la principale agenzia federale per la ricerca medica. È un progetto
cooperativo iniziato da ricercatori delle seguenti istituzioni:
ƒ Boston’s Beth Israel Deaconess Medical Center10,
ƒ Harvard Medical School11,
ƒ Boston University12,
ƒ McGill University13,
ƒ Massachusetts Institute of Technology (MIT)14.
Il progetto si suddivide in tre aree.
1. PhysioNet15 – un forum on-line per la diffusione e lo scambio di
registrazioni di segnali biomedici, software open-source per la loro analisi,
guide e pubblicazioni che, facendo uso degli strumenti messi a disposizione,
spiegano come utilizzarli.
2. PhysioBank – un vasto archivio di registrazioni digitali di segnali
fisiologici e relative descrizioni a disposizione della comunità scientifica; le
basi di dati contengono segnali multiparametrici di pazienti in svariate
condizioni cliniche, dall’epilessia alla morte per arresto cardiaco.
5
http://www.physionet.org/physiobank/database/fantasia/
http://www.physionet.org/physiobank/database/mimicdb/
7
http://www.physionet.org/resource.shtml
8
http://www.ncrr.nih.gov/
9
http://www.nih.gov/
10
http://reylab.bidmc.harvard.edu/
11
http://www.med.harvard.edu/
12
http://polymer.bu.edu/
13
http://www.cnd.mcgill.ca/
14
http://lcp.mit.edu/
15
PhysioNet, MIT Room E25-505A, 77 Massachusetts Avenue, Cambridge, MA 02139 USA
6
76
Capitolo 6 - Basi di dati mediche
PhysioToolkit16 – una libreria di software in continuo sviluppo per l’analisi
e l’elaborazione dei segnali fisiologici, per la rilevazione di eventi
significativi, la visualizzazione grafica dei dati, la creazione di nuove basi di
dati e la simulazione di segnali fisiologici. L’obiettivo della ricerca che
contribuisce ad arricchire PhysioToolkit è l’estrazione di informazioni
“nascoste” dai segnali biomedici, informazioni che possono avere un valore
medico diagnostico o prognostico e un valore scientifico descrittivo o
predittivo. Tutto il software di PhysioToolkit è disponibile in formato
sorgente ed è coperto da GNU General Public License (GPL)17.
Le istituzioni che collaborano a questo progetto, anche grazie alla loro
riconosciuta autorevolezza, garantiscono che i dati di PhysioBank e il software di
PhysioToolkit siano accuratamente selezionati e revisionati.
La ricerca svolta presso la Research Resource for Complex Physiologic Signals
ha alcuni punti in comune con il nostro lavoro di tesi. I loro obiettivi, infatti, sono i
seguenti:
1. studio di metodi per la valutazione della qualità dei segnali e le rilevazioni
di eventi in dati multiparametrici debolmente correlati; studio di metodi di
previsione e di analisi multivariata dell’andamento dei segnali;
modellazione di sistemi cardiovascolari; studio di tecniche innovative di
elaborazione dei segnali per la diagnosi automatica o semi-automatica;
elaborazione di segnali via web per applicazioni di telemedicina; studio di
algoritmi di data mining per la ricerca efficiente in sequenze di dati molto
lunghe (G. B. Moody18, R. G. Mark19, W. Zong);
2. studio di algoritmi che quantificano le proprietà transitorie e locali di segnali
fisiologici non stazionari e l’interazione tra segnali multiparametrici;
rilevazione dei cambiamenti che possono precedere l’inizio di eventi
fisiologici gravi (J. M. Hausdorff20, L. Glass21, A. L. Goldberger22, C. K.
Peng23);
3. studio di tecniche per quantificare le dinamiche del controllo fisiologico;
modellazione matematica dei meccanismi del controllo fisiologico;
identificazione di nuove misure per le dinamiche non lineari e la
ricalibrazione frattale utili nelle patologie cardiopolmonari critiche (H. E.
Stanley24, A. L. Goldberger, C. K. Peng, P. Ch. Ivanov25).
3.
16
http://www.physionet.org/physiotools/
http://www.fsf.org/copyleft/gpl.html
18
http://ecg.mit.edu/george/
19
http://reylab.bidmc.harvard.edu/people/Roger.html
20
http://reylab.bidmc.harvard.edu/people/Jeff.html
21
http://www.cnd.mcgill.ca/bios/glass/glass.html
22
http://reylab.bidmc.harvard.edu/people/Ary.html
23
http://reylab.bidmc.harvard.edu/people/CK.html
24
http://argento.bu.edu/hes/
25
[email protected]
17
77
Capitolo 6 - Basi di dati mediche
La nostra analisi copre alcuni aspetti del primo obiettivo elencato, ma prevede
l’individuazione di eventi particolari (situazioni di grave rischio per la vita del paziente)
a partire da parametri fisiologici facilmente misurabili.
6.2.2 Descrizione
La base di dati MIMIC comprende 121 registrazioni di 90 pazienti (alcune
registrazioni si riferiscono allo stesso paziente). Di queste, solo 72 sono complete,
mentre di tutte le 121 sono disponibili le misure periodiche, definite “numerics”, che
formano un sottoinsieme della base di dati.
Le misure complete includono tutti i segnali campionati a 125 Hz (tranne
l’elettrocardiogramma a 500 Hz). Le misure periodiche comprendono solo alcuni
segnali (es. la frequenza del battito cardiaco) campionati ogni secondo, come appaiono
nei display numerici (da cui il nome) della strumentazione che li rileva.
Noi abbiamo utilizzato il sottoinsieme MIMIC-numerics perché offre una
maggiore varietà di pazienti, comprende tutte le 121 registrazioni, e perché non siamo
interessati all’analisi delle forme d’onda dei segnali, che richiederebbe la rilevazione
delle misure ad alta frequenza della base di dati MIMIC principale (terzo requisito
descritto nel Paragrafo 6.1).
Iniziato nel tardo 1994, l’archivio MIMIC è ancora in costruzione, sebbene il
completamento fosse atteso entro la fine del 1996. Si prevede che i dati a disposizione
crescano oltre gli attuali 200 giorni-paziente di segnali in tempo reale che si possono
scaricare dal sito. La durata delle singole registrazioni varia mediamente dalle 30 alle 40
ore, con un minimo di circa 1 ora e un massimo di circa 80 ore, e soddisfa
completamente il secondo requisito descritto nel Paragrafo 6.1.
Le misure sono eseguite da apparecchiature26 di monitoraggio ospedaliere
tipicamente utilizzate nei reparti di rianimazione e comprendono vari segnali fisiologici,
scelti dal personale medico in base alle condizioni del paziente. Questa caratteristica
non è coerente con l’obiettivo della nostra analisi rappresentato dal primo requisito
descritto nel Paragrafo 6.1, in quanto noi supponiamo di effettuare le rilevazioni con
dispositivi indossabili e assolutamente non invasivi. Quindi abbiamo selezionato solo le
registrazioni che comprendono i quattro parametri fisiologici da noi scelti, in quanto
questi sono misurabili anche con i sensori descritti nel Paragrafo 2.2.
Insieme ai valori rilevati dai sensori, la base di dati fornisce anche le annotazioni
relative ad eventi medici significativi. Purtroppo queste non ci sono state di aiuto, in
quanto segnalano esclusivamente il superamento di eventuali soglie predefinite per
alcuni segnali, come avviene tipicamente con la strumentazione dei reparti ospedalieri
di terapia intensiva.
26
In particolare è stata usata una stazione di monitoraggio Hewlett Packard CMS “Merlin”
78
Capitolo 6 - Basi di dati mediche
6.2.3 Scelta dei dati
Tra i pazienti abbiamo individuato quelli con un’età superiore a 60 anni, in
modo da focalizzare l’attenzione sulle persone anziane. Le registrazioni disponibili in
MIMIC-numerics, che contengono i segnali che ci interessano e che riguardano pazienti
adatti, sono le seguenti 64:
mimic-pulmEde-f75-47h-231n
mimic-pulmEde-f76-13h-260n
mimic-pulmEde-f76-47h-259n
mimic-pulmEde-f82-50h-213n
mimic-pulmEde-f92-21h-413n
mimic-pulmEde-f92-71h-414n
mimic-pulmEde-m70-69h-466n
mimic-pulmEde-m84-41h-212n
mimic-pulmEde-m86-12h-417n
mimic-renal-f78-62h-471n
mimic-resp-f64-25h-401n
mimic-resp-f64-53h-403n
mimic-resp-f67-21h-211n
mimic-resp-f76-19h-241n
mimic-resp-f76-47h-242n
mimic-resp-m67-26h-218n
mimic-resp-m67-27h-219n
mimic-resp-m67-39h-216n
mimic-resp-m68-31h-226n
mimic-resp-m74-28h-033n
mimic-resp-m87-22h-052n
mimic-resp-m87-40h-054n
mimic-resp-m90-46h-243n
mimic-sepsis-f82-31h-271n
mimic-sepsis-f82-42h-269n
mimic-trauma-f92-51h-482n
mimic-valve-f65-48h-453n
mimic-valve-f65-49h-262n
mimic-valve-f65-49h-454n
mimic-valve-f67-35h-442n
mimic-valve-f73-42h-481n
mimic-valve-f77-52h-479n
mimic-angina-m67-37h-268n
mimic-angina-m67-45h-267n
mimic-angina-m67-55h-467n
mimic-angina-m68-30h-240n
mimic-bleed-m70-77h-039n
mimic-bleed-m79-36h-472n
mimic-brain-f68-01h-220n
mimic-brain-f68-23h-221n
mimic-brain-m60-42h-280n
mimic-brain-m75-42h-449n
mimic-cabg-f72-35h-476n
mimic-cabg-f80-57h-457n
mimic-cabg-m67-30h-477n
mimic-cabg-m84-49h-456n
mimic-cardio-f63-47h-237n
mimic-cardio-f67-47h-235n
mimic-cardio-f71-50h-293n
mimic-cardio-f80-47h-248n
mimic-cardio-m65-46h-264n
mimic-cardio-m68-26h-232n
mimic-liver-f71-43h-277n
mimic-NA-f61-42h-289n
mimic-NA-f66-58h-276n
mimic-NA-f73-49h-458n
mimic-NA-f76-52h-468n
mimic-NA-m60-44h-484n
mimic-NA-m61-10h-281n
mimic-NA-m69-49h-485n
mimic-NA-m75-51h-474n
mimic-pulmEde-f63-47h-245n
mimic-pulmEde-f72-25h-214n
mimic-pulmEde-f75-19h-230n
Abbiamo assegnato un nome ad ogni registrazione in modo da identificarla
univocamente e avere nello stesso tempo le indicazioni di base sul paziente e la durata
della stessa.
79
Capitolo 6 - Basi di dati mediche
L’identificativo risulta composto dai seguenti elementi, nell’ordine indicato e
separati da un trattino:
ƒ mimic, nome della base di dati;
ƒ abbreviazione del tipo di patologia o anomalia da cui è afflitto il paziente,
à
angina = angina pectoris,
à
bleed = emorragia,
à
brain = trauma cranico,
à
cabg = intervento chirurgico alle coronarie,
à
cardio = shock cardiaco,
à
liver = intervento chirurgico al fegato,
à
pulmEde = edema polmonare,
à
renal = blocco renale,
à
resp = insufficienza respiratoria,
à
sepsis = infezione del sangue
à
trauma = trauma non specificato,
à
valve = intervento chirurgico alle valvole cardiache,
à
NA = informazione non disponibile;
ƒ sesso del paziente (m, f);
ƒ età del paziente in anni (es. m67);
ƒ durata della registrazione in ore (es. 37h);
ƒ numero identificativo del record della base di dati secondo la classificazione
adottata dai responsabili del progetto di MIMIC, seguito dalla lettera “n”
che indica “numerics” (es. 268n).
Dalla descrizione delle alterazioni dello stato di salute dei pazienti possiamo
osservare che si tratta di situazioni decisamente estreme per un essere umano, che
sicuramente rappresentano un grave rischio per la vita, e questo è ciò che cerchiamo di
rilevare col nostro lavoro, ma dobbiamo riconoscere che soddisfano in misura ridotta il
quarto requisito descritto nel Paragrafo 6.1.
Come confermato da consulenti medici, in situazioni di ricovero ospedaliero
all’interno dei reparti di terapia intensiva, l’andamento dei parametri fisiologici si
discosta significativamente da quello tipico di una persona che, sebbene malata, non
richieda tali cure. Vista la difficoltà a trovare dati più adeguati per la nostra analisi e
considerando che tutti gli altri requisiti sono soddisfatti dalle misurazioni di MIMIC,
abbiamo scelto di prendere opportuni accorgimenti nella fase di pre-elaborazione dei
dati (Paragrafo 6.4) e di analizzare il comportamento del nostro algoritmo anche con i
pazienti della base di dati Fantasia (Paragrafo 6.3).
80
Capitolo 6 - Basi di dati mediche
6.3 La base di dati Fantasia
Fantasia fa parte come MIMIC dell’archivio PhysioBank della Research
Resource for Complex Physiologic Signals, progetto che abbiamo illustrato nel
Paragrafo 6.2.1.
Fantasia comprende registrazioni della durata di sole 2 ore, l’unico segnale
disponibile è l’elettrocardiogramma (campionato a 250 Hz) e le misure sono effettuate
su persone sane. Tuttavia abbiamo deciso di applicare IGUANA anche ai dati di
Fantasia, perché riteniamo che ci sia utile per valutare il comportamento del nostro
algoritmo in situazioni completamente opposte rispetto a MIMIC, che è basato su
pazienti in terapia intensiva.
Il gruppo di volontari che si è sottoposto alle misure è composto da venti giovani
(da 21 a 34 anni) e venti anziani (da 68 a 85 anni), metà maschi e metà femmine.
Coerentemente con le scelte fatte per MIMIC (Paragrafo 6.2.3), anche in questo caso
prendiamo in considerazione solo i valori relativi alle persone anziane. Le misure sono
state eseguite con i volontari in posizione sdraiata supina, mentre guardavano il film
Fantasia27, da cui deriva il nome della base di dati.
Le registrazioni che ci interessano e che riguardano i venti anziani, sono le
seguenti, indicate con l’identificativo usato dai responsabili della base di dati Fantasia:
f1o01
f1o02
f1o03
f1o04
f1o05
f1o06
f1o07
f1o08
f1o09
f1o10
f2o01
f2o02
f2o03
f2o04
f2o05
f2o06
f2o07
f2o08
f2o09
f2o10
Le annotazioni allegate in Fantasia riguardano eventuali aritmie del battito
cardiaco. Per la nostra analisi non sono utili in quanto richiederebbero la disponibilità di
una rilevazione continua (con campionamento ad alta frequenza) dell’attività cardiaca,
siccome si basano sull’analisi della forma d’onda dell’elettrocardiogramma. La nostra
ipotesi di lavoro, invece, prevede la lettura dei segnali con un periodo dell’ordine dei
secondi e l’analisi è svolta sui valori della frequenza del battito cardiaco.
Inoltre alcune registrazioni contengono anche le rilevazioni della pressione
sanguigna, parametro che ci interessa, ma che non prendiamo in considerazione per
questa base di dati in quanto non è presente in tutti i record e nella forma da noi
richiesta (valore di pressione massima/minima, ovvero sistolica/diastolica), ma è fornito
come segnale continuo.
27
Walt Disney, 1940, http://imdb.com/Title?0032455
81
Capitolo 6 - Basi di dati mediche
6.4 Pre-elaborazione dei dati
Prima di applicare la nostra implementazione dell’algoritmo IGUANA sui dati
appena descritti, è necessario pre-elaborarli opportunamente. Delle operazioni che
descriveremo, alcune sono tecnicamente necessarie per convertire i dati in un formato
fisicamente leggibile, invece altre applicano delle trasformazioni ai dati per renderli più
adatti alla nostra analisi.
Le operazioni sono state svolte con diversi strumenti, scelti di volta in volta tra i
più consoni alla situazione. Anche se queste scelte non rivestono particolare importanza
perché dipendono dal software a propria disposizione, dalle proprie conoscenze e
soprattutto dalle caratteristiche dei dati, riteniamo necessario descrivere uno strumento
in particolare, il PhysioToolkit.
6.4.1 PhysioToolkit
Il PhysioToolkit è una collezione di strumenti software messi a disposizione
dalla Research Resource for Complex Physiologic Signals, progetto che abbiamo
illustrato nel Paragrafo 6.2.1.
I programmi disponibili consistono in una raccolta di comandi, sia sotto forma di
eseguibili precompilati, sia come codice sorgente, che permettono di estrarre,
convertire, visualizzare, analizzare e creare dati dell’archivio PhysioBank.
I file binari sono disponibili per le piattaforme GNU/Linux e MS-Windows,
mentre i sorgenti, scritti quasi completamente in linguaggio C, sono portabili su
qualunque architettura disponga di un compilatore C ANSI/ISO, sebbene gli autori
suggeriscano gcc in ambiente GNU/Linux.
Del PhysioToolkit noi abbiamo utilizzato la libreria WFDB Software Package28,
sia con Windows XP, sia con Debian GNU/Linux. In ambiente Windows abbiamo
installato il pacchetto Cygwin29, come indicato dagli sviluppatori.
Il WaveForm DataBase (WFDB) Sotware Package comprende la maggior parte
degli strumenti sviluppati nell’ambito del progetto PhysioToolkit, attualmente sotto
licenza GPL (GNU General Public License30), a differenza del precedente DB Software
Package31 di cui alcuni programmi facevano parte.
I principali componenti del pacchetto software WFDB sono i seguenti.
ƒ Libreria. È un insieme di funzioni per leggere e scrivere file nei formati
usati dalle basi di dati di PhysioBank.
à
Può essere usata da qualunque programma scritto in ANSI/ISO C, C++
o Fortran, e con qualunque sistema operativo per il quale esista il
compilatore adeguato.
28
http://www.physionet.org/physiotools/wfdb.shtml
http://www.physionet.org/physiotools/cygwin/
30
http://www.physionet.org/physiotools/wfdb/COPYING
31
http://www.physionet.org/physiotools/old/
29
82
Capitolo 6 - Basi di dati mediche
à
ƒ
ƒ
ƒ
Opzionalmente può essere compilata con il supporto per la lettura dei
dati direttamente da web (HTTP) e da server FTP senza l’uso di
browser o client FTP. In questo caso sono necessarie le librerie libwww
del World Wide Web Consortium o in alternativa le libcurl.
à
Fa parte della libreria il WFDB Tools Package, che permette di
interfacciare la libreria stessa con Matlab R13 o successivo, in modo da
permettere alle applicazioni di Matlab di accedere alle funzioni del
pacchetto WFDB.
Applicazioni. Sono un insieme di programmi a riga di comando per
l’elaborazione dei segnali e la loro analisi automatica. Alcuni sono stati
sviluppati per soddisfare gli standard statunitensi per la valutazione delle
apparecchiature mediche e degli algoritmi su dati clinici.
WAVE. È un ambiente grafico interattivo ed estensibile per la
manipolazione di raccolte di segnali digitali e di eventuali annotazioni.
à
È costruito sulla libreria di WFDB e sul software open-source XView,
quindi è completamente compatibile con i dati dell’archivio
PhysioBank e può essere utilizzato su qualunque piattaforma supporti
la libreria e XView, anche da remoto se si ha a disposizione un server
X11.
à
Permette di visualizzare le forme d’onda dei segnali in varie scale,
scorrerle per cercare eventuali annotazioni, modificarle aggiungendo i
propri commenti e fornisce un aiuto contestuale all’utilizzo.
Documentazione. Oltre a numerose pubblicazioni e corsi introduttivi online
(tutorial), sono disponibili le seguenti guide in formato HTML, PostScript e
PDF. Infine ogni comando ha una propria man page.
à
Programmer’s Guide, per la libreria.
à
Applications Guide, per le applicazioni.
à
WAVE User’s Guide, per lo strumento grafico WAVE.
6.4.2 Conversione di formato
Il primo passo di preparazione dei dati consiste nella conversione degli stessi in
formato testuale, che è facilmente leggibile con le funzioni di input messe a
disposizione da R (Paragrafo 5.2).
I dati di PhysioBank sono scaricabili in formato binario sotto forma di file con
estensione dat, uno per ogni registrazione. Ogni record ha anche un file di intestazione
con estensione hea ed eventuali file con le annotazioni, la cui estensione varia in base al
tipo di eventi annotati.
Sebbene fosse possibile sfruttare le funzionalità di rete del PhysioToolkit per
convertire i dati binari in testuali, abbiamo preferito scaricare le basi di dati MIMICnumerics e Fantasia prima di procedere alla conversione, per averli a disposizione più
velocemente per successive analisi. L’operazione è molto semplice ricorrendo al tool
83
Capitolo 6 - Basi di dati mediche
wget, disponibile per UNIX/Linux e Cygwin/Windows; per MIMIC-numerics la riga di
comando è la seguente:
wget -r -np
http://www.physionet.org/physiobank/database/mimicdb/numerics/
Con i dati binari a disposizione sul disco locale e il WFDB Software Package
installato in un sistema Debian GNU/Linux, abbiamo preparato uno script bash per
convertire i record dei pazienti selezionati in file di testo. Lo script esegue le seguenti
operazioni.
ƒ Impostazione delle variabili d’ambiente del WFDB Software Package che
indicano il percorso del filesystem in cui sono memorizzati i dati di
Physiobank da convertire.
WFDB="/database/mimic"
ƒ
Uso del comando rdsamp (read samples) del PhysioToolkit per l’estrazione
dei valori dei segnali campionati, espressi come numeri decimali stampati su
standard output, una riga per ogni istante di tempo e una colonna per ogni
parametro registrato.
rdsamp -r 039n -s 1 2 3 6 -p -v > mimic-bleed-m70-77h-039n.txt
Le opzioni del comando rdsamp indicano il nome del record da elaborare(-r
054n), i segnali fisiologici da convertire numerati secondo l’ordine con cui sono
memorizzati nel record (-s 1 2 3 6), la precisione e le unità di misura desiderate (–p
specifica che il tempo è indicato in secondi e i valori dei sensori in unità fisiche, con
precisione alla terza cifra decimale) e la richiesta delle intestazioni di colonna con il
nome del parametro (-v).
È necessario prestare molta attenzione ad indicare correttamente quali segnali si
desidera convertire, in quanto la loro posizione (e di conseguenza il numero da indicare
come parametro dell’opzione -s) non è costante per tutti i record. La verifica può essere
svolta richiedendo l’intestazione di colonna (opzione -v) e ispezionando ogni file
creato, anche automaticamente (da console abbiamo usato grep), affinché la prima riga
contenga i nomi giusti, ossia “time ABPsys ABPdias HR SpO2”. Per come abbiamo
strutturato la successiva implementazione di IGUANA, anche il loro ordine è
importante.
Dopo aver eseguito il comando rdsamp per ogni record scelto, abbiamo un
insieme di file testuali con i dati che ci interessano. Il nome che abbiamo assegnato ai
file è univoco e ci permette di avere subito alcune informazioni essenziali sul paziente
cui si riferisce, come illustrato nel paragrafo 6.2.3. I passi successivi della preparazione
dei dati sono svolti in uno script di R.
84
Capitolo 6 - Basi di dati mediche
6.4.3 Elaborazione
La fase di elaborazione dei dati precedente all’esecuzione di IGUANA si articola
nei seguenti passaggi, che, nella nostra implementazione, sono svolti all’interno di uno
script R:
1. lettura dei dati dai file testuali e relativa memorizzazione;
2. calcolo delle statistiche globali (valore minimo, medio, massimo di tutti i
dati letti, numero di valori disponibili, ecc.);
3. rimozione degli outlier;
4. rilevamento di eventuali valori nulli (NA) e rimozione di quelli singoli
isolati;
5. selezione della sottosequenza più lunga senza valori nulli;
6. ricampionamento della sottosequenza individuata al punto precedente.
Lettura e memorizzazione
I dati sono letti dai file testuali prodotti al passo descritto nel Paragrafo 6.4.2 e
memorizzati in una struttura dati a lista così composta:
ƒ ogni elemento della lista contiene i dati di un file, che corrisponde a una
registrazione32;
ƒ i dati di ogni file sono memorizzati in una matrice che ha una riga per ogni
istante di tempo e una colonna per ogni segnale fisiologico misurato:
à
colonna 1 = ABPsys, pressione sanguigna sistolica;
à
colonna 2 = ABPdias, pressione sanguigna diastolica;
à
colonna 3 = HR, battito cardiaco;
à
colonna 4 = SpO2, ossigenazione periferica del sangue.
32
Ogni registrazione è associata a un solo paziente, ma un paziente può essere associato a più
registrazioni diverse.
85
Capitolo 6 - Basi di dati mediche
time
…
…
…
…
file1
1
2
3
ABPsys
…
…
…
…
ABPsys
…
…
…
file testuali
ABPdias
…
…
…
…
ABPdias
…
…
…
file2
1
2
3
ABPsys
…
…
…
HR
…
…
…
HR
…
…
…
…
SpO2
…
…
…
…
lista
SpO2
…
…
…
ABPdias
…
…
…
HR
…
…
…
SpO2
…
…
…
Figura 6.1 Schema della lettura e memorizzazione dei dati da file
Come descritto nel Paragrafo 5.4, alla funzione di lettura dei dati (read.table)
indichiamo che la prima riga dei file contiene le intestazioni di colonna (opzione
header = TRUE) e per migliorare le prestazioni di lettura specifichiamo di convertire i
86
Capitolo 6 - Basi di dati mediche
dati in formato numerico e di ignorare la prima colonna che contiene il tempo (opzione
colClasses).
La memorizzazione avviene in modo sequenziale, file per file, nell’ordine in cui
sono stati specificati dall’utente nell’apposita sezione di configurazione dello script
(lista inputFilesM).
Al termine di questa fase abbiamo la lista di matrici original_data, indicata
in Figura 6.1. L’ordine degli elementi è lo stesso della lista inputFilesM.
Statistiche globali
Da tutti i dati memorizzati nella lista original_data calcoliamo le seguenti
informazioni:
ƒ numero totale di valori letti;
ƒ valore minimo;
ƒ valore massimo;
ƒ valore medio.
Rimozione degli outlier
Non potendo formulare ipotesi sull’affidabilità dei sensori abbiamo dovuto
gestire la possibilità di avere dati “sporchi”, non sempre significativi, ad esempio valori
negativi o nulli, o addirittura troppo elevati, per i segnali fisiologici considerati.
Con la consulenza di un esperto e basandoci su informazioni note in letteratura
medica [43, 44, 45, 46] abbiamo ricavato le soglie per i valori fisicamente raggiungibili
da un essere umano. I dati che oltrepassavano tali soglie sono stati considerati
malfunzionamenti dei sensori, e quindi scartati: non sono stati eliminati dalla sequenza,
altrimenti avremmo perso la sincronizzazione tra i parametri, ma semplicemente
sostituiti con un valore di “Not Available”, NA.
Per capire meglio questo passaggio, possiamo fare riferimento alle figure
seguenti. Sono tutte riferite a dati relativi al segnale fisiologico HR (battito cardiaco)
della registrazione mimic-brain-f68-01h-220n.
87
Capitolo 6 - Basi di dati mediche
Figura 6.2 Dati originali
In Figura 6.2 sono riportati i dati originali letti da file. In ordinata i valori sono
espressi in battiti al minuto, mentre in ascissa è indicato il riferimento temporale
(contatore progressivo).
Come si può notare, sono presenti parecchie misure inaccettabili, in particolare
quelle a zero: non è possibile infatti che il battito cardiaco di un essere umano in vita
raggiunga tale valore. Non possiamo utilizzare questi dati perché i valori palesemente
errati influenzerebbero il modello.
88
Capitolo 6 - Basi di dati mediche
Figura 6.3 Dati dopo la rimozione degli outlier
In Figura 6.3 sono riportati i dati dopo la fase di rimozione degli outlier: i valori
posti a NA non sono visualizzati sul grafico, che presenta quindi alcune discontinuità (ad
esempio dopo il campione 3000).
Individuazione dei valori nulli
Al termine dell’operazione precedente, abbiamo notato che nei dati a nostra
disposizione comparivano molti NA singoli e isolati, che di fatto frammentavano la
sequenza.
Supponendo che il valore di un parametro non possa variare significativamente
in un solo istante di campionamento, abbiamo deciso di sostituire al valore nullo NA la
media tra il valore precedente e il successivo. Questa sostituzione è stata effettuata
solamente per i valori nulli singoli isolati, ossia preceduti e seguiti da un valore non
nullo.
89
Capitolo 6 - Basi di dati mediche
Riportiamo in Figura 6.4 il risultato dell’applicazione di quest’operazione ai dati
presi in considerazione. Non si notano differenze rispetto alla Figura 6.3 in quanto i
valori NA isolati sono difficilmente individuabili a colpo d’occhio sul grafico.
Figura 6.4 Dati dopo la rimozione dei valori NA isolati
Sottosequenza non nulla
Questo passo è svolto solo per la preparazione dei dati utilizzati nella creazione
del modello, che prevede che non siano presenti valori nulli (NA). Selezioniamo la più
lunga sottosequenza dei dati originali con questa caratteristica e procediamo limitando
le successive elaborazioni ai dati così individuati.
Il risultato di questa terza fase è mostrato in Figura 6.5.
90
Capitolo 6 - Basi di dati mediche
Figura 6.5 Più lunga sottosequenza senza valori nulli (NA)
Nel caso in cui i dati siano preparati per la classificazione, siccome la procedura
gestisce anche valori nulli, le operazioni di individuazione e rimozione di tali valori non
sono svolte.
Ricampionamento
I sensori possono rilevare i valori ad intervalli di tempo variabili, dipendenti
dalle specifiche di fabbricazione. Siccome stiamo considerando il caso di monitoraggio
continuo su un ampio periodo di tempo (qualche giorno), la frequenza di
campionamento non può essere troppo elevata, per i problemi di consumo energetico
che comporterebbe. Quindi abbiamo previsto un parametro impostabile dall’utente, in
modo che la frequenza dei dati considerati per la creazione del modello sia indipendente
dall’effettiva frequenza di campionamento dei sensori.
91
Capitolo 6 - Basi di dati mediche
L’utente può decidere ogni quanti valori prendere un campione (ad esempio uno
ogni 10, se i sensori rilevano le misure ogni secondo e invece si vuole effettuare
l’analisi ogni 10 secondi).
Il valore del campione non è semplicemente il valore puntuale del segnale in
quell’istante, ma è una media su una finestra mobile di lunghezza pari al valore del
parametro, come mostrato in Figura 6.6. In particolare questo accorgimento si è rivelato
utile perché alcuni dei dati che avevamo a disposizione erano campionati ogni secondo,
periodo di tempo decisamente troppo breve per le nostre esigenze.
. . . . . . . . . . . .
valori
originali
media su
finestra mobile
valori ricampionati
Figura 6.6 Fase di ricampionamento dei dati
In Figura 6.7 mostriamo il risultato di quest’ultima operazione.
Terminata la fase di pre-elaborazione, abbiamo a disposizione le sequenze
temporali sincronizzate per ogni parametro. A questo punto possiamo procedere con
l’elaborazione vera e propria, eseguendo i passi di creazione del modello e
classificazione dei dati, la cui implementazione è descritta nei Paragrafi 5.7 e 5.8.
92
Capitolo 6 - Basi di dati mediche
Figura 6.7 Dati ricampionati
93
Capitolo 7
Analisi dei risultati
7.1 Introduzione
In questo capitolo descriviamo gli esperimenti che abbiamo svolto per validare
IGUANA con i dati clinici descritti nel Capitolo 6. Inoltre analizziamo i risultati
ottenuti al variare dei diversi parametri previsti dal nostro framework.
Siccome alcuni parametri influiscono non solo nella fase di classificazione ma
anche in quella di creazione del modello, abbiamo ripetuto l’operazione di costruzione
del modello quando necessario, in modo che le due fasi fossero coerenti.
In particolare, ancora prima di cambiare i parametri, è necessario ricreare il
modello al variare del campione di pazienti considerati per la sua creazione. Abbiamo
diviso le registrazioni selezionate da MIMIC-numerics in due gruppi: uno con i dati su
cui abbiamo costruito i modelli, l’altro con quelli che abbiamo classificato.
Per avere a disposizione due insiemi con caratteristiche sufficientemente
variegate da permettere l’esplorazione di situazioni diverse, abbiamo fatto in modo che
in ogni gruppo fossero presenti pazienti con malattie e sesso differenti. A questo scopo,
per la classificazione abbiamo selezionato almeno un paziente per ogni malattia; le
registrazioni scelte sono le seguenti:
mimic-angina-m67-55h-467n
mimic-bleed-m70-77h-039n
mimic-brain-m60-42h-280n
mimic-cabg-f80-57h-457n
mimic-cardio-f71-50h-293n
mimic-NA-f66-58h-276n
mimic-NA-m75-51h-474n
mimic-pulmEde-f92-71h-414n
mimic-pulmEde-m70-69h-466n
mimic-renal-f78-62h-471n
mimic-resp-f64-53h-403n
mimic-resp-m90-46h-243n
mimic-sepsis-f82-42h-269n
mimic-trauma-f92-51h-482n
mimic-valve-f77-52h-479n
94
Capitolo 7 - Analisi dei risultati
Le restanti registrazioni (descritte nel Paragrafo 7.2) sono state utilizzate nella
creazione dei modelli, selezionandone di volta in volta un sottoinsieme adeguato.
Oltre alla selezione di un campione di pazienti adeguato, abbiamo analizzato il
comportamento del nostro algoritmo al variare dei seguenti parametri:
ƒ numero di cluster del modello,
ƒ ampiezza della finestra temporale della media mobile,
ƒ frequenza di misurazione dei dati,
ƒ soglie di normalità,
ƒ algoritmo di clustering,
ƒ metodo di calcolo della distanza inter-cluster in caso di clustering
gerarchico,
ƒ pesi di offset, slope e dist nella funzione di calcolo del rischio,
ƒ numero di livelli di rischio.
I risultati ottenuti sono descritti nel Paragrafo 7.4.
Viste le sostanziali differenze tra le caratteristiche della base di dati Fantasia
rispetto a MIMIC descriviamo nel Paragrafo 7.3 i modelli creati appositamente per la
valutazione di questi dati. Ricordiamo che Fantasia comprende registrazioni del solo
segnale di battito cardiaco della durata di 2 ore relative a persone in normali condizioni
di salute, mentre MIMIC comprende registrazioni di vari segnali vitali registrati per
decine di ore relative a pazienti affetti da diverse patologie.
Nel Paragrafo 7.5 descriviamo le prove sperimentali svolte utilizzando la base di
dati Fantasia, per verificare il comportamento di IGUANA su pazienti in buono stato di
salute.
7.2 Modelli generati con IGUANA per MIMIC
Per avere a disposizione dei modelli coerenti con le modalità di classificazione
(caratteristiche del paziente e parametri impostati), utilizzando IGUANA abbiamo
creato diversi modelli selezionando sottoinsiemi di pazienti adeguati.
7.2.1 Pazienti scelti
Abbiamo effettuato la scelta dei pazienti in base a due caratteristiche:
ƒ malattia da cui sono affetti,
ƒ sesso.
Non abbiamo considerato l’età in quanto tutti i pazienti che abbiamo selezionato
dalla base di dati MIMIC hanno più di 60 anni, quindi i modelli che abbiamo costruito
contengono insiemi di persone con combinazioni diverse di malattie e sesso.
Per valutare i cambiamenti dovuti alle variazioni del solo campione di pazienti
scelti per la costruzione del modello, abbiamo mantenuto invariati gli altri parametri.
Abbiamo assegnato i valori di questi parametri costanti in base alle altre prove
95
Capitolo 7 - Analisi dei risultati
sperimentali che abbiamo svolto, descritte nel Paragrafo 7.4, decidendo di mantenere i
seguenti valori predefiniti:
ƒ numero di cluster = 10;
ƒ dimensione della finestra temporale = 10 minuti;
ƒ frequenza di misurazione = 15 secondi;
ƒ algoritmo di clustering = gerarchico;
ƒ metodo di distanza inter-cluster = average linkage;
ƒ soglie = valori minimo e massimo della media mobile per paziente;
ƒ pesi della funzione di calcolo del rischio come riportati dalla Tabella 7.1.
ABPsys
ABPdias
HR
SpO2
wo+
0.6
0.8
0.6
0.0
wo–
0.6
0.8
0.8
0.8
ws+
0.6
0.8
0.2
0.0
ws–
0.6
0.8
0.4
0.2
wd+
1.0
1.0
0.8
0.0
wd–
1.0
1.0
1.0
1.0
Tabella 7.1 Pesi predefiniti delle componenti del rischio
I modelli creati sono i seguenti.
1. Iguana3_mix
Questo modello è stato creato considerando un paziente per ogni tipo di malattia,
tra quelli precedentemente selezionati per la creazione dei modelli. Le registrazioni
scelte sono:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
mimic-angina-m67-37h-268n
mimic-bleed-m79-36h-472n
mimic-brain-f68-01h-220n
mimic-cabg-f72-35h-476n
mimic-cardio-f63-47h-237n
mimic-liver-f71-43h-277n
mimic-pulmEde-f63-47h-245n
mimic-resp-f64-25h-401n
mimic-sepsis-f82-31h-271n
mimic-valve-f65-48h-453n
2. Iguana3_pulmEde
Questo modello è stato costruito solo con i dati di pazienti affetti da edema
polmonare:
ƒ
ƒ
ƒ
mimic-pulmEde-f63-47h-245n
mimic-pulmEde-f72-25h-214n
mimic-pulmEde-f75-19h-230n
96
Capitolo 7 - Analisi dei risultati
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
mimic-pulmEde-f75-47h-231n
mimic-pulmEde-f76-13h-260n
mimic-pulmEde-f76-47h-259n
mimic-pulmEde-f82-50h-213n
mimic-pulmEde-f92-21h-413n
mimic-pulmEde-m84-41h-212n
mimic-pulmEde-m86-12h-417n
3. Iguana3_resp
Per questo modello abbiamo considerato solo i pazienti affetti da insufficienza
respiratoria:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
mimic-resp-f64-25h-401n
mimic-resp-f67-21h-211n
mimic-resp-f76-19h-241n
mimic-resp-f76-47h-242n
mimic-resp-m67-26h-218n
mimic-resp-m67-27h-219n
mimic-resp-m67-39h-216n
mimic-resp-m68-31h-226n
mimic-resp-m74-28h-033n
mimic-resp-m87-22h-052n
mimic-resp-m87-40h-054n
4. Iguana3_resp_males
Tra i dati elencati al punto precedente abbiamo selezionato quelli relativi a
pazienti di sesso maschile, i cui identificativi iniziamo con mimic-resp-m.
5. Iguana3_resp_females
Infine abbiamo selezionato quelli relativi a pazienti di sesso femminile, i cui
identificativi iniziano con mimic-resp-f.
7.2.2 Parametri impostati
Per valutare i cambiamenti dovuti alle variazioni dei parametri, abbiamo
mantenuto costanti i dati utilizzati per la creazione del modello, scegliendo quelli delle
seguenti registrazioni (modello Iguana3_mix del Paragrafo 7.2.1):
ƒ
ƒ
ƒ
ƒ
mimic-angina-m67-37h-268n
mimic-bleed-m79-36h-472n
mimic-brain-f68-01h-220n
mimic-cabg-f72-35h-476n
97
Capitolo 7 - Analisi dei risultati
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
mimic-cardio-f63-47h-237n
mimic-liver-f71-43h-277n
mimic-pulmEde-f63-47h-245n
mimic-resp-f64-25h-401n
mimic-sepsis-f82-31h-271n
mimic-valve-f65-48h-453n
Abbiamo variato i parametri uno alla volta, mantenendo gli altri fissi ai valori
elencati nel Paragrafo 7.2.1. I modelli che abbiamo creato sono i seguenti.
1. Iguana3_mix_Nthresholds
In questo modello abbiamo fissato le soglie di normalità secondo le informazioni
disponibili in letteratura medica [43, 44, 45, 46], anziché calcolarle direttamente dai dati
per ogni paziente. In Tabella 7.2 riportiamo i valori assegnati.
min
max
ABPsys
120
140
ABPdias
60
90
HR
60
100
SpO2
97
100
Tabella 7.2 Soglie di normalità per i segnali fisiologici da letteratura medica
2. Iguana3_mix_movwin=2
In questo modello abbiamo fissato la dimensione della finestra della media
mobile a 2 minuti.
3. Iguana3_mix_movwin=60
In questo modello abbiamo fissato la dimensione della finestra della media
mobile a 60 minuti.
4. Iguana3_mix_nsamples=5
In questo modello abbiamo impostato il tempo di campionamento a 5 secondi:
esaminiamo un valore ogni cinque dei dati originali, che sono campionati ogni secondo.
5. Iguana3_mix_nsamples=60
In questo modello abbiamo impostato il tempo di campionamento a 60 secondi.
6. Iguana3_mix_nclust=5
In questo modello abbiamo impostato il numero di cluster in cui discretizzare
offset, slope e dist a 5.
7. Iguana3_mix_nclust=30
In questo modello abbiamo impostato il numero di cluster a 30.
98
Capitolo 7 - Analisi dei risultati
8. Iguana3_mix_single
In questo modello abbiamo eseguito il clustering gerarchico utilizzando il
metodo single linkage per calcolare la distanza inter-cluster.
9. Iguana3_mix_complete
In questo modello abbiamo eseguito il clustering gerarchico utilizzando il
metodo complete linkage per calcolare la distanza inter-cluster.
10. Iguana3_mix_centroid
In questo modello abbiamo eseguito il clustering gerarchico utilizzando il
metodo centroid per calcolare la distanza inter-cluster.
11. Iguana3_mix_ward
In questo modello abbiamo eseguito il clustering gerarchico utilizzando il
metodo ward per calcolare la distanza inter-cluster.
7.3 Modello generato con IGUANA per Fantasia
Per analizzare il comportamento di IGUANA applicato ai dati delle registrazioni
di Fantasia, abbiamo creato un modello apposito, in quanto le loro caratteristiche sono
sostanzialmente diverse da quelle dei dati di MIMIC.
La base di dati Fantasia, descritta nel Paragrafo 6.3, contiene solo 20
registrazioni, relative ad altrettanti pazienti in buono stato di salute, di entrambi i sessi e
di età avanzata. L’unico segnale fisiologico disponibile di nostro interesse è il battito
cardiaco, la cui misurazione dura circa 2 ore.
Il modello che abbiamo generato utilizza 19 registrazioni delle 20 disponibili,
corrispondenti a quelle elencate nel Paragrafo 6.3 tranne la f2o09, che abbiamo usato
per la classificazione. La scelta di quale paziente classificare non è cruciale in quanto
non vi sono distinzioni di caratteristiche.
Gli altri parametri per la creazione del modello sono stati fissati ai seguenti
valori:
ƒ numero di cluster = 10;
ƒ dimensione della finestra temporale = 10 minuti;
ƒ frequenza di misurazione = 1 minuto;
ƒ algoritmo di clustering = gerarchico;
ƒ metodo di distanza inter-cluster = average linkage;
ƒ soglie = valori minimo e massimo della media mobile per paziente;
ƒ pesi della funzione di calcolo del rischio come riportati dalla Tabella 7.1
nella riga relativa al battito cardiaco (HR, Heart Rate).
99
Capitolo 7 - Analisi dei risultati
7.4 Esperimenti con MIMIC
In questo paragrafo analizziamo i risultati ottenuti al variare dei parametri
impostabili dall’utente, usando di volta in volta il modello appropriato tra quelli descritti
nel Paragrafo 7.2.
Nei grafici che utilizziamo per illustrare i risultati abbiamo stabilito le seguenti
convenzioni:
ƒ l’asse delle ordinate ha come etichetta la sigla del segnale vitale
visualizzato, le cui unità di misura, non indicate, sono
à
ABPdias, pressione sanguigna diastolica, in mmHg,
à
ABPsys, pressione sanguigna sistolica, in mmHg,
à
HR, battito cardiaco, in battiti al minuto,
à
SpO2, ossigenazione periferica del sangue, in percentuale;
ƒ l’asse delle ascisse indica il numero progressivo dei valori analizzati e, salvo
diversamente specificato, il tempo di campionamento è di 15 secondi;
ƒ le linee orizzontali eventualmente presenti indicano
à
la media statica (azzurro),
à
le soglie di normalità, massima e minima (verde),
à
le soglie di rischio assoluto, massima e minima (rosse);
ƒ i punti rappresentano i valori misurati; il colore e il simbolo con cui sono
rappresentati hanno il seguente significato:
à
i punti di colore verde e di forma circolare (○) indicano il livello di
rischio minimo (normalità),
à
i punti di colore giallo e di forma triangolare (∆) indicano il livello di
rischio medio-basso,
à
i punti di colore arancione che hanno la forma del segno più (+)
indicano il livello di rischio medio,
à
i punti di colore rosso e di forma a croce (X) indicano il livello di
rischio medio-alto,
à
i punti di colore viola e di forma a rombo (◊) indicano il livello di
rischio massimo;
ƒ eventuali punti azzurri rappresentano i valori della media mobile.
In alcuni grafici si riscontra il caso particolare di una linea verde (soglia di
normalità) che oltrepassa una linea rossa (soglia di rischio assoluto): in presenza di dati
di pazienti in condizioni di salute normali, questo caso non dovrebbe mai verificarsi. Per
la particolarità dei dati che abbiamo analizzato e per il metodo di calcolo delle soglie di
normalità che abbiamo utilizzato, a volte nei nostri risultati si verifica questo fenomeno.
Rimandiamo una spiegazione più dettagliata al Paragrafo 7.7.
100
Capitolo 7 - Analisi dei risultati
7.4.1 Campione di pazienti
Per determinare le differenze nell’applicazione dei diversi modelli, abbiamo
classificato gli stessi dati usando di volta in volta modelli costruiti su gruppi di pazienti
con caratteristiche differenti.
Abbiamo scelto di valutare i livelli di rischio di una paziente di sesso femminile
affetta da insufficienza respiratoria, classificando i suoi dati utilizzando vari modelli,
costruiti con dati di pazienti che condividono lo stato di salute o il sesso, e altri che non
li condividono.
L’obiettivo di questo esperimento è stabilire l’eventuale necessità di prendere in
considerazione caratteristiche quali sesso e tipo di malattia per costruire il modello
adatto, o se è possibile applicare un modello generale a pazienti con caratteristiche
diverse.
Confronti
Riportiamo in questa sezione i grafici dei livelli di rischio della pressione
sanguigna diastolica (ABPdias) e del battito cardiaco (HR), relativi alla registrazione
mimic-resp-f64-53h-403n.
Abbiamo applicato i seguenti modelli, costruiti sui dati dei pazienti elencati nel
paragrafo 7.2.1.
ƒ Iguana3_mix, con pazienti affetti da diversi tipi di malattie;
ƒ Iguana3_resp, con pazienti di entrambi i sessi, affetti da insufficienza
respiratoria;
ƒ Iguana3_rep_males, con pazienti maschi affetti da insufficienza
respiratoria;
ƒ Iguana3_resp_females, con pazienti femmine affette da insufficienza
respiratoria.
Riportiamo i grafici della classificazione della pressione sanguigna diastolica in
Figura 7.1, Figura 7.2 e Figura 7.3, ottenuti applicando rispettivamente i modelli
Iguana3_resp, Iguana3_rep_males e Iguana3_resp_females, per analizzare le
variazioni di risultati usando modelli costruiti su pazienti affetti dalla stessa patologia e
di entrambi i sessi, affetti dalla stessa patologia e di sesso diverso, affetti dalla stessa
patologia e dello stesso sesso.
Riportiamo i grafici della classificazione del battito cardiaco in Figura 7.4 e
Figura 7.5, ottenuti applicando rispettivamente i modelli Iguana3_mix e
Iguana3_resp, per analizzare le variazioni di risultati usando modelli costruiti su
pazienti affetti dalla stessa patologia e su pazienti affetti da varie patologie.
101
Capitolo 7 - Analisi dei risultati
Figura 7.1 Grafico del rischio usando il modello Iguana3_resp
Il grafico in Figura 7.1 riporta la classificazione dei dati della paziente affetta da
insufficienza respiratoria usando il modello costruito con dati di pazienti affetti dalla
stessa patologia.
102
Capitolo 7 - Analisi dei risultati
Figura 7.2 Grafico del rischio usando il modello Iguana3_resp_males
Il grafico in Figura 7.2 riporta la classificazione dei dati della paziente affetta da
insufficienza respiratoria usando il modello costruito con dati di pazienti affetti dalla
stessa patologia ma di sesso diverso.
103
Capitolo 7 - Analisi dei risultati
Figura 7.3 Grafico del rischio usando il modello Iguana3_resp_females
Il grafico Figura 7.3 riporta la classificazione dei dati della paziente affetta da
insufficienza respiratoria usando il modello costruito con dati di pazienti affetti dalla
stessa patologia e dello stesso sesso. Rispetto ai due grafici precedenti si nota che questo
modello individua un maggior numero di situazioni a rischio elevato.
Dal confronto di questi tre grafici notiamo che il sesso dei pazienti su cui è
costruito il modello ha un’influenza relativa sui risultati:
ƒ il modello in Figura 7.3, costruito con i dati dei soli pazienti di sesso
femminile, ha dato risultati nettamente diversi dagli altri due modelli per le
situazioni a rischio medio-alto, mentre le situazioni di normalità individuate
sono simili (punti verdi);
ƒ il modello creato con i dati dei soli pazienti maschi, in Figura 7.2, ha dato
risultati molto simili a quelli ottenuti applicando il modello creato con i dati
di tutti i pazienti affetti da insufficienza respiratoria (maschi e femmine),
riportati in Figura 7.1, sia per le situazioni a rischio, sia per quelle di
normalità.
104
Capitolo 7 - Analisi dei risultati
Riteniamo che questo comportamento sia dovuto al fatto che i pazienti di sesso
maschile utilizzati per la creazione del modello siano in condizioni cliniche peggiori;
avendo costruito il modello su un insieme ristretto di pazienti, il peso di ciascuno è tale
da modificare significativamente i risultati. Pertanto le soglie di rischio risultano
innalzate, per tenere conto della maggior gravità dei pazienti di sesso maschile, e di
conseguenza le situazioni di rischio delle pazienti di sesso femminile sono classificate
ad un livello di rischio inferiore.
Figura 7.4 Grafico del rischio usando il modello Iguana3_mix
105
Capitolo 7 - Analisi dei risultati
Figura 7.5 Grafico del rischio usando il modello Iguana3_resp
Dal confronto di Figura 7.4 e Figura 7.5 notiamo che la malattia dei pazienti su
cui è costruito il modello ha un’influenza significativa sui risultati:
ƒ l’applicazione del modello costruito con i dati dei soli pazienti affetti da
insufficienza respiratoria (Figura 7.5) individua alcune situazioni di rischio,
sebbene non elevato;
ƒ l’applicazione del modello creato con dati da pazienti affetti da varie
malattie valuta nella normalità anche variazioni notevoli dei valori misurati
e non individua nessuna situazione di rischio significativa (Figura 7.4).
Sebbene i risultati ottenuti evidenzino una differenza nelle situazioni a rischio
medio individuate, questo non si riflette sulla segnalazione di eventuali allarmi che si
prevede siano impostati per attivarsi con livelli di rischio più elevati. Nel caso in cui si
desiderasse discriminare anche situazioni di rischio medio, allora riteniamo
consigliabile applicare un modello personalizzato per il tipo di malattia da cui è afflitto
il paziente.
106
Capitolo 7 - Analisi dei risultati
7.4.2 Numero di cluster
Il numero di cluster indica in quanti intervalli discretizzare i valori di slope,
offset e dist. Abbiamo denominato questo parametro nclust. Quest’operazione ha anche
l’effetto di normalizzare tali valori su un intervallo da 1 a nclust.
Abbiamo deciso di confrontare i risultati delle prove fatte con nclust pari a 5, 10
e 30 usando il modello Iguana3_mix, che è quello più generale in quanto comprende
dati provenienti da pazienti con caratteristiche diversificate (affetti da varie malattie e di
entrambi i sessi, come indicato nel Paragrafo 7.2.1).
I valori di nclust sono stati scelti per i seguenti motivi:
ƒ 5 come valore minimo perché abbiamo 5 livelli di rischio finali, quindi non
riteniamo opportuno discretizzare in un numero inferiore di intervalli;
ƒ 10 come valore ottimale dall’analisi dei dendrogrammi del clustering
gerarchico;
ƒ 30 per verificare il comportamento con un numero elevato di cluster,
all’opposto delle situazioni precedenti.
Prima di passare all’analisi dei risultati finali della classificazione in livelli di
rischio, supportiamo la nostra scelta del numero di cluster con l’analisi dei
dendrogrammi ottenuti applicando il clustering gerarchico, con metodo di calcolo della
distanza inter-cluster average linkage. In Figura 7.6, Figura 7.7 e Figura 7.8 sono
riportati i dendrogrammi ottenuti dalla creazione del modello Iguana3_mix, per le tre
componenti del rischio, offset, slope e dist rispettivamente.
Per valutare gli effetti della scelta del numero di cluster, abbiamo ipotizzato di
tagliare ciascun dendrogramma all’altezza corrispondente, come indicato dalle righe
orizzontali blu (nclust=5) e rosse (nclust=10).
nclust=5
nclust=10
Figura 7.6 Dendrogramma di offset del parametro ABPdias
107
Capitolo 7 - Analisi dei risultati
nclust=5
nclust=10
Figura 7.7 Dendrogramma di slope del parametro ABPdias
nclust=5
nclust=10
Figura 7.8 Dendrogramma di dist del parametro ABPdias
Dall’analisi dei dendrogrammi in Figura 7.6, Figura 7.7 e Figura 7.8 abbiamo
tratto le seguenti conclusioni:
ƒ con nclust=5 viene individuata una classe di normalità troppo ampia e 3-4
cluster su 5 rappresentano situazioni molto rare;
ƒ con nclust=10 vengono suddivise in cluster anche le situazioni intermedie,
con un passaggio graduale dalla normalità al rischio che è ben mappato sulle
variazioni dei cluster;
108
Capitolo 7 - Analisi dei risultati
ƒ
con nclust=30, anche situazioni che si presentano molto frequentemente
sono suddivise in cluster diversi e non solo quelle rare, indicative di valori a
rischio.
Inoltre si nota che in tutti i dendrogrammi (in Figura 7.6, Figura 7.7 e Figura 7.8)
è presente un gruppo ristretto di valori estremamente distanti dagli altri. Se nella fase di
pre-elaborazione descritta nel Paragrafo 6.4 non avessimo già eliminato le misure errate
dovute ad eventuali malfunzionamenti dei sensori, avremmo potuto attribuire a questa
causa la loro presenza.
Invece è ragionevole aspettarsi che si tratti delle situazioni meno frequenti e più
rischiose tra quelle rilevate nel campione di pazienti. È interessante notare come a
questo gruppo di valori venga sicuramente attribuito un cluster a parte. Se le ipotesi
sulla distribuzione delle misure che abbiamo descritto nel Paragrafo 4.2.3 sono
verificate, il cluster assegnato è quello a cui è associato il massimo livello di rischio.
La stessa osservazione si può iterare per le successive situazioni di rischio
decrescente, confermando la capacità di IGUANA di discriminare correttamente le
situazioni più pericolose e adattandosi ai dati su cui è costruito il modello.
Frequenza dei valori misurati e rischio associato a slope, offset, dist
Approfondiamo l’ipotesi di assegnare un rischio elevato alle situazioni che si
presentano poco frequentemente, che è valida per i valori misurati; quando questi sono
scomposti nelle tre componenti slope, offset e dist, la supposizione citata si traduce in
una distribuzione decrescente all’aumentare dei valori delle componenti stesse. In altre
parole, se i valori rischiosi sono poco frequenti, allora le distribuzioni delle componenti
slope, offset, dist sono decrescenti (Paragrafo 4.2.3).
Abbiamo verificato questo comportamento nei dati a nostra disposizione che si
riferiscono a pazienti in condizioni cliniche estreme, quindi a maggior ragione è valido
per dati misurati da pazienti più sani.
Confronti
In di Figura 7.9, Figura 7.10 e Figura 7.11 riportiamo i grafici della
classificazione del rischio relativo alla pressione sanguigna diastolica (ABPdias) della
registrazione mimic-renal-f78-62h-471n, con valori del parametro nclust
impostati a 5, 10 e 30.
Abbiamo usato rispettivamente i modelli:
ƒ Iguana3_mix_nclust=5, per nclust pari a 5;
ƒ Iguana3_mix, per nclust pari a 10;
ƒ Iguana3_mix_nclust=30, per nclust pari a 30.
109
Capitolo 7 - Analisi dei risultati
Figura 7.9 Grafico del rischio usando il modello Iguana3_mix_nclust=5
110
Capitolo 7 - Analisi dei risultati
Figura 7.10 Grafico del rischio usando il modello Iguana3_mix
111
Capitolo 7 - Analisi dei risultati
Figura 7.11 Grafico del rischio usando il modello Iguana3_mix_nclust=30
Dal confronto di Figura 7.9, Figura 7.10 e Figura 7.11 abbiamo osservato che:
ƒ con nclust pari a 5 si ha una presenza predominante di situazioni a rischio
nullo (punti verdi);
ƒ con nclust pari a 30 si dividono in cluster diversi anche situazioni di
normalità molto simile, come si nota dalla maggior presenza di punti gialli e
arancioni;
ƒ con nclust pari a 10, invece, riteniamo che la suddivisione sia ragionevole,
infatti le situazioni vengono raggruppate gradualmente al diminuire della
loro frequenza, differenziando correttamente le situazioni mediamente
rischiose.
In generale le situazioni di rischio massimo (punti viola) sono molto simili,
mentre quelle a rischio medio sono più frequenti per il modello con nclust=30.
112
Capitolo 7 - Analisi dei risultati
7.4.3 Ampiezza della sliding window
L’ampiezza della finestra (sliding window) su cui calcoliamo la media mobile
influisce direttamente sul calcolo della media mobile stessa e di conseguenza
indirettamente sui valori di offset e sulle soglie di normalità del paziente.
Ricordiamo che l’offset è la differenza tra il valore attuale e la media mobile, e le
soglie di normalità nella nostra implementazione sono determinate dai valori massimo e
minimo della media mobile. Le altre grandezze, come ad esempio slope e soglie
assolute, non sono influenzate da eventuali variazioni di questo parametro, denominato
movwin.
L’effetto diretto di tale modifica si ha sull’andamento della media mobile:
ƒ all’aumentare della finestra, la media mobile si adatta meno all’andamento
dei dati e ha un comportamento più stabile;
ƒ al diminuire della finestra, la media mobile segue più prontamente
l’andamento dei dati e ha un comportamento più variabile.
Influenza su offset
All’aumentare dell’ampiezza della finestra della media mobile, l’andamento
della media mobile stessa segue meno fedelmente le fluttuazioni della sequenza di
valori, quindi il modello è costruito tenendo conto che ci sono molti valori distanti dalla
media mobile. Di conseguenza i valori di offset sono tipicamente elevati e per
contribuire al rischio in modo significativo devono diventare molto grandi.
Al diminuire dell’ampiezza della finestra della media mobile, invece, siccome
l’andamento della media mobile stessa segue più fedelmente le fluttuazioni della
sequenza di valori, il modello è costruito tenendo conto che quasi tutti i valori sono
vicini alla media mobile. In questo caso i valori di offset tipicamente sono bassi e quindi
il rischio aumenta molto all’aumentare di offset.
Influenza sulle soglie di normalità
Siccome abbiamo calcolato le soglie di normalità personalizzate sui pazienti
come i valori minimo e massimo della media mobile, quando la finestra è piccola e la
media mobile segue l’andamento dei dati, bastano pochi valori elevati o molto bassi per
ottenere delle soglie massime molto elevate e minime molto basse.
In presenza di una finestra ampia, invece, la media mobile è meno soggetta
all’andamento dei dati, quindi i suoi valori massimo e minimo sono meno distanti dalla
media statica dei dati.
In generale, fissato un insieme di dati, l’intervallo determinato dalle soglie di
normalità calcolate dalla media mobile è più ampio al diminuire dell’ampiezza della
finestra.
113
Capitolo 7 - Analisi dei risultati
Confronti
In Figura 7.12 e in Figura 7.13 riportiamo i grafici delle prove relative alla
pressione sanguigna diastolica (ABPdias) della registrazione mimic-resp-f64-53h403n, con dimensione della finestra pari a 2, 10 e 60 minuti.
Abbiamo usato i seguenti modelli:
ƒ Iguana3_mix_movwin=2, per movwin pari a 2;
ƒ Iguana3_mix, per movwin pari a 10;
ƒ Iguana3_mix_movwin=60, per movwin pari a 60.
Figura 7.12 Grafico del rischio usando il modello Iguana3_mix_movwin=2
114
Capitolo 7 - Analisi dei risultati
Figura 7.13 Grafico del rischio usando il modello Iguana3_mix_movwin=60
L’ampiezza della finestra indica quanto tempo passato influisce sulla valutazione
del rischio corrente. Il valore adatto, quindi, dovrebbe essere deciso in base a
valutazioni mediche sull’importanza della storia clinica del paziente e sulla pericolosità
delle variazioni rispetto alla situazione precedente.
Siccome noi supponiamo che la media mobile si adatti all’attività che sta
svolgendo il paziente, come spiegato nel Paragrafo 5.6, riteniamo che una durata di 10
minuti sia adatta a questo scopo.
In questo caso non giustifichiamo la scelta del parametro in base ai risultati
sperimentali perché la situazione clinica dei pazienti è decisamente anomala.
In ogni caso dai grafici riportati in Figura 7.12 e in Figura 7.13 abbiamo
osservato che:
ƒ confrontando i punti all’interno delle rispettive soglie di normalità, è
assegnato un rischio più elevato a quelli classificati usando il modello con
dimensione della finestra pari a 2;
115
Capitolo 7 - Analisi dei risultati
ƒ
confrontando tutti i punti, invece, in generale si individuano situazioni a
rischio più elevato con dimensione della finestra pari a 60, perché le soglie
di normalità individuano un intervallo più ristretto.
7.4.4 Frequenza di campionamento
In questo paragrafo analizziamo il comportamento di IGUANA al variare della
frequenza con cui sono forniti i valori dai sensori. Più precisamente questo parametro,
denominato nsamples, indica ogni quanti valori rilevati dai sensori è necessario
elaborarne uno con l’algoritmo.
Abbiamo deciso di ricampionare i valori originali per simulare dei sensori che
rilevino le misure con una frequenza diversa (Paragrafo 6.4.3). Per esempio, nel caso
del database MIMIC, i valori originali sono forniti ogni secondo; impostando
nsamples=15, abbiamo simulato dei sensori che effettuano misure ogni 15 secondi.
Sapendo che l’algoritmo rileva un’eventuale situazione di rischio in un tempo
minimo pari al tempo di campionamento, le variazioni di questo parametro influenzano
direttamente il tempo di intervento in caso di emergenza.
Confronti
In Figura 7.14 e in Figura 7.15 riportiamo i grafici delle prove relative alla
pressione sanguigna diastolica (ABPdias) della registrazione mimic-resp-f64-53h403n, con valori del parametro nsamples impostati a 5, 15 e 60.
Abbiamo usato i seguenti modelli:
ƒ Iguana3_mix_nsamples=5, per nsamples pari a 5;
ƒ Iguana3_mix, per nsamples pari a 15;
ƒ Iguana3_mix_nsamples=60, per nsamples pari a 60.
116
Capitolo 7 - Analisi dei risultati
Figura 7.14 Grafico del rischio usando il modello Iguana3_mix_nsamples=5
117
Capitolo 7 - Analisi dei risultati
Figura 7.15 Grafico del rischio usando il modello Iguana3_mix_ nsamples=60
Dal confronto dei grafici in Figura 7.14 e in Figura 7.15 abbiamo notato che:
ƒ al diminuire del tempo di campionamento, si rilevano anche brevi variazioni
dei segnali misurati, nonostante l’andamento complessivo sia, ovviamente,
lo stesso;
ƒ per nsamples=5, siccome abbiamo analizzato pazienti in situazioni cliniche
molto particolari, i dati presentano brusche oscillazioni, picchi molto elevati
ed escursioni in intervalli molto ampi;
ƒ come conseguenza dell’osservazione precedente, per nsamples=30 sono
rilevate meno situazioni pericolose, a causa della minore varianza dei dati.
Dovendo intervenire entro 15 secondi, abbiamo scelto di impostare il tempo di
campionamento a tale valore per gli altri esperimenti.
118
Capitolo 7 - Analisi dei risultati
7.4.5 Soglie di normalità
In questo paragrafo confrontiamo i risultati ottenuti al variare dei valori delle
soglie di normalità, denominate Nthresholds.
Le soglie di normalità hanno lo scopo di individuare un intervallo di valori, per
ogni parametro (pressione sistolica e diastolica, battito cardiaco e ossigenazione) e per
ogni paziente, in cui il rischio è dovuto solamente ad eventuali variazioni rispetto al
comportamento medio del paziente e non dal valore assoluto assunto dal segnale: solo
slope e offset contribuiscono al calcolo della funzione di rischio, in quanto dist è nullo.
Le soglie dovrebbero essere determinate dal medico curante in base alla storia
clinica del paziente, alla sua patologia, e ad altre eventuali informazioni di rilevanza
terapeutica. A causa dell’assenza di un supporto medico ufficiale, abbiamo deciso di
determinare le soglie dall’analisi dei dati. Siccome all’interno dell’intervallo delle
Nthresholds dovrebbe essere inclusa la maggior parte dei dati (supponendo che i valori
più frequenti siano i meno rischiosi), abbiamo ritenuto opportuno assegnare alle soglie i
valori massimo e minimo della media mobile.
Invece, per persone sane è possibile fare riferimento alla letteratura medica per
ottenere dei valori di normalità standard, che sono riportati in Tabella 7.2. Purtroppo i
dati a nostra disposizione sono relativi a pazienti in condizioni di salute particolari e le
soglie standard non sono adeguate a rilevare situazioni di rischio effettive.
Questo effetto è bilanciato dalle capacità adattative dell’algoritmo durante la
fase di creazione del modello. Infatti, se il modello è costruito su un campione di
persone con valori molto distanti dalle soglie, come avviene nel nostro caso per pazienti
in terapia intensiva, la frequenza con cui si presentano queste situazioni, che in casi
normali sarebbero rischiose, è tale da renderle meno influenti sul calcolo del rischio. La
causa di questo comportamento è dovuta all’ipotesi di considerare le situazioni più
frequenti meno rischiose e quelle più rare più pericolose.
L’effetto appena descritto è limitato all’intervallo di valori compresi tra le soglie
di rischio assolute. Ricordiamo infatti che oltre tali soglie l’organismo è sempre in
pericolo di vita e il rischio assegnato da IGUANA è al livello massimo.
Confronti
Abbiamo deciso di confrontare i risultati ottenuti dai due metodi di calcolo delle
soglie analizzati in questo paragrafo: quello che si basa sulla letteratura medica e quello
personalizzato per ogni paziente, che simula la scelta di un esperto medico.
In Figura 7.16 e Figura 7.17 riportiamo i grafici delle prove relative alla
pressione sanguigna sistolica (ABPsys), in Figura 7.18 e Figura 7.19 quelle relative alla
pressione sanguigna diastolica (ABPdias), tutti relativi alla registrazione mimicrenal-f78-62h-471n.
Si notino le linee verdi che indicano le soglie di normalità e quelle rosse per le
soglie di rischio assolute.
119
Capitolo 7 - Analisi dei risultati
Abbiamo usato i modelli:
ƒ Iguana3_mix, per Nthresholds calcolate dalla media mobile;
ƒ Iguana3_mix_Nthresholds, per Nthresholds da letteratura medica.
Riteniamo significativo confrontare i grafici a coppie, in quanto ognuna
corrisponde a una situazione diversa.
Figura 7.16 Grafico del rischio usando il modello Iguana3_mix
120
Capitolo 7 - Analisi dei risultati
Figura 7.17 Grafico del rischio usando il modello Iguana3_mix_ Nthresholds
La prima coppia di grafici (Figura 7.16 e Figura 7.17) ci permette di analizzare il
comportamento dell’algoritmo quando, data la particolarità dei dati, i due metodi di
calcolo delle soglie forniscono risultati diversi. Infatti, può succedere che le soglie di
normalità oltrepassino le soglie di rischio assolute, eventualità che sicuramente non si
sarebbe verificata se avessimo avuto dati adeguati all’analisi.
121
Capitolo 7 - Analisi dei risultati
Figura 7.18 Grafico del rischio usando il modello Iguana3_mix
122
Capitolo 7 - Analisi dei risultati
Figura 7.19 Grafico del rischio usando il modello Iguana3_mix_ Nthresholds
La seconda coppia di grafici (Figura 7.18 e Figura 7.19) ci permette di verificare
che, se i dati non corrispondono a situazioni estreme, i due metodi producono gli stessi
risultati, validando il metodo che abbiamo scelto per calcolare le soglie.
Confrontando i primi due grafici (Figura 7.16 e Figura 7.17), relativi alla
pressione sanguigna sistolica, abbiamo notato che:
ƒ siccome nei due casi le soglie assumono valori molto diversi, anche le
situazioni di rischio individuate sono diverse; infatti usando il primo
modello (Figura 7.16) le soglie sono più ampie, ndist assume valori poco
elevati e non contribuisce in maniera significativa al calcolo del rischio;
ƒ usando il secondo modello (Figura 7.17), invece, la considerevole presenza
di punti gialli, arancioni e rossi indica un aumento graduale del rischio al
crescere di ndist, che, assumendo valori molto elevati, influisce in maniera
preponderante sul calcolo del rischio.
123
Capitolo 7 - Analisi dei risultati
Confrontando gli altri due grafici (Figura 7.18 e Figura 7.19) relativi alla
pressione sanguigna diastolica, a conferma delle considerazioni precedenti abbiamo
constatato che:
ƒ all’interno delle soglie di normalità le situazioni di rischio individuate sono
simili;
ƒ anche al di fuori delle soglie di normalità le situazioni di rischio non
differiscono significativamente.
7.4.6 Algoritmo di clustering
Confrontiamo ora i risultati ottenuti dai due algoritmi di clustering che abbiamo
applicato: gerarchico e k-means. Per le considerazioni teoriche rimandiamo al Paragrafo
3.6.3.
Prima di esaminare le situazioni di rischio individuate da IGUANA nei due casi,
ne analizziamo il comportamento secondo le seguenti caratteristiche, che sono i
principali parametri valutativi degli algoritmi di clustering:
ƒ scalabilità e risorse di spazio (memoria) e tempo (CPU) utilizzate;
ƒ capacità di elaborare tipi di dati diversi;
ƒ necessità di conoscenza specifica per determinare i parametri di input;
ƒ capacità di trattare rumore e valori anomali;
ƒ importanza dell’ordine con cui sono elaborati i dati;
ƒ facilità di interpretazione dei risultati.
Scalabilità e risorse di calcolo
In Tabella 7.3 riportiamo i tempi (in ore:minuti:secondi) richiesti
dall’operazione di clustering dei dati relativi al solo battito cardiaco per
l’implementazione di IGUANA che abbiamo descritto.
Le principali caratteristiche hardware e software dei computer utilizzati per
svolgere le prove sono:
ƒ processore AMD Athlon64 3200+,
ƒ memoria RAM 512 Mb, memoria virtuale gestita dinamicamente,
ƒ sistema operativo Microsoft Windows XP Professional,
ƒ R versione 2.1.1.
124
Capitolo 7 - Analisi dei risultati
dati
1552
2019
4280
5968
6225
6870
slope
0:00:13
0:00:48
0:08:36
0:12:02
0:15:46
0:20:39
clustering gerarchico
totale unitario (s)
offset
dist
0:00:13 0:00:10 0:00:36 0,023
0:00:50 0:00:35 0:02:13 0,066
0:08:44 0:05:46 0:23:06 0,324
0:12:15 0:09:45 0:34:02 0,342
0:16:05 0:10:59 0:42:50 0,413
0:20:34 0:15:14 0:56:27 0,493
slope
0:00:01
0:00:02
0:00:04
0:00:08
0:00:09
0:00:14
clustering k-means
totale unitario (s)
offset
dist
0:00:01 0:00:01 0:00:03 0,0019
0:00:01 0:00:01 0:00:04 0,0020
0:00:03 0:00:02 0:00:09 0,0021
0:00:09 0:00:08 0:00:25 0,0042
0:00:10 0:00:10 0:00:29 0,0047
0:00:15 0:00:22 0:00:51 0,0074
Tabella 7.3 Confronto dei tempi impiegati dal clustering gerarchico e k-means
Le prestazioni ottenute possono essere migliorate in fase di sperimentazione sul
campo con opportune ottimizzazioni del codice, ma forniscono comunque indicazioni
quantitative utili per valutare le risorse di calcolo necessarie alla creazione del modello.
Le prove effettuate confermano che il clustering k-means richiede meno risorse
del clustering gerarchico, anche al crescere della quantità di dati da elaborare. In
particolare impiega un tempo che è mediamente 1/60 di quello del clustering gerarchico,
con tempi dell’ordine delle decine di secondi in confronto alle decine di minuti.
In Figura 7.20 riportiamo il grafico tratto dalla colonna del tempo totale del
clustering gerarchico di Tabella 7.3. Lo stesso grafico, relativo al metodo k-means, è
riportato in Figura 7.21.
125
Capitolo 7 - Analisi dei risultati
Clustering gerarchico
slope
offset
dist
0.57.36
Tempo impiegato (h:mm:ss)
0.50.24
0.43.12
0.36.00
0.28.48
0.21.36
0.14.24
0.07.12
0.00.00
1552
2019
4280
5968
6225
6870
Dati elaborati
Figura 7.20 Grafico del tempo di elaborazione totale del clustering gerarchico
Clustering k-means
slope
offset
dist
Tempo impiegato (h:mm:ss)
0.00.52
0.00.43
0.00.35
0.00.26
0.00.17
0.00.09
0.00.00
1552
2019
4280
5968
6225
6870
Dati elaborati
Figura 7.21 Grafico del tempo di elaborazione totale del clustering k-means
126
Capitolo 7 - Analisi dei risultati
I grafici evidenziano una crescita dei tempi di elaborazione del clustering
gerarchico più marcata per piccole quantità di dati (2000 – 4000), dove il metodo kmeans si conferma più scalabile. Quest’ultimo, invece, ha un aumento ripido nel
passaggio da 6000 a 7000 dati, dove il clustering gerarchico si è ormai stabilizzato su
una crescita costante.
Riteniamo che questo comportamento sia dovuto all’intervento di altre cause
limitanti nell’esecuzione degli algoritmi, in particolare l’occupazione di memoria. Il
clustering gerarchico memorizza una matrice delle distanze tra i punti da raggruppare
che è di dimensione n × n, con n = numero di valori, quindi richiede molto più spazio di
memoria rispetto al metodo k-means, costringendo il sistema operativo a ricorrere alla
memoria virtuale molto più lenta.
Per analizzare l’impatto di questo fenomeno abbiamo tracciato l’andamento dei
tempi di elaborazione unitari (tempo medio per elaborare un dato). In Figura 7.22 e in
Figura 7.23 presentiamo i relativi grafici, che evidenziano come l’aumento più
significativo avvenga già nel passaggio da 2000 a 4000 dati per il clustering gerarchico
e solo per 6000 – 8000 dati con il metodo k-means.
Clustering gerarchico
493
Tempo medio per elaborare un dato (ms)
500
413
450
342
400
324
350
300
250
200
150
66
100
50
23
0
1552
2019
4280
5968
Dati elaborati
6225
6870
Figura 7.22 Grafico del tempo di elaborazione unitario del clustering gerarchico
127
Capitolo 7 - Analisi dei risultati
Clustering k-means
7,4
Tempo medio per elaborare un dato (ms)
8,0
7,0
6,0
4,2
5,0
4,7
4,0
3,0
1,9
2,0
2,1
2,0
1,0
0,0
1552
2019
4280
5968
Dati elaborati
6225
6870
Figura 7.23 Grafico del tempo di elaborazione unitario del clustering k-means
Siccome prevediamo che la fase di costruzione del modello sia svolta off-line e
quindi disponga virtualmente di tempo e risorse illimitate, questi risultati non sono
determinanti per la scelta dell’algoritmo di clustering. Tale decisione è determinata
prevalentemente dall’accuratezza del modello generato, che valutiamo in questo
paragrafo.
Tipi di dati diversi
La suddivisione dei tempi per slope, offset e dist riportati in Tabella 7.3 ci
permette di notare che il clustering gerarchico è più sensibile al tipo di dati da elaborare
rispetto al metodo k-means.
Infatti il tempo impiegato per individuare i cluster del parametro dist è
mediamente di circa il 30% inferiore a quello richiesto per elaborare i valori di slope e
offset, e sappiamo che i valori di dist hanno una distribuzione molto particolare in
quanto la maggior parte tipicamente vale zero (situazione di un paziente con valori
all’interno delle soglie di normalità).
128
Capitolo 7 - Analisi dei risultati
Parametri degli algoritmi
Per quanto riguarda la scelta dei parametri da specificare per ciascun algoritmo,
abbiamo analizzato nel Paragrafo 7.4.2 i risultati ottenuti al variare del numero di
cluster desiderati, principale parametro del metodo k-means, e analizziamo nel
Paragrafo 7.4.7 quelli ottenuti per il clustering gerarchico al variare del metodo di
calcolo della distanza inter-cluster.
Rumore e outlier
La capacità di elaborare dati affetti da rumore e valori anomali è un problema
che abbiamo affrontato nella fase di pre-elaborazione dei dati descritta nel Paragrafo
6.4, quindi supponiamo che a questo punto l’algoritmo di clustering non debba
prevederne una gestione esplicita.
Ordine dei dati
L’ordine con cui sono letti i dati è importante dal punto di vista semantico; i dati,
infatti, sono una serie temporale (time series, descritte nel Paragrafo 3.7): ad ogni valore
è associato un istante di tempo.
Nella fase di applicazione dell’algoritmo di clustering, però, la nozione del
tempo è ormai incorporata nel concetto di slope e offset, per come sono stati calcolati33,
quindi non è più necessario mantenere rigorosamente l’ordine cronologico. Gli
algoritmi di clustering, pertanto, non prevedono la trattazione esplicita
dell’informazione temporale associata ai dati.
Interpretazione dei risultati
Non avendo a disposizione un supporto medico ufficiale, abbiamo valutato i
risultati sia consultando degli esperti medici di nostra conoscenza, sia stimando la
coerenza della classificazione applicata da IGUANA con gli obiettivi che ci siamo posti.
Confronti
Riportiamo i grafici delle prove relative alla pressione sanguigna sistolica
(ABPsys) in Figura 7.24 e Figura 7.25, e alla pressione sanguigna diastolica (ABPdias)
in Figura 7.26 e Figura 7.27, tutti relativi alla registrazione mimic-renal-f78-62h471n.
33
Il valore di slope è calcolato rispetto ai punti temporalmente precedenti e quello di offset
rispetto alla media mobile dei valori compresi nella sliding window, come descritto nel Paragrafo 4.2.1.
129
Capitolo 7 - Analisi dei risultati
Abbiamo usato il solo modello Iguana3_mix, poiché prevede già l’applicazione
di entrambi gli algoritmi di clustering. In fase di classificazione è sufficiente scegliere
quale risultato utilizzare tra i due disponibili.
Figura 7.24 Grafico del rischio usando il clustering gerarchico
130
Capitolo 7 - Analisi dei risultati
Figura 7.25 Grafico del rischio usando il clustering k-means
131
Capitolo 7 - Analisi dei risultati
Figura 7.26 Grafico del rischio usando il clustering gerarchico
132
Capitolo 7 - Analisi dei risultati
Figura 7.27 Grafico del rischio usando il clustering k-means
Da entrambi i confronti (Figura 7.24 con Figura 7.25, e Figura 7.26 con Figura
7.27) possiamo notare quanto segue:
ƒ le situazioni di rischio elevato (quelle per cui si prevede che sarà richiesta la
segnalazione di un allarme) sono molto simili, infatti entrambi i metodi
individuano gli stessi punti a rischio massimo (viola);
ƒ l’algoritmo k-means classifica troppe situazioni con rischio medio-alto (di
colore rosso), a differenza del clustering gerarchico (la Figura 7.27 ne è un
esempio lampante);
ƒ le situazioni a basso rischio (verde) sono correttamente raggruppate nello
stesso cluster dal clustering gerarchico, invece il metodo k-means le
suddivide in vari livelli (verde, giallo e arancione).
In generale il raggruppamento individuato dal clustering gerarchico è più
coerente con il nostro obiettivo di discriminare le situazioni di maggior rischio in vari
livelli, invece applicando il clustering k-means otteniamo anche una suddivisione delle
situazioni di normalità in gradi di rischio diversi.
133
Capitolo 7 - Analisi dei risultati
Abbiamo deciso di svolgere la nostra analisi applicando l’algoritmo di clustering
gerarchico, tuttavia lasciamo la decisione conclusiva ad un’eventuale istituzione
medico-sanitaria che debba applicare IGUANA in casi reali.
7.4.7 Distanza inter-cluster
In questo paragrafo analizziamo il diverso raggruppamento dei punti in classi di
rischio al variare del metodo di calcolo della distanza inter-cluster negli algoritmi di
clustering gerarchico. Tale distanza rappresenta il “grado di vicinanza” tra due cluster,
ed è necessaria per scegliere ad ogni passo la coppia di cluster da unire. Abbiamo
denominato cmethod questo parametro.
I metodi già considerati nel Paragrafo 3.6.3 e di cui abbiamo valutato i risultati
sono:
ƒ single linkage,
ƒ complete linkage,
ƒ average linkage,
ƒ centroid,
ƒ ward.
Prestazioni
Abbiamo valutato un eventuale impatto del metodo utilizzato per calcolare la
distanza inter-cluster sui tempi necessari alla creazione del modello. In Tabella 7.4
riportiamo i risultati ottenuti, evidenziati dal grafico in Figura 7.28.
cmethod
average
centroid
complete
average
single
ward
slope
0:15:46
0:13:43
0:13:39
0:13:49
0:13:38
0:14:21
offset
0:16:05
0:13:54
0:13:48
0:14:03
0:14:01
0:14:03
dist
0:10:59
0:10:22
0:10:21
0:10:32
0:10:18
0:10:29
totale
0:42:50
0:37:59
0:37:48
0:38:24
0:37:57
0:38:53
Tabella 7.4 Confronto dei tempi impiegati dal clustering gerarchico
134
Capitolo 7 - Analisi dei risultati
Clustering gerarchico
slope
offset
dist
Tempo impiegato (h:mm:ss)
0:43:12
0:36:00
0:28:48
0:21:36
0:14:24
0:07:12
0:00:00
average
centroid
complete
average
single
Metodo di calcolo della distanza intercluster
ward
Figura 7.28 Grafico dei tempi impiegati dal clustering gerarchico
Consideriamo insignificante la differenza tra i tempi di esecuzione con i vari
metodi di calcolo della distanza inter-cluster in quanto il tempo minimo è di circa il
10% inferiore al tempo massimo. Questa osservazione è rafforzata dall’ipotesi di
costruzione del modello off-line, che non pone particolari vincoli temporali e necessità
di risorse di calcolo a questa fase.
Confronti
Riportiamo i grafici delle prove relative alla pressione sanguigna diastolica
(ABPdias) della registrazione mimic-renal-f78-62h-471n, con valori del
parametro cmethod impostati a single (Figura 7.29), complete (Figura 7.30), average
(Figura 7.31), centroid (Figura 7.32) e ward (Figura 7.33).
Abbiamo usato i seguenti modelli:
ƒ Iguana3_mix_single, per cmethod = single;
ƒ Iguana3_mix_complete, per cmethod = complete;
ƒ Iguana3_mix, per cmethod = average;
ƒ Iguana3_mix_centroid, per cmethod = centroid;
ƒ Iguana3_mix_ward, per cmethod = ward.
135
Capitolo 7 - Analisi dei risultati
Figura 7.29 Grafico del rischio usando il metodo single
In Figura 7.29 mostriamo il risultato dell’applicazione del modello costruito con
il metodo single linkage. La fusione di due oggetti o gruppi di oggetti può avvenire se la
distanza fra due oggetti non appartenenti allo stesso gruppo è la più bassa fra quelle
possibili.
Si può notare che questo metodo produce un cluster principale comprendente la
maggior parte dei punti, caratterizzati dal colore verde e quindi a rischio basso, per la
sua naturale tendenza al concatenamento dei punti man mano che un gruppo diventa
numeroso.
136
Capitolo 7 - Analisi dei risultati
Figura 7.30 Grafico del rischio usando il metodo complete
In Figura 7.30 mostriamo il risultato dell’applicazione del modello costruito con
il metodo complete linkage. La fusione di due oggetti o gruppi di oggetti può avvenire
soltanto se tutte le distanze fra coppie di oggetti non appartenenti allo stesso gruppo
sono inferiori alla soglia che permetterebbe la fusione di un’altra coppia di gruppi.
Con questo metodo si raggiunge una maggiore omogeneità intra-gruppo,
favorendo la formazione di gruppi a cui appartiene un numero non troppo variabile di
oggetti.
137
Capitolo 7 - Analisi dei risultati
Figura 7.31 Grafico del rischio usando il metodo average
In Figura 7.31 mostriamo il risultato dell’applicazione del modello costruito con
il metodo average linkage. Il criterio per la fusione di due oggetti o gruppi di oggetti è la
selezione della minima media aritmetica delle distanze fra tutti gli oggetti dei due
gruppi. La distanza tra un’unità e un gruppo è data dalla media aritmetica delle distanze
tra l’unità e tutte le altre del gruppo.
Questo metodo è molto efficiente quando gli oggetti formano naturalmente
blocchi distinti e si comporta comunque bene con cluster di tipo concatenato.
138
Capitolo 7 - Analisi dei risultati
Figura 7.32 Grafico del rischio usando il metodo centroid
In (Figura 7.32) mostriamo il risultato dell’applicazione del modello costruito
con il metodo centroid. In questo caso la distanza tra due gruppi di oggetti è calcolata
tra i centroidi che li rappresentano.
Lo svantaggio di questo metodo è che non garantisce la monotonicità del
diagramma di aggregazione, dando luogo, talvolta, a inversioni nella struttura del
dendrogramma; l’interpretazione dei risultati risulta quindi più difficile e va usata con
cautela.
139
Capitolo 7 - Analisi dei risultati
Figura 7.33 Grafico del rischio usando il metodo ward
In Figura 7.33 mostriamo il risultato dell’applicazione del modello costruito con
il metodo ward. L’obiettivo della partizione è minimizzare la variabilità interna,
massimizzando la variabilità fra i gruppi, così da ottenere classi omogenee e ben
separate. Il criterio scelto per l’aggregazione nelle partizioni è quello di fondere i due
gruppi per i quali la perdita di inerzia inter-classi è la più debole: tale perdita di inerzia è
quindi assunta come misura della distanza fra i gruppi.
Questo metodo fornisce generalmente un insieme di gruppi di densità più o
meno uguale, soddisfacendo ai requisiti di bilanciamento della numerosità dei gruppi e
di garanzia che la distanza tra un gruppo e un’unità esterna non sia maggiore della
distanza tra due individui appartenenti allo stesso gruppo. Questi requisiti però non sono
utili agli obiettivi che ci siamo proposti, e il metodo ward non fornisce un risultato
accettabile per la corretta valutazione del rischio di un paziente.
Dal confronto tra questi grafici abbiamo notato che:
ƒ i metodi individuano classi di rischio diverse, in particolare, in ordine di
rischio crescente, abbiamo
140
Capitolo 7 - Analisi dei risultati
à
single,
à
average e centroid,
à
complete,
à
ward;
ƒ il metodo single tende a etichettare la maggior parte dei punti come
appartenenti al cluster a rischio più basso (punti verdi); questo
comportamento è dovuto al fatto che la distanza tra due cluster è la minima
distanza fra ogni punto di una e ogni punto dell’altra, quindi basta una
coppia di valori vicini a far fondere due gruppi in uno unico; l’effetto è
quello di formare un cluster principale comprendente la maggior parte dei
punti, e i rimanenti cluster con pochi punti ciascuno;
ƒ il metodo ward, al contrario, tende a creare cluster con lo stesso numero di
punti; non è quindi adatto al nostro caso, perché a noi interessa suddividere i
punti all’aumentare del rischio, per ricavare classi di quest’ultimo e non
della normalità.
Come per la scelta dell’algoritmo di clustering (paragrafo 7.4.6), lasciamo la
decisione conclusiva ad un’eventuale istituzione medico-sanitaria che debba applicare
IGUANA in casi reali e decidiamo di svolgere la nostra analisi mantenendo fisso il
metodo average linkage, in quanto suddivide in modo coerente ai nostri obiettivi i punti
in classi di rischio, senza suddividere situazioni di normalità in cluster diversi.
7.4.8 Pesi
La determinazione degli opportuni pesi per la funzione di calcolo del rischio è
un’operazione fondamentale per ottenere dei risultati adeguati alle aspettative. Infatti
questi influiscono direttamente sui livelli di rischio finali, a differenza degli altri
parametri che hanno un effetto indiretto.
Siccome i pesi da determinare sono molti riportiamo i grafici relativi ai risultati
ottenuti per varie combinazioni dei loro valori, come indicato in Tabella 7.5.
pesi
wo+ wo– ws+ ws– wd+ wd–
0
0
0
0
0
prova 1
1
0
0
0
0
0
prova 2
1
0
0
0
0
0
prova 3
1
0
0
0
0
0
prova 4
1
0
0
0
0
prova 5
1
1
0
0
0
0
prova 6
1
1
0
0
0
0
prova 7
1
1
0
0
prova 8
1
1
1
1
prova 9
1
1
1
1
1
1
Tabella 7.5 Valori dei pesi nelle prove svolte
141
Capitolo 7 - Analisi dei risultati
In questo modo verifichiamo che il risultato sia quello desiderato nelle varie
situazioni. Per un’analisi del significato di ciascun peso rimandiamo al Paragrafo 4.2.2.
Sebbene i pesi possano essere differenziati per ogni segnale analizzato,
riteniamo significativo riportare i risultati solo per uno dei segnali fisiologici
considerati, in quanto abbiamo verificato che per gli altri si ottengono risultati simili.
Confronti
Abbiamo scelto la pressione sanguigna diastolica (ABPdias) della registrazione
mimic-renal-f78-62h-471n, classificata usando il modello Iguana3_mix.
Per questa prova comparativa la classificazione in situazioni di rischio non è
valutata in base alla coerenza con l’effettiva condizione clinica del paziente, ma
vogliamo analizzare i contributi apportati dai singoli pesi alla funzione di rischio
globale. A colpo d’occhio le gradazioni della colorazione dei punti nei grafici indicano
tale contributo per il peso cui si riferiscono.
Figura 7.34 Grafico del rischio della prova 1
142
Capitolo 7 - Analisi dei risultati
La prova 1 valuta il contributo di offset positivo al calcolo della funzione di
rischio. Questa situazione sarebbe adatta per un segnale fisiologico che diventa
pericoloso per la salute del paziente quando presenta escursioni positive rispetto ai
valori precedenti.
Come risulta dal grafico in Figura 7.34, sono identificate come situazioni di
rischio (di colore rosso e viola) quelle in cui i valori misurati sono più elevati dei
precedenti all’interno della finestra della media mobile34, sia in caso di più valori
consecutivi, sia quando tendono a tornare nella normalità.
A differenza del grafico in Figura 7.36, che rappresenta una situazione
concettualmente simile (contributo di slope positivo), in Figura 7.34 le situazioni di
rischio elevato hanno una durata maggiore in quanto coinvolgono tutti i punti “distanti”
dalla media mobile e non solo quelli all’inizio del cambiamento.
Figura 7.35 Grafico del rischio della prova 2
34
Questo esperimento è stato condotto mantenendo la finestra della media mobile a 10 minuti,
che corrisponde a 40 valori rilevati ogni 15 secondi.
143
Capitolo 7 - Analisi dei risultati
La prova 2 valuta il contributo di offset negativo al calcolo della funzione di
rischio. Questa situazione è duale rispetto alla precedente della prova 1 e valgono le
stesse considerazioni.
Dal confronto tra il grafico di Figura 7.35 e quello di Figura 7.34 possiamo
notare che le escursioni negative sono meno frequenti e ampie di quelle positive,
situazione che abbiamo riscontrato anche nelle prove relative ad altri pazienti e altri
segnali fisiologici. Per l’ipotesi di rischio basata sulla frequenza con cui si presentano
determinate situazioni cliniche, possiamo dedurre che sia più pericoloso un eventuale
abbassamento dei valori dei segnali fisiologici. Questa deduzione è confermata dalla
minore influenza delle attività svolte dal paziente sulla diminuzione dei valori misurati.
Infatti l’attività fisica può facilmente favorire rapidi innalzamenti di pressione e battito
cardiaco, mentre il riposo permette un abbassamento piuttosto lento e graduale di questi
segnali fisiologici.
Figura 7.36 Grafico del rischio della prova 3
144
Capitolo 7 - Analisi dei risultati
La prova 3 valuta il contributo di slope positivo al calcolo della funzione di
rischio. Questa situazione sarebbe adatta per un segnale fisiologico che diventa
pericoloso per la salute del paziente quando presenta variazioni positive rapide e
puntuali, caratteristica che tipicamente contraddistingue le emergenze.
Come risulta dal grafico in Figura 7.36, sono identificate come situazioni di
rischio (di colore rosso e viola) quelle di brusco innalzamento del valore misurato.
In caso di più valori molto elevati consecutivi, solo il primo è considerato
pericoloso, in quanto è l’unico a presentare una variazione ampia; i successivi, pur
essendo elevati rispetto all’andamento precedente del paziente, non variano rispetto alla
situazione puntuale e istantanea, quindi non sono classificati come situazioni a rischio.
Riteniamo significativo il confronto con il grafico in Figura 7.34 della prova 1,
relativo alla valutazione di offset positivo, le cui osservazioni sono a pag. 143.
Figura 7.37 Grafico del rischio della prova 4
145
Capitolo 7 - Analisi dei risultati
La prova 4 valuta il contributo di slope negativo al calcolo della funzione di
rischio. Questa situazione è duale rispetto alla precedente della prova 3 e valgono le
stesse considerazioni.
Si noti che un rapido cambiamento del valore assunto da un segnale fisiologico
non è sempre indicativo di una situazione reale di rischio. Nel grafico in Figura 7.37
possiamo osservare la presenza di rapidi “ritorni” a valori normali, in questo caso
classificati a rischio elevato, ma la cui pericolosità è difficile da valutare. Infatti, se un
repentino abbassamento della pressione del sangue può causare svenimento, potrebbe
anche essere dovuto a misure correttive atte a contrastare la precedente situazione di
pressione alta, come ad esempio la somministrazione di farmaci.
Figura 7.38 Grafico del rischio della prova 5
La prova 5 valuta il contributo di offset, sia positivo sia negativo, al calcolo della
funzione di rischio. Questa valutazione sarebbe adatta per un segnale fisiologico che
diventa pericoloso per la salute del paziente quando presenta variazioni rispetto alla
146
Capitolo 7 - Analisi dei risultati
situazione media dinamica, cioè rispetto ai valori assunti nel recente passato, e non
rispetto a valori assoluti determinati a priori.
Come risulta dal grafico in Figura 7.38, sono identificate come situazioni di
rischio (di colore rosso e viola) quelle in cui i valori si discostano molto dalla media
mobile35.
Si noti che il rischio massimo (di colore viola) assegnato ai punti in Figura 7.38
(pesi wo+ e wo– pari a 1) non corrisponde all’unione di quelli in Figura 7.34 (peso wo+
pari a 1) e in Figura 7.35 (peso wo– pari a 1), sebbene le situazioni analizzate siano
complementari. Infatti la funzione di calcolo del rischio, descritta nel Paragrafo 4.2.2,
tiene conto dei pesi per riscalare il valore di rischio massimo e per calcolare un
coefficiente di correzione (wr).
Figura 7.39 Grafico del rischio della prova 6
35
Questo esperimento è stato condotto mantenendo la finestra della media mobile a 10 minuti,
che corrisponde a 40 valori rilevati ogni 15 secondi.
147
Capitolo 7 - Analisi dei risultati
La prova 6 valuta il contributo di slope, sia positivo sia negativo, al calcolo della
funzione di rischio. Questa valutazione sarebbe adatta per un segnale fisiologico che
diventa pericoloso per la salute del paziente quando presenta brusche variazioni rispetto
alla situazione immediatamente precedente.
Come risulta dal confronto tra il grafico in Figura 7.38 e quello in Figura 7.39,
nel primo (relativo a offset) sono individuate situazioni a rischio caratterizzate da
sequenze compatte di punti di colore rosso e viola, mentre nel secondo (relativo a slope)
i punti a rischio elevato sono dispersi lungo l’asse temporale, risultando più sparsi.
L’osservazione di questo comportamento ci induce a confermare che:
ƒ il contributo di offset al rischio è relativo a variazioni prolungate36, adatte a
individuare situazioni di pericolosità dovute alla permanenza in uno stato di
alterazione dei valori fisiologici;
ƒ il contributo di slope al rischio è relativo a variazioni puntuali, adatte ad
individuare situazioni di emergenza immediata.
Riteniamo che l’uso esclusivo di uno dei due parametri offset e slope, in
particolare solo di quest’ultimo, non permetta di individuare situazioni di effettiva
importanza medica per i segnali fisiologici da noi analizzati. La possibilità di scegliere il
contributo di ciascun peso, però, permette di adattarsi a situazioni molto diverse, sia per
riconoscere comportamenti diversi per lo stesso segnale, sia per valutare segnali
fisiologici dalle caratteristiche differenti.
36
Rispetto alla durata temporale della finestra della media mobile.
148
Capitolo 7 - Analisi dei risultati
Figura 7.40 Grafico del rischio della prova 7
La prova 7 valuta il contributo di dist, sia positivo sia negativo, al calcolo della
funzione di rischio. Questa valutazione sarebbe adatta per un segnale fisiologico che
diventa pericoloso per la salute del paziente solo quando oltrepassa le soglie di
normalità.
L’effetto è quello di raggruppare in un unico cluster tutti i punti all’interno delle
soglie di normalità (aventi dist pari a zero), e dividere gli altri nei restanti cluster
disponibili.
149
Capitolo 7 - Analisi dei risultati
Figura 7.41 Grafico del rischio della prova 8
La prova 8 valuta i contributi di offset e slope, sia positivi sia negativi, al calcolo
della funzione di rischio. Questa valutazione sarebbe adatta per calcolare il rischio di un
segnale fisiologico tenendo conto di due aspetti:
ƒ presenza di escursioni elevate rispetto alla media mobile calcolata sui valori
più recenti (contributo di offset),
ƒ presenza di variazioni troppo rapide rispetto al valore precedente (contributo
di slope).
Non si considera la distanza dalle soglie di normalità.
150
Capitolo 7 - Analisi dei risultati
Figura 7.42 Grafico del rischio della prova 9
La prova 9 valuta i contributi di offset, slope e dist, sia positivi sia negativi, al
calcolo della funzione di rischio. Questa valutazione tiene conto di tutti gli aspetti che
abbiamo individuato come fondamentali per determinare il rischio di un paziente:
ƒ presenza di escursioni elevate rispetto alla media mobile calcolata sui valori
più recenti (contributo di offset),
ƒ presenza di variazioni troppo rapide rispetto al valore precedente (contributo
di slope),
ƒ distanza dalle soglie di normalità, ossia grado di anomalia del valore rispetto
a tutti quelli assunti dal paziente (contributo di dist).
151
Capitolo 7 - Analisi dei risultati
Dai grafici si nota che il comportamento al variare dei valori dei pesi è coerente
con le nostre aspettative; in particolare osserviamo quanto segue:
ƒ le varie combinazioni non sono linearmente indipendenti, quindi in generale
non è vero che i rischi individuati dalla configurazione con wo+ pari a 1 e
wo– pari a 1 (Figura 7.38) sono gli stessi ottenuti dalla combinazione delle
due situazioni separate (rispettivamente in Figura 7.34 e in Figura 7.35); la
causa è da ricercarsi nei meccanismi interni di riscalamento del fattore di
rischio in base ai pesi (il contributo di wr e l’operazione di calcolo del
rischio massimo descritti nel Paragrafo 4.2.2);
ƒ quando sono considerati più fattori nel calcolo del rischio (ad esempio sia
slope, sia offset, sia dist hanno pesi diversi da zero), per le stesse cause
descritte al punto precedente, le situazioni che lanciano un allarme sono
meno frequenti a parità di dati (si confrontino Figura 7.41 e Figura 7.42);
infatti è necessario che tutti i contributi siano sufficientemente elevati
affinché il livello di rischio sia considerato pericoloso;
ƒ la possibilità di pesare ogni singolo contributo conferisce notevole
flessibilità alla soluzione proposta, al costo di dover studiare bene il loro
effetto per ottenere risultati ottimali; riteniamo che la determinazione di
valori adeguati, una volta note le caratteristiche delle situazioni di rischio
che si desiderano individuare, richieda pochi tentativi, vista l’immediatezza
con cui è possibile valutare il contributo di ciascuna modifica.
7.4.9 Livelli di rischio
I livelli di rischio, denominati nrisklev, sono il numero di classi di rischio finali
che si vogliono ottenere. Ne abbiamo scelti 5 in quanto, dopo vari tentativi, riteniamo
che tale numero divida in modo adeguato il rischio, differenziandolo sufficientemente.
Confronti
Nei seguenti grafici riportiamo i risultati della classificazione del rischio relativi
alla pressione sanguigna diastolica (ABPdias) della registrazione mimic-renal-f7862h-471n, con valori del parametro nrisklev impostati di volta in volta a 3 (in Figura
7.43), 4 (in Figura 7.44), 5 (in Figura 7.45) e 7 (in Figura 7.46).
Abbiamo usato sempre il modello Iguana3_mix, poiché il parametro nrisklev
varia solo nel classificatore.
Nei seguenti grafici le convenzioni descritte nel Paragrafo 7.4 che riguardano la
corrispondenza tra colore dei punti e livello di rischio non sono rispettate. Abbiamo
scelto una diversa colorazione per favorire la visualizzazione dei risultati e il confronto
degli stessi.
I colori dei punti in ordine di rischio crescente sono i seguenti:
152
Capitolo 7 - Analisi dei risultati
1.
2.
3.
4.
5.
6.
7.
verde
giallo
arancione
rosso
viola
blu
nero
Non tutti i colori sono presenti in tutti i grafici. In particolare per quelli relativi a
situazioni con 3, 4 o 5 livelli di rischio, è stato scelto un sottoinsieme di colori adeguato
dall’elenco precedente, mantenendo l’ordine di pericolosità.
Figura 7.43 Grafico dei dati classificati con 3 livelli di rischio
In Figura 7.43 i valori misurati sono classificati in 3 livelli di rischio crescente
secondo la seguente colorazione:
153
Capitolo 7 - Analisi dei risultati
1.
2.
3.
verde
arancione
viola
Quasi tutti i punti sono classificati a basso rischio ma alcune situazioni, anche
non particolarmente pericolose, ricadono nel livello intermedio. I punti viola a massimo
rischio sono rari e corrispondono alle situazioni più anomale.
Figura 7.44 Grafico dei dati classificati con 4 livelli di rischio
In Figura 7.44 i valori misurati sono classificati in 4 livelli di rischio crescente
secondo la seguente colorazione:
1.
2.
verde
arancione
154
Capitolo 7 - Analisi dei risultati
3.
4.
viola
nero
Come in Figura 7.43, quasi tutti i punti sono classificati a basso rischio (verde),
ma la Figura 7.44 differisce per le situazioni a livello medio-basso (arancione), che sono
più frequenti. Le situazioni più pericolose, contraddistinte dal colore nero, sono molto
rare, infatti sono presenti anche molti punti a rischio medio-alto (viola) che nella Figura
7.43 erano classificate a rischio massimo.
Figura 7.45 Grafico dei dati classificati con 5 livelli di rischio
In Figura 7.45 i valori misurati sono classificati in 5 livelli di rischio crescente
secondo la seguente colorazione:
1.
2.
verde
arancione
155
Capitolo 7 - Analisi dei risultati
3.
4.
5.
viola
blu
nero
Come in Figura 7.44, i punti a rischio massimo sono di colore nero, ma in questo
caso abbiamo introdotto un livello medio-alto di colore blu. L’idea è di associare ai
punti neri un intervento di emergenza e ai punti blu una segnalazione meno urgente.
Le situazioni a basso rischio (verde) sono sempre numerose (confronto con la
Figura 7.43 e la Figura 7.44), a conferma della caratteristica di IGUANA di
discriminare le situazioni di rischio in livelli diversi.
Figura 7.46 Grafico dei dati classificati con 7 livelli di rischio
In Figura 7.46 i valori misurati sono classificati in 7 livelli di rischio crescente
secondo la seguente colorazione:
156
Capitolo 7 - Analisi dei risultati
1.
2.
3.
4.
5.
6.
verde
giallo
arancione
viola
blu
nero
Rispetto alla Figura 7.44, abbiamo introdotto un livello di rischio basso, di
colore giallo, per verificare se questo comporta l’eccessiva differenziazione in classi
diverse delle situazioni normali o se, invece, fosse adeguato per discriminare ulteriori
classi di rischio significativo. Riteniamo che sia verificata la prima supposizione:
sebbene i punti gialli siano ai margini della “fascia di normalità” dei punti di colore
verde, questi non presentano una pericolosità degna di nota.
Complessivamente dalle prove effettuate, di cui i grafici riportati sono un
esempio significativo, abbiamo notato che:
ƒ per nrisklev pari a 3 non si ha una sufficiente differenziazione del rischio, in
quanto troviamo difficile discriminare diversi tipi di intervento da associare
ai vari livelli di pericolosità; in particolare il livello intermedio non
raggruppa solo situazioni effettivamente rischiose ma anche situazioni non
significativamente anomale;
ƒ per nrisklev pari a 4, i due livelli di rischio più elevati, pur permettendo
interventi differenziati, comprendono anche situazioni non sufficientemente
rischiose per la vita del paziente;
ƒ per nrisklev pari a 7 si ha un’eccessiva differenziazione, infatti si
suddividono anche situazioni comuni in diversi gradi di pericolosità, in
particolare nei livelli di rischio medio-bassi;
ƒ per nrisklev pari a 5 riteniamo che la suddivisione in classi sia adeguata ai
nostri obiettivi.
La determinazione di un valore ottimale per questo parametro è strettamente
dipendente dalle esigenze specifiche di utilizzo dell’algoritmo. Inoltre è possibile
apportare modifiche a questo parametro in qualsiasi momento a patto di adeguare
opportunamente le azioni di allarme associate.
Si noti che nrisklev non può essere aumentato a piacere indipendentemente da
nclust (analizzato nel Paragrafo 7.4.2), in quanto il calcolo del rischio è svolto a partire
dal numero di cluster generati dal modello. In linea generale abbiamo notato che i
migliori risultati si ottengono quando i due parametri hanno valori dello stesso ordine di
grandezza, con nrisklev preferibilmente inferiore a nclust. Valori di nrisklev superiori a
nclust non forniscono buoni risultati in quanto la determinazione del livello di rischio
richiede una discretizzazione superiore a quella con cui è stato creato il modello.
157
Capitolo 7 - Analisi dei risultati
7.5 Esperimenti con Fantasia
In questo paragrafo riportiamo i risultati delle prove svolte con le misurazioni
del battito cardiaco della base di dati Fantasia, descritta nel Paragrafo 6.3.
L’analisi di questi dati con IGUANA ci permette di valutarne il comportamento
nelle seguenti condizioni:
ƒ individuazione di anomalie in pazienti sani;
ƒ tempo di campionamento di 1 minuto;
ƒ adattamento delle soglie di normalità.
I valori dei vari parametri del framework sono stati fissati ai valori indicati nel
Paragrafo 7.3, in particolare abbiamo applicato il modello costruito con i dati di
Fantasia, relativi a pazienti in buono stato di salute.
L’applicazione di IGUANA a persone sane è una situazione opposta a quella
analizzata nel Paragrafo 7.4, in cui i dati provengono dalla base di dati MIMIC costruita
con misurazioni di pazienti in terapia intensiva.
La conoscenza a priori dello stato di salute delle persone monitorate ci permette
di supporre che il tempo di intervento minimo per la rilevazione di emergenze sia
superiore a quello richiesto per situazioni cliniche gravi. Considerando che le misure
sono effettuate da sensori con limitate risorse energetiche, è fondamentale scegliere un
tempo di campionamento equilibrato tra le esigenze contrapposte di pronto intervento e
di basso consumo. Quindi, per le prove con Fantasia abbiamo deciso di impostare il
tempo di campionamento (nsamples) a 1 minuto.
Sempre grazie al buono stato di salute dei pazienti, possiamo verificare
l’adattamento delle soglie di normalità a valori contenuti in un intervallo abbastanza
limitato rispetto ai risultati ottenuti per i pazienti di MIMIC (Paragrafo 7.4.5).
7.5.1 Confronto tra pazienti sani
Nei grafici in Figura 7.47 e in Figura 7.48 riportiamo i risultati della
classificazione di due pazienti della base di dati Fantasia, aventi un andamento diverso
del battito cardiaco.
158
Capitolo 7 - Analisi dei risultati
Figura 7.47 Grafico dei dati di Fantasia con soglie ampie
Siccome i valori misurati sono assolutamente nella norma, non è possibile
segnalare nessun allarme, però possiamo notare la diversa classificazione per i due
pazienti al variare delle soglie di normalità (indicate dalle linee orizzontali verdi nei
grafici).
Il paziente in Figura 7.47 presenta misure in un intervallo relativamente ampio37
di valori (circa da 54 a 62 battiti al minuto); per come calcoliamo le soglie di normalità,
ossia come massimo e minimo della media mobile, queste coprono quasi tutto
l’intervallo in cui variano i valori misurati, quindi tutti i punti sono classificati a rischio
nullo. Si noti che nei primi minuti della registrazione il paziente presenta una
37
L’intervallo è considerato ampio rispetto a quello in Figura 7.48, non in modo assoluto. Infatti
la variazione di soli 8 battiti al minuto è estremamente ristretta ed è dovuta allo stato di riposo dei pazienti
sani controllati. In questo caso le nostre considerazioni sono volte alla valutazione del comportamento di
IGUANA e non all’individuazione di effettive situazioni di rischio, sicuramente assenti con i dati di
Fantasia.
159
Capitolo 7 - Analisi dei risultati
diminuzione progressiva del battito cardiaco che è fisiologica, infatti è correttamente
classificata non a rischio (verde).
Figura 7.48 Grafico dei dati di Fantasia con soglie strette
Il paziente in Figura 7.48 presenta misure in un intervallo decisamente stretto di
valori (mediamente da 50 a 54 battiti al minuto). Le soglie di normalità lasciano fuori
alcuni punti, il cui rischio è calcolato sommando il contributo di dist. Per questo motivo
sono presenti dei punti di colore giallo, arancione e persino rosso.
In questa analisi dobbiamo tenere conto del fatto che stiamo valutando il
comportamento dell’algoritmo con persone sane. Quindi sappiamo che in realtà non
dovremmo lanciare nessun allarme, ma ci interessa esaminare la classificazione dei
punti anomali.
L’osservazione importante è che IGUANA identifica correttamente le anomalie
nella time-series, di cui forniamo la seguente interpretazione: basandosi su un modello
costruito con dati di pazienti sani e sapendo che il paziente da classificare tipicamente
160
Capitolo 7 - Analisi dei risultati
ha un battito cardiaco compreso tra 50 e 54 battiti al minuto, la situazione che porta
rapidamente il valore misurato a meno di 46 battiti è mediamente rischiosa, in quanto
non è frequente nel modello, né normale per il paziente considerato.
7.5.2 Confronto tra pazienti in diverso stato di salute
In questo confronto intendiamo valutare le conseguenze dell’applicazione di un
modello costruito con dati provenienti da pazienti sani a registrazioni relative a pazienti
in pessime condizioni di salute.
Il grafico in Figura 7.49 mostra la classificazione di una registrazione di Fantasia
in cui è presente una vistosa anomalia nei valori misurati. Il classificatore assegna il
massimo livello di rischio in quanto, rispetto ai dati su cui è stato costruito, l’andamento
rilevato è pericoloso.
Dalla consultazione con un esperto medico, sappiamo che variazioni come
quella citata possono avvenire senza rischi anche in pazienti a riposo e in buono stato di
salute. La visione di un filmato (in questo caso l’opera di animazione Fantasia di Walt
Disney), cui è sottoposto il paziente in questione, può causare un coinvolgimento
emotivo che influenza la frequenza del battito cardiaco.
Il fatto che la situazione individuata sia valutata estremamente pericolosa,
quindi, è dovuta ai seguenti fattori:
ƒ costruzione del modello con dati inadeguati;
ƒ impostazione di soglie di normalità troppo strette;
ƒ scelta di pesi della funzione di calcolo del rischio troppo elevati.
In questo caso, il primo elemento è sicuramente quello che ha maggiore
influenza tra le cause del riconoscimento di tale situazione di pericolo.
161
Capitolo 7 - Analisi dei risultati
Figura 7.49 Grafico dei dati di Fantasia con anomalia
In Figura 7.50 riportiamo la classificazione del battito cardiaco di un paziente38
di MIMIC-numerics affetto da insufficienza respiratoria. Per coerenza con la necessità
di mantenere un tempo di campionamento dei segnali fisiologici inferiore o uguale al
tempo di intervento, le misure in questo grafico sono riportate ogni 15 secondi.
38
La registrazione classificata è mimic-resp-f64-53h-403n.
162
Capitolo 7 - Analisi dei risultati
Figura 7.50 Grafico dei dati di MIMIC classificati col modello di Fantasia
Dal confronto con il grafico in Figura 7.49 possiamo osservare quanto segue:
ƒ le situazioni di rischio sono molto più frequenti, a conferma della peggiore
situazione clinica del paziente;
ƒ le soglie di normalità sono più ampie, in quanto sono personalizzate per il
paziente, che presenta variazioni estese dei valori misurati;
ƒ non si attivano allarmi all’interno delle soglie di normalità, a conferma
dell’adattabilità di IGUANA a casi clinici differenti, anche applicando
modelli creati da dati con caratteristiche completamente diverse.
163
Capitolo 7 - Analisi dei risultati
7.6 Prestazioni del classificatore
Per permettere l’applicazione del nostro lavoro a situazioni di sorveglianza di
pazienti con mobilità anche all’esterno della propria abitazione, è indispensabile
prevedere l’esecuzione della parte di classificazione delle situazioni di rischio su
dispositivi mobili dalle risorse limitate.
Esula dai nostri obiettivi implementare una versione di IGUANA funzionante in
ambiente mobile (cellulari, smartphone, palmari), ma riteniamo opportuno stimare le
risorse di calcolo e di memoria necessarie al classificatore per la fattibilità di tale
implementazione.
Le prestazioni di IGUANA per quanto concerne la fase di creazione del modello
sono state valutate nel Paragrafo 7.4.6, in questo paragrafo, invece, ci concentriamo su
quelle della fase di classificazione.
Un’ulteriore risorsa da tenere in considerazione nello studio di applicazioni
mobili è il consumo energetico. Non approfondiamo la valutazione di questo aspetto
perché strettamente dipendente dall’implementazione, dall’ambiente hardware e
software, dalla comunicazione con i sensori e da altre considerazioni marginali rispetto
ai nostri obiettivi.
I metodi con cui abbiamo valutato le risorse di calcolo e di memoria ci
permettono di stimare l’ordine di grandezza cui fare riferimento e non hanno l’obiettivo
di giungere a valori precisi, che sarebbero inutili visto lo stato prototipale
dell’implementazione di IGUANA e la diversità dell’architettura Personal Computer,
su cui abbiamo svolto le prove, rispetto a quella embedded.
7.6.1 Risorse di calcolo
Per stimare le risorse di calcolo richieste dall’esecuzione della fase di
classificazione, abbiamo misurato il tempo impiegato ad elaborare i dati di alcune
registrazioni tratte dalla base di dati MIMIC, descritta nel Paragrafo 6.2.
L’obiettivo di questa valutazione è di indicare la capacità di un dispositivo
mobile di elaborare le misure in tempo reale. Teoricamente il tempo di elaborazione
deve essere minore dell’intervallo che intercorre tra due misure successive, tipicamente
dell’ordine dei secondi, ma ci aspettiamo che sia decisamente inferiore, in quanto il
dispositivo dovrà essere in grado di svolgere anche altri compiti contemporaneamente.
Le misure che abbiamo rilevato, relative al tempo necessario per completare la
classificazione di alcune registrazioni, sono state ripetute più volte e per la stima
definitiva abbiamo considerato il valore medio. I risultati delle 5 prove che abbiamo
svolto e le registrazioni interessate sono indicate nella Tabella 7.6.
164
Capitolo 7 - Analisi dei risultati
registrazioni
prova prova prova prova prova
1
2
3
4
5
media numero tempo
delle
di
unitario
prove misure
(ms)
18,6
51716
0,36
mimic-angina-m67-55h-467n
17
17
19
19
21
mimic-bleed-m70-77h-039n
27
27
28
30
27
27,8
72528
0,38
mimic-brain-m60-42h-280n
17
18
17
18
18
17,6
43900
0,40
mimic-cabg-f80-57h-457n
20
20
22
22
19
20,6
54060
0,38
mimic-cardio-f71-50h-293n
13
13
13
14
13
13,2
47028
0,28
mimic-NA-f66-58h-276n
21
20
22
24
21
21,6
54528
0,40
mimic-NA-m75-51h-474n
12
12
13
14
13
12,8
36092
0,35
mimic-pulmEde-f92-71h-414n
08
08
09
09
08
8,4
23488
0,36
mimic-pulmEde-m70-69h-466n
23
25
25
25
23
24,2
64372
0,38
mimic-renal-f78-62h-471n
22
22
24
23
22
22,6
58748
0,38
mimic-resp-f64-53h-403n
15
15
15
16
15
15,2
39996
0,38
mimic-sepsis-f82-42h-269n
13
13
13
14
12
13,0
40452
0,32
mimic-trauma-f92-51h-482n
12
13
12
13
12
12,4
40312
0,31
mimic-valve-f77-52h-479n
16
16
15
17
16
16,0
49304
0,32
mimic-resp-m90-46h-243n
09
09
09
10
08
9,0
43748
0,21
Tabella 7.6 Tempi (in secondi) richiesti dalla fase di classificazione
Le misure sono state effettuate su un calcolatore di riferimento con le seguenti
caratteristiche hardware e software:
ƒ processore AMD Athlon XP 2000+ @ 1,67 GHz
ƒ memoria RAM 512 Mbyte
ƒ sistema operativo Microsoft Windows 2000
ƒ script del prototipo di IGUANA eseguito in R versione 2.1.1
Abbiamo stimato i tempi necessari alla classificazione di una singola misura
dividendo il tempo totale, impiegato ad elaborare tutti i valori di una registrazione, per il
numero di misure presenti. Questo calcolo non tiene conto di eventuali ottimizzazioni
svolte dall’architettura della CPU superscalare da noi utilizzata che, trovandosi ad
eseguire ciclicamente le stesse istruzioni, può migliorarne le prestazioni; invece nel
microprocessore di un dispositivo portatile tali ottimizzazioni potrebbero non essere
presenti, di conseguenza prevediamo che il valore effettivo sia leggermente maggiore
della nostra stima.
Come illustrato dal grafico in Figura 7.51, il tempo necessario a classificare una
singola misura sul computer di prova è dell’ordine dei decimillesimi di secondo,
compreso tra 0,20 e 0,40 ms. Supponendo di usare lo stesso processore a una frequenza
di 100 MHz (paragonabile a quella delle CPU dei dispositivi mobili), otteniamo un
tempo 16,7 volte superiore, pari a un massimo di 6,8 ms.
165
Capitolo 7 - Analisi dei risultati
Classificazione
0,45
0,40
0,35
Tempo (ms)
0,30
0,25
0,20
0,15
0,10
0,05
0,00
23488 36092 39996 40312 40452 43748 43900 47028 49304 51716 54060 54528 58748 64372 72528
Numero di misure classificate
Figura 7.51 Tempo impiegato per classificare una misura
Sebbene le stime siano indicative del solo ordine di grandezza, dalle prove
effettuate riteniamo che il tempo necessario alla classificazione di ogni singola misura
su un dispositivo mobile sia prossimo alle decine di millisecondi, quindi ampiamente
inferiore ai limiti dovuti al tempo di misurazione (dell’ordine dei secondi).
7.6.2 Risorse di memoria
Per valutare le risorse di memoria richieste dall’esecuzione del classificatore
abbiamo preso in considerazione le informazioni di cui necessita IGUANA per
determinare il livello di rischio di ogni nuovo valore.
Ad ogni istante, per ogni segnale fisiologico controllato, devono essere presenti
in memoria le seguenti variabili:
ƒ il valore misurato attuale;
ƒ il valore misurato precedente (per calcolare slope);
ƒ il valore della media mobile precedente (per calcolare offset);
ƒ le soglie di normalità (per calcolare dist);
ƒ la suddivisione in cluster definita dal modello (3 valori per ogni cluster,
corrispondenti ai tre parametri slope, offset e dist);
ƒ i pesi assegnati alle varie componenti della funzione di calcolo del rischio;
ƒ il livello di rischio assegnato.
166
Capitolo 7 - Analisi dei risultati
In ogni istante di misurazione viene memorizzato il livello di rischio
complessivo, che nella nostra implementazione è calcolato come il massimo tra i livelli
di rischio dei singoli segnali fisiologici. Inoltre sono necessarie alcune variabili di
supporto ai calcoli da svolgere, per esempio i cluster correnti di slope, offset e dist e i
valori temporanei della funzione di calcolo del rischio.
Per alcune variabili è facile indicarne il tipo (ad esempio il livello di rischio è un
valore intero per il quale è più che sufficiente un byte), mentre per altre l’occupazione di
memoria dipende dalla precisione con cui si elaborano i segnali, dalla gestione della
memoria del sistema operativo del dispositivo mobile e dal tipo di variabili utilizzate
per memorizzare i valori misurati.
In Tabella 7.7 riportiamo la stima di memoria occupata per ogni segnale
misurato, senza considerare il contributo delle variabili temporanee poiché
estremamente dipendenti dall’implementazione. Abbiamo supposto di poter allocare
variabili con la granularità del byte.
variabili
valore misurato attuale
valore misurato precedente
valore della media mobile precedente
soglie di normalità
slope
offset
dist
cluster di slope, offset, dist
soglie dei cluster del modello
pesi assegnati
livello di rischio assegnato
stima
1 byte
1 byte
2 byte
1 byte
1 byte
2 byte
1 byte
1 byte
1 byte
1 byte
1 byte
quantità
1
1
1
2
1
1
1
3
3 · nclust
6
1
Tabella 7.7 Occupazione di memoria del classificatore
La nostra valutazione tiene conto del numero di intervalli in cui è opportuno
discretizzare le misure: per esempio accettiamo che il battito cardiaco possa variare tra
20 e 170 battiti al minuto (NAthresholds, Tabella 5.1), e che i sensori possano rilevarlo
con una risoluzione massima di 1 battito, quindi in tutto abbiamo 150 valori misurabili,
che richiedono almeno 8 bit per essere rappresentati.
È sicuramente possibile migliorare l’implementazione del prototipo per adattarla
all’architettura del dispositivo su cui sarà eseguita in modo da ottimizzare il consumo di
memoria, ma già allo stato attuale riteniamo che le necessità del classificatore di
IGUANA siano minime: (18+3·nclust) byte. Supponendo di usare un modello che
calcola 10 cluster, il classificatore richiederebbe 48 byte per ogni segnale per
memorizzare le informazioni necessarie all’applicazione di IGUANA.
167
Capitolo 7 - Analisi dei risultati
7.7 Commenti generali
Rimandiamo al Capitolo 8 le considerazioni sulla qualità dei risultati ottenuti e
sul raggiungimento degli obiettivi che ci eravamo posti. In questo paragrafo
evidenziamo alcuni aspetti comuni a diversi esperimenti illustrati nel presente capitolo.
La prima osservazione riguarda l’influenza dei dati sui risultati. Non avendo a
disposizione le risorse necessarie ad esaminare un campione statisticamente
significativo di pazienti, i risultati riportati possono essere influenzati da casi particolari.
Abbiamo notato che la fase di creazione del modello tende a discriminare in
livelli di rischio diversi le situazioni meno frequenti e più lontane dalla normalità,
rispetto al campione di pazienti prescelto. Se i dati dei pazienti campione sono scelti
accuratamente, si ottiene un modello che differenzia correttamente le situazioni anomale
e raggruppa le situazioni di normalità. Al contrario, se nel campione di pazienti sono
presenti individui eterogenei, IGUANA tende ad assegnare i livelli di rischio a quelli
più lontani dal comportamento medio.
Tuttavia riteniamo che le conclusioni a cui siamo giunti siano indicative del
comportamento dell’algoritmo nei diversi casi, siccome gli esperimenti esplorano un
insieme di situazioni molto ampio.
La seconda osservazione riguarda una situazione particolare che si presenta in
alcuni grafici (es. in Figura 7.12, Figura 7.14 e Figura 7.15): la linea verde che indica la
soglia di normalità oltrepassa la linea rossa della soglia di rischio assoluto. Con dati di
pazienti in condizioni di salute non estremamente gravi, questo caso non dovrebbe mai
verificarsi. Per il nostro caso specifico, invece, questa situazione si è verificata a causa
dei seguenti motivi:
ƒ analizziamo il comportamento di pazienti in terapia intensiva, quindi in
situazioni cliniche molto gravi, con valori distanti da quelli dei pazienti che
ci aspettiamo di valutare con IGUANA;
ƒ calcoliamo le soglie di normalità come valori di minimo e massimo della
media mobile, quindi i dati influenzano i valori scelti, che invece
dovrebbero essere assegnati da un medico in base alla valutazione dello
stato di salute del paziente e in base alle situazioni che si desiderano
rilevare.
168
Capitolo 8
Conclusioni
8.1 Obiettivi raggiunti
In questa tesi abbiamo analizzato alcuni aspetti relativi alle problematiche e alle
soluzioni nell’ambito dell’analisi di dati clinici, provenienti dal monitoraggio continuo
di pazienti anziani.
Abbiamo ideato e sviluppato il prototipo di un framework denominato IGUANA
(Individuation of Global Unsafe ANomalies and activation of Alarms), in grado di
creare un modello dell’andamento fisiologico dei pazienti e di applicarlo ai dati rilevati
dai sensori per classificarli. L’obiettivo finale è di ottenere un livello di rischio per il
paziente monitorato ad ogni istante di tempo. Ad ogni livello di rischio può essere
associato un allarme o un tipo di intervento.
Ci siamo concentrati sull’analisi di situazioni di emergenza, quindi abbiamo
preso in considerazione il rischio istante per istante, e abbiamo analizzato solo flussi di
dati relativi a segnali fisiologici vitali. Tali segnali devono poter essere misurati tramite
sensori indossabili e non invasivi, senza limitare i movimenti dei pazienti ad un
ambiente chiuso, per considerare anche le situazioni di rischio all’esterno
dell’abitazione.
Il nostro approccio prevede la trasformazione di ogni valore misurato in tre
componenti, denominati offset, slope e dist, e la definizione di una funzione di calcolo
del rischio, ottenuta combinandoli in modo appropriato.
Per permettere una maggiore flessibilità, abbiamo previsto l’introduzione di
alcuni parametri, in parte impostabili dal medico, per personalizzare il modello a
seconda del paziente o del tipo di malattia, in parte non fissati a priori, per analizzare i
risultati sperimentali in seguito alla loro variazione. Dall’analisi sperimentale abbiamo
dedotto dei valori consigliabili per alcuni parametri e abbiamo descritto gli effetti
causati dal loro cambiamento, affinché sia possibile individuare facilmente quelli più
adeguati ai casi specifici.
Dalle prove svolte abbiamo valutato la capacità dell’algoritmo di adattarsi a
situazioni diverse a garanzia della possibilità di applicazione del framework per
esigenze differenti. IGUANA è in grado di rilevare rischi dovuti a vari fattori, dalle
169
Capitolo 8 - Conclusioni
anomalie rispetto al comportamento medio previsto dal modello, al semplice
superamento di soglie prestabilite, a variazioni rapide e ampie dei segnali controllati.
Tra gli aspetti decisivi per la corretta valutazione del livello di rischio, vi è la
scelta accurata del campione di pazienti su cui costruire il modello. Purtroppo nel nostro
caso il reperimento di dati adeguati è stato arduo, ma la possibilità di verificare il
comportamento di IGUANA in situazioni cliniche estreme, di eccezionale gravità o di
assoluta normalità, ci permette di confidare nell’ottenimento di prestazioni paragonabili
anche nelle situazioni intermedie più frequenti.
Giudichiamo soddisfacenti i risultati ottenuti, in quanto il framework, così come
è stato ideato e descritto, raggiunge gli obiettivi che ci eravamo posti, e il prototipo da
noi implementato ci ha permesso di valutarne le caratteristiche, anche alla luce delle
necessità di calcolo di un dispositivo mobile. Tuttavia, riteniamo necessaria una
collaborazione ufficiale con enti di riconosciuta autorevolezza medica per una
validazione definitiva, che auspichiamo avvenga in casi clinici reali per analizzare dati
più adeguati di quelli a nostra disposizione.
8.2 Sviluppi futuri
In questo paragrafo descriviamo le idee per i possibili sviluppi futuri e gli
ampliamenti del framework, anche se di secondaria importanza rispetto al nostro
obiettivo di intervenire in situazioni di emergenza.
8.2.1 Studio delle correlazioni
Da consulenze non ufficiali con esperti del settore medico, abbiamo capito che è
sufficiente che uno solo dei segnali superi un certo livello di rischio per fare scattare
l’allarme, proprio per l’importanza vitale del segnale fisiologico controllato e per la
necessità di intervenire tempestivamente. Siccome noi analizziamo solo parametri
fisiologici con queste caratteristiche, non ci siamo posti il problema dello studio delle
correlazioni tra di essi.
Se invece avessimo avuto a disposizione altre misure, come quelle relative a un
accelerometro o a un rilevatore di posizione, avremmo potuto individuare correlazioni
tra questo parametro e, ad esempio, il battito cardiaco. In questo modo avremmo potuto
differenziare le situazioni in cui la frequenza cardiaca aumenta in condizioni di riposo,
da quelle in cui aumenta in seguito ad uno sforzo fisico (queste ultime sono ovviamente
meno rischiose).
Siccome nel modello manteniamo la sincronizzazione temporale tra i parametri,
anziché analizzarli singolarmente, l’aggiunta di un nuovo parametro su cui studiare le
correlazioni con gli altri non richiede particolari modifiche.
170
Capitolo 8 - Conclusioni
8.2.2 Funzione di rischio totale
Abbiamo ipotizzato che tutti i parametri considerati abbiano la stessa importanza
nel calcolo del rischio totale. Quest’ultimo è quindi determinato come il massimo tra i
rischi dei vari parametri.
Se questa ipotesi non fosse valida, cioè un parametro fosse da ritenersi più
importante degli altri, ad esempio a seconda della malattia del paziente, si potrebbe
semplicemente modificare il calcolo del rischio totale per adeguarlo alle nuove
necessità.
8.2.3 Macchina a stati
Ci siamo concentrati sull’analisi di situazioni di emergenza istantanee, cioè
situazioni in cui non è possibile aspettare nuove misure per valutarne il rischio perché la
gravità richiede un intervento immediato.
Se volessimo considerare l’evoluzione su più istanti di tempo, ad esempio per
valutare il rischio dovuto alla permanenza in una situazione anomala, si potrebbe
introdurre una macchina a stati. Questa aggiunta potrebbe provocare un ritardo nel
tempo d’intervento, che dovrà essere limitato con opportuni meccanismi. In base allo
stato corrente e a quelli degli istanti precedenti si individuerebbero rischi diversi.
Questa modifica sarebbe utile per anticipare una futura situazione di allarme, e
quindi riuscire a prevederla.
8.2.4 Frequenza di misurazione
La nostra implementazione prevede che i dati rilevati dai sensori siano misurati
con una frequenza costante, la stessa con cui sono forniti i dati per la creazione del
modello.
Sarebbe utile implementare il classificatore in modo che insieme ai nuovi dati
siano forniti anche i relativi istanti di tempo in cui sono stati misurati, in modo da
gestire valori misurati con frequenze diverse o sensori temporaneamente scollegati.
Attualmente richiediamo al sistema di fornirci in ogni caso una misura, eventualmente
impostata a un valore nullo o non pervenuto, per mantenere la sincronizzazione delle
rilevazioni.
8.2.5 Creazione del modello bilanciata
Abbiamo notato che la fase di creazione del modello tende a discriminare in
livelli di rischio diversi le situazioni meno frequenti e più lontane dalla normalità,
rispetto al campione di pazienti prescelto.
Potrebbe essere necessario modificare la fase di creazione del modello per
attribuire un peso minore ai pazienti più gravi, in modo da diminuire la loro influenza.
171
Indice delle figure
Figura 2.1 Esempi di orologi per la misura del battito cardiaco .......................................5
Figura 2.2 Intervallo tra due punti R.................................................................................5
Figura 2.3 Esempi di bracciali per la misura della pressione arteriosa.............................6
Figura 2.4 Sensore a pinza per la misura della saturazione di ossigeno ...........................6
Figura 2.5 Cerotto per la misura della saturazione di ossigeno ........................................7
Figura 3.1 Il processo di knowledge discovery nelle basi di dati ....................................14
Figura 4.1 Schema generale di funzionamento ...............................................................35
Figura 4.2 Esempio di calcolo di offset, slope e dist.......................................................38
Figura 4.3 Trasfomazione di alcuni punti nelle coordinate slope-offset .........................39
Figura 4.4 Contributo del primo termine nel calcolo del rischio ....................................40
Figura 4.5 Contributi dei primi due termini nel calcolo del rischio................................40
Figura 4.6 Istogramma della distribuzione dei valori ipotizzata.....................................42
Figura 4.7 Istogramma della distribuzione dei valori alternativa ...................................42
Figura 4.8 Classificatori per i tre tipi di modelli.............................................................44
Figura 4.9 Risultato dell’applicazione del primo modello..............................................45
Figura 4.10 Risultato dell’applicazione del secondo modello ........................................46
Figura 4.11 Risultato dell’applicazione del terzo modello .............................................47
Figura 4.12 Rischio totale riportato sui quattro parametri ..............................................48
Figura 5.1 Logo di R .......................................................................................................49
Figura 5.2 Fase di lettura dei dati....................................................................................54
Figura 5.3 Fase di pre-elaborazione dei dati ...................................................................57
Figura 5.4 Calcolo della media mobile ...........................................................................58
Figura 5.5 Media mobile senza considerare il rischio dei punti .....................................58
Figura 5.6 Fase di calcolo della media mobile................................................................59
Figura 5.7 Fase di creazione del primo tipo di modello..................................................61
Figura 5.8 Esempio di dendrogramma ............................................................................62
Figura 5.9 Fase di creazione del secondo tipo di modello ..............................................63
Figura 5.10 Fase di creazione del terzo tipo di modello .................................................64
Figura 5.11 Fase di classificazione usando il primo tipo di classificatore......................67
Figura 5.12 Fase di classificazione usando il secondo tipo di classificatore ..................70
Figura 5.13 Fase di classificazione usando il terzo tipo di classificatore .......................74
Figura 6.1 Schema della lettura e memorizzazione dei dati da file ................................86
Figura 6.2 Dati originali..................................................................................................88
Figura 6.3 Dati dopo la rimozione degli outlier..............................................................89
172
Indice delle figure
Figura 6.4 Dati dopo la rimozione dei valori NA isolati .................................................90
Figura 6.5 Più lunga sottosequenza senza valori nulli (NA)............................................91
Figura 6.6 Fase di ricampionamento dei dati ..................................................................92
Figura 6.7 Dati ricampionati ...........................................................................................93
Figura 7.1 Grafico del rischio usando il modello Iguana3_resp ...................................102
Figura 7.2 Grafico del rischio usando il modello Iguana3_resp_males........................103
Figura 7.3 Grafico del rischio usando il modello Iguana3_resp_females.....................104
Figura 7.4 Grafico del rischio usando il modello Iguana3_mix ...................................105
Figura 7.5 Grafico del rischio usando il modello Iguana3_resp ...................................106
Figura 7.6 Dendrogramma di offset del parametro ABPdias ........................................107
Figura 7.7 Dendrogramma di slope del parametro ABPdias ........................................108
Figura 7.8 Dendrogramma di dist del parametro ABPdias ...........................................108
Figura 7.9 Grafico del rischio usando il modello Iguana3_mix_nclust=5....................110
Figura 7.10 Grafico del rischio usando il modello Iguana3_mix..................................111
Figura 7.11 Grafico del rischio usando il modello Iguana3_mix_nclust=30................112
Figura 7.12 Grafico del rischio usando il modello Iguana3_mix_movwin=2 ..............114
Figura 7.13 Grafico del rischio usando il modello Iguana3_mix_movwin=60 ............115
Figura 7.14 Grafico del rischio usando il modello Iguana3_mix_nsamples=5 ............117
Figura 7.15 Grafico del rischio usando il modello Iguana3_mix_ nsamples=60 .........118
Figura 7.16 Grafico del rischio usando il modello Iguana3_mix..................................120
Figura 7.17 Grafico del rischio usando il modello Iguana3_mix_ Nthresholds ...........121
Figura 7.18 Grafico del rischio usando il modello Iguana3_mix..................................122
Figura 7.19 Grafico del rischio usando il modello Iguana3_mix_ Nthresholds ...........123
Figura 7.20 Grafico del tempo di elaborazione totale del clustering gerarchico ..........126
Figura 7.21 Grafico del tempo di elaborazione totale del clustering k-means..............126
Figura 7.22 Grafico del tempo di elaborazione unitario del clustering gerarchico.......127
Figura 7.23 Grafico del tempo di elaborazione unitario del clustering k-means ..........128
Figura 7.24 Grafico del rischio usando il clustering gerarchico ...................................130
Figura 7.25 Grafico del rischio usando il clustering k-means ......................................131
Figura 7.26 Grafico del rischio usando il clustering gerarchico ...................................132
Figura 7.27 Grafico del rischio usando il clustering k-means ......................................133
Figura 7.28 Grafico dei tempi impiegati dal clustering gerarchico ..............................135
Figura 7.29 Grafico del rischio usando il metodo single ..............................................136
Figura 7.30 Grafico del rischio usando il metodo complete .........................................137
Figura 7.31 Grafico del rischio usando il metodo average ...........................................138
Figura 7.32 Grafico del rischio usando il metodo centroid...........................................139
Figura 7.33 Grafico del rischio usando il metodo ward................................................140
Figura 7.34 Grafico del rischio della prova 1 ...............................................................142
Figura 7.35 Grafico del rischio della prova 2 ...............................................................143
Figura 7.36 Grafico del rischio della prova 3 ...............................................................144
Figura 7.37 Grafico del rischio della prova 4 ...............................................................145
Figura 7.38 Grafico del rischio della prova 5 ...............................................................146
Figura 7.39 Grafico del rischio della prova 6 ...............................................................147
173
Indice delle figure
Figura 7.40 Grafico del rischio della prova 7 ...............................................................149
Figura 7.41 Grafico del rischio della prova 8 ...............................................................150
Figura 7.42 Grafico del rischio della prova 9 ...............................................................151
Figura 7.43 Grafico dei dati classificati con 3 livelli di rischio ....................................153
Figura 7.44 Grafico dei dati classificati con 4 livelli di rischio ....................................154
Figura 7.45 Grafico dei dati classificati con 5 livelli di rischio ....................................155
Figura 7.46 Grafico dei dati classificati con 7 livelli di rischio ....................................156
Figura 7.47 Grafico dei dati di Fantasia con soglie ampie............................................159
Figura 7.48 Grafico dei dati di Fantasia con soglie strette............................................160
Figura 7.49 Grafico dei dati di Fantasia con anomalia .................................................162
Figura 7.50 Grafico dei dati di MIMIC classificati col modello di Fantasia ................163
Figura 7.51 Tempo impiegato per classificare una misura ...........................................166
174
Indice delle tabelle
Tabella 3.1 Tecniche, formalismi e funzionalità di data mining.....................................19
Tabella 5.1 Soglie di outlier ............................................................................................55
Tabella 5.2 Esempio di coordinate dei centri di cluster ..................................................66
Tabella 5.3 Esempio di soglie di cluster per algoritmo gerarchico.................................68
Tabella 5.4 Esempio di soglie di cluster per algoritmo kmeans .....................................69
Tabella 5.5 Soglie assolute..............................................................................................69
Tabella 5.6 Esempio di soglie di cluster di offset ...........................................................72
Tabella 5.7 Esempio di soglie di cluster di slope............................................................72
Tabella 5.8 Esempio di soglie di cluster di dist ..............................................................73
Tabella 7.1 Pesi predefiniti delle componenti del rischio ...............................................96
Tabella 7.2 Soglie di normalità per i segnali fisiologici da letteratura medica...............98
Tabella 7.3 Confronto dei tempi impiegati dal clustering gerarchico e k-means .........125
Tabella 7.4 Confronto dei tempi impiegati dal clustering gerarchico...........................134
Tabella 7.5 Valori dei pesi nelle prove svolte...............................................................141
Tabella 7.6 Tempi (in secondi) richiesti dalla fase di classificazione...........................165
Tabella 7.7 Occupazione di memoria del classificatore................................................167
175
Bibliografia
I siti Internet citati sono stati visitati nel periodo giugno - agosto 2005.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
http://www.diovan.ch/files/Patientenbroschuere_i.pdf
http://www.cuore.iss.it
http://www.guidant.it/Patient/Conditions/brady/glance.aspx
http://www.adieta.it/carello/categoria.asp?categoria=13
http://www.skyaid.org
http://www.zoll.com/docs/9650-0202-11_RevD.pdf
http://www.resmedica.it
http://www.tecnohealth.it
http://www.mobihealth.org/
http://www.buonenotizie.it
http://www.forumpa.it/forumpa2005
http://www.informanziani.it
F. Duchene, C. Garbay, V. Rialle, Mining Heterogeneous Multivariate
Time-Series for Learning Meaningful Patterns: Application to Home Health
Telecare, 2004
F. Duchene, V. Rialle, N. Noury, Home Health Telecare: Proposal of an
Architecture for Patient Monitoring and Critical Situation Detection, 2002
Diane J. Cook, Sajal Das, Karthik Gopalratnam, Abhishek Roy, Health
Monitoring in an Agent-Based Smart Home
Weiqiang Lin, Mehmet A. Orgun, Graham J. Williams, Mining Temporal
Patterns from Health Care Data
Clàudia M. Antunes, Arlindo L. Oliveira , Temporal Data Mining: an
overview
Vincenzo Antonio Manganaro, Scoperta di sequenze di comportamento
Ramakrishnan Srikant, Rakesh Agrawal, Mining Sequential Patterns:
Generalizations and Performance Improvements
Minos N. Garofalakis, Rajeev Rastogi, Kyuseok Shim, SPIRIT: Sequential
Pattern Mining with Regular Expression Constraints
Mohammed J. Zaki, SPADE: An Efficient Algorithm for Mining Frequent
Sequences
Clàudia Antunes, Arlindo L. Oliveira, Generalization of Pattern-growth
Methods for Sequential Pattern Mining with Gap Constraints
176
Bibliografia
23. M. J. Zaki, N. Lesh, M. Ogihara, Planmine: Sequence Mining for Plan
Failures, 1999
24. John F. Roddik, Myra Spilopoulou, A Survey of Temporal Knowledge
Discovery Paradigs and Methods, 2002
25. B. G. Celler, T. Hesketh, W. Earnshaw, E. Ilsar, An Instrumentation System
For The Remote Monitoring Of Changes In Functional Health Status Of The
Elderly At Home
26. Vincent Rialle, Norbert Noury, Thierry Hervé, An Experimental Health
Smart Home and Its Distributed Internet-based Information and
Communication System: First Steps of a Research Project, 2001
27. M. J. Rodriguez, M. T. Arredondo, F. del Pozo, E. J. Gbmez, A. Martinez,
A. Dopico, A Home Telecare Management System
28. H. Garsden, J. Basilakis, B. G. Celler, K. Huynh, N. H. Lovell, A Home
Health Monitoring System Including Intelligent Reporting and Alerts
29. Mitsuhiro Ogawa, Tastuo Togawa, Attempts at Monitoring Health Status in
the Home
30. K. Doughty, R Isak, P. J. King, P. Smith, G. Williams, MIDAS - Miniature
Intelligent Domiciliary Alarm System - A Practical Application Of Telecare
31. Kevin Doughty, Gareth Williams, Towards a Complete Home Monitoring
System, 2001
32. http://www.dis.uniroma1.it/~spqr/tesi/todini/doc/cap1.doc
33. Michele Scardi, Tecniche Di Analisi Dei Dati In Ecologia, 1998, pagg. 912, 20-25 (http://www.bio.unipg.it/ecologia/Download/metodi_di_analisi
_dati.pdf)
34. http://etd.adm.unipi.it/theses/available/etd-11272003-220300/unrestricted
/02_capitolo1.pdf
35. R. Ng, J. Han, Efficient and effective clustering method for spatial data
mining, VLDB’94
36. Jiawei Han, Micheline Kamber, Data Mining: Concepts and Techniques Slides for Textbook Chapter 8
37. Università degli studi di Roma “La Sapienza”, Facoltà di Scienze della
Comunicazione, Cluster Analisys; adattamento a cura di I. Mingo e A.
Mussino: Lezioni di Statistica Sociale, Dipartimento di Statistica Probabilità
e
Statistiche
Applicata,
capitolo
V,
pagg.
133-153
(http://www.comunicazione.uniroma1.it/fonti/cluster.pdf)
38. Eamonn Keogh, Jessica Lin, Clustering of time-series subsequences is
meaningless: implications for previous and future research, 2004
39. M. Ester, H. P. Kriegel, J. Sander, X. Xu, A density-based algorithm for
discovering clusters in large spatial databases, KDD’96
40. R. Agrawal, J. Gehrke, D. Gunopulos, P. Raghavan, Automatic subspace
clustering of high dimensional data for data mining applications,
SIGMOD’98
177
Bibliografia
41. W. Wang, Yang, R. Muntz, STING: A Statistical Information grid Approach
to Spatial Data Mining, VLDB’97
42. R Development Core Team (2005). R: A language and environment for
statistical computing. R Foundation for Statistical Computing, Vienna,
Austria. ISBN 3-900051-07-0, http://www.R-project.org
43. Garetto, La nuova medicina d’urgenza, Catania, Genova, edizioni tecnico
scientifiche SRL, 1994, pag. 835
44. Harrison, Principi di medicina interna, McGraw Hill, 1992, pag. 315, pag.
1349.
45. Tassaux, Clergue, Monitoraggio perioperatorio dell’ossigeno e
dell’anidride carbonica, encycl. med. chir., anestesia-rianimazione, 36-382A-10, 2003
46. Clergue, Barre, Ourahma, Monitoraggio interoperatorio dell’ossigeno e
dell’anidride carbonica, encycl. med. chir., anestesia-rianimazione, 36-385A-10, 1995
47. Stan Salvador, Philip Chan, John Brodie, Learning States and Rules for
Time Series Anomaly Detection, 2003
48. G. Karypis, E. H. Han, V. Kumar, CHAMELEON: hierarchical clustering
using dynamic modeling, 1999
178
Individuazione di situazioni di rischio in dati clinici rilevati da sensori
Relatore:
prof. Elena Baralis
Candidati:
Daniele Apiletti
Giulia Bruno
Un insieme relativamente vasto di persone è affetto da patologie o presenta disturbi di
coscienza tali da non poter formulare richieste di aiuto al di fuori di contesti perimetralmente
definiti. Spesso l’assistenza permanente o il ricovero in ospedale non sono indispensabili, ma
richiesti ugualmente dal paziente per avere un soccorso immediato in caso di necessità (ad esempio
un malore improvviso o un’alterazione pericolosa di valori fisiologici).
Grazie agli ultimi sviluppi tecnologici nell’area delle reti di sensori, è possibile monitorare
continuamente i parametri vitali dei soggetti sotto osservazione, indipendentemente dalle attività da
loro svolte e dai luoghi in cui si trovano. Diversi segnali vitali possono essere rilevati attraverso una
piccola rete di sensori, integrati in oggetti poco invasivi come orologi o bracciali distribuiti sul
corpo umano. In caso di malessere o di alterazione significativa di uno o più segnali vitali, è
possibile identificare una situazione di rischio e richiedere un intervento adeguato.
Recentemente si stanno sviluppando progetti per realizzare sia dispositivi tecnologici adatti alla
raccolta e alla trasmissione dei dati, sia algoritmi per il trattamento dei dati misurati e la loro
interpretazione, allo scopo di individuare situazioni di rischio in tempo reale e inviare
immediatamente in modo automatico richieste di aiuto.
In questa tesi ci siamo prefissati di ideare e realizzare un algoritmo di analisi e interpretazione
dei dati volto alla caratterizzazione e all'individuazione tempestiva di situazioni di emergenza.
L’obiettivo finale è di essere in grado di assegnare un livello di rischio al paziente controllato in
ogni istante di tempo, a partire dai flussi di dati inviati dai sensori, che monitorano diversi segnali
fisiologici.
La soluzione che proponiamo si sviluppa in due fasi: la prima consiste nella creazione di un
modello attraverso l’analisi di una parte dei dati a disposizione, in modo da determinare quali
situazioni sono più frequenti (normali) e quali meno frequenti (più rischiose); la seconda parte
consiste nell’applicazione del modello per classificare i restanti dati.
Entrambe le fasi sono precedute da una pre-elaborazione dei dati: sostituzione dei valori errati
dovuti al malfunzionamento dei sensori con valori nulli, in modo che non influenzino né il modello
creando classi sbagliate, né il classificatore causando falsi allarmi, ed eventuale ricampionamento
dei dati se la frequenza di campionamento dei sensori è troppo elevata. La prima fase è preceduta da
un ulteriore passo di calcolo della più lunga sottosequenza senza valori nulli, per selezionare dati
adeguati alla costruzione del modello. La Figura 1 mostra graficamente quanto spiegato.
dati per il
modello
preelaborazione
dati da
classificare
preelaborazione
sottosequenza
senza NA
creazione
modello
classificazione
dati
classificati
Figura 1 - Schema di funzionamento di IGUANA
Abbiamo denominato il nostro framework IGUANA (Individuation of Global Unsafe
ANomalies and activation of Alarms), intendendo includere in questo termine tutto il processo di
elaborazione dei dati appena descritto.
I
Abbiamo considerato il monitoraggio delle misure di pressione arteriosa diastolica e sistolica,
battito cardiaco e saturazione arteriosa di ossigeno, in quanto sono fondamentali per la rilevazione
di situazioni di emergenza e sono misurabili tramite apparecchiature non invasive.
Per ogni parametro abbiamo determinato il rischio istantaneo valutando i seguenti aspetti:
• considerando che un valore è tanto più rischioso quanto più è raro, e viceversa, tanto
più normale quanto più frequente, abbiamo individuato gli estremi dell’intervallo in
cui ricade la maggior parte dei valori, denominandoli “soglie di normalità”; abbiamo
denominato dist la distanza del valore da tali soglie;
• il rischio dipende dalla distanza dalla media dinamica del paziente calcolata sui
valori più recenti; abbiamo denominato offset la distanza del valore da tale media;
• l’andamento dei valori misurati influisce sul rischio attuale; abbiamo denominato
slope la pendenza della retta che unisce il nuovo valore a quello precedente.
Combinando i contributi dei tre aspetti appena descritti, opportunamente pesati, abbiamo
definito una funzione di calcolo del rischio istantaneo dovuto ad ogni parametro. Combinando
infine i rischi istantanei di ogni parametro, abbiamo definito il rischio totale istantaneo per il
paziente.
Per costruire il modello abbiamo preso in considerazione varie tecniche di data mining, tra cui
la scoperta di regole di associazione, la classificazione e il clustering. Abbiamo scelto quest’ultimo
come il più adatto al nostro scopo, per dividere in classi i valori delle componenti del rischio (offset,
slope e dist). Al termine di questa fase il modello contiene i cluster in cui sono stati divisi tali valori.
Per quanto riguarda la scelta degli algoritmi di clustering, abbiamo preso in considerazione sia gli
algoritmi di partizionamento, sia quelli gerarchici, provando per questi ultimi vari metodi di calcolo
della distanza inter-cluster.
Dopo la creazione del modello, siamo passati alla fase della sua applicazione per classificare
nuovi dati, che possono contenere valori nulli, quindi abbiamo previsto che il classificatore sia in
grado di gestirli. Abbiamo deciso che, se un sensore non rileva la misura di un parametro, tale
parametro non va ad influire sul calcolo del rischio totale istantaneo per il paziente. La
classificazione dei nuovi dati consiste nell’attribuzione di un rischio a ogni valore misurato. Questa
operazione è svolta trasformando il valore nelle tre componenti del rischio (offset, slope e dist) e
assegnandole ai rispettivi cluster individuati dal modello. Questi vengono opportunamente
combinati in una funzione di calcolo del rischio che fornisce il livello di pericolosità istantanea del
relativo segnale fisiologico.
In Figura 2 mostriamo un esempio dei risultati ottenuti applicando IGUANA ai dati relativi alla
pressione arteriosa diastolica (ABPdias, Arterial Blood Pressure - diastolic) di un paziente. Il colore
indica il livello di rischio; in ordine di rischio crescente, dalle situazioni di normalità a quelle più
pericolose, si hanno i punti colorati di verde, giallo, arancione, rosso o viola. Le righe verdi
orizzontali indicano le soglie di normalità.
L’ultimo passo è determinare il rischio totale del paziente ad ogni istante: abbiamo deciso di
calcolarlo come il massimo tra quelli dei singoli segnali. Infatti, siccome abbiamo considerato solo
segnali vitali, è sufficiente che uno solo di essi superi un certo livello di rischio per attivare
l’allarme, proprio per l’importanza vitale del segnale fisiologico controllato e per la necessità di
intervenire tempestivamente.
Per analizzare il comportamento di IGUANA abbiamo sviluppato un prototipo del framework
in R, un linguaggio e un ambiente specifico per l’utilizzo di funzioni statistiche e la visualizzazione
di grafici. L’obiettivo dell’implementazione è di valutare velocemente i risultati ottenuti con il
prototipo. R ci ha fornito sia le funzionalità grafiche necessarie, sia le librerie adatte alla nostra
analisi e non abbiamo considerato come limitazione l’incapacità di gestire grandi basi di dati, in
quanto di secondaria importanza rispetto all’obiettivo principale.
Tra gli aspetti decisivi per la corretta valutazione del livello di rischio, vi è la scelta accurata
del campione di pazienti su cui costruire il modello. Purtroppo nel nostro caso il reperimento di dati
adeguati è stato arduo, ma la possibilità di verificare il comportamento di IGUANA con situazioni
II
cliniche estreme, di eccezionale gravità o di assoluta normalità, ci permette di confidare
nell’ottenimento di prestazioni paragonabili anche nelle situazioni intermedie più frequenti.
Abbiamo scelto 64 registrazioni della base di dati MIMIC1, relativa a pazienti in terapia intensiva
affetti da diverse patologie, e 20 registrazioni dalla base di dati Fantasia2, relativa a persone in
buono stato di salute, di cui è disponibile il solo segnale del battito cardiaco. Entrambe le basi di
dati provengono dall’archivio PhysioBank3 (Harvard-MIT Division of Health Sciences and
Technology) e sono relative a persone di entrambi i sessi con età superiore a 60 anni.
Figura 2 - Valori in mmHg misurati ogni 15 secondi, classificati secondo il livello di rischio
Abbiamo eseguito numerosi esperimenti, creando diversi tipi di modelli, per analizzare il
comportamento di IGUANA in varie situazioni. Per permettere una maggiore flessibilità, abbiamo
previsto l’introduzione di alcuni parametri, in parte impostabili dal medico, per personalizzare il
modello a seconda del paziente o del tipo di malattia, in parte per analizzare i diversi risultati in
seguito alla loro variazione. Dall’analisi sperimentale abbiamo dedotto i valori consigliabili per i
parametri e abbiamo descritto gli effetti causati dal loro cambiamento, affinché sia possibile
individuare facilmente quelli più adeguati al proprio caso.
Le prove svolte hanno confermato la capacità dell’algoritmo di adattarsi a situazioni
eterogenee, a garanzia della possibilità di applicazione del framework per esigenze differenti.
IGUANA è in grado di rilevare rischi dovuti a vari fattori, dalle anomalie rispetto al comportamento
medio previsto dal modello, al semplice superamento di soglie prestabilite, a variazioni rapide e
ampie dei segnali controllati.
Giudichiamo soddisfacenti i risultati ottenuti, in quanto il framework, così come è stato ideato
e descritto, raggiunge gli obiettivi che ci eravamo posti, e il prototipo da noi implementato ci ha
permesso di valutarne le caratteristiche, anche alla luce delle necessità di calcolo di un dispositivo
mobile. Tuttavia riteniamo necessaria una collaborazione ufficiale con enti di riconosciuta
autorevolezza medica per una validazione definitiva, che auspichiamo avvenga in casi clinici reali
per analizzare dati più adeguati di quelli a nostra disposizione.
1
http://www.physionet.org/physiobank/database/fantasia/
http://www.physionet.org/physiobank/database/mimicdb/
3
http://www.physionet.org/resource.shtml
2
III