Appunti per il corso di
Laboratorio di Calcolo 2
anno 2002-03
Paolo Baldi
1
Analisi multivariata
1.1 Statistica Descrittiva
In questo primo capitolo vedremo dei metodi di analisi di insiemi di dati. Vedremo che queste
tecniche si riconducono essenzialmente a delle questioni di algebra e di geometria, che si
acquisiscono tipicamente nei primi due anni di corso. Cominciamo con un insieme di dati
semplice: vengono osservati n individui e per ciascuno di essi viene osservata una quantità
numerica. Il ricercatore si trova quindi di fronte a n numeri x1 , . . . , xn .
Si chiama media del campione la quantità
n
1
1X
x̄ = (x1 + . . . + xn ) =
xi
n
n
(1.1)
i=1
La media di un campione è uno di quelli che si chiamano indici di centralità. In altre parole la
media indica il centro del campione.
Si vede subito che se poniamo yi = axi + b con a, b ∈ R, allora la media ȳ del campione
y1 , . . . , yn è uguale a a x̄ + b. In altre parole la media è invariante per un cambio di unità di
misura: fare un cambio di scala e poi la media è lo stesso che calcolare la media e poi fare il
cambio di scala. Infatti
ȳ =
n
n
n
n
i=1
i=1
i=1
i=1
1 X 1 X
1X
1X
yi =
(axi + b) = a
xi +
b=
n
n
n
n
= a x̄ + b
Si chiama varianza del campione la quantità
n
(1.2)
1X
(xi − x̄)2
n
i=1
2
Capitolo 1. Analisi multivariata
La varianza si indica σ 2 , oppure σx2 per indicare che si tratta della varianza del campione
x = {x1 , . . . , xn }, nel caso si stia lavorando con più di un campione e ci sia pericolo di confusione.
La radice quadrata σ (oppure σx ) della varianza è lo scarto quadratico o deviazione standard.
La varianza è un indice di dispersione: essa misura se i valori del campione siano o no lontani
dal loro baricentro x̄. Valori grandi della varianza indicano che vi sono valori del campione
lontani da x̄. Viceversa se σ 2 = 0 allora tutti gli xi sono necessariamente uguali a x̄, perché ciò
vorrebbe dire che nella somma della formula (1.2) tutti i termini sono nulli.
Se b ∈ R e yi = xi + b, allora σx2 = σy2 . Infatti sappiamo già che ȳ = x̄ + b e dunque σy2 è
uguale a
n
n
n
1X
1X
1X
2
2
(yi − ȳ) =
(xi + b − x̄ − b) =
(xi − x̄)2 = σx2
n
n
n
i=1
i=1
i=1
Del resto, intuitivamente, sommare b a tutti gli elementi del campione significa spostare di b
anche il baricentro x̄, ma ciò non cambia la dispersione del campione rispetto al baricentro. È
anche facile verificare che se yi = a xi allora σy2 = a 2 σx2 . Un’altra espressione per la varianza
si ottiene sviluppando il quadrato nella (1.2):
n
n
n
1 X 2 2x̄ X
1X
2
(xi − x̄) =
xi −
xi + x̄ 2 =
n
n
n
i=1
=
1
n
i=1
n
X
i=1
i=1
xi2 − x̄ 2
Media e varianza danno quindi delle indicazioni utili sui dati: ne indicano il valore centrale e
una misura della dispersione dei valori rispetto al valore centrale. Vediamo ora cosa si può dire
quando su ogni individuo vengono fatte due misurazioni. Nel prossimo paragrafo affronteremo
invece il caso, più interessante in cui, per ogni individuo, vengono invece misurate n quantità
numeriche.
In questo caso quindi i dati si presentano sotto forma di vettori (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn ).
Chiediamoci se vi sia una relazione di tipo lineare tra i due caratteri, ovvero se esistano due
numeri a e b tali che, grosso modo, si abbia yi = axi + b, i = 1, . . . , n. Dobbiamo cioè cercare
la retta ax + b = y che approssima meglio y come funzione di x (e la chiameremo la retta di
regressione). Più precisamente: in generale non esisteranno dei numeri a, b ∈ R tali che si
abbia esattamente yi = axi + b per ogni i = 1, . . . , n. Esisterà però una retta che rende minimi
gli scarti tra i valori yi e axi + b, in un certo senso la retta che meglio delle altre spiega i valori
yi come funzione lineare-affine degli xi .
Cerchiamo dunque due numeri a, b ∈ R in maniera che la quantità
n
X
(yi − axi − b)2
S(a, b) =
i=1
sia minima. Conviene sommare e sottrarre le medie all’interno del quadrato, cioè
S(a, b) =
n
X
i=1
((yi − ȳ) − a(xi − x̄) + (ȳ − b − a x̄))2 .
1.1 Statistica Descrittiva
3
Sviluppando il quadrato si trova
=
n
X
i=1
S(a, b) =
n
X
2
2
(yi − ȳ) + a
(xi − x̄)2 +
+n(ȳ − b − a x̄)2 − 2a
+(ȳ − b − a x̄)
n
X
i=1
i=1
n
X
i=1
(yi − ȳ)(xi − x̄)+
(yi − ȳ) −2a(ȳ − b − a x̄)
|
{z
}
=0
Le due quantità indicate sono nulle perché, ad esempio,
n
X
i=1
(yi − ȳ) =
n
X
i=1
n
X
i=1
|
(xi − x̄) .
{z
=0
}
yi − nȳ = nȳ − nȳ = 0.
Se poniamo
n
(1.3)
σxy
1X
=
(xi − x̄)(yi − ȳ),
n
i=1
allora si può scrivere
1
S(a, b) = σy2 + a 2 σx2 − 2aσxy + (ȳ − b − a x̄)2 .
n
Poiché b compare unicamente nell’ultimo termine, è chiaro che, per ottenere il minimo, deve
essere b = ȳ − a x̄. Basta quindi trovare il valore di a che rende minimo il trinomio
a → a 2 σx2 − 2aσxy + σy2 .
Derivando e uguagliando a 0 si trova 2aσx2 − 2σxy = 0. Dunque,
(1.4)
a=
σxy
,
σx2
b = ȳ −
σxy
x̄.
σx2
La retta y = ax + b si chiama la retta di regressione del carattere y sul carattere x. In realtà
i valori di a e b appena calcolati sono solo dei valori nei quali le derivate parziali di S si
annullano (cioè quello che si chiama un punto critico) e ciò in generale non garantisce che
si tratti di un punto di minimo (potrebbe anche essere di massimo o di sella o altro ancora).
Non è difficile però vedere che se la variabile (a, b) tende all’infinito, allora anche il valore
4
Capitolo 1. Analisi multivariata
di S tende all’infinito. Inoltre sappiamo che una tale funzione, continua e che vale infinito
all’infinito, possiede necessariamente un minimo ed inoltre che tale punto è necessariamente
un punto critico. Poiché il punto (a, b) calcolato in (1.4) è l’unico punto critico di S, se ne
deduce che esso è anche l’unico punto di minimo della funzione S. La quantità σxy si chiama
la covarianza di x e y. Sviluppando i prodotti nella (1.3), si trova l’espressione equivalente
n
σxy
1X
=
xi yi − x̄ ȳ.
n
i=1
σ
Osserviamo che il coefficiente angolare a = xy2 della retta di regressione ha lo stesso segno
σx
della covarianza σxy . Se dunque σxy > 0, ciò indica che y tende a crescere al crescere di x.
Ci si può aspettare qualcosa del genere, ad esempio, se x e y fossero rispettivamente il peso e
l’altezza di individui. Se invece σxy < 0, l’effetto di x su y sarà antagonista: al crescere dei
valori di x i valori di y tenderanno a decrescere.
•
•
•
•
•
•
•
•
•
•
• • •
•
• ••
•
• •
•
••
• •
•
•
•
•
•
•
•
•
••
••
•
•
•
•
•
•
• ••
•• • •
•
•
••
•• •• • • • •
•
• •••• •• • • •• •
•
••
••
••
•
•
•
•
••
•
• •••
•
•
•
•
• • •
•
• •
• •
• •
•
•
•• •
•
•
•
•
•• • • •
•
•
•
• • •••• •
•
•
•
•
• ••
••
•• • •
•• • • •
•
• • • • •
• ••
•
• •• • •• •
•••
••
••
•
• •
• ••
• • •
•• • • •
•
••
•
•
•
•
•
•
•
•
•
•
Figura 1.1 Esempio di grafico di due caratteri con una correlazione positiva, con la relativa retta di
regressione.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• • •••
•
•
••
.....................
••
.............•
•
•• ••
•
....•
••
•
.....•
..........•...•
•
••
• •.......•................•.....•.........
•
•
•
•
.
.
•
.
.
.
.
.
.
.
.
.
•
.
•
• •• ............... •
• •
••
•
•
•••
• •• • •• • • •....•.......•.................•................. • ••••
•
•
• •
•• • •
•
•
• •..................•..•...•....•.....•....... •
••
•
•
•
.
.
.
•
•
.
.
•
•
.
............•
•
•
••
•• •
............•.•........
•
•
• • • •• ••
•
• .............•.•...........
••
• • ••
•
•
• .............•.....•..•... •
•
• • •
...........•..........
•
•• •
•
• • •
•
•
.....................
•
•
•
• ••
••
..........
•
•• •
• •
•
••
•
•
• ••
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Figura 1.2 Qui, invece, la correlazione è negativa.
Si chiama coefficiente di correlazione dei caratteri x e y la quantità
σxy
·
ρx,y =
σx σy
1.2 Analisi in componenti principali
5
Si può dimostrare che si ha sempre −1 ≤ ρx,y ≤ 1. Un valore di ρx,y vicino a 0 indica scarsa
correlazione tra i due caratteri. Viceversa valori di ρx,y vicini a −1 indicheranno una forte
correlazione antagonista e valori vicini a 1, al contrario, una forte correlazione all’unisono.
Il pregio del coefficiente ρx,y , rispetto alla covarianza, è che esso è insensibile ai cambiamenti
di scala: se tutti i valori di xi vengono moltiplicati per uno stesso numero a > 0 ed i valori di yi
per uno stesso numero b > 0, il coefficiente di correlazione non cambia. Infatti σxy risulterebbe
moltiplicato per ab, σx per a e σy per b.
1.2 Analisi in componenti principali
Si può dire che lo scopo della statistica descrittiva è di estrarre dai dati raccolti le informazioni
più rilevanti che essi contengono.
Nella situazione più semplice, in cui i dati consistono nel rilevamento di un singolo carattere
per ogni individuo di un campione, media e varianza forniscono delle informazioni semplici sul
baricentro e sulla dispersione dei valori osservati. In presenza di 2 caratteri un’informazione
supplementare è data dalla covarianza (o dal coefficiente di correlazione), che misura la dipendenza tra i caratteri.
Sono però possibili situazioni più complesse in cui occorre considerare più di 2 caratteri per
individuo. In questo caso infatti è più difficile tenere conto delle dipendenze tra i caratteri e
non è più possibile fare un grafico dei dati come nelle figure del paragrafo precedente.
In questo capitolo svilupperemo dei metodi di analisi di più caratteri. A differenza dei casi
semplici del capitolo precedente, in cui calcoli e grafici si sarebbero potuti fare con un po’
di pazienza anche a mano, per i metodi di questo capitolo sarà inevitabile l’uso di calcolatori
e di software specializzato. Lo studio della teoria dovrà dunque avanzare di pari passo con
l’acquisizione della capacità di utilizzare questi strumenti di calcolo.
In generale supporremo che i dati siano della forma seguente. Vengono osservati n individui, per
ciascuno dei quali sono rilevati p caratteri (o variabili) che supporremo tutti numerici. Siamo
quindi in presenza di p variabili che indicheremo X(1) , . . . , X(p) .
Rappresenteremo i dati nella forma della matrice
X = (xij ) i=1,...,n
j =1,...,p
in cui le righe corrispondono agli individui e le colonne ai caratteri: xij sarà dunque il valore
del carattere j -esimo misurato sull’individuo i-esimo.
I dati si possono anche vedere come una nuvola di n punti in Rp (sono i punti le cui coordinate
sono date dalle righe della matrice X dei dati). Indicheremo con x1 , . . . , xn questi vettori.
Viceversa ognuna delle colonne della matrice X contiene i valori assunti da una delle variabili
X(1) , . . . , X(p) .
Possiamo iniziare l’analisi calcolando per ciascuna delle variabili le medie, che indicheremo con
x̄·1 , . . . , x̄·p , e le varianze e poi le covarianze di ognuna delle variabili con le altre. Chiameremo
baricentro dei dati considerati il vettore x̄ di cui i numeri x̄·1 , . . . , x̄·p sono le coordinate.
Si chiama matrice di covarianza delle variabili X (1) , . . . , X(p) la matrice p × p che ha come
elemento di posto ij la covarianza tra la variabile X (i) e la variabile X(j ) . Si tratta quindi di
6
Capitolo 1. Analisi multivariata
1a var.
↓

1◦ individuo →
x11
2◦ individuo →  x21






...





◦
n individuo →
xn1
...
...
...
...
...
p a var.
↓

x1p
x2p 











xnp
Figura 1.3 Il tipico aspetto di una matrice dei dati: con molte righe (quanti sono gli individui recensiti)
rispetto alle colonne. Ognuna delle righe può essere pensata come un vettore di Rp (p è il numero delle
variabili).
una matrice che ha sulla diagonale le varianze delle singole variabili (la covarianza di X (i) con
se stessa non è altro che la varianza di X (i) ) mentre riporta fuori della diagonale le covarianze
delle variabili tra di loro. Si tratta chiaramente di una matrice simmetrica, poiché la covarianza
di X(i) con X(j ) è la stessa di quella di X(j ) con X(i) .
Numericamente gli elementi della matrice di covarianza, che indicheremo con 0, sono espressi
in termini della matrice X dei dati da
n
n
h=1
h=1
1X
1X
0ij =
(xhi − x̄·i) (xhj − x̄·j ) =
xhi xhj − x̄·i x̄·j
n
n
Analogamente si definisce la matrice di correlazione: sarà la matrice che ha come elemento di
posto ij il coefficiente di correlazione tra la variabile X(i) e la variabile X(j ) . Naturalmente gli
elementi sulla diagonale della matrice di correlazione sono tutti = 1, perché il coefficiente di
correlazione tra una variabile e se stessa vale sempre 1.
L’idea dell’analisi multivariata è di proiettare i punti su un piano ed osservare il grafico dei
punti proiettati. Naturalmente facendo così si perde dell’informazione: punti che appaiono
vicini nella proiezione possono in realtà essere molto distanti tra di loro. Per questo sarà
importante
a) innanzitutto cercare il piano migliore su cui effettuare la proiezione;
b) essere in grado di stimare quanto si è perso facendo la proiezione, in modo da valutare
quanto i punti della proiezione siano una rappresentazione fedele dei punti originali.
Discutiamo ora il punto a), partendo dal caso più semplice della proiezione degli n punti su una
retta per l’origine. Cerchiamo cioè la retta ‘‘migliore’’ su cui proiettare i punti, ricordando che
la proiezione di un punto x su una retta è il punto della retta che si trova più vicino a x.
Osserviamo intanto che una retta per l’origine può essere individuata da un vettore v ∈ Rp di
lunghezza 1: dato un tale vettore l’insieme dei punti di Rp della forma tv, al variare di t ∈ R
descrive una retta, e d’altra parte ogni retta passante per l’origine è di questa forma. In questa
situazione la proiezione di un punto x ∈ Rp sulla retta individuata da v è il punto tv (un punto
della retta, quindi) dove t è pari al prodotto scalare hx, v i.
1.2 Analisi in componenti principali
7
Ricordiamo infatti che il prodotto scalare hx, y i di due vettori di Rp è il numero |x ||y | cos θ ,
dove θ è l’angolo compreso tra i due vettori x e y. Poiché nel nostro caso supponiamo |v | = 1,
dunque hx, v i = |x | cos θ. La Figura 1.4 illustra questo rapporto tra prodotto scalare e proiezione
di un punto su una retta.
•x
..
......
... .....
...
...
.
.
...
.
...
...
...
...
.
.
...
.
.
.
...
.
.
...
.
.
.
...
.
.
.
...
.
.
.
.
...
.
. ...
.
.
.
......... .... ...
.
.
.
......
.
.
.
.
.
.
.
.
..
....
.. ..
.. ..
... .....
........
.
... .......
.
.
.
.
.
.
.
.
..
..
.
.. ..............
...
. .....
...
........
...
.
.
.
.
.
.
.
.
.
.
.......
...
........
...
........
.................
.
.
..........
.......
•
-
•v
θ
0
..
.. ..
.. ..
Figura 1.4 Se |v| = 1, il valore del prodotto scalare dei vettori x e v è dato dalla distanza tra l’origine ed
il punto segnato con una freccia. Quest’ultimo è anche la proiezione di x sulla retta individuata da v. Si
tratta chiaramente del punto della retta che si trova più vicino a x.
Il prodotto scalare di due vettori x e v si esprime facilmente anche in termini delle loro coordinate.
Si può infatti mostrare che vale la formula
hx, y i =
(1.5)
p
X
xi yi
i=1
In particolare il prodotto scalare è lineare, cioè si ha
hx, αy + βzi = α hx, y i + β hx, zi
per ogni α, β ∈ R e x, y, z ∈ Rp .
Tornando agli n punti x1 , . . . , xn in Rp , quale sarà il vettore unitario v tale che la loro proiezione
sulla retta individuata da v sia la più fedele possibile ? Ricordando il significato intuitivo
della nozione di varianza, una proiezione sarà tanto più fedele quanto più grande sarà la
dispersione dei punti ottenuti dalla proiezione sulla retta, ovvero quanto più grande sarà la
varianza dell’insieme di punti hv, x1 i, . . . , hv, xn i, che ora costituiscono un campione di numeri
reali. Osserviamo comunque che, a causa della formula (1.5), possiamo vedere questi punti
come i valori di una nuova variabile (o carattere). Si tratterà del carattere che nell’osservazione
i-esima prende il valore
v1 xi 1 + . . . + vp xip
che è combinazione lineare delle variabili X (1) , . . . , X(p) con i coefficienti v1 , . . . , vp .
Cominciamo col calcolare la media µ(v) di questi valori: poiché il prodotto scalare è lineare
n
n
k=1
k=1
1X 1X
µ(v) =
hv, xk i = v,
xk = hv, x̄ i
n
n
8
Capitolo 1. Analisi multivariata
Dunque la media µ(v) dei punti proiettati non è altro che la proiezione sulla retta individuata da
v del baricentro x̄ dei punti x1 , . . . , xn . Calcoliamone la varianza. Anzi cerchiamo una formula
per trovare la covarianza dei punti proiettati su due direzioni v e w, che indicheremo σ (v, w).
Poiché hxk , v i − hx̄, v i = hxk − x̄, v i, si ha
n
σ 2 (v, w) =
1X
(hxk , v i − hx̄, v i)(hxk , wi − hx̄, w i) =
n
k=1
n
1X
=
hxk − x̄, v ihxk − x̄, w i
n
k=1
Sviluppando il prodotto
hxk − x̄, v ihxk − x̄, w i =
=
p
X
i,j =1
p
X
i=1
(xki − x̄·i )vi
p
X
j =1
(xkj − x̄·j )wj =
(xki − x̄·i )(xkj − x̄·j )vi wj
e riprendendo il calcolo e scambiando le due somme vediamo apparire dei termini legati alla
matrice di covarianza 0;
p
n
1XX
σ (v, w) =
(xki − x̄i )(xkj − x̄j )vi wj
n
2
k=1 i,j =1
p
1
=
vi wj
n
i,j =1
|
X
n
X
k=1
(xki − x̄i )(xkj − x̄j ) =
{z
}
=0ij
p
X
0ij vi wj
i,j =1
Quest’ultima espressione si può scrivere in maniera compatta
p
X
i,j =1
0ij vi wj =
p
X
i=1
vi
p
X
j =1
0ij vj = h0v, w i
| {z }
(0v)i
In conclusione (la matrice 0 è simmetrica)
σ 2 (v, w) = h0v, wi = h0w, v i
Scegliendo v = w si ha dunque che la varianza dei punti proiettati nella direzione v è
σ 2 (v) = h0v, v i
1.2 Analisi in componenti principali
9
Poiché una varianza è sempre ≥ 0, si ottiene dunque che, per ogni vettore v (unitario o no),
h0v, v i ≥ 0 .
Dunque la matrice di covarianza 0 è sempre semidefinita positiva e tutti i suoi autovalori sono
≥ 0. Quindi il problema di trovare il vettore unitario v lungo il quale la nuvola di punti
considerata abbia la massima dispersione equivale a trovare il vettore unitario v per il quale la
quantità h0v, v i sia massima.
È abbastanza facile vedere che il vettore v di modulo 1 per cui la quantità h0v, v i è massima è
il vettore v1 , autovettore relativo all’autovalore più grande λ1 di 0. Proveremo questo fatto in
due modi diversi e che fanno uso di due tipi di ragionamento completamente diversi. 1◦ modo.
Indichiamo con v1 , . . . , vn gli autovettori di 0, che possiamo scegliere di modulo unitario. Essi
costituiscono una base e, se v è un vettore tale che |v | = 1, allora si può scrivere
v=
Poiché supponiamo |v | = 1, deve essere
p
X
αi vi
i=1
Pp
2
i=1 αi
2
= 1. Infatti
p
1 = |v | = hv, v i =
X
αi vi ,
j =1
i=1
p
=
p
X
αj vj =
p
X
i,j =1
αi αj hvi , vj i =
X
αi2
i=1
Infatti i vettori v1 , . . . , vp sono a due a due ortogonali e hvi , vj i = 0 se i 6= j , mentre hvi , vj i =
|vi |2 = 1 se i = j ). D’altra parte poiché 0vi = λi vi
p
h0v, v i =
=
p
X
i,j =1
X
αi 0vi ,
i=1
p
X
j =1
λi αi αj hvi , vj i =
αj vj =
p
X
λi αi2
i=1
Se supponiamo α1 = 1, α2 = . . . = αp = 0, e cioè v = v1 , allora
h0v, v i = λ1
Per ogni altro vettore v di modulo 1 d’altra parte si ha, poiché λ1 è il più grande degli autovalori,
h0v, v i =
p
X
i=1
λi αi2
≤ λ1
p
X
i=1
αi2 = λ1
10
Capitolo 1. Analisi multivariata
In conclusione la quantità h0v, v i è sempre ≤ λ1 ed è = λ1 solo se v = v1 . Dunque v = v1 è il
vettore di modulo 1 per cui la quantità σ 2 (v) = h0v, v i è massima.
In realtà siamo stati un po’ inesatti nel ragionamento appena fatto. Perché ? 2◦ modo. Il
problema considerato non è altro che la determinazione del massimo della funzione F (u) =
h0u, ui sulla sfera di raggio 1. Si tratta quindi di un problema di massimo vincolato, che si può
affrontare col metodo dei moltiplicatori di Lagrange. La sfera si può indicare come {G = 1},
dove G(u) = |u|2 . Poiché sappiamo che la sfera è compatta e F è continua, esiste sicuramente
un punto di massimo di F su {G = 1} ed il metodo dei moltiplicatori di Lagrange assicura che
questo massimo deve essere soluzione di
F 0 (u) + λG0 (u) = 0
(1.6)
Calcoliamo il gradiente F 0 . Scrivendo in coordinate si ha
k
k
X
∂F
∂ X
0ij ui uj =
(0`i ui + 0i` ui ) = (20u)`
=
∂u` ∂u`
i,j =1
i=1
Ovvero, in forma vettoriale,
F 0 (u) = 20u
Se ne deduce che anche G0 (u) = 2u, dunque l’equazione dei moltiplicatori (1.6) diventa
0u + λu = 0
ed ha soluzione se e solo se −λ è un autovalore di 0 ed u è l’autovettore corrispondente. Se ui
è l’autovettore associato a λi , allora
F (ui ) = λi
Il massimo è quindi raggiunto in corrispondenza dell’autovettore associato al più grande degli
autovalori ed il massimo è appunto il più grande degli autovalori.
Abbiamo dunque visto una caratterizzazione del più grande autovalore di una matrice simmetrica 0 come il massimo della forma quadratica u → h0u, ui sulla sfera unitaria. Questa
caratterizzazione (che è valida anche se la matrice non è definita positiva come le matrici di
covarianza) è un risultato d’interesse generale.
Esercizio Sapreste esprimere in termini di autovalori la quantittà
sup hAu, ui
|u|=1
quando la matrice A non è simmetrica ?
Una volta stabilito che la direzione individuata da v1 è quella per cui la proiezione dei punti ha
dispersione massima, si può dimostrare allo stesso modo che v2 è il vettore per cui h0v, v i è
1.2 Analisi in componenti principali
11
massima, tra i vettori che sono ortogonali a v1 , che v3 è la direzione ortogonale sia a v1 che a
v2 per cui h0v, v i è massima e così via.
I vettori v1 , . . . , vp si chiamano anche le direzioni principali. Anzi v1 è la prima direzione
principale, v2 la seconda e così via. In conclusione il piano individuato dalle direzioni v1 e
v2 è quello cercato: la proiezione della nuvola di punti su questo piano è quella nella quale i
punti proiettati hanno la massima dispersione. Questo piano si chiama anche il primo piano
principale; anche gli altri piani individuati da coppie di direzioni principali vi , vj vanno tenuti
in considerazione e le proiezioni relative possono fornire informazioni utili; le proiezioni su
questi (che chiameremo piani principali) possono infatti dare informazioni complementari a
quelle fornite dalla proiezione sul primo piano principale.
Prima di vedere degli esempi concreti poniamoci la questione di valutare quanto i valori proiettati
siano una immagine fedele dei dati: come abbiamo già osservato è possibile che punti in realtà
distanti tra di loro appaiano vicini nella proiezione.
Chiameremo dispersione totale dei dati la quantità
n
1X
|xi − x̄ |2
n
i=1
Osserviamo che, se (vi )i=1,...,k è una base formata da vettori ortogonali e di modulo uguale a
1, allora si ha, per ogni z ∈ Rk ,
2
(1.7)
|z| =
p
X
j =1
hzj , vj i2
Infatti (vi )i=1,...,k costituisce una base, per cui si ha
z=
p
X
α i zi
i=1
e per di più si ha αi = hz, vi i. Dunque
p
2
|z| = hz, zi =
=
p
X
i,j =1
X
i=1
hz, vi ivi ,
p
X
j =1
hz, vj ivj =
hz, vi ihz, vj ihvi , vj i =
p
X
αi2
i=1
da cui segue la (1.7) osservando che i prodotti scalari hvi , vj i sono uguali a 0 per i 6= j e uguali
a 1 per i = j . Torniamo al calcolo della dispersione:
n
n
p
1 XX
1X
|xi − x̄ |2 =
hxi − x̄, vj i2 =
n
n
i=1
i=1 j =1
12
Capitolo 1. Analisi multivariata
=
p
n
X
1X
n
j =1
|
i=1
2
hxi − x̄, vj i =
{z
}
p
X
λj
j =1
=dispersione del carattere vj =λj
Dunque la dispersione totale è sempre uguale alla somma degli autovalori della matrice di
covarianza. Quanto vale la dispersione dei punti proiettati sul piano principale ? Basta osservare
che la loro matrice di covarianza è
λ1 0
h0v1 , v1 i h0v1 , v2 i
0̃ =
=
0 λ2
h0v1 , v2 i h0v2 , v2 i
Per il calcolo appena fatto dunque la dispersione dei punti proiettati sul primo piano principale
è uguale alla traccia di 0̃, e dunque a λ1 + λ2 . Più in generale, la dispersione della proiezione
sul piano principale formato dai caratteri vh e vk è uguale a λh + λk . Definiremo la fedeltà della
proiezione su un piano come il rapporto tra la dispersione dei punti proiettati e la dispersione
totale. Per la proiezione sul primo piano principale la fedeltà vale dunque
λ1 + λ2
λ1 + . . . + λp
Si tratta di un numero sempre compreso tra 0 e 1 (gli autovalori sono tutti ≥ 0 e quindi il
denominatore è sempre più grande del numeratore), e che si usa come indicatore della bontà
della proiezione: tanto più la fedeltà risulta prossima a 1, tanto più i punti proiettati costituiscono
una immagine fedele dei dati originali.
1.3 Analisi discriminante
Supponiamo di essere in presenza di misurazioni multidimensionali, come nel paragrafo precedente, ma provenienti da più popolazioni. Cioè le osservazioni sono suddivise in gruppi corrispondenti a popolazioni diverse (e lo studioso sa a quale popolazione appartenga ognuna delle
osservazioni).
Vi è una differenza tra le misurazioni di individui appartenenti a popolazioni diverse ? È possibile decidere, solo a partire dalle misurazioni, a quale popolazione appartenga un singolo
individuo ? Ovvero è possibile determinare una regola che ad ogni individuo, in funzione delle
sue misurazioni, associ la popolazione a cui esso appartiene ?
Rispondere a queste domande ha un indubbio interesse sia pratico che teorico. Ad esempio se
le misurazioni fossero le osservazioni cliniche su un gruppo di pazienti ed i gruppi fossero due,
composti da coloro che sono affetti da una certa malattia e da quelli sani rispettivamente, si
potrebbe determinare una procedura automatica che a partire dalle misurazioni stabilisca se un
nuovo paziente sia malato o no.
Da un punto di vista teorico, invece, è interessante determinare il carattere (cioè la funzione
delle misurazioni) che meglio permette di discriminare tra i vari gruppi.
Supporremo ancora che i dati siano della forma di matrice
X = (xij ) i=1,...,n
j =1,...,p
1.3 Analisi discriminante
13
dove xij indica la misurazione della variabile j -esima per lo i-esimo individuo; n è ancora il
numero totale di individui e p il numero di variabili.
Supporremo però che vi siano m popolazioni (o gruppi) presenti e che i primi n1 individui
appartengano alla popolazione 1, che quelli con indice compreso tra n1 +1 e n1 +n2 appartengano
alla seconda e così via fino a quelli con indice compreso tra n1 + . . . + nm−1 + 1 e n1 + . . . +
nm−1 + nm , che apparterranno alla m-esima popolazione. Quindi n1 è l’effettivo della prima
popolazione, n2 quello della seconda e così via. Per semplicità indicheremo con Ik l’insieme
degli indici compresi tra nk−1 + 1 e nk (e quindi corrispondenti agli individui della k-esima
popolazione).
Cominceremo col chiederci se non vi sia una direzione u che discrimini il meglio possibile le
diverse popolazioni. Ovvero tale che nella proiezione nella direzione u le varie popolazioni
appaiano il più possibile ben separate tra di loro. Si tratta, come si vede, di un problema non
molto diverso da quello del paragrafo precedente, anche se ancora dobbiamo chiarire come
si possa caratterizzare matematicamente una tale direzione u. Anche qui la soluzione verrà
dall’analisi della matrice di covarianza 0.
Ricordiamo che il baricentro dei dati x̄ è stato definito nel paragrafo precedente come il vettore
le cui coordinate x̄·j sono date da
n
1X
x̄·j =
xij
n
i=1
Possiamo però considerare anche i baricentri delle singole popolazioni, cioè i vettori ȳ1 , . . . , ȳm
le cui coordinate sono
ȳ1j =
1 X
1 X
1 X
xij
xij , ȳ2j =
xij , . . . , ȳmj =
n1
n2
nm
i∈I1
i∈I2
i∈Im
La matrice di covarianza 0 si può ora scrivere
n
0hk
(1.8)
1X
(xih − x̄·h )(xik − x̄·k ) =
=
n
1
=
n
i=1
m hX
X
j =1 i∈Ij
i
(xih − x̄·h )(xik − x̄·k )
dove abbiamo semplicemente spezzato la somma tra le varie popolazioni. Studiamo più da
vicino le somme all’interno delle parentesi quadre. Sommando e sottraendo la media della
popolazione j -esima e sviluppando abbiamo
X
i∈Ij
(xih − x̄·h )(xik − x̄·k ) =
X
=
(xih − ȳj h + ȳj h − x̄·h )(xik − ȳj k + ȳj k − x̄·k ) =
i∈Ij
14
Capitolo 1. Analisi multivariata
=
X
X
(xih − ȳj h )(xik − ȳj k ) +
(ȳj h − x̄·h )(ȳj k − x̄·k )+
+
X
i∈Ij
i∈Ij
i∈Ij
X
(ȳj h − x̄·h )(xik − ȳj k ) +
(xih − ȳj h )(ȳj k − x̄·k ) =
i∈Ij
Le ultime due somme nella relazione precedente sono nulle. Infatti, poiché il termine ȳj h − x̄·h
non dipende da i,
X
X
(ȳj h − x̄·h )(xik − ȳj k ) = (ȳj h − x̄·h )
(xik − ȳj k ) =
i∈Ij
i∈Ij
hX
i
xik − nj ȳj k = 0
= (ȳj h − x̄·h )
i∈Ij
(la quantità tra parentesi quadre è nulla, ricordando la definizione dei baricentri ȳj k ). Sostituendo
nella (1.8) abbiamo
0hk
m
i
1 XhX
(xih − x̄·h )(xik − x̄·k ) =
=
n
j =1 i∈Ij
=
m
i
1 XhX
(xih − ȳj h )(xik − ȳj k ) +
n
j =1 i∈Ij
{z
}
|
=Dhk
m
i
1 X hX
+
(ȳj h − x̄·h )(ȳj k − x̄·k )
n
j =1 i∈Ij
{z
}
|
=Thk
Uno sguardo alle somme che definiscono la matrice D mostra che quest’ultima non è altro che
la somma delle covarianze Dentro le singole popolazioni, mentre T descrive l covarianze Tra
le singole popolazioni rispetto al baricentro generale x̄.
Più precisamente D è la matrice di covarianza della nuvola di punti che si ottiene sottraendo ad
ognuno dei gruppi il suo baricentro, mentre T è la matrice di covarianza della nuvola di punti
che si ottiene sostituendo ad ogni osservazione il baricentro della popolazione alla quale essa
appartiene.
La decomposizione
(1.9)
0 =D+T
che abbiamo appena ottenuto si chiama formula di Huygens.
Se ora u è una direzione, abbiamo visto nel paragrafo precedente che la dispersione lungo la
direzione u è data da
h0u, ui = hDu, ui + hT u, ui
1.3 Analisi discriminante
15
La separazione delle popolazioni lungo la direzione u sarà dunque tanto più grande quanto più è
piccola la dispersione interna delle popolazioni hDu, ui e grande la dispersione esterna hT u, ui.
Tenendo conto che comunque deve essere
hDu, ui hT u, ui
=1
+
h0u, ui
h0u, ui
la direzione lungo la quale la separazione tra le popolazioni è la più grande sarà quella per cui
la quantità
hDu, ui
h0u, ui
è minima.
Mostriamo che un tale vettore u è l’autovettore relativo al più piccolo autovalore della matrice
0 −1 D.
La funzione F (u) = hDu,ui
h0u,ui è omogenea di grado 0, cioè tale che F (αu) = F (u) per ogni
α > 0. Dunque il problema di determinarne il minimo è equivalente a quello del minimo di
v → hDv, v i con il vincolo h0v, v i = 1; dopo di che basterà scegliere
u=
v
|v |
per avere un vettore di lunghezza 1.
Abbiamo già visto come si usano i moltiplicatori di Lagrange per questo tipo di problemi.
Poiché sappiamo già che i gradienti delle funzioni G(v) = h0v, v i e F (v) = hDv, v i sono uguali
rispettivamente a G0 (v) = 20v e F 0 (v) = 2Dv rispettivamente, l’equazione dei moltiplicatori
di Lagrange diviene
Dv + λ0v = 0
ovvero
0 −1 Dv = −λv
Dunque v deve essere autovettore della matrice 0 −1 D. Inoltre, poiché si ha
hDv, v i = λh0v, v i = λ
il vettore v per cui il minimo di hDv, v i è raggiunto tra quelli per cui h0v, v i = 1 è necessariamente l’autovettore relativo al più piccolo autovalore della matrice 0 −1 D.
Per completare la nostra analisi occorre studiare gli autovalori di 0 −1 D, che non è in generale
una matrice simmetrica, anche se sia 0 −1 che D lo sono. Il prodotto di due matrici simmetriche
non è una matrice simmetrica, a meno che le due matrici commutino.
L’analisi spettrale di 0 −1 D si può però ricondurre a quella di una matrice simmetrica. Sappiamo
infatti che esiste una matrice, che indicheremo con D 1/2 , che è simmetrica e tale che
D 1/2 D 1/2 = D
16
Capitolo 1. Analisi multivariata
nel senso del prodotto di matrici. Moltiplicando a sinistra ambo i membri nella relazione
0 −1 Dv = −λv
per la matrice D 1/2 otteniamo
D 1/2 0 −1 Dv = −λD 1/2 v
ovvero
(D 1/2 0 −1 D 1/2 )D 1/2 v = λD 1/2 v
In conclusione se v è autovettore per l’autovalore −λ della matrice 0 −1 D allora D 1/2 v è autovettore della matrice simmetrica D 1/2 0 −1 D 1/2 rispetto allo stesso autovalore e viceversa
(veramente questo ragionamento è incompleto: perché ?). Inoltre poiché
hD 1/2 0 −1 D 1/2 v, v i = h0 −1 D 1/2 v, D 1/2 v i ≥ 0
gli autovalori sono tutti ≥ 0.
Abbiamo dunque mostrato che la matrice 0 −1 D ha tutti i suoi autovalori reali e positivi. Altre
direzioni discriminanti si ottengono considerando gli autovettori associati agli autovalori via
via più grandi di 0 −1 D . Si tratta di direzioni lungo le quali la discriminazione tra le varie
popolazioni diminuisce man mano che si considerano autovalori più grandi, ma che possono
sempre dare informazioni utili.
L’analisi discriminante quindi procede come l’ACP: si calcolano i due autovettori, w1 e w2 ,
associati ai due più piccoli autovalori di 0 −1 D, e si proiettano i dati sul piano generato da w1 e
w2 . Sarà ragionevole all’inizio centrare e ridurre le variabili. Ora però c’è una complicazione
supplementare: a differenza di quanto accadeva per l’ACP, w1 e w2 non sono ortogonali. Come
fare allora per calcolare la proiezione ortogonale ?
Basterà cercare due vettori ortogonali che individuino lo stesso piano. Ad esempio v1 più un
altro vettore w, ortogonale a v1 e complanare a v1 e v2 . La scelta naturale è w = v2 − hv1 , v2 iv1 .
Essendo una combinazione lineare di v1 e v2 , w si trova nello stesso piano di v1 e v2 ed inoltre
hv1 , w i = hv1 , v2 i − hv1 , v2 i hv1 , v1 i = 0
| {z }
=1
Dunque w e v1 sono ortogonali. Il piano discriminante è quindi individuato da questi due
vettori, che sono per di più di modulo 1 se si sostituisce w con w/|w |.
2
Integrazione numerica
Scilab prevede delle routine che effettuano il calcolo numerico di un integrale. Ad esempio
-->deff("y=f(x)","y=1/x");intg(1,2,f)
produrrà un valore approssimato (molto bene. . . ) dell’integrale tra 0 e 1 di x1 (cioè log 2). Quali
sono i metodi numerici che i programmi come Scilab usano per calcolare gli integrali ?
2.1 Le somme di Riemann
Il primo metodo che viene in mente sono chiaramente. Nei corsi di Analisi Matematica si dimostra che, se una funzione f è continua, allora le somme di Riemann convergono all’integrale.
Più precisamente, se f : [a, b] → R è una funzione continua e suddividiamo l’intervallo [a, b]
in n intervallini di ampiezza n1 (b − a), allora una somma di Riemann associata a questa suddivisione è la quantità
n
X
1
Sn (f ) = (b − a)
f (ξk )
n
k=1
dove ξi è un punto qualunque nello k-esimo intervallino Ik = [a + ni (b − a), a + i+n 1 (b − a),
i = 0, . . . n − 1. Qual è l’errore che si commette se si approssima l’integrale con una somma di
Riemann ?
Vediamo di stimare, per cominciare, l’errore nel primo intervallino. Per semplicità supporremo
a = 0 e indicheremo h = n1 (b − a) l’ampiezza di questi intervallini. Usando il teorema di
Lagrange, lo scarto tra l’integrale su [0, h] ed il valore hf (ξ ) è
Z
0
h
Z h
f (x) dx − hf (ξ ) = f (x) − f (ξ ) dx =
0
Z h
0
=
f (cx )(x − ξ ) dx 0
18
Capitolo 2. Integrazione numerica
Ora, se poniamo
M1 = sup |f 0 (x)| ,
a≤t≤b
si ha
Z
Z h
f (cx )(x − ξ ) dx ≤ M1
|x − ξ | dx =
0
0
Z h
Z ξ
(x − ξ ) dx +
(ξ − x)| dx =
= M1
h
0
ξ
0
= M1
1
ξ 2 + (h − ξ )2
2
2
1
Si vede facilmente che, al variare di ξ ∈ [0, h], la quantità ξ 2 + (h − ξ )2 può valere al massimo
h2 , per cui abbiamo trovato che
Z
h
0
Ora, ricordando che h = n1 (b − a),
1
f (x) dx − hf (ξ ) ≤ M1 h2
2
n
X
1
f (x) dx − (b − a)
f (ξk ) ≤
n
a
k=1
Z
n
X
1
|f (x) − f (ξk )| dx ≤ M1 h2 · n =
≤
2
Ik
Z
b
k=1
=
1
M1 (b − a)2
2n
Quindi l’errore tende a 0 come n1 (n = numero di intervallini). Questa stima vale qualunque sia
il punto ξ scelto all’interno di ogni intervallino. Osserviamo però che se la funzione è crescente,
scegliendo come ξ l’estremo sinistro si avrà comunque una minorazione, mentre con l’estremo
destro si avrà una maggiorazione.
Abbiamo visto che l’errore tende a 0 come n1 . Non è un gran che. Si può fare di meglio ?
In effetti se si sceglie come ξ il punto di mezzo di ogni intervallino, succede qualcosa. Se ξ =
e supponiamo f due volte derivabile,
Z
h
f (x) dx
0
− hf ( h2 )
Z h
=
(f (x) − f ( h2 )) dx =
0
Z h
0 h
h
h 2
1 00
=
(f ( 2 )(x − 2 ) + 2 f (cx )(x − 2 ) ) dx 0
h
2
2.2 Polinomi d’interpolazione
h
2
dove abbiamo fatto uno sviluppo di f attorno a
Z
19
fino al second’ordine. Ora
h
f 0 ( h2 )(x − h2 ) dx = 0
0
per cui, scrivendo M2 = supa≤t≤b |f 00 (x)|,
Z
h
f (x) dx
0
− hf ( h2 )
1
≤ M2
2
Z
h
Z
=
0
h
1 00
2 f (cx )(x
(x − h2 )2 dx =
0
Quindi in ogni intervallino l’errore è maggiorato da
Z
b
a
f (x) dx −
≤
≤
n Z
X
k=1
Ik
1
24
−
h 2
2 ) dx ≤
1
M 2 h3
24
M 2 h3 e l’errore globale invece
n
X
1
(b − a)
f (ξk ) ≤
n
k=1
|f (x) − f (ξk )| dx ≤
1
1
M2 h3 · n =
M2 (b − a)3
2
24
24n
che è un risultato molto migliore.
Si potrebbe anche pensare di migliorare l’approssimazione approssimando la funzione f con
una funzione lineare a tratti. Ora la superficie corrispondente ad ogni intervallino [xi−1 , xi ]è un
trapezio, le cui basi sono alte f (xi−1 ) e f (xi rispettivamente. Dunque ognuno di questi trapezi
ha area n1 (f (xi−1 ) + f (xi )) e l’approssimazione dell’integrale è
n−1
n
X
1X
1 1
1
(f (xi−1 ) + f (xi )) =
f (xi ) + f (b)
f (a) +
I∼
n
n 2
2
i=1
i=1
2.2 Polinomi d’interpolazione
A pensarci bene le somme di Riemann si possono vedere come una approssimazione della
funzione integranda f mediante una funzione costante a tratti, facile da integrare. Ma ci sono
anche altre funzioni facili da integrare: i polinomi. L’idea quindi è: approssimiamo f con un
polinomio e approssimiamo l’integrale di f su ogni intervallino con l’integrale del polinomio
approssimante. Il metodo dei trapezi rientra in questo tipo di metodi, quando il polinomio
approssimante è di grado 1.
Siano f una funzione e x0 , x1 , . . . , xn numeri reali. Si chiama polinomio interpolante di f di
ordine n (associato a x0 , x1 , . . . , xn ) un polinomio P di grado n che coincida con f nei punti
x0 , x1 , . . . , xn . Due questioni
20
Capitolo 2. Integrazione numerica
a) Esiste sempre ?
b) È unico ?
L’unicità è immediata, dato che se P e Q fossero polinomi interpolanti di f di ordine n, allora
il polinomio P − Q si annullerebbe nei punti x0 , . . . , xn . Ma un polinomio di ordine n non si
può annullare in n + 1 punti distinti senza essere identicamente nullo. Quindi necessariamente
P = Q.
Anche l’esistenza è facile da stabilire, dato che è facile costruire esplicitamente il polinomio
interpolante. Per ogni i = 0, . . . , n, il polinomio
(2.1)
Qi (x) =
Y x − xj
xi − xj
j 6=i
è di grado n e si annulla nei punti xj , j 6= i, mentre è immediato che Qi (xi ) = 1. Dunque il
polinomio
n
n Y
X
X
x − xj
Qi (x)f (xi ) =
f (xi )
P (x) =
xi − xj
i=0
i=0 j 6=i
è di grado n ed è tale che P (xi ) = f (xi ).
Sia ora f una funzione definita su un intervallo [0, h]. Il suo polinomio d’interpolazione di
ordine 2 associato ai punti 0, h2 , h è
P (x) = Q0 (x)f (0) + Q1 (x)f ( h2 ) + Q2 (x)f (h)
dove Q0 , Q1 , Q2 sono i polinomi (2.1) associati ai punti x0 = 0, x1 =
esplicitamente
2
Q0 (x) = 2 (x − h2 )(x − h)
h
4
Q1 (x) = − 2 x(x − h)
h
2
Q0 (x) = 2 x(x − h2 )
h
1
0
h
2,
x2 = h. Più
............................................................
............
.............
..............
..............
.
.
.
.
.
.
.
.
....... ..
....
...........
..................
...... ..
.
..........
................
..... ..
.
.
.
..........
..............
.....
.
.
.
.
...........
..............
......
.
.
..... ...
.
.
.........
..............
..... .
.
.
.
.........
..............
.......
.
......
........
.
.
.
.
.........
.......
.....
..
.
.
.
.
.
.
..........
...........
.......
.
.
.
.
.....
....
.
0
π
Figura 2.2 Grafico della funzione seno con il suo polinomio approssimante di ordine 2 (trattini).
2.2 Polinomi d’interpolazione
1
.
....................
..
.....
.....
.
....
.....
..
.....
.
....
.
.
.
.
.
....
.
....
....
...
..
...
.
...
...
...
...
.
.
...
.
.
.
.
...
.
..
..
...
...
.
...
.
..
.
...
..
...
.
.
...
.
.
...
..
.
.
... ...
...
. ...
... .
... ...
. ....
....
..
.
..
.. ..
.. ....
.. ..
.
.
.
.
.
. ....
.
.
...
...
..
.
...
...
.
.
...
.
.
...
...
..
.
.
.
.
...
.
.
.
.
.
...
.
.
.
.
...
.
.
.
.
.
.
.
...
.
.
.
.
...
.
.
.
.
...
.
.
.
...
...
..
.
.
...
.
.
.
.
.
.
.
...
.
.
.
.
...
.
..
.
.
.
...
.
.
.
.
.
.
...
.
.
.
.
.
. ...
..
......
.
..
..
.... .
.
.
.
.
......
.
.
.
.
.
.
. .
.
....
.......
. . . . . . .
....... ....... .......
0
1
Figura 2.1 Grafico dei tre polinomi Q0 (puntini), Q1 e Q2 (trattini) per h = 1
L’integrale
Z
h
f (x) dx
0
verrebbe quindi approssimato con
Z h
Z h
Z h
h
f (0) Q0 (x) dx + f ( 2 ) Q1 (x) dx + f (h) Q2 (x) dx
0
0
0
Con pazienza calcoliamo
Z
h
Z
1
0
= 2h
0
Z
2
Q0 (x) dx = 2
h
(x −
1
2 )(x
=
h
(x − h2 )(x − h) dx =
0
− 1) dx = 2h
2h( 31
3
4
−
+
Z
1
2)
1
0
=
(x 2 − 23 x + 21 dx =
h
6
mentre
Z
Z h
4
Q1 (x) dx = − 2
x(x − h) dx =
h 0
0
Z 1
Z 1
x 2 − x dx =
= −4h
x(x − 1) dx = −4h
h
0
0
=
e
Z
−4h( 13
h
0
Q2 (x) dx =
−
Z
1
2)
=
2
3
h
h
0
Q0 (x) dx =
h
.
6
21
22
Capitolo 2. Integrazione numerica
Dunque l’approssimazione è
Z h
f (x) dx ' h
0
1
6
f (0) + 23 f ( h2 ) + 16 f (h)
Questa è l’approssimazione di Simpson.
Supponiamo ora di volere approssimare l’integrale di f su un intervallo [a, b]. Suddividiamo
questo intervallo in n sottointervalli di uguale ampiezza e indichiamo con a = x0 < x1 < . . . <
xn = b le estremità di questi sottointervalli. Indichiamo poi con y1 , . . . yn i punti di mezzo di
questi sottointervalli. Dunque yi = 21 (xi−1 + xi ). L’approssimazione di Simpson dell’integrale
di f sull’intervallino [xk−1 , xk ] è
Z xk
1
f (x) dx ' (b − a) 61 f (xk−1 ) + 23 f (yk ) + 16 f (xk )
n
xk−1
mentre, sommando i contributi dei singoli intervallini,
Z b
f (x) dx '
a
n−1
n
1
1
1X
2X
f (xk ) +
f (yk )
' (b − a) (f (a) + f (b)) +
n
6
3
3
k=1
k=1
Insomma è come se si mettesse un peso pari a 61 sugli estremi dell’intervallo, un peso pari a 13
sugli altri estremi degli intervallini ed infine un peso pari a 23 sui punti di mezzo degli intervallini.
Quanto è buona l’approssimazione di Simpson ?
Teorema. 2.1 L’errore dell’approssimazione di Simpson è maggiorato da
1
M4 (b − a)5
4
1780 n
dove M4 = supx∈[a,b] |f (4) (x)|.
Dunque l’approssimazione di Simpson è molto buona se f è almeno 4 volte derivabile e con
una derivata quarta non troppo grande.
Esempio 2.2 Cerchiamo un’approssimazione di
Z 2
1
log 2 =
dx
1 x
L’approssimazione di Simpson con n = 1 dà
1 22 1 1
+
+
= 0.6944
6 33 6 2
Il Teorema 2.1 dice che l’errore è minore di 24/1780 = 0.013 (qui è facile vedere che M4 = 24).
In realtà log 2 = 0.6931 e | log 2 − 0.6944| = 0.0012.
log 2 '
2.3 Un altro approccio: simulazione
23
2.3 Un altro approccio: simulazione
5 Sia f : [0, 1] → R una funzione integrabile (senza nessuna ipotesi di regolarità) e sia (Xn )n
una successione di v.a. indipendenti uniformi su [0, 1]. Allora la successione di v.a. (f (Xn ))n
è ancora formata da v.a. indipendenti, tutte di media E(f (X1 )); per la legge dei grandi numeri
quindi
n
1X
f (Xk )
n
(2.2)
P
→
n→∞
k=1
E(f (X1 )) .
D’altra parte sappiamo che
E(f (X1 )) =
Z
1
f (x) dx .
0
Queste osservazioni suggeriscono un metodo di calcolo numerico dell’integrale di f : basterà
disporre di un generatore aleatorio X1 , X2 , . . . di legge uniforme su [0, 1] e quindi calcolare
n
1X
f (Xk ) .
n
k=1
Questa quantità per n grande è un’approssimazione di
Z
1
f (x) dx .
0
Più in generale, se f è una funzione integrabile su un aperto limitato D ⊂ Rd , allora l’integrale
di f su D si può approssimare numericamente in modo simile: se X1 , X2 , . . . è un generatore
aleatorio uniforme su D, allora
n
1X
f (Xk )
n
k=1
P
→
n→∞
1
|D |
Z
f (x) dx .
D
Ad esempio, sappiamo che se (Xn )n una successione di v.a. indipendenti uniformi su [0, 1] e
a < b, allora Zn = a + (b − a)Xn è una successione di v.a. indipendenti e uniformi sull’intervallo
[a, b]. Dunque, se f è una funzione integrabile su [a, b], allora
n
1X
f (Zk )
n
k=1
to
n→∞
E[f (Z1 )] =
1
b−a
Z
b
f (x) dx
a
Questo algoritmo per il calcolo d’integrali o di medie è un tipico esempio di quelli che si
chiamano metodi Montecarlo. Vedremo ora di sperimentarlo su alcune situazioni concrete, per
vedere quali sono i suoi vantaggi ed i suoi difetti.
24
Capitolo 2. Integrazione numerica
Esempio 2.3 Come fare per calcolare con il metodo Monte Carlo l’integrale
Z
π
sin x dx ?
0
(che sappiamo beve essere uguale a 2) ? Prima di procedere occorre apprendere l’uso dei generatori aleatori in scilab. Questo sarà l’oggetto del prossimo paragrafo. per ora accontentiamoci
di sapere che il comando
-->xx=rand(10000,1,"u")
produce un vettore xx di numeri aleatori e uniformi su [0, 1] dunque con i comandi
-->yy=%pi*xx;app=%pi*mean(sin(yy))
vengono ottenuti prima i numeri yy che sono uniformi su [0, π] e poi il valore app che è
appunto l’approssimazione Monte Carlo dell’integrale. Provate ora a
• Fare questa operazione e controllare il risultato.
• Ripetere questa operazione 200 volte mettendo i valori ottenuti in un vettore e fare poi
l’istogramma dei risultati. Quanto vale la varianza dei numeri ottenuti ?
• Ripetere l’operazione, ma stavolta facendo la media su 40 000 numeri aleatori ogni volta.
Come si è comportata la varianza ?
Come si può valutare la velocità di convergenza ? Come si può paragonare questo metodo con
quelli numerici dei paragrafi precedenti. Vedremo che I metodi Monte Carlo sono molto lenti,
ma hanno anche dei vantaggi di altro tipo.
Lo strumento di base per valutare la velocità di convergenza è il Teorema Limite Centrale.
Infatti, se indichiamo Yi = (b − a)f (Xi ) e con Y n = n1 (Y1 + . . . + Yn la loro media, per il
Teorema Limite Centrale
√
(2.3)
Y1 + . . . + Yn − nµ
∼ N(0, σ 2 )
√
n
n (Y n − µ) =
Rb
dove abbiamo indicato con µ = E(Y1 ) = a f (x) dx l’integrale da approssimare e con σ 2 la
varianza delle v.a. Yi . Quest’ultima si può calcolare facilmente, almeno in teoria, dato che
E[Y12 ]
2
= E[(b − a) f (a + (b − a)Xi )] = (b − a)
Z
b
f (x)2 dx
a
per cui
2
σ = (b − a)
Z
a
b
2
f (x) dx −
Z
b
f (x) dx
a
2
2.3 Un altro approccio: simulazione
25
Per ottenere σ 2 occorre quindi calcolare degli integrali, tra cui proprio quello che speravamo di
ottenere con il metodo Monte Carlo. In realtà vedremo che si può fare a meno del valore esatto
di σ 2 , di cui basta avere una maggiorazione.
√
La (2.3) permette di scrivere che, per n grande, la v.a. σn (Y n − µ) segue approssimativamente
una legg N(0, 1). Dunque se indichiamo con Z una v.a. N(0, 1), per δ > 0 e n grande si ha
P | Y n − µ| ≥
δσ
√
n
' P(|Z | ≥ δ)
Ma
P(|Z | ≥ δ) = P(Z ≤ −δ) + P(Z ≥ δ) = 8(−δ) + 1 − 8(δ) =
= 2(1 − 8(δ))
In conclusione
P |Y n − µ| ≥
δσ
√
n
' 2(1 − 8(δ))
Rb
Se vogliamo che Y n approssimi µ = a f (x) dx con un errore che è ≤ ε con probabilità α,
possiamo procedere nel modo seguente. Prima scegliamo δ in maniera che
2(1 − 8(δ)) = α
ovvero δ deve essere tale che 8(δ) = 1 − α2 . Il che è lo stesso che richiedere δ = φ1−α/2 , quantile
δσ
di ordine 1 − α2 della legge N(0, 1). Dopo di che n dovrà essere scelto in modo che √
≤ ε.
n
Esempio 2.4 (continuazione dell’Esempio 2.3) Quanto deve essere grande n perché Y n approssimi l’integrale con un errore che è ≤ 10−3 con una probabilità del 99% ?
Qui α = 0.99 e quindi 1 − α2 = 0.995. Dalle tavole si ricava φ.995 = 2.576. n dovrà dunque
essere tale che
2.576σ
≤ 10−3
√
n
ovvero
n ≥ 106 · 2.5762 · σ 2
Resta da determinare il valore di σ 2 . Come indicato prima, in realtà basta una maggiorazione,
che in questo caso potrebbe essere
Z π
2
σ ≥π
f (x)2 dx ≥ π 2
0
si ottiene dunque che deve essere
n ≥ 106 · 2.5762 · π 2 ≥ 65 492 484
Il vero valore di σ 2 qui è
π2
2
− 4 = 0.935 e con questo valore si sarebbe ottenuto n ≥ 6 203 138.
26
Capitolo 2. Integrazione numerica
C’è un altro modo di stimare σ 2 , ancora a partire dalla Legge dei Grandi Numeri. In effetti
sappiamo che
n
1X
(Yi − Y n )2 → σ 2
n→∞
n
i=1
È quindi possibile, calcolando la varianza empirica dei risultati della simulazione ricavare
una stima di σ 2 , che può permettere di ridurre l’effetto della maggiorazione, come si vede
nell’Esempio 2.4.
In realtà occorre molta precauzione quando si sostituisce il valore stimato della varianza a quello
vero come in questo caso. Qui però il valore di n è in genere talmente elevato da giustificare
questa operazione.
Osserviamo però che questo metodo di stima della varianza non permette di stabilire a priori
quanto debba essere grande n, dato che il valore approssimato di σ 2 sarà noto solo alla fine.
Come si vede dall’Esempio 2.4 il numero di simulazioni richiesto per ottenere una approssimazione ragionevole è comunque molto elevato. I metodi Monte Carlo sono quindi inferiori
come prestazioni a quelli dei paragrafi precedenti. Hanno però due vantaggi
• Convergono sempre anche se la funzione da integrare non è regolare.
• Funzionano anche per gli integrali in dimensione più grande di 1 (la stima della velocità
di convergenza è esattamente la setssa), laddove gli altri metodi numerici diventano molto più
complicati.
E2.1 Sia
2
f (x) = ex .
Vogliamo calcolare
Z
1
f (x) dx
0
a) Determinare un’approssimazione di I con i metodi delle somme di Riemann con punto
a destra, a sinistra, di mezzo e trapezi, per n = 5.
b) Calcolare per n = 10, 20, 50, 100 le stesse approssimazioni di a).
b1) produrre e stampare una matrice avente come prima colonna il valore di n, come
seconda l’approssimazione ottenuta, come terza colonna la maggiorazione teorica dell’errore
(tranne che per i trapezi) e come quarta colonna l’errore numerico (=valore approssimato-valore
dell’integrale, ottenuto con il comando intg di scilab)
b2) Disegnare un grafico con n in ascisse e le approssimazioni ottenute in ordinate. Aggiungere al grafico la retta orizzontale di ordinata uguale al e le stime degli errori dei due metodi.
(Per il calcolo delle quantità M1 = sup0≤t≤1 |f 0 (t)| e M2 = sup0≤t≤1 |f 00 (t)| si potrà ammettere
che la funzione f ha le derivate di tutti gli ordini che sono delle funzioni crescenti
c) Vogliamo ottenere numericamente un’approssimazione di I con un errore in modulo
≤ 10−4 . Che valore di n bisogna scegliere se si usano i metodi
1. punto di sinistra
2. punto di destra
3. punto di mezzo.
Esercizi
27
d) Scrivere una funzione scilab che, in funzione di n effettua le operazioni precedenti.
E2.2 Ripetere le operazioni precedenti per le funzioni
a)
Z
π
sin x dx
I=
b)
I=
Z
0
π
e−x
2 /2
sin(12 x) dx
0
(per questa funzione si potranno ammettere le approssimazioni M1 = 1, M2 ' 134.)
c)
Z
π
I=
√
x sin x dx
0
E2.3 Per le funzioni degli Esercizi 2.1 e 2.2 calcolare le approssimazioni con il metodo di
Simpson e confrontare per n = 5 e n = 10 e confrontare con i risultati degli altri metodi.
E2.4 Vogliamo calcolare numericamente l’integrale
I=
Z
π2
√
sin x dx
0
a) In quanti sottointervalli occorrerebbe suddividere l’intervallo [0, π 2 ] perché si possa essere
sicuri che l’errore commesso sia ≤ 10−2 con il metodo del punto di sinistra ? Et del punto di
mezzo ? E dei trapezi ? E di Simpson ?
b) Decidiamo piuttosto di calcolare l’integrale per simulazione:
N
X
1
I ' π2
f (Xi ) := IN
N
i=1
dove le v.a. Xi sono uniformi su [0, π 2 ].
b1) A priori, come si deve scegliere N perché l’errore dello stimatore IN sia ≤ 10−2 con
probabilità 99% ?
b2) Calcolare IN per N = 25000 et determinare qual è l’errore, sempre ad un livello 99%, prima
con la maggiorazione delle varianza e poi stimando la varianza a partire dai dati. In questo
caso, confrontare il risultato con quello dei vicini.
c) Improvvisamente una illuminazione! Con un cambio di variabile si ha
I=
Z
π2
0
√
sin x dx = 2
Z
π
y sin y dy
0
Se si è disposti ad una maggiorazione grossolana della derivata quarta della funzione y →
y sin y, in quanti sottointervalli bisogna suddividere [0, π] perché l’errore sia ≤ 10−2 con il
metodo di Simpson ?
28
Capitolo 2. Integrazione numerica
d) Rispondere alle domnde di b) per il calcolo dell’integrale
J=
E2.5 Calcolare
Z
Z
1/π 2
sin √1x dx
0
e−(x
2 +y 2 )/2
dx dy
A
dove A è
a) il quadrato [−1, 1] × [−1, 1];
b) il cerchio di raggio 1 e di centro l’origine.
E2.6 Calcolare
Z
e−|x|
2 /2
dx dy
|x|≤1
2.4 Probabilità e simulazione in scilab
Scilab ha varie funzioni per gli aspetti numerici della Probabilità e della Statistica e le
simulazioni.
Prima di tutto ci sono i calcoli relativi alle funzioni di ripartizione. Ad esempio per le leggi
gaussiane il comando cdfnor produce la funzione di ripartizione ed i quantili delle leggi
gaussiane. L’uso di questi comandi non è proprio amichevole. Vediamo un po’. Se viene dato
il comando
-->[P,Q]=cdfnor("PQ",x,mu,sigma)
P sarà il valore della funzione di ripartizione di una legge gaussiana di media mu e deviazione
standard sigma calcolato in x . Il secondo valore restituito dal programma, Q è semplicemente uguale a 1-P . Attenzione agli aspetti seguenti:
• sigma è la deviazione standard e non la varianza.
• x può essere un vettore e in questo caso anche P e Q saranno dei vettori. Per approfittare
di questa possibilità però anche mu e sigma devono essere dei vettori, anche se le medie e le
varianze sono tutte uguali. Ad esempio per avere i valori della funzione di ripartizione di una
N(0, 1) nei valori 1, 1.5, 2 occorrerà scrivere
-->x=[1,1.5,2];
-->[P,Q]=cdfnor("PQ",x,zeros(x),ones(x));
Cambiando la sintassi il comando cdfnor produce i quantili: scrivendo
-->x=[1,1.5,2];
-->x=cdfnor("X",0,1,P,Q);
2.4 Probabilità e simulazione in scilab
29
il valore ottenuto x sarà il quantile corrispondente alla probabilità P (qui come prima Q deve
essere uguale a 1-P ). Come prima il comando è vettoriale, nel senso che P può essere un
vettore. In questo caso anche tutti gli altri argomenti devono essere dei vettori aventi la stessa
dimensione.
Per distribuzioni diverse dalla normale esistono i comandi appropriati:
cdfbet (leggi beta)
cdfbin (binomiali)
cdfchi (chiquadrato)
cdfchn (chiquadrato decentrato)
cdfgam (gamma)
cdff (F )
cdffnc (F decentrata)
cdfnbn (binomiale negativa)
cdfpoi (Poisson)
cdft (t di student)
La loro sintassi è simile a quella di cdfnor, sia per il calcolo delle funzioni di ripartizione che
per quello dei quantili.
Per la simulazione esistono due generatori aleatori in scilab
Esempio 2.5 (Il grafico dei quantili) Siano X1 , . . . , Xn delle v.a. indipendenti, aventi tutte la
stessa legge (continua o discreta, poco importa). Indichiamo con F la loro f.r. Se poniamo
At =] − ∞, t], allora si vede subito che
E(1At (X1 )) = P(X ≤ t) = F (t) .
Quindi per la (2.2) applicata alla funzione f = 1At si ha
n
(2.4)
1X
1At (Xk )
n
k=1
P
→
n→∞
E(1At (X1 )) = F (t) .
Indichiamo con F̄n (t) il termine a sinistra nella (2.4), cioè
n
1X
1
F̄n (t) =
1At (Xk ) = × numero di indici k tali che Xk ≤ t .
n
n
k=1
La funzione F̄n (t) è una funzione di t che si chiama funzione di ripartizione empirica . Un
altro modo, per certi versi più semplice, di vedere la f.r. empirica è il seguente. Indichiamo con
X(1) , . . . , X(n) i numeri X1 , . . . , Xn riordinati in senso crescente: in particolare X(1) è il valore
più piccolo e X(1) ≤ X(2) ≤ . . . ≤ X(n) . Allora è chiaro che si ha anche

0 se t < X(1)



k
F̄n (t) =
se X(k) ≤ t < X(k+1) , k = 1, . . . , n − 1

n


1 se X(n) ≤ t .
30
Capitolo 2. Integrazione numerica
Infatti se X(k) ≤ t < X(k+1) , ciò vuol dire che vi sono esattamente k indici i tali che Xi ≤ t e
dunque
n
1X
k
1At (Xk ) = ·
n
n
k=1
Osserviamo comunque che, per ogni valore di t, F̄n (t) è una quantità aleatoria, dato che
dipende dai valori X1 , . . . , Xn . Dunque la (2.4) non fa che affermare che, per ogni t fissato, la
f.r. empirica converge in probabilità alla f.r. F .
1
•
•
........
..
. . .•
.. . .
.. . . .
...
.
..
...
x(1) x(2)
...
..
..
.
..
..
x(3)
..
. ..
•. . .
..
.
•.. . .
..
...
...
.
• . . . . ........
.
. . . .
.•. .
.
.
..
.
..
x(4)
x(5)
x(6)
x(7)
Figura 2.3 Esempio di funzione di ripartizione empirica per un campione di rango 7 di una legge N (0, 1),
a confronto con la funzione di ripartizione teorica (a puntini).
Queste osservazioni hanno delle conseguenze pratiche interessanti. Talvolta in presenza di dati
sperimentali X1 , . . . , Xn è interessati a stabilire se essi seguano una distribuzione assegnata,
N(0, 1) ad esempio. Se n è abbastanza grande, per la Legge dei Grandi Numeri, la differenza
tra la f.r. empirica F̄n e quella teorica F è piccola. Poiché sappiamo che F̄n assume il valore ni
nel punto X(i) , ciò vuol dire che i numeri ni e 8(X(i) ) devono essere molto vicini. Applicando
la funzione 8−1 , che è continua, ai due numeri ni e 8(X(i) ), otteniamo che anche i due valori
8−1 ( ni )
e
X(i)
devono trovarsi vicini tra loro. Il punto 8−1 ( ni ) è il numero in cui la f.r. 8 prende il valore ni
e dunque non è altro che il quantile φi/n . Ciò significa che se si disegnano sul piano i punti di
coordinate X(i) e φi/n , essi si devono disporre lungo la bisettrice del primo e terzo quadrante.
Questa osservazione fornisce un metodo per valutare ‘‘ad occhio’’ (è il caso di dirlo) se le
osservazioni seguano o no una legge N(0, 1). Esso naturalmente può essere applicato anche ad
altre distribuzioni continue (esponenziali, χ 2 ,. . . ), semplicemente sostituendo ai quantili φi/n
quelli della f.r. appropriata.
L’interesse di questo metodo grafico è però ancora limitato perché esso permette di vedere se
le osservazioni seguano una prefissata distribuzione, mentre spesso si è interessati piuttosto a
vedere se esse seguono una distribuzione di una determinata famiglia, ad esempio se esse sono
normali N(µ, σ 2 ) per qualche valore ignoto di µ e σ 2 . Gli argomenti precedenti possono però
essere perfezionati per ricavare un metodo grafico per trattare questo problema più complesso
(anche se ci limiteremo, qui, al caso di leggi normali). Basta per questo ricordare la relazione tra
2.4 Probabilità e simulazione in scilab
31
i quantili di una legge N(µ, σ 2 ) e quelli di una N(0, 1): il quantile di ordine ni di una N (µ, σ 2 )
è uguale a σ φi/n + µ Riprendendo il ragionamento precedente, se le osservazioni seguono una
distribuzione N(µ, σ 2 ), allora i numeri
σ φi/n + µ
e
X(i)
devono essere vicini tra loro; in altre parole i punti di coordinate X(i) e φi/n devono allinearsi
lungo la retta di equazione x = σy + µ. Basta quindi disegnare questi n punti sul piano e poi
vedere se essi si dispongono lungo una retta o no (ora non più necessariamente la bisettrice del
primo e terzo quadrante).
.
... . . .
.
.
.
.
.
.
.
.
.....
................
.
.
.
.
.
.
.
.
.
.
.
.
.
........
............
.
.
.
.
.
.
.
.
.
.
.
. ..
. . .
.
Figura 2.4 Grafico dei quantili per un campione ottenuto per simulazione di una legge normale.
Il grafico dei punti (X(i) , 8−1 ( ni )) si chiama, nel gergo della statistica il grafico quantili contro
quantili, poiché si tratta di confrontare i quantili della distribuzione empirica F̄n contro quelli
della N(0, 1). La sua realizzazione manuale può risultare laboriosa, ma di solito tutti i software
statistici hanno prevedono questa operazione.
.
..
........
.
.
.
.
..........
.
.
.
.
.
.
.
.
.....
........
.
.
.
.
.
.
.
.
...
............
. . . . . ...........
.
.
Figura 2.5 Grafico dei quantili per un campione ottenuto per simulazione di una legge χ 2 (4). L’andamento
si discosta da una retta.
Scarica

Laboratorio di Calcolo 2 - Dipartimento di Matematica