Workshop Matlab BITS Avanzato

42
WMBA 2008 BITS: Serie Storiche in Matlab II Emmanuele Somma [email protected] Supporto Informatico per l’Area Ricerche Banca d’Italia 21 Gennaio 2008 E. Somma (SIA-BdI) WMBA 2008 21/01/2008 1/43

description

Matlab Bank of Italy Time Series Toolbox Workshop c/o Area Ricerca - Banca d'Italia Villa Huffer 21 Gennaio 2008

Transcript of Workshop Matlab BITS Avanzato

Page 1: Workshop Matlab BITS Avanzato

WMBA 2008BITS: Serie Storiche in Matlab II

Emmanuele [email protected]

Supporto Informatico per l’Area RicercheBanca d’Italia

21 Gennaio 2008

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 1/43

Page 2: Workshop Matlab BITS Avanzato

Piano della presentazione

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 2/43

Page 3: Workshop Matlab BITS Avanzato

Preprocessing

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 3/43

Page 4: Workshop Matlab BITS Avanzato

Lettura dei dati

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 4/43

Page 5: Workshop Matlab BITS Avanzato

Vettore e time-series di datiload count.datc3 = count(:,3) # VETTOREt3 = tsmat(2007,1,4,c3) # TIME SERIESc3NaNCount = sum(isnan(c3))ans =

0t3NanCount = sum(isnan(t3))ans =

0

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 5/43

Page 6: Workshop Matlab BITS Avanzato

plot(c3); plot(t3)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 6/43

Page 7: Workshop Matlab BITS Avanzato

Missing e outliers

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 7/43

Page 8: Workshop Matlab BITS Avanzato

Outliersbin_counts = hist(c3) bin_counts = hist(t3.matdata)

# Massimo elementoN = max(bin_counts);

# Mediamu3 = mean(c3); mu3 = mean(t3);

# Deviazione Stdsigma3 = std(c3); sigma3 = std(c3);

hist(c3); hist(t3.matdata)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 8/43

Page 9: Workshop Matlab BITS Avanzato

hold on; X = repmat(mu3+(1:2)*sigma3,2,1);Y = repmat([0;N],1,2);plot([mu3 mu3],[0 N],’r’,’LineWidth’,2);plot(X,Y,’g’,’LineWidth’,2)legend(’Data’,’Mean’,’Stds’); hold off

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 9/43

Page 10: Workshop Matlab BITS Avanzato

outliers = (c3 - mu3) > 2*sigma3;c3m = c3;c3m(outliers) = NaN;

outliers = (t3 - mu3) > 2*sigma3;t3m = t3;t3m.matdata(outliers.matdata) = NaN;

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 10/43

Page 11: Workshop Matlab BITS Avanzato

bin_counts = hist(t3m.matdata); N = max(bin_counts);hist(t3m.matdata); mu3 = nanmean(t3m); sigma3 = nanstd(t3m)hold on; X = repmat(mu3+(1:2)*sigma3,2,1);Y = repmat([0;N],1,2);plot([mu3 mu3],[0 N],’r’,’LineWidth’,2);plot(X,Y,’g’,’LineWidth’,2)legend(’Data’,’Mean’,’Stds’); hold off

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 11/43

Page 12: Workshop Matlab BITS Avanzato

Aggiustare e filtrare

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 12/43

Page 13: Workshop Matlab BITS Avanzato

Smoothing

plot(t3m,’o-’)hold on

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 13/43

Page 14: Workshop Matlab BITS Avanzato

Smoothing

span = 3; % Ampiezza della finestrawindow = ones(span,1)/span; smoothed_t3m = t3msmoothed_t3m.matdata = convn(t3m.matdata,window,’same’);h = plot(smoothed_t3m,’ro-’);

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 14/43

Page 15: Workshop Matlab BITS Avanzato

Filtraggiosmoothed2_t3m = t3m;smoothed2_t3m.matdata = filter(window,1,t3m.matdata);plot(smoothed2_t3m,’go-’);legend(’Data’,’Smoothed Data’,’Filtered Data’)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 15/43

Page 16: Workshop Matlab BITS Avanzato

Misurazione

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 16/43

Page 17: Workshop Matlab BITS Avanzato

Misurazione dei dati% Posizione % Scalax1 = mean(t) ; dx1 = max(t)-min(t)x2 = median(t) ; dx2 = std(t)x3 = mode(t) ; dx3 = var(t)

% Formafigure ; hist(t.matdata)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 17/43

Page 18: Workshop Matlab BITS Avanzato

Forma dei dati/1

I modelli parametrici danno una rappresentazione analitica della formadella distribuzione

t1 = tsmat(2007,1,4,count(:,1));[bin_counts,bin_locations] = hist(t1.matdata);bin_width = bin_locations(2) - bin_locations(1);hist_area = (bin_width)*(sum(bin_counts));figurehist(t1.matdata)hold onmu1 = mean(t1);exp_pdf = @(t)(1/mu1)*exp(-t/mu1);t = 0:150;y = exp_pdf(t);plot(t,(hist_area)*y,’r’,’LineWidth’,2)legend(’Distribution’,’Exponential Fit’)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 18/43

Page 19: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 19/43

Page 20: Workshop Matlab BITS Avanzato

Rappresentazione

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 20/43

Page 21: Workshop Matlab BITS Avanzato

Grafici 2D

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 21/43

Page 22: Workshop Matlab BITS Avanzato

Forma dei dati/2

t1 = tsmat(2007,1,4,count(:,1)); % Serie 1t2 = tsmat(2007,1,4,count(:,2)); % Serie 2figurescatter(t1.matdata,t2.matdata,’filled’)xlabel(’Intersection 1’)ylabel(’Intersection 2’)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 22/43

Page 23: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 23/43

Page 24: Workshop Matlab BITS Avanzato

Forma dei dati/2

C12 = cov([t1 t2]) % CovarianzaR12 = corrcoef([t1 t2])r12 = R12(1,2) % Coefficiente di correlazioner12sq = r12^2 % Coefficiente di determinazione

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 24/43

Page 25: Workshop Matlab BITS Avanzato

Grafici 3D

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 25/43

Page 26: Workshop Matlab BITS Avanzato

Forma dei dati/2

figurescatter3(t1.matdata,t2.matdata,t3.matdata,’filled’)xlabel(’Intersection 1’)ylabel(’Intersection 2’)zlabel(’Intersection 3’)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 26/43

Page 27: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 27/43

Page 28: Workshop Matlab BITS Avanzato

La forza della relazione lineare tra le variabili e misurata calcolando gliautovalori della matrice di covarianza:

>> vars = eig(cov([t1 t2 t3]))vars =

1.0e+003 *0.04420.11186.8300

>> explained = max(vars)/sum(vars)explained =

0.9777

Gli autovalori sono le varianze lungo le componenti principali dei dati. Lavariabile explained misura la proporzione della variazione spiegata dallaprima componente principale lungo l’asse dei dati.

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 28/43

Page 29: Workshop Matlab BITS Avanzato

Matrice di Grafici Scatter

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 29/43

Page 30: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 30/43

Page 31: Workshop Matlab BITS Avanzato

t = tsmat(2007,1,4,count)figureplotmatrix(t.matdata)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 31/43

Page 32: Workshop Matlab BITS Avanzato

Modellazione

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 32/43

Page 33: Workshop Matlab BITS Avanzato

Regressione Polinomiale

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 33/43

Page 34: Workshop Matlab BITS Avanzato

t3 = tsmat(2007,1,4,count(:,3)); % Serie 3tdata = [1:size(t3.dates,1)]’;p_coeffs = polyfit(tdata,t3.matdata,6);figureplot(t3,’o-’)hold onn = ( max(tdata) / 6 ) / 365;tfit = (1:n:24)’;yfit = tsmat(2007,1,365,polyval(p_coeffs,tfit));plot(yfit,’r-’)legend(’Data’,’Polynomial Fit’,’Location’,’NW’)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 34/43

Page 35: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 35/43

Page 36: Workshop Matlab BITS Avanzato

Regressione Lineare Generalizzata

1 PreprocessingLettura dei datiMissing e outliersAggiustare e filtrare

2 Misurazione

3 RappresentazioneGrafici 2DGrafici 3DMatrice di Grafici Scatter

4 ModellazioneRegressione PolinomialeRegressione Lineare Generalizzata

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 36/43

Page 37: Workshop Matlab BITS Avanzato

y = a + b cos((2!/12)(t! 7))

t3 = tsmat(2007,1,4,count(:,3)); % Serie 3tdata = [1:size(t3.dates,1)]’;X = [ones(size(tdata)) cos((2*pi/12)*(tdata-7))];s_coeffs = X\t3.matdata;figureplot(t3,’o-’)hold onn = ( max(tdata) / 6 ) / 365;tfit = (1:n:24)’;yfit = [ones(size(tfit)) cos((2*pi/12)*(tfit-7))]*s_coeffs;yt = tsmat(2007,1,365,yfit);plot(yt,’r-’)legend(’Data’,’Sinusoidal Fit’,’Location’,’NW’)

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 37/43

Page 38: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 38/43

Page 39: Workshop Matlab BITS Avanzato

>> [s_coeffs,stdx,mse] = lscov(X,c3)s_coeffs =

65.583373.2819

stdx =8.918512.6127

mse =1.9090e+003

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 39/43

Page 40: Workshop Matlab BITS Avanzato

Fs = 1; % Frequenza di campionamenton = length(t3.matdata); % Lunghezza della finestraY = fft(t3.matdata);% DFTf = (0:n-1)*(Fs/n); % Ampiezza della frequenzaP = Y.*conj(Y)/n; % Potenza della DFTfigureplot(f,P)xlabel(’Frequency’)ylabel(’Power’)predicted_f = 1/12predicted_f =

0.0833

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 40/43

Page 41: Workshop Matlab BITS Avanzato

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 41/43

Page 42: Workshop Matlab BITS Avanzato

Grazie dell’attenzione

E. Somma (SIA-BdI) WMBA 2008 21/01/2008 42/43