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)
2021-03-09

1.1 Primo esempio con tre variabili

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

round(cor(dati),3)
        Altezza Torace  Peso
Altezza   1.000  0.587 0.724
Torace    0.587  1.000 0.912
Peso      0.724  0.912 1.000
MLA.explor.pairs(dati)

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:

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)
group
  1   2   3   4 
557 755 107   8 
par(mfrow=c(2,2))
for(i in 1:k)MLA.explor.plot2D(dati$Altezza[group==i],dati$Torace[group==i])
Warning in smooth.spline(y ~ x, cv = TRUE, nknots = nknots): cross-validation with non-unique 'x' values seems doubtful

Warning in smooth.spline(y ~ x, cv = TRUE, nknots = nknots): cross-validation with non-unique 'x' values seems doubtful

Warning in smooth.spline(y ~ x, cv = TRUE, nknots = nknots): cross-validation with non-unique 'x' values seems doubtful

Warning in smooth.spline(y ~ x, cv = TRUE, nknots = nknots): cross-validation with non-unique 'x' values seems doubtful

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.

2 Derivazione usando solo la regressione lineare semplice.

2.1 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.

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

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

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:

    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)
[1] -0.2562478
print(cor(lm1$residuals,lm2$residuals))
[1] -0.2562478

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

2.2 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}} \]

3 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

3.1 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}} \]