1 Derivazione usando solo la regressione lineare semplice.

1.1 Inizializzazione:

vengono caricati i packages necessari per realizzare questo documento

Data Frame Summary

dati

Dimensions: 1427 x 3
Duplicates: 146
No Variable Stats / Values Freqs (% of Valid) Graph
1 Altezza [numeric] Mean (sd) : 151.9 (10.1) min < med < max: 127 < 151 < 183 IQR (CV) : 15 (0.1) 54 distinct values
2 Torace [numeric] Mean (sd) : 75.6 (7.8) min < med < max: 57 < 74 < 104 IQR (CV) : 10 (0.1) 44 distinct values
3 Peso [numeric] Mean (sd) : 45 (10.7) min < med < max: 21 < 43 < 100 IQR (CV) : 14 (0.2) 65 distinct values

Generated by summarytools 0.9.6 (R version 4.0.2)
2020-09-16

1.2 Primo esempio con tre variabili

Variabili osservate: Matrice di grafici per le sole variabili Altezza, Torace, Peso rilevate su 1427 righe

source

round(cor(dati),3)

output

        Altezza Torace  Peso
Altezza   1.000  0.587 0.724
Torace    0.587  1.000 0.912
Peso      0.724  0.912 1.000

source

MLA.explor.pairs(dati)

plot

source

plot3d(dati,type="s", size=1,col="blue")
k=4

You must enable Javascript to view this page properly.

Primo esempio con tre sole variabili:

Come misurare la correlazione fra le prime due variabili Altezza e Torace tenendo conto dell’influenza della terza variabile Peso?

Possiamo intanto vedere cosa succede dividendo l’intervallo della variabile Peso in 4 parti e rappresentando le prime due variabili per i soggetti di ciascun intervallo:

source

fac=0.01; inc=diff(range(dati$Peso))*fac
xmin=min(dati$Peso)-inc; xmax=max(dati$Peso)+inc
h=(xmax-xmin)/k
group=trunc((dati$Peso-xmin)/h+1)
table(group)

output

group
  1   2   3   4 
557 755 107   8 

source

par(mfrow=c(2,2))
for(i in 1:k)MLA.explor.plot2D(dati$Altezza[group==i],dati$Torace[group==i])
Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : pseudoinverse used at 175.06
Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : neighborhood radius 3.055
Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : reciprocal condition number 0
Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : There are other near singularities as
well. 1

plot

source

rgl.close()

Vediamo che la relazione cambia, ma ha un inclinazione diversa per i diversi livelli della terza variabile. Meglio cercare di levare l’influenza della variabile Peso in altro modo.

1.3 Correlazione fra residui

Il modo migliore, nell’ambito delle relazioni di tipo lineare, è prendere i residui delle regressioni lineari di Altezza e Torace rispetto a Peso.

source

lm1=lm(Altezza~Peso,data=dati)
lm2=lm(Torace~Peso,data=dati)
par(mfrow=c(1,2))
plot(lm1,1)
plot(lm2,1)

plot

source

cor.parz=round(cor(residuals(lm1),residuals(lm2) ),3)

A questo punto residuals(lm1) e residuals(lm2) non sono più influenzate almeno linearmente, dalla terza variabile, e quindi la correlazione fra questi residui -0.256 è la misura di correlazione parziale che cercavamo.

E’ come dire che stiamo misurando la correlazione fra Altezza e Torace a parità di peso oppure avendo eliminato l’influenza del peso

plot

Nel caso particolare di questo esempio non è difficile figurarsi perchè vi è addirittura il cambio di segno nel passaggio dalla correlazione semplice fra Altezza e Torace a quella parziale: considerare l’influenza della variabile Peso fa passare da 0.59 a -0.256.

Sottolineo anche che l’appropriatezza di un indice o di un altro, come sempre, dipende da cosa si vuole misurare. Non si pensi che uno dei due indici sia e l’altro sbagliato, semplicemente misurano due cose diverse

La formula esatta è: \(r_{12.3}=\frac{r_{12}-r_{13}r_{23} } {\sqrt{1-r_{13}^2}\sqrt{1-r_{23}^2}}\).

Si veda eventualmente la dimostrazione nella parte teorica.

Nel nostro caso:

source

    R=cor(dati)
r12.3=(R[1,2]-R[1,3]*R[2,3])/(sqrt(1-R[1,3]^2)*sqrt(1-R[2,3]^2))
print(r12.3)

output

[1] -0.2562478

source

print(cor(lm1$residuals,lm2$residuals))

output

[1] -0.2562478

Ovviamente questo risultato, ricavato attraverso correlazione fra residui, coincide con il risultato ottenuto dalla formula di \(r_{12.3}\)

1.3.1 Derivazione analitica di \(r_{12.3}\)

Per derivare \(r_{12.3}\) con questa impostazione, occorre richiamare soltanto alcuni risultati della regressione lineare semplice.

Intanto ricaviamo i valori dei residui \(w_{i1}, \quad w_{i2}\) in funzione dei valori originali \(x_{i1}, \quad x_{i2} , \quad x_{i3}\).

Sappiamo dalla regressione lineare semplice che:

\[ w_{i1}=x_{i1}-(a_{13}+b_{13}x_{i3}) =\overline{x}_{i1}-b_{13}\overline{x}_{i3} = \overline{x}_{i1}- \frac{\sum_{j=1}^{n}\overline{x}_{j1}\overline{x}_{j3}}{\sum_{j=1}^{n}\overline{x}_{j3}^2} \overline{x}_{i3} \] (con indico lo scarto da M, media aritmetica di X. Nell’espressione precedente a secondo membro il residuo \(i\)-esimo è espresso in funzione della regressione fra le variabili originarie, mentre nel terzo membro è espresso in funzione della regressione fra variabili scartate dalle rispettive medie; nel quarto membro si è esplicitato \(b_{13}\) )

E’ più comodo adesso passare alla notazione vettoriale, per cui con \(\overline{\mathbf{x}}_r \, (r=1,2,3)\) indico il vettore (colonna) degli scarti
relativi alla \(r-\)esima variabile:

\[ \overline{\mathbf{x}}_r=\left( \begin{array}{c} x_{1r}-M_r\\ x_{2r}-M_r\\ \vdots\\ x_{jr}-M_r\\ \vdots\\ x_{nr}-M_r\\ \end{array} \right) \qquad (r=1,2,3) \]

Tornando all’espressione dei residui abbiamo:

\[ w_{i1}=x_{i1}-(a_{13}+b_{13}x_{i3}) = \overline{x}_{i1}-\frac{\sum_{j=1}^{n}\overline{x}_{j1}\overline{x}_{j3}}{\sum_{j=1}^{n}\overline{x}_{j3}^2} \overline{x}_{i3}= \] \[ =\overline{x}_{i1}-\overline{x}_{i3} \frac{\overline{\mathbf{x}}_3^{\mathsf{T}} \overline{\mathbf{x}}_1 }{\overline{\mathbf{x}_3}^{\mathsf{T}}\overline{\mathbf{x}_3}} \]

Adesso riesprimiamo l’intero vettore dei residui \(\mathbf{w}_1\), ottenendo:

\[ \mathbf{w}_1=\mathbf{x}_1-(a_{13}+b_{13}\mathbf{x}_3) =\overline{\mathbf{x}}_1-\overline{\mathbf{x}}_3 \frac{\overline{\mathbf{x}}_3^{\mathsf{T}} \overline{\mathbf{x}}_1 } {\overline{\mathbf{x}_3}^{\mathsf{T}}\overline{\mathbf{x}_3}} = \] (mettendo in evidenza a destra il vettore \(\overline{\mathbf{x}_1}\)) \[ =\left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_1 \]

(si noti che \(\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}\) è una matrice $(n n) $, mentre \(\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3\) è uno scalare)

E’ utile notare anche che la matrice $ $ è idempotente

A questo punto applichiamo questa formula anche alla colonna dei residui dell’altra variabile \(\mathbf{w}_2\) (residui della relazione di dipendenza lineare di $ X_2 $ da $ X_3 $ ):

\[ \mathbf{w}_2=\left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_2 \]

Adesso finalmente costruiamo l’indice di correlazione lineare parziale:

\[ r_{12.3}=\mbox{correlazione lineare}\left(W_1,W_2\right)= \frac{\mathbf{w}_2^{\mathsf{T}}\mathbf{w}_1} {\sqrt{\mathbf{w}_1^{\mathsf{T}}\mathbf{w}_1}\sqrt{\mathbf{w}_2^{\mathsf{T}}\mathbf{w}_2}}= \] \[ =\frac{\overline{\mathbf{x}}_2^{\mathsf{T}} \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right] \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_1} { \sqrt{\overline{\mathbf{x}}_1^{\mathsf{T}} \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right] \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_1} \sqrt{\overline{\mathbf{x}}_2^{\mathsf{T}} \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right] \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_2} } \] (ricordando tutte le proprietà viste in questa sezione ed applicando l’idempotenza della matrice$ $ ) \[ =\frac{\overline{\mathbf{x}}_2^{\mathsf{T}} \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_1} { \sqrt{\overline{\mathbf{x}}_1^{\mathsf{T}} \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_1} \sqrt{\overline{\mathbf{x}}_2^{\mathsf{T}} \left[\mathbf{I}-\frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\right]\overline{\mathbf{x}}_2} } \] Per farla breve, si vede che le quantità a denominatore sono le radici quadrate delle devianze residue (cosa che si sapeva già dalla costruzione dell’indice di correlazione), per cui sono proporzionali a \(\sqrt{1-r_{j3}^2}\), \(j=1,2\). A numeratore esplicitiamo il prodotto (raccogliendo i termini \(\overline{\mathbf{x}}_2^{\mathsf{T}}\overline{\mathbf{x}}_3\) e \(\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_1\):

\[ r_{12.3}=\dots=\frac{\overline{\mathbf{x}}_2^{\mathsf{T}}\overline{\mathbf{x}}_1- \overline{\mathbf{x}}_2^{\mathsf{T}} \frac{\overline{\mathbf{x}}_3 \overline{\mathbf{x}}_3^{\mathsf{T}}}{\overline{\mathbf{x}}_3^{\mathsf{T}}\overline{\mathbf{x}}_3}\overline{\mathbf{x}}_1} {\sqrt{1-r_{13}}^2\sqrt{1-r_{23}}^2 \sqrt{Dev(X_1)}\sqrt{Dev(X_2)} }= \] \[ =\frac{r_{12}\sqrt{Dev(X_1)}\sqrt{Dev(X_2)}- \frac{r_{13}\sqrt{Dev(X_1)}\sqrt{Dev{X_3}}r_{23}\sqrt{Dev(X_2)}\sqrt{Dev{X_3}} }{Dev{X_3}} } {\sqrt{1-r_{13}^2}\sqrt{1-r_{23}^2} \sqrt{Dev(X_1)}\sqrt{Dev(X_2)} }= \] (semplificando tutte le devianze) \[ \frac{r_{12}-r_{13}r_{23} } {\sqrt{1-r_{13}^2}\sqrt{1-r_{23}^2}} \]

1.4 Derivazione usando la regressione lineare multipla.

link diretto alla matrice di grafici per le sole variabili Altezza, Torace, Peso rilevate su 1427 righe e grafico in 3d delle stesse tre variabili

1.5 Correlazione parziale

Esempio con tre sole variabili:

Ci poniamo ancora il problema di come misurare la correlazione fra le prime due variabili Altezza e Torace tenendo conto dell’influenza di una terza variabile Peso.

Stavolta utilizziamo un approccio tecnicamente diverso (che ci porterà allo stesso risultato numerico), basato sulla regressione lineare multipla:

Piano di regressione di \(X_1\) su \(X_2,X_3\): \[ X_1=\hat{\beta}_{12.3}X_2+\hat{\beta}_{13.2}X_3 \] Piano di regressione di \(X_2\) su \(X_1,X_3\):

\[ X_2=\hat{\beta}_{21.3}X_1+\hat{\beta}_{23.1}X_3 \] Se consideriamo ora l’intersezione di questi due piani con un piano con \(X_3\) costante, otteniamo due rette di regressione parziale. La media geometrica di questi due coefficienti ci fornisce l’indice di correlazione parziale:

\[ r_{12.3}=\sqrt{\hat{\beta}_{12.3}\hat{\beta}_{21.3}} \]

You must enable Javascript to view this page properly.

You must enable Javascript to view this page properly.

Nel grafico di sinistra sono rappresentati in nero i punti proiettati verticalmente su un piano orizzontale (disegnato al livello medio della terza variabile): si tratta quindi della distribuzione marginale delle prime due variabili. Le due rette di regressione semplice sono rappresentate in nero e sono state calcolate sulle prime due variabili senza tenere conto della terza variabile

A destra invece il grafico delle rette di regressione parziali (riportate con gli stessi colori anche a sinistra), ricavate dalle intersezioni di due piani di regressione con il piano orizzontale in cui la terza variabile è costante

Nel nostro caso:

\(r_{12.3}=\sqrt{\hat{\beta}_{12.3}\hat{\beta}_{21.3}}= \sqrt{(-0.556)( -0.118)}=-0.256\)

Mentre per la correlazione semplice abbiamo:

\(r_{12}=\sqrt{\hat{\beta}_{12}\hat{\beta}_{21}}= \sqrt{(0.759)( 0.454)}=0.587\)

1.5.1 Calcolo della correlazione parziale dall’inversa della matrice di varianza e covarianza

In generale supponendo che esista l’inversa di \(\boldsymbol{ \Sigma}\) (matrice di varianza e covarianza fra tutte le \(p\) variabili) e indicandola con \(\mathbf{C}\), di elemento generico \(c_{ij}\), si può dimostrare 1 che la generica correlazione parziale fra due variabili, \(\mathbf{X}_{i}\) e \(\mathbf{X}_{j}\), tenute costanti le altre \(p-2\), è data da:

\[ r_{ij.B}=\frac{-c_{ij}}{\sqrt{c_{ii} c_{jj}}} \] avendo indicato con B l’insieme degli indici di tutte le altre variabili \(B=\{1,\dots,p\}-\{i,j\}\)


  1. dimostrazione che qui ometto, l’approccio più comodo è quello che fa uso delle proprietà delle inverse delle matrici orlate↩︎