\section{Indici di validazione}
\label{chap:Validazione}


Una parte molto importante dell'identificazione è la fase di validazione del modello ottenuto in cui si cerca di capire la bontà del modello identificato nel descrivere il processo. Per fare questa analisi delle prestazioni è necessario un insieme di dati diversi da quelli usati per l'identificazione. I dati disponibili vengono quindi suddivisi in due insiemi:
\begin{itemize}
	\item dati per l'identificazione,
	\item dati per la validazione.
\end{itemize}

La validazione consiste nel confrontare l'uscita reale con l'uscita del modello identificato che prende in ingresso i dati reali (il set per la validazione) e di calcolare successivamente diversi indici che danno informazione sulla bontà del modello.\\
Di seguito vengono spiegati i diversi indici significativi alla fine di fare validazione.\\

\subsection{Covarianza e correlazione}
\label{sec:CovarianzaECorrelazione}
La covarianza (campionaria) e la correlazione (campionaria) si possono facilmente calcolare in Matlab $\texttt{cov}(x_1,x_2)$ e $\texttt{corr}(x_1,x_2)$ rispettivamente.\\
La covarianza indica se esiste una dipendenza tra le due variabili. Valori elevati indicano una forte legame tra le due variabili, mentre per un legame debole la covarianza tende a zero. La covarianza dipende però della base scelta per rappresentare il modello (per esempio dipende dalla unità di misura utilizzata) e non è dunque un indice oggettivo per confrontare la bontà di diversi modelli Per migliori chiarimenti vedere \cite{Picci11}. La correlazione è invece un parametro adimensionale compreso tra -1 e 1 che indica la relazione lineare tra due variabili. Valori negativi della correlazione indicano che le due variabili sono inversamente correlate, cioè se una variabile cresce l'altra tende a decrescere. Due variabili indipendenti hanno correlazione nulla mentre non è vero il viceversa perché la correlazione può essere nulla anche se esiste una qualsiasi relazioni non lineari tra le due variabili.\\

\subsection{Test di bianchezza}
\label{sec:TestDiBianchezza}
I due indici appena visti spiegano l'importanza del test di bianchezza. Serve per verificare se l'errore di predizione (residuo) tra i dati reali e l'uscita dal modello identificato è effettivamente un processo bianco. In base alla bianchezza di una realizzazione del processo vero si decide se il modello identificato è una buona descrizione del sistema dinamico reale.\\
Per effettuare il test si bianchezza è utile il commando \texttt{resid} di Matlab che restituisce un grafico con la auto-correlazione dell'errore di predizione e uno con la cross-correlazione tra l'errore di predizione e ogni ingresso reale che viene poi utilizzato per effettuare il test di indipendenza. Inoltre nei grafici viene visualizzato l'intervallo di confidenza al 99\%, che è un intervallo di valori plausibili ricavato dalla specifica distribuzione di probabilitá dei residui. Per avere bianchezza tutte le correlazioni (tranne la prima che in realtá è la varianza del residuo) dovrebbero trovarsi all'interno dell'intervallo di confidenza, o almeno non eccessivamente fuori. Nel caso contrario si ha che i campioni dell'errore di predizione sono correlati, il che si può avere per esempio se l'ordine del modello usato per l'identificazione non è adeguato e quindi il modello non è adeguato per descrivere il sistema dinamico vero.\\
Assumendo che l'errore di predizione $\varepsilon(t)$ sia bianco si ha che la covarianza $r_{\varepsilon}(\tau)=0$ per ogni $\tau\neq0$ e quindi per la covarianza campionaria
$$ \hat{r}_{\varepsilon}(\tau)=\frac{1}{N}\sum_{t=1}^{N-\tau}\varepsilon(t+\tau)\varepsilon(t) $$
si ha per $N\rightarrow\infty$
\begin{align*}
	\hat{r}_{\varepsilon}(\tau) & \rightarrow0 \qquad \forall \  \tau\neq0,\\
	\hat{r}_{\varepsilon}(0) & \rightarrow E[\varepsilon^2(t)].
\end{align*}
Per il test di bianchezza infine viene considerato la quantità normalizzata
$$ x_{\tau} = \frac{\hat{r}_{\varepsilon}(\tau)}{\hat{r}_{\varepsilon}(0)}. $$

\subsection{Test di indipendenza}
\label{sec:TestDiIndipendenza}
Il test di indipendenza è relativo alla cross-correlazione tra l'errore di predizione e gli ingressi reali. Si verifica se i residui sono effettivamente indipendenti dalle osservazioni passate e quindi se è stata estratta tutta l'informazione possibile dai dati. Come accennato prima per concludere che il modello identificato è adeguato si controlla nei grafici della cross-correlazione tra il residuo e gli ingressi reali ottenuto mediante il commando \texttt{resid} che non ci siano picchi significativamente fuori dalla regione di confidenza. Se per esempio si ha un picco al ritardo k-esimo che sta fuori della regione di confidenza questo significa che l'uscita $y(t)$ non ha ancora estratto tutta l'informazione possibile dall'ingresso $u(t-k)$ e un altro modello potrebbe spiegare meglio l'uscita all'istante $t$.\\
Il commando \texttt{resid} assume che il residuo $\varepsilon(t)$ sia indipendente dagli ingressi passati e sia a media nulla e che si ha quindi $r_{\varepsilon u}(\tau)=E\varepsilon(t+\tau)u(t)=0$.\\
Per $\tau$ si considerano sia valori positivi che negativi. Mentre se il modello non è adeguato per descrivere il sistema per valori di $\tau$ positivi si può aspettare che ci siano picchi di cross-correlazione che sono fuori dell'intervallo di confidenza questo non è detto per valori di $\tau$ negativi. Per esempio nel caso in cui $u(t)$ sia un processo bianco questi picchi sono comunque nulli.\\
La correlazione campionaria si calcola come

$$ \hat{r}_{\varepsilon u}(\tau)=\frac{1}{N}\sum_{t=m}^{M}\varepsilon(t+\tau)u(t) $$
con $m=1-\min(0,\tau)$ e $M=N-\max(0,\tau)$. Per il test di indipendenza si considera la quantità normalizzata
$$ x_{\tau} = \frac{\hat{r}_{\varepsilon u}(\tau)}{[\hat{r}_{\varepsilon}(0) \hat{r}_{\varepsilon}(0)]^{1/2}}. $$

\subsection{Mappa zeri-poli}
\label{sec:MappaZeriPoli}
Tracciando la mappa zeri-poli di ogni funzione di trasferimento del modello identificato si può dare una prima indicazione sull'esattezza dell'ordine del modello. Se ci sono delle quasi-cancellazioni si può aspettare che è possibile ridurre l'ordine del modello identificato.

\subsection{Fit}
\label{sec:fit}
Il fit da la percentuale della varianza spiegata ed è calcolato mediante la seguente formula:
$$ fit := 100*\left[1-\frac{||y_h-y||}{||y-E[y]||}\right] $$
dove $y_h$ sono le uscite dal modello identificato, mentre $y$ è l'uscita reale. Dalla formula si vede che più l'uscita del modello è vicina a quella reale, più vicino è il fit al 100\% e piú sarrà quindi adeguato il modello identificato per spiegare il sistema reale. 

\subsection{Errore quadratico medio}
\label{sec:ErroreQuadraticoMedio}
Un'indice che valuta la prestazione del modello identificato che viene spesso usato è l'MSE (mean square error). Esso è definito da
\begin{align*}
	MSE &:= \frac{1}{N}\sum_{i=1}^N (y_i-\hat{y}_{i})^2 \\
			&= Var(\hat{y})+(E[\hat{y}-y])^2
\end{align*}
Questo indice fornisce quindi informazioni sulla bontà dello stimatore in termini di varianza e dispersione della stima. Spesso si calcola anche la radice di questo indice, che viene chiamata con il nome di radice dell'errore di predizione (in inglese root mean square error, RMS) che è quindi proporzionale alla deviazione standard della stima.\\
Il valore RMS per l'errore di predizione a $k$ passi viene così calcolato:
\begin{align*}
	RMS_k &:= \sqrt{ \frac{1}{N}\sum_{i=1}^N (y_i-\hat{y}_{i|i-k})^2 }
\end{align*}


\subsection{Coefficiente di determinazione, COD}
In statistica il coefficiente di determinazione è usato principalmente quando l'obbiettivo dell'identificazione è la predizione delle uscite future. Il COD fornisce una misura sulla bontà della predizione dei dati futuri.

\begin{equation}
COD_k:=1- \frac{RMS_k^2}{\frac{1}{N}\sum_{i=1}^{N}(y_i-\bar{y})^2}
\end{equation}
dove $\bar{y}$ è la media campionaria di $y_i$. In generale dunque può essere visto in relazione alla varianza non spiegata, infatti il secondo termine compara la varianza dell'errore del modello con la varianza totale dei dati. Il COD è una statistica minore o uguale ad 1 che assume il valore massimo solo quando i dati predetti coincidono con quelli reali.

\subsection{Sparsità}
\label{sec:Sparsita}
La sparsità dà la percentuale di funzioni di trasferimento nulle nel modello identificato. Avere una funzione di trasferimento nulla significa che la rispettiva misura (ingresso) non è stata utilizzata alla fine di calcolare l'uscita del modello identificato e quindi che il rispettivo sensore può essere eliminato nel calcolo della rispettiva uscita.










