Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Università degli studi di Sassari - Facoltà di Agraria Corso di Laurea Specialistica in PRODUZIONI ANIMALI IN AMBIENTE MEDITERRANEO Scuola di Dottorato di Ricerca in SCIENZE DEI SISTEMI AGRARI E FORESTALI E DELLE PRODUZIONI ALIMENTARI, indirizzo in SCIENZE E TECNOLOGIE ZOOTECNICHE DISPENSE DEL CORSO DI ALGEBRA MATRICIALE DOCENTE NICOLO’ MACCIOTTA DIPARTIMENTO DI SCIENZE ZOOTECNICHE ANNO ACCADEMICO 2007/2008 1 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 1. ALGEBRA DELLE MATRICI ED INTRODUZIONE ALLA REGRESSIONE LINEARE SEMPLICE Algebra delle matrici Concetto di matrice e tipi di matrice Per matrice si intende un insieme di numeri disposti secondo i righe j e colonne, solitamente racchiusi da parentesi quadre. a11 a12 a13 1 0 9 A = a 21 a22 a23 = 3 15 7 a31 a32 a33 11 2 4 Il numero di righe (i) ed il numero delle colo nne (j) definiscono le dimensioni della matrice. Nel caso di A, la dimensione è 3 righe e tre colonne e sarà indicata con A(3x3).. In generale: a11 a12 a21 a 22 A= ... ... ai1 ai 2 ... a1 j ... a 2 j ... ... ... aij (ixj ) Per convenzione, le matrici vengono solitamente indicate con lettere maiuscole in grassetto (A nell’esempio sopra riportato. I numeri contenuti all’interno della matrice sono detti elementi della matrice.. Matrici costituite da una sola riga (cioè i=1) o da una sola colonna (j=1) sono dette vettori. Per convenzione sono rappresentate con lettere minuscole, sempre in grassetto. a' = [3 12 1](1x3) Vettore riga. 2 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 11 q = 43 7 Vettore colonna Solitamente un vettore riga è indicato con l’apostrofo. Una matrice è detta quadrata quando il numero delle righe è uguale al numero delle colonne (i = j). A sopra descritta è una matrice quadrata (3 x 3). Se il numero delle righe è diverso dal numero delle colonne si avrà una matrice rettangolare. 11 7 M= 9 1 8 0 7 2 5 6 1 3 (4 X 3) In una matrice quadrata si distinguono una diagonale principale ed una diagonale secondaria. 1 0 9 A = 3 15 7 11 2 4 Nel caso di A gli elementi della diagonale principale sono 1, 15 e 4 mentre quelli della diagonale secondaria sono 9, 15 e 11. Una matrice è detta diagonale quando presenta tutti gli elementi fuori della diagonale uguali a zero 3 0 0 D = 0 11 0 0 0 6 La matrice identità I è una matrice diagonale con tutti gli elementi sulla diagonale uguali ad 1. 3 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 1 0 0 I = 0 1 0 0 0 1 Nell’algebra delle matrici, la matrice identità equivale al numero 1 dell’algebra degli scalari. La matrice in cui tutti gli elementi sono pari a zero è detta matrice nulla, mentre la matrici in cui gli elementi sono tutti pari ad uno è detta unità ed è normalmente indicata con la lettera J.. 0 0 0 N = 0 0 0 0 0 0 1 1 1 J = 1 1 1 1 1 1 Per matrice simmetrica si intende una matrice in cui gli elementi sopra alla diagonale e sotto la diagonale sono tra loro simmetrici. 1 11 S= 3 9 9 15 7 2 7 4 10 2 10 7 11 3 11 3 9 1 11 15 7 2 S= 4 10 7 simm Come si vede sopra, una matrice simmetrica può essere rappresentata in due modi. Una matrice è detta triangolare quando ha gli elementi sopra, oppure sotto, la diagonale uguali a zero. 1 11 3 9 0 15 7 2 S= 0 0 4 10 0 0 0 7 3 0 0 M = 5 11 0 4 8 6 Una matrice tridiagonale ha gli elementi sulla la diagonale e sulle sub-diagonali inferiore e superiore diversi da zero, mentre tutti gli altri elementi sono uguali a zero. 4 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 1 2 0 0 8 14 4 0 S = 0 9 3 5 0 0 9 2 0 0 0 10 0 0 0 3 11 Si definisce trasposta di una matrice A, e si indica con A’, una matrice che si ottiene da A scambiando le righe e le colonne. 1 2 A = 8 14 9 3 1 8 9 A' = 2 14 3 Come si può notare, la prima colonna di A è diventata la prima riga di A’, e così via. La traccia di una matrice quadrata A, indicata con tr(A), è data dalla somma degli elementi che si trovano sulla sua diagonale. 3 7 4 A = 5 11 2 4 8 6 tr(A) = 3 + 11 + 6 = 20 La due righe di programma R seguenti creano e stampano la Matrice A > A<matrix(c(3,5,4,7,11,8,4,2,6),ncol=3) >A [,1] [,2] [,3] [1,] 3 7 4 [2,] 5 11 2 [3,] 4 8 6 Trasposizione della matrice > A1<-t(A) 5 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta > A1 [,1] [,2] [,3] [1,] 3 5 4 [2,] 7 11 8 [3,] 4 2 6 Creazione di una matrice Identità di dimensioni 4x4 > I<-diag(4) >I [,1] [,2] [,3] [,4] [1,] 1 0 0 0 [2,] 0 1 0 0 [3,] 0 0 1 0 [4,] 0 0 0 1 Creazione di una matrice diagonale di dimensione 3x3 avente sulla diagonale il valore 2 > p<-diag(2,3) >p [,1] [,2] [,3] [1,] 2 0 0 [2,] 0 2 0 [3,] 0 0 2 Creazione di una matrice diagonale 3x3 avente in diagonale la sequenza da 1 a 3 > p<-diag(1:3) >p [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 2 0 [3,] 0 0 3 creazione di un vettore colonna 3x1 > b<-matrix(c(4,6,1),ncol=1) 6 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta >b [,1] [1,] 4 [2,] 6 [3,] 1 creazione di un vettore riga 1x4 > a<-matrix(c(1,2,3,4), ncol=4) >a [,1] [,2] [,3] [,4] [1,] 1 2 3 4 Operazioni con le matrici A differenza dell’algebra degli scalari in cui l’esecuzione delle operazioni elementari (addizione, sottrazione, moltiplicazione e divisione) non richiede requisiti particolari per gli addendi o per i fattori, le matrici invece possono essere o meno conformabili per una determinata operazione. Tale conformabilità è legata alle loro dimensioni (m x n) e anche ed eventuali relazioni esistenti fra le righe o le colonne della matrice stessa. Le operazioni con le matrici possono essere realizzate sia su softwares di carattere generale, quali fogli di calcolo tipo Excel (che presente una serie di funzioni dedicate al calcolo matriciale), o di statistica avanzata, quali il SAS (che ha un modulo, denominato IML, che è dedicato al calcolo matriciale) o infine da software che sono stati sviluppati appositamente per il calcolo con le matrici, come il MATLAB. Recentemente è disponibile un nuovo software open access, R, con il quale è possibile svolgere operazioni con matrici. Somma Due matrici sono conformabili per la somma, o per la sottrazione, quando hanno la stessa dimensione, cioè presentano lo stesso numero di righe e colonne. La somma di due matrici A e B, di dimensione m x n, sarà una matrice m x n i cui elementi sono il risultato della somma degli elementi corrispondenti di A e B. In generale: 7 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta a11 a12 A = a21 a 22 a31 a32 b11 b12 B = b21 b22 b31 a32 la formula generale per la somma (o la sottrazione) sarà: a11 + b11 a12 + b12 A + B = a21 + b21 a22 + b22 a31 + b31 a321 + b32 Ora passiamo ad un esempio pratico 11 − 4 A = 6 0 8 13 3 2 B = 1 15 − 6 5 A e B sono conformabili per la somma, perché hanno la stessa dimens ione (3 x 3). 11 − 4 3 2 11 + 3 − 4 + 2 14 − 2 A + B = 6 0 + 1 15 = 6 + 1 0 + 15 = 7 15 8 13 − 6 5 8 − 6 13 + 5 2 18 Il risultato di A + B è lo stesso di B + A. Analogo discorso è valido per la sottrazione. Si riporta la sintassi di R per lo svolgimento dell’esempio precedente A<-matrix(c(11,6,8,-4,0,13),ncol=2) B<-matrix(c(3,1,-6,2,15,5),ncol=2) A+B Prodotto 8 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Due matrici sono conformabili per il prodotto quando il numero di colonne della prima è uguale al numero di righe della seconda. Il risultato della moltiplicazione è un matrice con un numero di righe pari a quello della prima matrice ed un numero di colonne pari a quello della seconda matrice Il prodotto di una matrice A (m x n) per una matrice B (n x q) è dato da una matrice (m x q) i cui elementi sono la somma dei prodotti dei rispettivi elementi di A e B. In generale: a11 a12 A = a 21 a 22 a31 a32 mxn b11 b12 b13 B= b21 b22 b23 nxq a11xb11 + a12xb21 a11xb12 + a12xb22 a11xb13 + a12xb23 AB = a 21xb11 + a22xb21 a21xb12 + a22xb22 a21xb13 + a22xb23 a31xb11 + a32xb21 a31xb12 + a32xb22 a31xb13 + a32xb23 mxq Passiamo ad un esempio pratico. 11 − 4 A = 6 0 8 13 3 2 B= 1 15 Le due matrici sono conformabili per la moltiplicazione in quanto il numero di colonne di A (2) è uguale al numero di righe di B (2). Il risultato sarà una matrice con un numero di righe pari a quello della prima (3) e numero di colonne pari a quello della seconda (2). (11x3) + ( −4 x1) (11x2) + ( −4x15) 29 − 38 AB = ( 6x3) + (0x1) (6x2) + ( 0x15) = 18 12 (8x3) + (13x1) (8x2) + (13x15) 37 211 Il seguente programma di R consente di svolgere l’esempio precedente A<-matrix(c(11,6,8,-4,0,13),ncol=2) B<-matrix(c(3,1,2,15),ncol=2) 9 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta A%*%B A differenza di quanto avviene nell’algebra degli scalari, il prodotto delle matrici non gode della proprietà commutativa. Infatti, anche quando la dimensione delle matrici lo consente, il prodotto AB è diverso da BA. Consideriamo Prediamo due matrici quadrate 2x2. 3 2 A= 1 15 4 5 B= 2 1 (3x4) + ( 2x2) (3x5) + ( 2x1) 16 17 AB = = (1x4) + (15x2) (1x5) + (15x1) 34 20 mentre (4 x3) + ( 5x1) (4 x2) + ( 5x15) 17 83 BA = = 7 19 ( 2 x 3 ) + ( 1 x 1 ) ( 2 x 2 ) + ( 1 x 15 ) Poiché è importante l’ordine in cui la matrici sono moltiplicate fra loro, quando si parla di prodotto fra matrici di solito si indicano le posizioni delle stesse nell’operazione. Per esempio, nel caso A x B, si dirà che la matrice B è moltiplicata a sinistra per A (oppure che A è moltiplicata a destra per B) Nella regola generale del prodotto fra matrici rientrano anche i prodotti fra vettori e matrici. Ad esempio a' = [3 12 1](1x3) 11 − 4 A = 6 0 8 13 Il prodotto a’A è realizzabile perché il numero di colonne di a (3) è uguale al numero di righe di A. Il risultato sarà un vettore riga (1x2). a' A = [113 1] In questo caso non è realizzabile il prodotto A a’ poichè le due matrici non sono conformabili per tale operazione (A ha un numero di colonne, 2, che è diverso dal numero di righe di a’, 1). La matrice A può essere moltiplicata invece per il seguente vettore colonna 10 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 11 q= 43 ed il risultato sarà un vettore colonna (1x 3) − 51 Aq = 66 647 Prodotti di matrici particolari Il prodotto di un vettore riga v’ con un vettore colonna m dà come risultato uno scalare che è costituito dalla somma dei prodotti degli elementi dei due vettori v'= [3 4 1] 6 m = 2 3 v’m = (3 x 6) + (4 x 2) + (1 x 3) =29 Il prodotto di un vettore y moltiplicato a sinistra per la sua trasposta y’ dà come risultato uno scalare costituito dalla somma dei quadrati degli elementi di y. 2 3 y= 1 4 y'= [2 3 1 4] y’y = 30 Il prodotto di un vettore per moltiplicato a sinistra per la sua trasposta è detto forma quadratica Quindi una operazione di questo tipo consente di calcolare tramite un semplice prodotto di vettori la somma dei quadrati di grandi quantità di dati. In generale, la formula delle forme quadratiche è l seguente. y’Gy Dove G è una matrice qualsiasi. Nel caso dell’esempio sopra riportato, G è pari ad una matrice identità 4x4. Cioè 11 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 1 0 y ' Gy = [2 3 1 4] 0 0 0 0 0 2 1 0 0 3 = 30 0 1 0 1 0 0 1 4 Un vettore riga con gli elementi tutti uguali ad uno è detto vettore somma. Moltiplicato a destra per un vettore colonna, fornisce come risultato uno scalare costituito dalla somma di tutti gli elementi del vettore colonna. m'= [1 1 1 1] 2 3 y= 1 4 m’y = 10 Un vettore riga q’ può essere utilizzato per costruire una qualsiasi funzione degli elementi di un vettore colonna y. Consideriamo il vettore y dell’esempio precedente. Il vettore q q' = [1 0 0 − 1] moltiplicato a destra per il vettore y fornisce come risultato uno scalare che è la differenza tra il primo e l’ultimo elemento di y. q’y = -2 Il prodotto di una matrice per la sua trasposta dà come risultato una matrice simmetrica. 15 23 A = 11 9 31 12 754 372 741 AA' = 372 202 449 741 449 1105 15 11 31 A' = 23 9 12 Il prodotto di uno scalare k per una matrice A è la matrice A con ogni elemento moltiplicato per k. In generale 12 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta a11 a12 ka11 ka12 kA = k a21 a 22 = ka 21 ka 22 a31 a32 ka31 ka32 Venendo ad un esempio pratico: 15 23 45 69 kA = 311 9 = 33 27 31 12 93 36 A<-matrix(c(15,11,31,23,9,12),ncol=2) 3*A La trasposta del prodotto di due matrici A e B, è uguale al prodotto delle trasposte delle due matrici prese in ordine inverso (B e A). 15 23 A = 11 9 31 12 68 76 AB = 42 40 105 86 3 2 B= 1 2 ( AB)' = 68 42 105 76 40 86 oppure 15 11 31 A' = 23 9 12 3 1 B' = 2 2 13 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 68 42 105 B' A' = 76 40 86 Una matrice A è detta idempotente se AA’=A Una matrice B è detta nullipotente se BB’= 0 Una matrice U è detta ortogonale se UU’= I Riassumendo alcune differenze fra l’algebra degli scalari e quella delle matrici: 1. Proprietà associativa A + (B + C) = (A + B) + C 2. Proprietà distribut iva A (B + C) = AB) + AC 3. Proprietà commutativa (valida solo per l’addizione o la sottrazione) A+B =B+A AB ≠ BA Prodotto di Kroenecker. Il prodotto di Kroenecker, o prodotto diretto, fra due matrici consiste nel moltiplicare ogni elemento della prima matrice per tutta la seconda matrice. Si indica con il simbolo ⊗. a11B a12B A (2 x2 ) ⊗ B(mxn) = a21B a22B (2mx2 n) Di sotto si riporta un esempio di applicazione del prodotto di Kroenecker 14 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 2x5 2 x1 5 3 2 3 = 2 x3 ⊗ 1 9 1 2 3 2 1x5 1x1 1x3 2x3 3x5 3x3 10 6 15 9 2 x9 3x1 3x9 2 18 3 27 2x2 3x3 3x2 6 4 9 6 = 1x3 2x5 2 x3 5 3 10 6 1x9 2x1 2x9 1 9 2 18 1x2 2x3 2x2 3 2 6 4 Il prodotto di Kroenecker viene spesso per agevolare i calcoli nelle equazioni di soluzione dei modelli genetici Operatori elementari Esistono delle matrici particolari, ottenute attraverso delle modifiche della matrice di identità I, che consentono di manipolare un’altra matrice A per la quale vengono moltiplicate. La matrice P per esempio, ottenuta dalla matrice I attraverso la sostituzione del primo elemento della diagonale con 0.25, consente di dividere per 4 la prima riga di una matrice per la quale viene moltiplicata a destra. 0.25 0 0 P = 0 1 0 ; 0 0 1 8 4 32 A = 4 3 3 ; 6 1 1 2 1 8 PA = 4 3 3 6 1 1 Se invece viene moltiplicata a sinistra per A, consente di divedere per quattro la prima colonna di A. Cioè 2 4 32 AP = 1 3 3 1.5 1 1 Un secondo tipo di operatori elementari consente di scambiare fra loro le righe e le colonne delle matrici. In questo altro esempio, l’uso della matrice Q consente di scambiare fra loro la seconda e la terza riga di una matrice per la quale viene moltiplicata a destra (Q x A) oppure la seconda e la terza colonna di una matrice per la quale viene moltiplicata a sinistra (A x Q). 15 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 1 0 0 Q = 0 0 1 ; 0 1 0 8 4 32 QA = 6 2 1 ; 4 5 3 8 4 32 A = 4 5 3 ; 6 2 1 8 32 4 AQ = 4 3 5 6 1 2 Infine un terzo tipo di operatore elementare consente di combinare in vario modo le righe o le colonne delle matrici per cui viene moltiplicata. La matrice T per esempio, moltiplicata a destra per una matrice A (T x A), produce una matrice M in cui la prima riga è data dalla somma degli elementi della prima e terza riga di A, mentre gli elementi della seconda e terza riga rimangono uguali a quelli di A. Se invece viene moltiplicata a sinistra per A (A x T), produce una matrice F in cui la terza colonna è data dalla somma degli elementi della prima e seconda colonna di A, mentre gli elementi della prima e seconda colonna rimangono uguali rispetto ad A. 1 0 1 T = 0 1 0 ; 0 0 1 14 6 33 TA = 4 5 3 6 2 1 8 4 32 A = 4 5 3 ; 6 2 1 8 4 40 AT = 4 5 7 6 2 7 In generale, quindi, l’uso degli operatori elementari consente di modificare le righe di una matrice A se l’operatore elementare viene moltiplicato a destra per A (ad esempio T x A) mentre consente di modificare le colonne di A se l’operatore elementare viene moltiplicato a sinistra per A (ad esempio A x T). Determinante di una matrice quadrata 16 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Il determinante di una matrice quadrata è un numero associato alla matrice stessa. Esso può essere minore, maggiore o uguale a zero. Il determinante di una matrice 1 x 1 (cioè un numero) è il numero stesso. Il determinante di una matrice A viene indicato con |A|. La conoscenza del determinante di una matrice quadrata è importante ai fini dell’ottenimento dell’inversa della matrice (vedi in seguito) che nell’algebra delle matrici equivale al reciproco dell’algebra degli scalari. Il determinante di una matrice 2 x 2 è uguale alla differenza tra il prodotto degli elementi sulla diagonale e quello degli elementi fuori della diagonale. a11 a12 A= a21 a22 |A| = (a11 * a22 ) - (a12 * a21 ) Esempio: 3 2 A= 1 15 |A| = (3*15)-(2*1) = 45 -2 = 43 Il calcolo del determinante di una matrice quadrata di dimensioni superiori a 2x2 si presenta più complesso. Nel caso di una matrice quadrata 3x3, si usa il cosiddetto metodo di espansione dei minori. Si consideri la matrice 5 2 3 A = 9 5 2 5 4 1 Se si considerano gli elementi della prima riga, è possibile ricavare da A tre submatrici 2x2 che si ottengono eliminando la riga e la colonna di appartenenza di ciascun elemento della riga 1. Cioè 5 2 A1 = 4 1 ottenuta eliminando riga e la colonna cui appartiene 5 17 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 9 2 A2 = 5 1 ottenuta eliminando riga e la colonna cui appartiene 2 9 5 A3 = 5 4 ottenuta eliminando riga e la colonna cui appartiene 3 I determinanti delle submatrici ottenute da A prendono il nome di minori. Il determinante di A sarà dato dalla somma dei prodotti dei determinanti delle tre submatrici (cioè dei minori) per il coefficiente (-1)i+j, dove i e j sono la riga e la colonna di appartenenza dell’elemento di A cui si riferisce il minore. Continuando ne ll’esempio: A = 5(−1) 1+1 5 2 4 1 + 2(−1) 1+2 9 2 5 1 + 3(− 1) 1+3 9 5 5 4 ; |A| = 5(5-8) -2(9-10) + 3(36-25) = 20 I determinanti delle submatrici ottenute da A moltiplicati per il coefficiente (-1)i+j sono detti cofattori della matrice A. Nell’esempio sopra riportato, il calcolo del determinante di A è stato sviluppato attraverso il metodo dell’espansione dei minori relativi agli elementi della prima riga. Ad analogo risultato si può pervenire attraverso l’espansione dei minori relativi alla seconda riga A = 9(−1) 2 +1 2 3 4 1 + 5(−1) 2 +2 5 3 5 1 + 2(− 1) 2+ 3 5 2 5 4 ; |A| = - 9 (2-12) + 5(5-15) -2(20-10) = 20 oppure della terza riga A = 5(− 1) 3+1 2 3 5 2 + 4(− 1) 3+ 2 5 3 9 2 + 1(− 1) 3+3 18 5 2 9 5 ; Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta |A| = 5(4-15) -4(10-27) + 1(25-18) = 20 A<-matrix(c(5,9,5,2,5,4,3,2,1),ncol=3) det(A) Il calcolo del determinante delle matrici quadrate di dimensione superiore alla 3x3 si presenta più laborioso. Inversa di una matrice quadrata Come detto in precedenza, nell’algebra delle matrici non esiste la divisione diretta. Se si vuole dividere una matrice A per una matrice B, occorre moltiplicare A a sinistra per l’inversa di B. L’inversa di una matrice B, che si indica con B-1 , è una matrice che soddisfa la seguente condizione. BB-1 = I B-1B = I Nell’algebra delle matrici, l’inversa equivale al reciproco dell’algebra degli scalari. Non tutte le matrici quadrate sono invertibili. Lo sono solo quelle con il determinante diverso da zero. L’inversa di una matrice quadrata può essere ottenuta utilizzando i cofattori degli elementi ed il determinante. Riprendiamo l’esempio precedente 5 2 3 A = 9 5 2 5 4 1 Cofattori degli elementi della prima riga (+ 1) 5 2 4 1 ; (− 1) 9 2 5 1 ; (−1) 9 5 5 4 = −3,+1,+11 ; Cofattori degli elementi della seconda riga (−1) 2 3 4 1 ; (+ 1) 5 3 5 1 ; (−1) 5 2 5 4 = +10,−10,−10 ; 19 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Cofattori degli elementi della terza riga (+1) 2 3 5 2 ; (− 1) 5 3 9 2 ; (+1) 5 2 9 5 ;−11,+17,+7 ; Se si sostituiscono gli elementi di A con i rispettivi cofattori, si ottiene la matrice dei cofattori (C). 1 11 −3 C = 10 − 10 − 10 − 11 17 7 L’inversa della matrice A si calcola come prodotto dell’inverso del suo determinate per la trasposta della matrice dei cofattori, cioè A −1 − 3 10 11 − 0.15 0.5 − 0.55 1 1 = C' = 1 −10 17 = 0.05 − 0.5 0.85 A 20 11 10 7 0.55 − 0.5 0.35 Si può verificare che AA-1 = I 5 2 3 − 0.15 0. 5 − 0.55 1 0 0 9 5 2 0.05 − 0.5 0. 85 = 0 1 0 5 4 1 0.55 − 0.5 0. 35 0 0 1 La funzione solve di R consente di calcolare la matrice inversa di una matrice quadrata con determinante diverso da zero solve(A) Rango di una matrice quadrata 20 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Come detto in precedenza, una matrice quadrata può essere invertita solo se il suo determinante è diverso da zero. Se invece il determinante della matrice è uguale a zero, essa si dirà singolare e non potrà essere calcolata la sua inversa. Se A è un matrice quadrata, si ha |A|=0 quando una o più righe (o colonne) sono una combinazione lineare di altre righe (o colonne). Ad esempio, la seguente matrice ha il determinante uguale a zero 2 − 4 6 A = 6 2 4 10 8 2 Si può notare come la terza colonna sia uguale alla differenza della prima colonna meno la seconda colonna. Quindi la terza colonna è una combinazione lineare delle altre due e pertanto la matrice è singolare, cioè |A|=0. Il rango di una matrice quadrata i x i è dato dal numero di righe (o colonne) che sono tra loro indipendenti. Se il rango della matrice è uguale al numero delle righe (o colonne), allora la matrice si dirà a pieno rango. Se invece il rango della matrice è inferiore al numero di righe (o colone) allora la matrice si dirà non a pieno rango. La matrice A sopra riportata ha rango pari a due, quindi è non a pieno rango. Dato un insieme di vettori a1 , a2 ,…, an , questi si diranno linearmente dipendenti se esiste un vettore q≠0 tale che a1 q11 + a2 q21 +…+ an qn1 = 0. 2 − 4 6 1 a1 = 6 ; a2 = 2 ; a3 = 4 ; q = − 1 10 8 2 − 1 Si verifica facilmente che 2 − 4 6 2 4 − 6 0 a1q11 + a2 q21 + a3 q31 = 1 6 − 1 2 − 14 = 6 + − 2 + − 4 = 0 10 8 2 10 − 8 − 2 0 Se chiamiamo A la matrice costituita dai tre vettori, se Aq = 0 per un vettore q non nullo, allora le colonne di A sono vettori linearmente dipendenti. 21 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 2 − 4 6 A = 6 2 4 10 8 2 1 q = − 1 − 1 0 Aq = 0 0 Se le colonne di A sono linearmente dipendenti, allora |A| = 0, la matrice è singolare e non esiste la sua inversa A-1 . Dato un insieme di vettori a1 , a2 ,…, an , se solo il vettore q=0 che verifica la condizione a1 q11 + a2 q21 +…+ an qn1 = 0 i vettori si diranno tra loro linearmente indipendenti. I seguenti vettori sono tra loro linearmente indipendenti. 1 − 2 3 a1 = 3 ; a2 = 3 ; a3 = 5 ; 5 3 11 Se chiamiamo M la matrice costituita dai tre vettori, se Mq = 0 solo per q = 0, allora le colonne di M sono vettori linearmente indipendenti 1 − 2 3 M = 3 3 5 5 3 11 Se le colonne di M sono linearmente indipendenti, allora |M|=0, la matrice è non singolare ed esiste la sua inversa M -1 . Caso particolare di inversa di una matrice quadrata L’inversa di una matrice diagonale D è una matrice diagonale in cui gli elementi della diagonale sono uguali al reciproco degli elementi corrispondenti di D. Cioè 22 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 2 0 0 D = 0 4 0 0 0 3 1 2 −1 D = 0 0 0 1 4 0 0 0 1 3 Inversa generalizzata Nel caso della matrici quadrate singolari, quelle cioè per le quali non esiste l’inversa, comunque possibile calcolare l’inversa generalizzata. L’inversa generalizzata di una matrice quadrata singolare S, solitamente indicata con S-, è una matrice quadrata che soddisfa la seguente condizione S S- S=S Esercizi…. 23 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Introduzione alla regressione lineare semplice Uso delle matrici per la risoluzione dei sistemi di equazioni lineari Il calcolo matriciale trova applicazione in numerosi settori scientifici. Una delle utilizzazioni più frequenti consiste nell’uso delle matrici per risolvere i sistemi di equazioni lineari. Si consideri il seguente sistema di tre equazioni lineari. 4x + 3y +2z = -5 x–y–z=8 2x + 5y + 5z = -26 Il sistema ammette delle soluzioni per le incognite (x = 2, y = -1, z = -5). Questo sistema di equazioni può essere scritto in forma matriciale: 4 3 2 x − 5 1 − 1 − 1 y = 8 2 5 5 z − 26 cioè Xb = y dove X è la matrice dei coefficienti (che contiene cioè i coefficienti delle incognite), b è il vettore delle incognite (o vetore delle soluzioni) e y è il vettore dei termini noti. Ai fini della risoluzione del sistema di equazioni bisogna ricavare il vettore delle incognite, cioè b = X-1 y quindi condizione fondamentale per la risoluzione di un sistema di equazione con il calcolo matriciale è che la matrice dei coefficienti abbia i determinante diverso da zero ed esista la sua inversa X-1 . Nel caso del sistema di equazioni considerato, l’inversa della matrice dei coefficienti sarà 0 0.714286 0.142867 X = 1 − 2.28571 − 0.85714 − 1 2 1 −1 Continuando quindi a sviluppare l’esempio 24 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta x 0 0.714286 0.142867 − 5 2 y = 1 − 2.28571 − 0.85714 8 = − 1 2 1 z − 1 − 26 − 5 X<-matrix(c(4,1,2,3,-1,5,2,-1,5),ncol=3) y<- matrix(c(-5,8,-26),ncol=1) invX<-solve(X) b<-invX%*%y b Esercizi…….. 25 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Uso delle matrici per lo studio delle relazioni fra due variabili. La disponibilità di più variabili misurate sulle stesse unità sperimentali può costituire un notevole vantaggio ai fini della comprensione del fenomeno oggetto di studio. Ciò dipende dal grado di relazione che esiste tra le variabili considerate. Due variabili si dicono statisticamente correlate quando la variazione dell’una non è indipendente dalla variazione dell’altra, cioè quando esse in qualche misura covariano. Il termine correlazione, ampiamente utilizzato anche nel linguaggio comune per indicare l’esistenza di una relazione fra più aspetti degli stessi oggetti, assume quindi nel campo statistico un significato ben preciso ed introduce al concetto della variazione comune a due variabili, cioè della loro covariazione. Nel miglioramento genetico degli animali in produzione zootecnica capita spesso di studiare relazioni fra due variabili, una delle quali è di tipo temporale. Ad esempio, nella tabella 1 sono riportati i valori di peso corporeo (espresso in chilogrammi) rilevato a diverse età (espresse in mesi) di una agnella di razza Sarda. Tabella 1. Evoluzione del peso corporeo di una agnella di razza sarda in funzione dell’età. Età (mesi) Peso (kg) 2 15.2 3 17 4 18.5 5 24.1 6 27.2 7 30.8 8 32.8 9 33.4 10 33 Le due variabili quindi sono il peso (un carattere produttivo di interesse zootecnico) e l’età dell’animale (variabile temporale). Una prima valutazione, qualitativa ma efficace, del legame esistente tra due le variabili viene fornita dalla rappresentazione grafica. In figura 1 vengono riportati i dati della tabella 1, ponendo in ascisse l’età dell’animale ed in ordinate il peso corporeo 26 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 35 Peso (kg) 30 25 20 15 10 0 5 Età (mesi) 10 Figura 1. Evoluzione del peso corporeo di una agnella di razza Sarda in funzione dell’età Dall’osservazione del grafico si nota come il peso dell’agnella aumenti all’aumentare dell’età con un andamento di tipo sigmoidale, noto come curva di crescita o di accrescimento. Il fenomeno dell’accrescimento, ben noto ed ampiamente studiato nelle specie di mammiferi, è il risultato dei processi metabolici che hanno luogo durante la fase di crescita di un animale: fenomeni di moltiplicazione cellulare, che caratterizzano le fasi di rapido accrescimento iniziale; fenomeni di maturazione e differenziazione dei tessuti e degli organi, che caratterizzano la seconda fase lenta che tende ad un plateau rappresentato dal peso dell’animale maturo. Passiamo ora a considerare il tutto da un punto di vista statistico: le due variabili che definiscono il problema sono il peso (cioè la variabile dipendente) e l’età (la variabile indipendente). La statistica che esprime il grado di relazione tra due x e y variabili è la covarianza (Sxy): Sxy = ∑ (x − x )⋅ (y − y) n −1 Essa esprime la quota di variabilità comune che presentano due variabili. Maggiore è la covarianza tra le due variabili, più stretta sarà la relazione tra esse. La covarianza relativa alle due variabili riportate in tabella 1 è 1.73. Essendo un prodotto di differenze, la covarianza ha però la caratteristica di non essere immediatamente interpretabile. Una misura di più facile lettura che esprime l’intensità con la quale due variabili x e y sono legate è il coefficiente di correlazione (r), che in effetti esprime la covarianza in termini standardizzati: 27 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta rxy = S xy S 2 xS 2 y dove Sxy = covarianza di x e y, S2x = varianza di x, S2 y = varianza di y. Nel nostro caso, la correlazione fra peso ed età (rpeso,età) è pari a 0.967. Tale valore del coefficiente di correlazione indica un legame stretto e positivo tra le due variabili (cioè variano nello stesso senso, all’aumentare dell’una aumenta l’altra e viceversa), peraltro ampiamente deducibile dell’andamento grafico (questa è una ottima ragione per iniziare qualsiasi processo di elaborazione dati con una rappresentazione grafica!). Per scopi pratici, però accade che una delle due variabili sia di difficile o costosa misurazione: ritornando all’esempio di figura 1, la rilevazione del peso delle agnelle (soprattutto nel caso di greggi numerosi) potrebbe rilevarsi piuttosto costosa o comunque non applicabile con la dovuta frequenza e complicata per poter essere applicata di routine, mentre la rilevazione dell’età non richiede particolari sforzi (tranne la corretta identificazione dell’animale e la registrazione della sua data di nascita). Lo sviluppo di un modello in grado di stimare il peso di una agnella in base alla sua età potrebbe avere pertanto una certa rilevanza pratica. Osservando i dati riportati nella figura 1, si nota come la relazione tra le due variabili possa essere considerata con buona approssimazione di tipo lineare e quindi rappresentabile con una retta. In realtà la curva di crescita viene studiata con funzioni più complesse della retta, come la logistica o l’equazione di Gompertz. Nel nostro caso, però, considerato l’andamento dei dati e lo scopo didattico dell’esempio, si può utilizzare una retta per modellizzare la curva. Dalla geometria analitica, l’equazione della retta y = b0 + bx dove b0 è l’intercetta, cioè il valore di y in corrispondenza del quale la retta interseca l’asse delle ordinate; b è la pendenza (o coefficiente angolare) della retta, fornisce cioè la variazione di y al variare di una unità di x. I termini b e b0 sono anche detti parametri della funzione (nel nostro caso, della retta). Nel caso in esame, la retta che rappresenta l’accrescimento in funzione dell’età si dirà retta di regressione dell’età sul peso, la cui formula è y = b0 + bx + e dove e rappresenta il residuo, cioè la differenza tra il dato previsto dalla retta di regressione ed il dato reale osservato. La retta di regressione non è una retta qualsiasi, ma è quella retta che soddisfa la condizione matematica di minimizzare la somma dei quadrati delle distanze dei punti reali da essa. In altre parole, è la retta che passa più vicina a tutti i punti dell’insieme di dati. Il metodo matematico che 28 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta consente di stimare, sulla base dei dati reali, i valori di b0 e b della retta che soddisfa tale condizione è detto metodo dei minimi quadrati (Least Squares). Lo sviluppo di tale metodo fornisce le seguenti formule, che consentono di calcolare la pendenza e l’intercetta della retta di regressione: b = rxy Sy SX [1] dove rxy è il coefficiente di correlazione fra le due variabili, Sx e Sy sono le rispettive deviazioni standard b 0 = y − bx [2] dove x e y sono le medie delle variabili x e y rispettivamente Applichiamo ora le formule [1] e [2] per il calcolo dei parametri della retta di regressione all’esempio del peso corporeo sull’età dell’animale: b = 0.967 × 7.34 = 2.595 2.74 b0 = 25.78 –(2.595*6) = 10.208 Quindi l’equazione della retta di regressione sarà: y = 10.208 + 2.595x + e [3] o, in altri termini peso = 10.208 + 2.595 · età + e In precedenza si è detto che il coefficiente di regressione rappresenta la variazione della variabile dipendente al variare di una unità della variabile indipendente. Nel caso specifico della retta che ci siamo calcolati, quindi, il valore del coefficiente di regressione indica che il peso aumenta di 2.59 29 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta kg per un aumento di un mese di età (ovviamente nell’agnella che abbiamo cons iderato nell’esempio). L’equazione [3] può essere adesso utilizzata per la stima dei valori del peso a partire dall’età. I valori della variabile dipendente stimati con la retta di regressione si indicano convenzionalmente ŷ . Ad esemp io, il valore stimato del peso per un’età di 10 mesi sarà: ŷ = 10.208 + 2.595*10= 36.158 Poiché però il vero valore di peso misurato a 10 mesi era pari a kg 33, la differenza y - ŷ = 33-36.158 = -3.158 rappresenta il residuo dalla retta di regressione (e) e, graficamente, costituisce la distanza dal punto sperimentale dalla retta di regressione. Allo stesso modo, utilizziamo l’equazione [3] per calcolare il peso stimato per tutte le età: Età (mesi) Peso reale Peso stimato Residuo 2 15.2 15.397 -0.197 3 17 17.992 -0.992 4 18.5 20.588 -2.088 5 24.1 23.183 0.917 6 27.2 25.778 1.422 7 30.8 28.373 2.427 8 32.8 30.968 1.83 9 33.4 33.563 -0.163 10 33 36.158 -3.158 Si possono ora aggiungere i dati del peso stimato al grafico riportato in figura 1 30 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 40 Peso (kg) 35 30 25 20 15 10 0 5 Età (mesi) 10 Figura 2. Valori del peso osservato (♦) e stimato con la retta di regressione Si può notare come i valori del peso stimato si trovino sulla retta di regressione. Le distanze fra i rombi (che rappresentano il valore realmente osservato del peso) ed il corrispondente valore sulla retta, rappresentano i residui. Una regressione può essere rappresentata da un sistema di equazioni y1 = b0 + b1 x1 + e1 y2 = b0 + b1 x2 + e2 ………………. yn = b0 + b1xn + en Come detto nel paragrafo precedente, un sistema di equazioni può essere scritto in forma matriciale. Nel caso della retta di regressione, quindi: y 1 1 y 2 1 = ... ... y n 1 x1 e1 x2 b0 e2 + ... b0 ì ... xn en [4] Si può notare come la matrice dei coefficienti contenga la prima colonna con gli elementi tutti pari ad uno. Questa colonna è necessaria perché nel modello è prevista l’intercetta (in termini geometrici, cioè, la retta non passa per l’origine ma interseca l’asse delle y in un punto b0 ). L’equazione della retta di regressione, detta anche regressione lineare semplice, può essere scritta in forma sintetica come 31 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta y = Xb + e dove y = vettore della variabile indipendente X = matrice dei valori della variabile indipendente b = vettore dei parametri del modello di regressione e = vettore dei residui Analogamente ŷ = Xb ŷ = vettore dei valori stimati della variabile indipendente X = matrice dei valori della variabile indipendente b = vettore dei parametri del modello di regressione Anche per il sistema di equazioni scritto in forma matriciale, il metodo dei minimi quadrati consente di ricavare delle soluzioni che permettono di stimare i parametri della retta di regressione. La seguenti equazioni (X' X)bˆ = X' y sono dette equazioni normali della regressione lineare semplice, la cui soluzione −1 bˆ = (X ' X ) X ' y [5] consente di stimare il vettore delle soluzioni b della regressione lineare semplice che soddisfano la condizione dei minimi quadrati. Ritorniamo all’esempio della regressione lineare semplice applicata alla curva di crescita dell’agnella di razza Sarda. Il sistema di equazioni scritto in forma matriciale, secondo la formula [4], è 32 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 15.2 1 2 e1 17 1 3 17 18.5 1 4 18.5 24.1 1 5 b0 24.1 27.2 = 1 6 + 27.2 b 30.8 1 7 30.8 32.8 1 8 32.8 33.4 1 9 33.4 33 1 10 33 y = X b+ e applichiamo ora la relazione [5] per trovare le stime del vettore dei parametri della regressione b. 1 2 1 3 1 4 1 5 1 1 1 1 1 1 1 1 1 9 45 X'X = 1 6 = 45 285 2 3 4 5 6 7 8 9 10 1 7 1 8 1 9 1 10 Dall’osservazione della struttura della matrice X’X si può notare come il primo elemento della diagonale si uguale al numero dei dati considerati nella regressione (9), il secondo sia pari alla somma dei quadrati delle x, mentre gli elementi fuori diagonale sono pari alla somma delle x. Cioè la struttura generale della matrice X’X è n X' X = ∑ x ∑ x ∑ x 2 Ora calcoliamo l’inversa − 0.1 0.711111 0.016667 − 0 .1 (X' X)−1 = 33 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta Si calcola quindi il prodotto X’y 15.2 17 18.5 24.1 1 1 1 1 1 1 1 1 1 232 X'y = 27.2 = 1547 .7 2 3 4 5 6 7 8 9 10 30.8 32.8 33.4 33 Infine si moltiplica (X’X)-1 per X’y − 0.1 232 10 .20778 0 .711111 −1 b = (X' X) X' y = = 0.016667 1547 .7 2.595 − 0.1 Come si può notare, il vettore delle soluzione dei parametri della regressione lineare semplice contiene gli stessi valori che erano stati precedentemente ottenuti con le formule [1] e [2]. Abbiamo quindi visto come la stima dei parametri di una retta di regressione semplice possa essere ottenuta attraverso l’impiego del calcolo matriciale. Per semplicità didattica, l’esempio considerato si riferiva ad un insieme di dati di numerosità estremamente ridotto, per cui, dal punto di vista calcolistico è indifferente l’uso delle formule [1] e [2] o quello delle soluzioni matriciali [5]. Nel caso però in cui debbano essere utilizzate grandi quantità di dati, come spesso capita nelle valutazioni genetiche, allora l’impiego del metodo matriciale è praticamente obbligato in quanto è l’unico che consente di gestire una grande mole di dati. Sviluppo dell’esempio soprariportato con R Y<-matrix(c(15.2,17,18.5,24.1,27.2,30.8,32.8,33.4,33),ncol=1) X<-matrix(c(1,1,1,1,1,1,1,1,1,2,3,4,5,6,7,8,9,10),ncol=2) X X1<-t(X) X1 X1X<-X1%*%X 34 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta X1X invX1X<-solve(X1X) invX1X X1Y<-X1%*%Y X1Y b<-invX1X%*%X1Y b 35 Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta 36