INSEGNAMENTO DI ANALISI DI DATI BIOLOGICI LM IN BIOINGEGNERIA - A.A.2013/2014 HOMEWORK 3



Documenti analoghi
Introduzione al MATLAB c Parte 2

Analisi di scenario File Nr. 10

La distribuzione Normale. La distribuzione Normale

Studente: SANTORO MC. Matricola : 528

Prof.ssa Paola Vicard

NOME:... MATRICOLA:... Scienza dei Media e della Comunicazione, A.A. 2007/2008 Analisi Matematica 1, Esame scritto del x 1.

Informatica B

Laboratorio di Fondamenti di Automatica Ingegneria Elettrica Sessione 2/3. Danilo Caporale

Interpolazione ed approssimazione di funzioni

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Ottimizazione vincolata

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI

Analisi dei segnali nel dominio della frequenza

Finestre grafiche. >> figure >> figure(n)

Preprocessamento dei Dati

Fasi di creazione di un programma

Fondamenti di Automatica. Modellistica dei sistemi dinamici a tempo discreto

IL FILTRAGGIO DEL SEGNALE

Elaborazione nel dominio della frequenza Soluzioni

Matematica e Statistica

Metodi Stocastici per la Finanza

Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Processi casuali A.A Alberto Perotti, Roberto Garello

Corso Matlab : Sesta lezione (Esercitazione, 25/10/13) Samuela Persia, Ing. PhD.

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Prova di Laboratorio di Programmazione

età sesso luogo-abitazione scuola superiore esperienza insegnamento

Elementi di Psicometria con Laboratorio di SPSS 1

Dimensione di uno Spazio vettoriale

Modelli matematici e realtà:

Controlli Automatici T. Trasformata di Laplace e Funzione di trasferimento. Parte 3 Aggiornamento: Settembre Prof. L.

Guida Compilazione Piani di Studio on-line

Servizi di consulenza specialistica per IGRUE

Interesse, sconto, ratei e risconti

Strutturazione logica dei dati: i file

MONITORAGGIO DEI PROGETTI DI E-GOVERNMENT FASE I. Cruscotto: Manuale d uso Utente Generico

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

Corso integrato di informatica, statistica e analisi dei dati sperimentali Altri esercizi_esercitazione V

Rappresentazione nello spazio degli stati

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

LA FINESTRA DI OPEN OFFICE CALC

SPC e distribuzione normale con Access

[ Analisi della. concentrazione] di Luca Vanzulli. Pag. 1 di 1

1. Distribuzioni campionarie

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Corso di. Dott.ssa Donatella Cocca

Funzioni in C. Violetta Lonati

Esercizi su. Funzioni

MAGNETIC RESONANCE IMAGING

Analisi statistica delle funzioni di produzione

Product Shipping Cost Guida d'installazione ed Utilizzo

Metodi statistici per le ricerche di mercato

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel

FONDAMENTI DI SEGNALI E TRASMISSIONE 6 Laboratorio

11. Analisi statistica degli eventi idrologici estremi

Registratori di Cassa

LABORATORIO-EXCEL N. 2-3 XLSTAT- Pro Versione 7 VARIABILI QUANTITATIVE

Abbiamo costruito il grafico delle sst in funzione del tempo (dal 1880 al 1995).

Introduzione allo Scilab Parte 3: funzioni; vettori.

ESAME DI STATISTICA Nome: Cognome: Matricola:

ALLEGATO 1 Analisi delle serie storiche pluviometriche delle stazioni di Torre del Lago e di Viareggio.

(a cura di Francesca Godioli)

Carichiamo il segnale contenuto nel file ecg_es_ mat

Comandi di Input/Output in Matlab

INTRODUZIONE A MATLAB Matrix Laboratory

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Rapporto dal Questionari Insegnanti

Fogli Elettronici: MS Excel

Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni

ESERCITAZIONE 13 : STATISTICA DESCRITTIVA E ANALISI DI REGRESSIONE

Interesse, sconto, ratei e risconti

Segnali e Sistemi. Dispensa integrativa per l insegnamento di Elementi di Controlli Automatici. Gianni Borghesan e Giovanni Marro

MATLAB-SIMULINK. Grafici 2D e 3D. Ing. Alessandro Pisano. pisano@diee.unica.it

LE FINESTRE E L ISOLAMENTO ACUSTICO

1 Serie di Taylor di una funzione

Il Campionameto dei segnali e la loro rappresentazione. 1 e prende il nome frequenza di

La pista del mio studio Riflettiamo sulla pista. Guida per l insegnante

matematica probabilmente

Prof.ssa Paola Vicard

RICERCA DI UN ELEMENTO

Documentazione esterna al software matematico sviluppato con MatLab

Computazione per l interazione naturale: Modelli dinamici

Politecnico di Torino. Esercitazioni di Protezione idraulica del territorio

risulta (x) = 1 se x < 0.

IOL_guidaoperativa_gestione_allegati-1 0.doc 1 INTRODUZIONE ALL USO DELLA GUIDA SIMBOLI USATI E DESCRIZIONI GESTIONE ALLEGATI...

(liberamente interpretato da SCHEDA ALUNNI. Descrizione dell attività:

MATLAB: Una veloce introduzione (Parte II)

marketing highlights Google Analytics A cura di: dott. Fabio Pinello

FASCI DI RETTE. scrivere la retta in forma esplicita: 2y = 3x + 4 y = 3 2 x 2. scrivere l equazione del fascio di rette:

Come creare il test di Conconi tramite l applicazione Training Center

Esercitazione 1 del corso di Statistica 2 Prof. Domenico Vistocco

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Guida all utilizzo Software PDP Programma dei Pagamenti

Sistema operativo: Gestione della memoria

Il massimo dei risultati, con il minimo sforzo e nel minor tempo possibile! Creative Consulting

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

Grafici tridimensionali

Transcript:

INSEGNAMENTO DI ANALISI DI DATI BIOLOGICI LM IN BIOINGEGNERIA - A.A.2013/2014 HOMEWORK 3 COGNOME: Montanino NOME: Annaclaudia MATRICOLA: 1056715 DATA: 13 gennaio 2014 email: annaclaudia.montanino@studenti.unipd.it allegati: montanino_h3_4.zip ESERCIZIO H3_4: Problema ispirato dall articolo reperibile su http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=846693. Nel file smbg.mat sono contenuti dati di Self Monitoring Blood Glucose (SMBG) di un soggetto diabetico. Le misurazioni SMBG sono state eseguite 3 volte al giorno (equispaziate, sempre alla stessa ora) per un periodo della durata di un mese (non sono presenti missing samples). Analizzando graficamente i dati, il diabetologo che ha in cura questo soggetto diabetico ritiene che possa esistere una ciclicità giornaliera nelle misurazioni, che verosimilmente ruota attorno ad un trend mensile. Possiamo pensare che la misurazione del valore glicemico possa essere strutturata così: y(t) = t(t) + c(t) + v(t) dove t(t) rappresenta il trend mensile, c(t) rappresenta la componente ciclica giornaliera e v(t) è il rumore di misura. L obiettivo di questo homework è quello di implementare uno script per separare le componenti t(t) e c(t) mediante filtraggio alla Kalman, a partire da una serie di campioni rumorosi y(t) contenuti nella variabile ys (file smbg.mat), per cercare di confermare o meno se esistono una ciclicità giornaliera ed un trend mensile. I modelli a priori da usare sono: t(t) descritto da un modello a doppia integrazione di un rumore bianco con varianza λ 2 1 = 0.05. c(t) descritto come un segnale periodico x 3(t) guidato da rumore bianco w(t) con varianza λ 2 2 =16, la cui frequenza f è relativa al numero di campioni SMBG giornalieri. La struttura in termini di variabili di stato è la seguente: { x 3(t + 1) x 4(t + 1) = cos(2πf)x 3(t) + sin(2πf)x 4(t) = sin(2πf)x 3(t) + cos(2πf)x 4(t) + w(t) Va aggiunto che le misurazioni y(t) sono soggette ad errore con CV v = 0.1%. Utilizzare come valori iniziali il vettore di stato x0 e la matrice P 0 contenuti in smbg.mat. Descrivere e commentare i risultati ottenuti. 1 Introduzione Il Filtraggio alla Kalman, in questo esercizio utilizzato per la separazione di componenti di un segnale rumoroso ys, sfrutta possibilità di scrivere modelli stocastici nella forma di modelli di stato: x(t + 1) = F x(t) + w(t) y(t) = Hx(t) + v(t) Dove x è il vettore di stato che contiene anche ciò che si vuole stimare, F è la matrice di transizione di stato, w è il rumore di modello (con matrice di covarianza Q), y è il vettore delle misure, H è la matrice di trasferimento stato-uscita ed infine v è il rumore di misura (con matrice di covarianza R). Nel caso proposto da questo esercizio si vuole decomporre il segnale y(t) in una componente ciclica giornaliera c(t) e un trend mensile t(t) che esprime le variazioni 1

lente, da cui: y(t) = t(t) + c(t) + v(t). Viene inoltre fornito un modello a priori per entrambe le componenti e da questi si deduce la loro formulazione in termini di variabili di stato: t(t + 1) = 2t(t) t(t 1) + w(t) = 2x 1 (t) x 2 (t) w(t) c(t) = x 3 (t) x 3 (t + 1) = cos(2πf)x 3 (t) + sin(2πf)x 4 (t) x 4 (t + 1) = sin(2πf)x 3 (t) + cos(2πf)x 4 (t) + w(t) Da ciò è possibile riscrivere il modello ingresso-uscita sotto forma del seguente modello di stato: x 1 (t + 1) 2 1 0 0 x 1 (t) w 1 x 2 (t + 1) x 3 (t + 1) = 1 0 0 0 x 2 (t) 0 0 cos(2πf) sin(2πf) x 3 (t) + 0 0 x 4 (t + 1) 0 0 sin(2πf) cos(2πf) x 4 (t) w 2 R = cov(v) = x 1 y = [ 1 0 1 0 ] x 2 x 3 + v(t) x 4 λ 2 1 0 0 0 Q = cov(w) = 0 0 0 0 0 0 0 0 0 0 0 λ 2 2 (y(1)cv v ) 2 0... 0 0 (y(2)cv v ) 2... 0............ 0 0... (y(end)cv v ) 2 Una volta scritto il modello in forma di stato è possibile derivare le equazioni del filtro di Kalman che saranno poi implementate nel codice: P (t + 1 t) = F P (t)f T + Q con P (0) = P 0 K(t + 1) = P (t + 1 t)h T [HP (t + 1 t)h T + R(t)] 1 P (t + 1) = [I N K(t + 1)H]P (t + 1 t) ˆx(t + 1 t) = F ˆx(t t) con ˆx(0) = x 0 e(t + 1) = y(t + 1) H ˆx(t + 1 t) ˆx(t + 1 t + 1) = ˆx(t + 1 t) + K(t + 1)e(t + 1) dove P (t + 1 t) è la covarianza dell errore di predizione ad un passo, K(t + 1) è denominato guadagno del filtro, P (t + 1) è la varianza dello stato al passo t+1, ˆx(t + 1 t) è la predizione ad un passo dello stato (imposto w(t) = 0), e(t + 1) è il residuo di predizione ed infine ˆx(t + 1 t + 1) è la stima dello stato al passo t+1 (passo correttivo in cui vengono usate le misure al tempo t + 1 per raffinare la stima). 2

2 Presentazione del codice 2.1 montanino_h3_4.m Lo script montanino_h3_4.m implementa un filtro di Kalman atto alla separazione del segnale y(t) nelle due componenti t(t) e c(t). 1 % Analisi di Dati Biologici - HW3 es4 2 % Annaclaudia Montanino 1056715 3 % montanino_h3_4_main. m 4 5 close all 6 clear all 7 clc 8 10 9 load smbg 11 n= length (ys ); 12 ts =0:8: n *8-8; 13 f =1/3; 14 F =[2-1 0 0 15 1 0 0 0 16 0 0 cos (2* pi*f) sin (2* pi*f) 17 0 0 -sin (2* pi*f) cos (2* pi*f )]; 18 H =[1 0 1 0]; 19 20 Q= diag ([0.05 0 0 16]); 21 R=( ys.^2)*(0.1/)^2; 22 23 xold =X0; 24 pold =P0; 25 x= zeros ( length (X0),n); 26 27 for i =1: n 28 29 xpred =F* xold ; 30 ppred =F* pold *F +Q; 31 K= ppred *H *1./( H* ppred *H +R(i )); 32 33 e=ys(i)-h* xpred ; 34 xnew = xpred +K*e; 35 I= eye ( size (Q )); 36 pnew =(I-K*H)* ppred ; 37 38 pold = pnew ; 39 xold = xnew ; 40 x(:,i)= xnew ; 41 end 42 43 44 figure 45 46 subplot (3,1,1) 47 plot (ts,ys, b ) 48 title ( misurazioni SMBG ) 49 xlabel ( Tempo [h] ) ylabel ( Glicemia [mg/dl] ) 51 axis ([0 720 2]) 52 53 subplot (3,1,2) 3

54 plot (ts,x (1,:)) 55 title ( componente t(t) ) 56 xlabel ( Tempo [h] ) 57 ylabel ( Glicemia [mg/dl] ) 58 axis ([0 720 200]) 59 60 subplot (3,1,3) 61 plot (ts,x (3,:)) 62 title ( componente c(t) ) 63 xlabel ( Tempo [h] ) 64 ylabel ( Glicemia [mg/dl] ) 65 axis ([0 720 - ]) 66 67 figure 68 69 plot (ts,ys, b ) 70 hold on 71 plot (ts,x(1,:), r ) 72 hold off 73 title ( Confronto misure - trend mensile ) 74 xlabel ( Tempo [h] ) 75 ylabel ( Glicemia [mg/dl] ) 76 axis ([0 720 2]) RIGA 11-RIGA 13: Una volta caricati i dati, viene calcolato il numero di campioni a disposizione n, viene definita la griglia dei tempi ts il cui passo corrisponde a 8 ore (essendo indicato nelle specifiche che si ha 3 campioni equispaziati all interno di una giornata e che non sono presenti missing samples ). Infine viene calcolata la frequenza dei campioni (usata nel modello a priori di c(t) il cui periodo equivale ad un giorno) f = 1/numero di campioni giornalieri. RIGA 14-RIGA 21: Viene costruita la matrice di transizione di stato F, la matrice di trasferimento stato-uscita H, la matrice di covarianza del rumore di modello Q ed infine il vettore R che contiene le varianze dell errore di misura espresse come (y(t) cv) 2 (in questo caso l errore di misura non è tempo-invariante e bisognerà tenerne conto). RIGA 23-RIGA 25: I valori xold e pold vengono inizializzati ai valori forniti nel file smbg.mat. Si tiene inoltre traccia dell intero vettore di stato x = [x 1 x 2 x 3 x 4 ] T del quale poi ci interesserà ispezionare la prima e la terza componenti essendo t(t) = x 1 (t) e c(t) = x 3 (t). RIGA 27-RIGA 41: All interno di questo ciclo f or sono implementate le equazioni descritte nell introduzione (RIGA 29-RIGA 36). Si sottolinea che, avendo errore di misura tempo-variante, alla RIGA 31 si è utilizzato il valore R(i) corrispondente al campione ys(i) che si sta utilizzando. Infine vengono aggiornati i valori di pold e xold che verranno utilizzati al passo successivo. 4

3 Risultati e discussione Nelle figure riportate in questo paragrafo sono raffigurati rispettivamente i campioni rumorosi di concentrazione glicemica, il trend mensile e la componente ciclica giornaliera nella prima immagine, mentre nella seconda si è scelto di plottare il trend mensile sovrapposto ai campioni di concentrazione glicemica. 2 misurazioni SMBG 200 1 0 200 300 400 0 600 700 componente t(t) 200 1 0 200 300 400 0 600 700 componente c(t) 0 0 200 300 400 0 600 700 Ciò che è possibile osservare innanzitutto è che i risultati confermano la presenza di una ciclicità giornaliera e di un trend mensile. Il trend mensile presenta un andamento simile alla media temporale delle misurazioni smbg e i valori assunti dalla componente ciclica giornaliera variano nel range [- ]mg/dl. A differenza di ciò che nell introduzione di [1] viene indicato come indice di una soddisfacente terapia, nel nostro caso l andamento del trend mensile è tutt altro che costante e non risulta sempre compreso nella fascia euglicemica [80-140]mg/dl (specialmente nella parte centrale dell asse dei tempi). A tal proposito posso osservare che, ai fini della lettura dei dati da parte di un clinico, il trend mensile riassume efficacemente l informazione contenuta nel segnale misurato: visivamente dove il trend supera la soglia dell iperglicemia, anche ys raggiunge valori fuori soglia. Provando a contare (con semplici istruzioni matlab) i valori sopra la soglia iperglicemica è risultato: 5

length(find(ys>140)=51 e length(find(x(1,:)>140)=52 che sono valori confrontabili almeno in prima istanza, anche se per indagini più accurate bisogna tener conto di episodi iperglicemici non rilevati dalla sola componente t(t) e viceversa. Si osserva infine che le informazioni fornite sui modelli a priori (con le rispettive varianze del rumore di modello) e sui valori iniziali x 0 e P 0 sono stati scelti sapientemente: le stime sono fin da subito coerenti con il segnale di origine ed inoltre, provando a ricostruire il segnale y(t) come somma delle due componenti trovate e del rumore v(t), si ottiene un andamento identico a quello di origine. 2 Confronto misure trend mensile ipo iper 200 1 0 200 300 400 0 600 700 4 Bibliografia [1] R. Bellazzi, P. Magni, and G. De Nicolao Bayesian Analysis of Blood Glucose Time Series from Diabetes Home Monitoring, IEEE Transactions on Biomedical Engineering, vol. 47, NO. 7, July 2000. 6