41. Elementi di algebra lineare#
L’analisi fattoriale è una tecnica di analisi multivariata e, perciò, richiede la comprensione di almeno alcuni concetti di base dell’algebra lineare. A livello minimale è necessario capire che cosa sono i vettori e le matrici, che cosa è il determinante di una matrice, e in che modo possano essere eseguite le operazioni algebriche su vettori e matrici. Questo Capitolo si pone l’obiettivo di chiarire le nozioni elencate sopra.
41.1. Vettori#
41.1.1. Vettori nello spazio euclideo#
Un vettore geometrico è un segmento orientato dotato di una lunghezza, una direzione e un verso. Spesso viene rappresentato con una freccia. Dato che i vettori non hanno posizione (ma solo direzione, verso e intensità), sono possibili rappresentazioni multiple dello stesso vettore. Nella discussione seguente, considereremo soltanto vettori che hanno origine nel punto (0, 0). Questo verrà chiarito dall’esempio seguente. La posizione di un punto nel piano può essere espressa nei termini di una coppia ordinata di numeri (\(x, y\)), le coordinate di quel punto. Tale coppia di valori rappresenta la distanza verticale dal punto a ciascuno degli assi coordinati.
Possiamo anche definire il punto \(P\) specificando la distanza e la direzione di \(P\) dall’origine, ovvero nei termini del vettore \(\overrightarrow{OP}\). A sua volta, questo vettore può essere espresso nei termini delle sue componenti nelle direzioni orizzontali e verticali:
Se volessimo specificare un punto in uno spazio a 3 dimensioni, avremmo:
In generale, un punto \(P\) in uno spazio a \(n\)-dimensioni sarà specificato da:
Dal punto di vista geometrico, dunque, un vettore rappresenta un punto in uno spazio \(n\)-dimensionale.
In \(\mathsf{R}\), un vettore è definito come
a <- c(1, 3, 2)
a
- 1
- 3
- 2
41.1.2. Somma e differenza di vettori#
La somma di due vettori è definita come
In \(\mathsf{R}\) abbiamo
a <- c(1, 3, 2)
b <- c(2, 8, 9)
a + b
- 3
- 11
- 11
La differenza di due vettori è
In \(\mathsf{R}\) abbiamo
a <- c(1, 3, 2)
b <- c(2, 8, 9)
a - b
- -1
- -5
- -7
41.1.3. Moltiplicazione scalare#
La moltiplicazione scalare di un vettore per un numero reale (o scalare) è data da
Dal punto di vista geometrico, la moltiplicazione scalare effettua una estensione o contrazione del vettore \(\boldsymbol{a}\), preservandone la direzione.
In \(\mathsf{R}\) abbiamo
a <- 2
x <- c(2, 8, 9)
a * x
- 4
- 16
- 18
41.1.4. Combinazione lineare#
Se \(\mathbf{v}_{1}, \dots, \mathbf{v}_{n}\) sono vettori e \(a_1, \dots, a_n\) sono scalari, allora la combinazione lineare di questi vettori con questi coefficienti scalari è data da
Per esempio, in \(\mathsf{R}\) possiamo aver
a <- c(2, 3, 4)
v1 <- c(2, 8, 3)
v2 <- c(4, 5, 1)
v3 <- c(1, 3, 2)
y <- a[1] * v1 + a[2] * v2 + a[3] * v3
y
- 20
- 43
- 17
41.1.5. Vettore 0 e vettore 1#
Il vettore 0 è costituito da \(n\) elementi, tutti uguali a 0. Il vettore 1 è costituito da \(n\) elementi, tutti uguali a 1.
In \(\mathsf{R}\) abbiamo
x <- rep(0, 5)
x
y <- rep(1, 5)
y
- 0
- 0
- 0
- 0
- 0
- 1
- 1
- 1
- 1
- 1
41.1.6. Ortogonalità tra vettori#
Due vettori si dicono ortogonali, e si scrive \(\boldsymbol{a} \bot \boldsymbol{b}\), se e solo se il loro prodotto scalare è nullo:
In \(\mathsf{R}\) abbiamo
v1 <- c(1, 1)
v2 <- c(-1, 1)
sum(v1 * v2)
41.1.7. Trasposta di un vettore#
In un vettore trasposto gli indici delle righe prendono il posto degli indici delle colonne, e viceversa.
In \(\mathsf{R}\) abbiamo
v1 <- c(1, 3, 7) %>%
as.matrix()
v1
1 |
3 |
7 |
Le dimensioni di v1
sono
dim(v1)
- 3
- 1
La trasposta di v1
è
v2 <- t(v1)
v2
1 | 3 | 7 |
e ha dimensioni
dim(v2)
- 1
- 3
41.1.8. Norma o lunghezza di un vettore#
Per il teorema di Pitagora, la norma di un vettore \((a_1, a_2)\) è \(\sqrt{a_1^2 + a_2^2}\) ed è denotata da \(\| (a_1, a_2) \|\). Infatti, se un vettore \(\boldsymbol{a}\) (l’ipotenusa) è la somma di due vettori ortogonali \(\boldsymbol{a}_1\) e \(\boldsymbol{a}_2\) (i cateti), allora la lunghezza al quadrato di \(\boldsymbol{a}\) è uguale alla somma dei quadrati delle lunghezze di \(\boldsymbol{a}_1\) e \(\boldsymbol{a}_2\).
Viene detta norma di \(\boldsymbol{a}\) la radice del prodotto scalare di un vettore per se stesso:
In \(\mathsf{R}\) abbiamo
sqrt(t(v1) %*% v1)
7.681146 |
41.2. Matrici#
Una matrice costituisce un insieme rettangolare di scalari ordinati per riga e colonna. Può anche essere vista come la raccolta di \(m\) vettori colonna di dimensione \(n\) o come la raccolta di \(n\) vettori riga di dimensione \(m\). Per esempio:
In \(\mathsf{R}\) abbiamo
M <- matrix(
c(1, 2, 3, 4, 5, 6),
ncol = 3,
byrow = TRUE)
M
1 | 2 | 3 |
4 | 5 | 6 |
41.2.1. Dimensioni della matrice#
I numeri interi \(m\) ed \(n\) si dicono dimensioni della matrice, ovvero \(\boldsymbol{A}\) si dice matrice di dimensioni \(m \times n\) o di ordine \(m \times n\). Nel caso presente, la matrice \(\boldsymbol{A}\) ha dimensioni \(2 \times 3\).
dim(M)
- 2
- 3
41.2.2. Matrice trasposta#
Si definisce matrice trasposta di \(\boldsymbol{A}\), e si denota con \(\boldsymbol{A}'\) oppure \(\boldsymbol{A}'\), la matrice \(\boldsymbol{B} = \boldsymbol{A}'\) di ordine \(n \times m\) cui elementi sono:
Per esempio,
41.2.3. Matrice simmetrica#
Se accade che \(\boldsymbol{A} = \boldsymbol{A}'\) allora la matrice è detta simmetrica.
\((\boldsymbol{A} + \boldsymbol{B})' = (\boldsymbol{A})' + (\boldsymbol{B})'\)
\((\boldsymbol{A} - \boldsymbol{B})' = (\boldsymbol{A})' - (\boldsymbol{B})'\)
\((\boldsymbol{a} + \boldsymbol{b})' = (\boldsymbol{a})' + (\boldsymbol{b})'\)
\((\boldsymbol{a} - \boldsymbol{b})' = (\boldsymbol{a})' - (\boldsymbol{b})'\)
41.2.4. Matrice quadrata o rettangolare#
Se \(m = n\) allora la matrice \(\boldsymbol{A}\) si dice quadrata di dimensione \(n\) o di ordine \(n\) altrimenti si dice rettangolare. Le righe di \(\boldsymbol{A}\) sono \([a_{11}\ a_{12}\ a_{13}]\) e \([a_{21}\ a_{22}\ a_{23}]\). Le colonne di \(\boldsymbol{A}\) sono \(\left[\begin{array}{c} a_{11} \\ a_{21} \end{array} \right]\), \(\left[ \begin{array}{c} a_{12} \\ a_{22} \end{array} \right]\) e \(\left[ \begin{array}{c} a_{13} \\ a_{23} \end{array} \right]\).
41.2.5. Diagonale principale#
Se \(i\) e \(j\) sono numeri interi con \(1 \leq i \leq m\) e \(1 \leq j \leq n\) allora l’elemento della matrice \(\boldsymbol{A}\) di dimensione \(m \times n\) che si trova in posizione (\(i, j\)) viene indicato con \(a_{ij}\). Gli elementi \(a_{ij}\) di una matrice quadrata \(\boldsymbol{A}\) di ordine \(n\) tali che \(i = j\) sono detti elementi principali o diagonali e formano la cosiddetta diagonale principale di \(\boldsymbol{A}\).
41.2.6. Matrice diagonale#
Se gli elementi \(a_{ij}\) di una matrice quadrata \(\boldsymbol{A}\) sono tali che \(a_{ij} =0\) e \(a_{ii} \neq 0\), allora la matrice \(\boldsymbol{A}\) viene detta matrice diagonale.
41.2.7. Matrice identità#
Si definisce matrice identità di ordine \(n\) la matrice quadrata diagonale \(\boldsymbol{I}_n\) avente tutti gli elementi principali uguali a \(1\):
La matrice identità ha la stessa funzione del numero “1” nel sistema dei numeri reali.
41.2.8. Matrici diagonali e triangolari#
Gli elementi di una matrice che si trovano al di sopra della diagonale principale sono detti sopradiagonali, mentre quelli che si trovano al di sotto della stessa diagonale principale sono detti sottodiagonali. Se una matrice ha tutti gli elementi sopradiagonali e sottodiagonali uguali a zero viene detta matrice diagonale. Se invece ha solo gli elementi sopradiagonali nulli allora viene detta triangolare inferiore. Se ha gli elementi sottodiagonali nulli allora è detta triangolare superiore.
41.2.9. Somma e sottrazione#
La somma e la sottrazione di due matrici sono operazioni definite elemento per elemento. Per sommare due matrici sommiamo gli elementi corrispondenti. Per sottrarre due matrici sottraiamo gli elementi corrispondenti. Si noti che queste operazioni hanno senso solo se le due matrici hanno le stesse dimensioni (altrimenti queste operazioni non sono definite). Per esempio,
A <- matrix(
c(-2, 5, 3, 1, 7, -6), nrow = 3, byrow = TRUE
)
A
-2 | 5 |
3 | 1 |
7 | -6 |
B <- matrix(
c(3, -2, 4, 5, 10, -3), nrow = 3, byrow = TRUE
)
B
3 | -2 |
4 | 5 |
10 | -3 |
A + B
1 | 3 |
7 | 6 |
17 | -9 |
A - B
-5 | 7 |
-1 | -4 |
-3 | -3 |
41.2.10. Moltiplicazione di scalari e matrici#
L’effetto della moltiplicazione di una matrice \(\boldsymbol{A}\) di qualsiasi dimensione per un numero reale b (scalare) è quello di moltiplicare ciascun elemento in \(\boldsymbol{A}\) per b. Questo è equivalente a sommare \(\boldsymbol{A}\) a se stessa b volte. Per esempio,
3 * A
-6 | 15 |
9 | 3 |
21 | -18 |
41.2.11. Proprietà della somma e differenza#
È facile verificare che la somma e la differenza cosı̀ definite godono delle proprietà commutativa e associativa. Siano \(k\) uno scalare e \(A\) e \(B\) due matrici aventi le stesse dimensioni. Allora
\(\boldsymbol{A}+ \boldsymbol{B} = \boldsymbol{B} + \boldsymbol{A}\)(Proprietà commutativa)
\(\boldsymbol{A} + (\boldsymbol{B} + \boldsymbol{C}) = (\boldsymbol{A} + \boldsymbol{B}) + \boldsymbol{C}\) (Proprietà associativa)
\(k(l\boldsymbol{A}) = (kl)\boldsymbol{A}\)
\(k(\boldsymbol{A} + \boldsymbol{B}) = k\boldsymbol{A} + k\boldsymbol{B}\)(Proprietà distributiva)
\((k+l)\boldsymbol{A} = k\boldsymbol{A} + l\boldsymbol{A}\)
\(1\boldsymbol{A} = \boldsymbol{A}\)
41.2.12. Prodotto di matrici#
La moltiplicazione di matrici non è un’operazione intuitiva come la somma e la differenza, ma fornisce uno strumento potente per eseguire una lunga serie di calcoli in un modo molto semplice. L’ordine è importante: il numero delle colonne della prima matrice deve essere uguale al numero di righe della seconda matrice. Quando ciò accade le matrici si dicono conformabili, altrimenti si dicono non conformabili.
Sia \(\boldsymbol{A}\) una matrice \(m \times p\) e \(\boldsymbol{B}\) una matrice \(p \times n\). Il prodotto tra le due matrici \(\boldsymbol{C} = \boldsymbol{AB}\) è la matrice di ordine \(m \times n\) il cui elemento generico è
Pertanto, il prodotto si effettua riga per colonna. È facile verificare che il prodotto tra matrici gode della proprietà associativa ma in generale non di quella commutativa. Vale invece la seguente proprietà:
Ad esempio, siano \(\boldsymbol{A}\) e \(\boldsymbol{B}\) le seguenti matrici
Calcoliamo la matrice \(\boldsymbol{C} = \boldsymbol{AB}\). L’elemento \(c_{ij}\) è uguale alla somma dei prodotti degli elementi della i-esima riga di \(\boldsymbol{A}\) per la j-esima colonna di \(\boldsymbol{B}\).
\(c_{11} = (-2) \cdot 3 + 1 \cdot 4 + 1 \cdot 1 = -1\)
\(c_{12} = (-2) \cdot (-2) + 1 \cdot 5 + 1 \cdot (-3) = 6\)
\(c_{13} = (-2) \cdot 3 + 1 \cdot 0 + 1 \cdot 1 = -1\)
\(c_{21} = 1 \cdot 3 + 1 \cdot 4 + 4 \cdot 1 = 11\)
\(c_{22} = 1 \cdot (-2) + 1 \cdot 5 + 4 \cdot (-3) = -9\)
\(c_{23} = 1 \cdot 3 + 1 \cdot 0 + 4 \cdot 1 = 5\)
\(c_{31} = 2 \cdot 3 +(-3) \cdot 4 + 2 \cdot 1 = -4\)
\(c_{32} = 2 \cdot (-2) +(-3) \cdot 5 + 2 \cdot (-3) = -25\)
\(c_{33} = 2 \cdot 1 + (-3) \cdot 0 + 2 \cdot 1 = 4\)
In definitiva
A = matrix(
c(-2, 1, 1, 1, 1, 4, 2, -3, 2),
nrow = 3,
byrow = TRUE
)
A
-2 | 1 | 1 |
1 | 1 | 4 |
2 | -3 | 2 |
B = matrix(
c(3, -2, 1, 4, 5, 0, 1, -3, 1),
nrow = 3,
byrow = TRUE
)
B
3 | -2 | 1 |
4 | 5 | 0 |
1 | -3 | 1 |
A %*% B
-1 | 6 | -1 |
11 | -9 | 5 |
-4 | -25 | 4 |
Calcolando il prodotto \(\boldsymbol{D} = \boldsymbol{BA}\) si trova invece:
da cui risulta evidente che \(\boldsymbol{AB} \neq \boldsymbol{BA}\).
B %*% A
-6 | -2 | -3 |
-3 | 9 | 24 |
-3 | -5 | -9 |
41.2.13. Proprietà del prodotto di matrici#
\(\boldsymbol{A}(\boldsymbol{B} + \boldsymbol{C}) = \boldsymbol{AB} + \boldsymbol{AC}\)
\((\boldsymbol{A} + \boldsymbol{B})\boldsymbol{C} = \boldsymbol{AC} + \boldsymbol{BC}\)
Per qualunque matrice \(\boldsymbol{A}\), \(\boldsymbol{A}'\boldsymbol{A}\) sarà una matrice quadrata.
\((\boldsymbol{AB})' = \boldsymbol{B}'\boldsymbol{A}'\)
41.2.14. Casi particolari#
La matrice identità è l’elemento neutro per il prodotto, cioè se \(\boldsymbol{I}\) è una matrice \(n \times n\) si ha
Per esempio,
In R la matrice identità si crea nel modo seguente.
diag(2)
1 | 0 |
0 | 1 |
Dunque
A <- matrix(
c(2, 3, -1, 1, 4, 7),
nrow = 2, byrow = TRUE
)
A
2 | 3 | -1 |
1 | 4 | 7 |
diag(2) %*% A
2 | 3 | -1 |
1 | 4 | 7 |
A %*% diag(3)
2 | 3 | -1 |
1 | 4 | 7 |
Un secondo caso particolare si verifica quando una matrice è costituita da un’unica colonna o un’unica riga. Se la matrice \(\boldsymbol{A}\) si riduce ad una sola colonna (o una sola riga) e viene detta vettore colonna (o riga) ad \(m\) elementi o componenti. Un vettore colonna è una matrice \(n \times 1\); un vettore riga è una matrice \(1 \times m\). Se \(\boldsymbol{a}\) è un vettore colonna di \(m\) elementi allora \(\boldsymbol{a}'\) è un vettore riga sempre di \(m\) elementi.
Per le operazioni tra vettori valgono le stesse regole viste per le matrici, cioè la somma e la differenza sono possibili tra vettori dello stesso tipo e con lo stesso numero di componenti. La moltiplicazione è possibile tra una matrice e un vettore di dimensioni appropriate, e tra due vettori di dimensioni appropriate. In questo secondo caso, distinguiamo tra prodotto interno e prodotto esterno.
41.2.15. Operazioni tra vettori#
Il prodotto interno (o scalare) di un vettore \(\boldsymbol{a}'\) \(1 \times n\) che premoltiplica un vettore \(\boldsymbol{b}\) \(n \times 1\) produce uno scalare:
Dati due vettori \(\boldsymbol{a}\), \(\boldsymbol{b}\) di ordini \(n \times 1\) e \(m \times 1\), il prodotto esterno \(\boldsymbol{C} = \boldsymbol{ab}'\) è una matrice \(n \times m\) di elementi \(c_{ij} = a_i b_j\).
41.2.16. Prodotto interno#
Siano \(\boldsymbol{a}\) e \(\boldsymbol{b}\) i seguenti vettori:
Il prodotto interno è:
Osserviamo che tale operazione gode della proprietà commutativa, poichè \(\boldsymbol{b}'\boldsymbol{a}=7\).
a <- matrix(
c(1, 2, 3),
nrow = 3,
byrow = TRUE
)
a
1 |
2 |
3 |
b <- matrix(
c(-1, -2, 4),
nrow = 3,
byrow = TRUE
)
b
-1 |
-2 |
4 |
t(a) %*% b
7 |
41.2.17. Prodotto esterno#
Il prodotto esterno è la matrice
a %*% t(b)
-1 | -2 | 4 |
-2 | -4 | 8 |
-3 | -6 | 12 |
Tale prodotto non gode della proprietà commutativa, infatti:
b %*% t(a)
-1 | -2 | -3 |
-2 | -4 | -6 |
4 | 8 | 12 |
41.2.18. Traccia di una matrice#
Si definisce traccia di una matrice quadrata \(\boldsymbol{A}\) \(n \times n\), e si denota con \(tr(\boldsymbol{A})\) la somma degli elementi sulla diagonale principale di \(\boldsymbol{A}\):
La traccia gode delle seguenti proprietà:
Per esempio, sia
allora
A <- matrix(
c(7,1, 2, 1, 8, 3, 2, 3, 9),
nrow = 3,
byrow = TRUE
)
A
7 | 1 | 2 |
1 | 8 | 3 |
2 | 3 | 9 |
sum(diag(A))
41.2.18.1. Dipendenza lineare#
Si consideri la matrice
Siano \(\boldsymbol{c}_1\), \(\boldsymbol{c}_2\), \(\boldsymbol{c}_3\) le colonne di \(\boldsymbol{A}\). Si noti che
dove \(\boldsymbol{0}\) è un vettore (\(3 \times 1\)) di zeri.
Dato che le 3 colonne di \(\boldsymbol{A}\) possono essere combinate linearmente in modo da produrre un vettore \(\boldsymbol{0}\) vi è chiaramente una qualche forma di relazione, o dipendenza, tra le informazioni nelle colonne. Detto in un altro modo, sembra esserci una qualche duplicazione delle informazione nelle colonne. In generale, si dice che \(k\) colonne \(\boldsymbol{c}_1, \boldsymbol{c}_2, \dots \boldsymbol{c}_k\) di una matrice sono linearmente dipendenti se esiste un insieme di valori scalari \(\lambda_1, \dots, \lambda_k\) tale per cui
e almeno uno dei valori \(\lambda_i\) non è uguale a 0.
La dipendenza lineare implica che ciascun vettore colonna è una combinazione degli altri. Per esempio
Questo implica che tutta “l’informazione” della matrice è contenuta in un sottoinsieme delle colonne – se \(k-1\) colonne sono conosciute, l’ultima resta determinata. È in questo senso che abbiamo detto che l’informazione della matrice veniva “duplicata”.
Se l’unico insieme di valori scalari \(\lambda_i\) che soddisfa l’equazione
è un vettore di zeri, allora questo significa che non vi è alcuna relazione tra le colonne della matrice. Le colonne si dicono linearmente indipendenti, nel senso che non contengono alcuna “duplicazione” di informazione.
41.2.19. Rango di una matrice#
Il rango della matrice è il massimo numero di vettori colonna linearmente indipendenti che possono essere selezionati dalla matrice. In maniera equivalente, il rango di una matrice può essere definito come il massimo numero di vettori riga linermente indipendenti. Il rango minimo di una matrice è 1, il che significa che vi è una colonna tale per cui le altre colonne sono dei multipli di questa. Per l’esempio precedente, il rango della matrice \(\boldsymbol{A}\) è 2.
Se la matrice è quadrata, \(\boldsymbol{A}_{n \times n}\), ed è costituita da vettori tutti indipendenti tra di loro, allora il suo rango è \(n\). Se, invece, la matrice è rettangolare, \(\boldsymbol{A}_{m \times n}\), allora il suo rango può essere al massimo il più piccolo tra i due valori m ed n, cioè:
41.2.20. Matrice inversa#
L’inversa di una matrice quadrata è l’analogo del reciproco per gli scalari. Se \(b\) è uno scalare e \(b=0\), allora il reciproco di \(b\), \(1/b\) non esiste – non è definito. Allo stesso modo, vi sono delle matrici che “si comportano come lo 0” e per le quali l’inversa non è definita. Tali matrici si dicono singolari.
Sia \(\boldsymbol{A}\) una matrice quadrata di dimensione \(n\). Si definisce matrice inversa la matrice, denotata con \(\boldsymbol{A}^{-1}\), che premoltiplicata o postmoltiplicata per \(\boldsymbol{A}\) fornisce la matrice identità:
La condizione per l’esistenza e l’unicità di \(\boldsymbol{A}^{-1}\) è che le colonne di \(\boldsymbol{A}\) siano linearmente indipendenti.
Nel caso di una matrice diagonale la determinazione della matrice inversa risulta immediata: \(\boldsymbol{D}^{-1}= diag(1/d_1, \dots, 1/d_n)\). Nel caso di una matrice non diagonale, la matrice inversa si trova usando il computer dove complicate formule per matrici di qualunque dimensione sono implementate in vari software. Solo per matrici di piccole dimensioni sono disponibili semplici espressioni analitiche per il calcolo della matrice inversa.
Per esempio, sia
allora
e
A <- matrix(
c(3, 4, 2, 6),
nrow = 2,
byrow = TRUE
)
A
3 | 4 |
2 | 6 |
solve(A)
0.6 | -0.4 |
-0.2 | 0.3 |
A %*% solve(A)
1 | 0 |
0 | 1 |
solve(A) %*% A
1 | 0 |
0 | 1 |
Se \(\boldsymbol{A}\) e \(\boldsymbol{B}\) sono due matrici non singolari aventi le stesse dimensioni, allora l’inversa del loro prodotto è uguale al prodotto delle loro inverse nella sequenza opposta:
B <- matrix(
c(1, 2, 9, 7),
nrow = 2,
byrow = TRUE
)
B
1 | 2 |
9 | 7 |
solve(A %*% B)
-0.4181818 | 0.3090909 |
0.5090909 | -0.3545455 |
solve(B) %*% solve(A)
-0.4181818 | 0.3090909 |
0.5090909 | -0.3545455 |
L’inversa della trasposta di una matrice non singolare è uguale alla trasposta dell’inversa:
solve(t(A))
0.6 | -0.2 |
-0.4 | 0.3 |
t(solve(A))
0.6 | -0.2 |
-0.4 | 0.3 |
41.2.21. Determinante di una matrice#
Sia \(\boldsymbol{A}\) una matrice quadrata. Il determinante di \(\boldsymbol{A}\) è uno scalare, \(|\boldsymbol{A}|\), il cui valore assoluto misura il volume del parallelepipedo delimitato dalle colonne di \(\boldsymbol{A}\). Nel caso della matrice identità il volume è pari a 1, per cui \(|\boldsymbol{I}| =1\). Per una matrice diagonale \(\boldsymbol{D} = diag(d_1, \dots, d_n)\) si ha
Per una matrice \(2 \times 2\)
il determinante di \(\boldsymbol{A}\) vale:
Per esempio:
Il determinante è definito anche per matrici di dimensioni superiori anche se, in quel caso, i calcoli sono molto più complessi (una volta ancora, si usi il computer!).
A <- matrix(
c(1, -2, 3, 9),
nrow = 2,
byrow = TRUE
)
A
1 | -2 |
3 | 9 |
det(A)
41.2.22. Determinante e inversa#
Vi è una relazione tra il determinante e l’inversa di una matrice. Se la matrice \(\boldsymbol{A}\) ha dimensioni \(2 \times 2\) l’inversa di \(\boldsymbol{A}\) si trova nel modo seguente
Anche per le matrici di dimensioni maggiori la matrice inversa è definita nei termini del determinante, ma le formule di calcolo sono molto più complesse.
Per esempio, sia
allora
In precedenza abbiamo detto che, in alcuni casi, una matrice “si comporta come lo 0.” Il determinante di una matrice è ci dice quando una matrice “si comporta come lo 0.” \(|\boldsymbol{A}| = 0\), infatti, se una riga (o una colonna) è una combinazione lineare di due (o più) righe (o colonne) di \(\boldsymbol{A}\).
Per esempio, nel caso di una matrice (\(2 \times 2\))
supponiamo che
Allora
e
In conclusione, se il determinante è uguale a zero, allora la matrice inversa non esiste. Nel caso di una matrice (\(2 \times 2\)), infatti, la formula dell’inversa richiede la divisione per \(a_{11}a_{22}-a_{12}a_{21}\) che, nel caso di una matrice singolare, è uguale a zero.
A <- matrix(
c(2, 4, 3, 6),
nrow = 2,
byrow = TRUE
)
A
2 | 4 |
3 | 6 |
det(A)
# solve(A)
41.2.23. Proprietà del determinante#
\(|\boldsymbol{A}'| = |\boldsymbol{A}|\).
Se \(\boldsymbol{A}\) contiene una colonna o una riga i cui elementi sono tutti 0, allora \(|\boldsymbol{A}|=0\).
Se \(\boldsymbol{A}\) contiene due colonne (o righe) identiche, allora \(|\boldsymbol{A}|=0\).
\(|\boldsymbol{A}| = 0\) se una riga (o una colonna) è combinazione lineare di due (o più) righe (o colonne) di \(\boldsymbol{A}\).
\(|\boldsymbol{A}| = 1/|\boldsymbol{A}^{-1}|\).
\(|\boldsymbol{I}| = 1\).
\(|\boldsymbol{A} \boldsymbol{B}| = |\boldsymbol{A}| |\boldsymbol{B}|\).
Per una matrice quadrata \(\boldsymbol{A}\), le seguenti affermazioni sono equivalenti: \(\boldsymbol{A}\) è non singolare, \(|\boldsymbol{A}|\neq 0\), \(\boldsymbol{A}^{-1}\) esiste.
41.2.24. Radici e vettori latenti#
Dal determinante di una matrice si possono ricavare le radici latenti o autovalori (denotati da \(\lambda_i\)) e i vettori latenti o autovettori della matrice. Alle nozioni di autovalore e autovettore verrà qui fornita un’interpretazione geometrica.
Simuliamo di dati di due variabili associate tra loro:
library("car")
set.seed(123456)
npoints <- 20
x <- as.numeric(scale(rnorm(npoints, 0, 1)))
y <- as.numeric(scale(3 * x + rnorm(npoints, 0, 2)))
mean(x)
mean(y)
cor(x, y)
Loading required package: carData
Attaching package: ‘car’
The following object is masked from ‘package:dplyr’:
recode
The following object is masked from ‘package:purrr’:
some
Disegnamo il diagramma di dispersione con un ellisse che contiene la nube di punti:
Y <- cbind(x, y)
car::dataEllipse(
Y[, 1], Y[, 2],
levels = 0.95,
lty = 2,
ylim = c(-3, 3),
xlim = c(-3, 3)
)
![_images/512adeca6dcc4b23738c851c8f14ae652467f28b4736f8712bb8051560a6d783.png](_images/512adeca6dcc4b23738c851c8f14ae652467f28b4736f8712bb8051560a6d783.png)
Se racchiudiamo le osservazioni (\(v_1, v_2\)) con un’ellisse, allora la lunghezza dei semiassi maggiori e minori dell’ellisse sarà proporzionale a \(\sqrt{\lambda_1}\) e \(\sqrt{\lambda_2}\). L’asse maggiore è la linea passante per il punto (\(\bar{v_1}, \bar{v_2}\)) nella direzione determinata dal primo autovettore \(\boldsymbol{a}_1'\) con pendenza uguale a \(a_{12}/a_{11}\). L’asse minore è la linea passante per il punto (\(\bar{v_1}, \bar{v_2}\)) nella direzione determinata dal secondo autovettore \(\boldsymbol{a}_2\).
Calcoliamo ora gli autovettori e gli autovalori:
s <- cov(Y)
ee <- eigen(s)
Disegniamo gli assi dell’ellisse:
car::dataEllipse(
Y[, 1], Y[, 2],
levels = 0.95,
lty = 2,
ylim = c(-3, 3),
xlim = c(-3, 3)
)
k <- 2.65
arrows(
0, 0,
k * sqrt(ee$values[1]) * ee$vectors[1],
k * sqrt(ee$values[1]) * ee$vectors[2],
code = 2,
col = "red",
lwd = 2
)
arrows(
0, 0,
k * sqrt(ee$values[2]) * ee$vectors[1],
k * sqrt(ee$values[2]) * -ee$vectors[2],
code = 2,
col = "red",
lwd = 2
)
![_images/c2ad51f2af3153d974e76aa154e9e53cf39f9379007dc58e5af9724d96dea96b.png](_images/c2ad51f2af3153d974e76aa154e9e53cf39f9379007dc58e5af9724d96dea96b.png)
Tale analisi si può estendere a qualunque numero di variabili. Per esempio, nel caso di tre variabili, possiamo pensare di disegnare un ellisoide attorno ad una nube di punti nello spazio tridimensionale. Anche in questo caso, gli autovalori e gli associati autovettori corrisponderanno agli assi dell’elissoide.
41.2.25. Scomposizione spettrale di una matrice#
Data una matrice quadrata e simmetrica di dimensione \(n\), \(\boldsymbol{A}\), esistono una matrice diagonale \(\boldsymbol{\Lambda}\) e una matrice ortogonale \(\boldsymbol{V}\) tali che
dove
\(\boldsymbol{\Lambda}\) è una matrice diagonale i cui elementi sono gli autovalori di \(\boldsymbol{A}\): \(\boldsymbol{\Lambda} = diag(\lambda_1, \lambda_2, \dots, \lambda_n)\);
\(\boldsymbol{V}\) è una matrice ortogonale le cui colonne \((v_1, v_2, \dots, v_p)\) sono gli autovettori di \(\boldsymbol{A}\) associati ai rispettivi autovalori.
In maniera equivalente
Premoltiplicando entrambi i membri per \(\boldsymbol{V}'\) si ottiene
da cui l’affermazione che la matrice degli autovettori diagonalizza \(\boldsymbol{A}\).
Per esempio,
sigma <- matrix(
data = c(1, 0.5, 0.5, 1.25),
nrow = 2,
ncol = 2
)
sigma
1.0 | 0.50 |
0.5 | 1.25 |
out <- eigen(sigma)
out
eigen() decomposition
$values
[1] 1.6403882 0.6096118
$vectors
[,1] [,2]
[1,] 0.6154122 -0.7882054
[2,] 0.7882054 0.6154122
Lambda <- diag(out$values)
Lambda
1.640388 | 0.0000000 |
0.000000 | 0.6096118 |
U <- out$vectors
U
0.6154122 | -0.7882054 |
0.7882054 | 0.6154122 |
U %*% Lambda %*% t(U)
1.0 | 0.50 |
0.5 | 1.25 |
41.2.26. Autovalori e determinante#
Il determinante di una matrice è il prodotto degli autovalori:
La traccia di una matrice è uguale alla somma degli autovalori:
sigma <- matrix(data = c(1, 0.5, 0.5, 2), nrow = 2, ncol = 2)
sigma
out <- eigen(sigma)
out
1.0 | 0.5 |
0.5 | 2.0 |
eigen() decomposition
$values
[1] 2.2071068 0.7928932
$vectors
[,1] [,2]
[1,] 0.3826834 -0.9238795
[2,] 0.9238795 0.3826834
La traccia di una matrice è uguale alla somma degli autovalori:
sum(out$values)
Il determinante di una matrice è il prodotto degli autovalori:
det(sigma)
out$values[1] * out$values[2]
Gli autovalori di \(\boldsymbol{A}^{-1}\) sono i reciproci degli autovalori di \(\boldsymbol{A}\); gli autovettori sono coincidenti.