Sto fornendo codici in R solo un esempio, puoi solo vedere le risposte se non hai esperienza con R. Voglio solo fare alcuni casi con esempi.
correlazione vs regressione
Correlazione lineare semplice e regressione con una Y e una X:
Il modello:
y = a + betaX + error (residual)
Diciamo che abbiamo solo due variabili:
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
Su un diagramma a dispersione, più i punti sono vicini a una linea retta, più forte è la relazione lineare tra due variabili.

Vediamo la correlazione lineare.
cor(X,Y)
0.7828747
Ora regressione lineare ed estrazione di valori R quadrati .
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
Pertanto i coefficienti del modello sono:
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
La beta per X è 0,7877698. Quindi il nostro modello sarà:
Y = 2.2535971 + 0.7877698 * X
La radice quadrata del valore R al quadrato nella regressione è la stessa rdella regressione lineare.
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
Vediamo l' effetto di scala sulla pendenza della regressione e sulla correlazione usando lo stesso esempio sopra e moltipliciamolo Xcon una parola costante 12.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X12 <- X*12
cor(X12,Y)
[1] 0.7828747
La correlazione rimane invariata così come l'R al quadrato .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
È possibile vedere i coefficienti di regressione modificati ma non R-quadrato. Ora un altro esperimento consente di aggiungere una costante Xe vedere che cosa avrà effetto.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X5 <- X+5
cor(X5,Y)
[1] 0.7828747
La correlazione non viene ancora modificata dopo l'aggiunta 5. Vediamo come questo avrà effetto sui coefficienti di regressione.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
Il quadrato R e la correlazione non hanno effetto scala, ma intercettano e inclinano. Quindi la pendenza non è uguale al coefficiente di correlazione (a meno che le variabili non siano standardizzate con media 0 e varianza 1).
cos'è ANOVA e perché lo facciamo ANOVA?
ANOVA è una tecnica in cui confrontiamo le varianze per prendere decisioni. La variabile di risposta (chiamata Y) è variabile quantitativa mentre Xpuò quantitativa o qualitativa (fattore con livelli diversi). Entrambi XeY possono essere uno o più in numero. Di solito diciamo ANOVA per variabili qualitative, ANOVA nel contesto di regressione è meno discusso. Potrebbe essere questo potrebbe essere la causa della tua confusione. L'ipotesi nulla nella variabile qualitativa (fattori ad es. Gruppi) è che la media dei gruppi non è diversa / uguale mentre nell'analisi di regressione testiamo se la pendenza della linea è significativamente diversa da 0.
Vediamo un esempio in cui possiamo fare sia l'analisi di regressione sia il fattore qualitativo ANOVA poiché sia X che Y sono quantitativi, ma possiamo considerare X come fattore.
X1 <- rep(1:5, each = 5)
Y1 <- c(12,14,18,12,14, 21,22,23,24,18, 25,23,20,25,26, 29,29,28,30,25, 29,30,32,28,27)
myd <- data.frame (X1,Y1)
I dati si presentano come segue.
X1 Y1
1 1 12
2 1 14
3 1 18
4 1 12
5 1 14
6 2 21
7 2 22
8 2 23
9 2 24
10 2 18
11 3 25
12 3 23
13 3 20
14 3 25
15 3 26
16 4 29
17 4 29
18 4 28
19 4 30
20 4 25
21 5 29
22 5 30
23 5 32
24 5 28
25 5 27
Ora facciamo sia regressione che ANOVA. Prima regressione:
reg <- lm(Y1~X1, data=myd)
anova(reg)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 684.50 684.50 101.4 6.703e-10 ***
Residuals 23 155.26 6.75
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
reg$coefficients
(Intercept) X1
12.26 3.70
Ora ANOVA convenzionale (ANOVA medio per fattore / variabile qualitativa) convertendo X1 in fattore.
myd$X1f <- as.factor (myd$X1)
regf <- lm(Y1~X1f, data=myd)
anova(regf)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1f 4 742.16 185.54 38.02 4.424e-09 ***
Residuals 20 97.60 4.88
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Puoi vedere X1f Df modificato che è 4 anziché 1 nel caso precedente.
Contrariamente all'ANOVA per le variabili qualitative, nel contesto delle variabili quantitative in cui eseguiamo l'analisi di regressione - L'analisi della varianza (ANOVA) consiste in calcoli che forniscono informazioni sui livelli di variabilità all'interno di un modello di regressione e formano una base per test di significatività.
Fondamentalmente ANOVA verifica l'ipotesi nulla beta = 0 (con ipotesi alternativa beta non è uguale a 0). Qui facciamo F test quale rapporto di variabilità spiegato dal modello vs errore (varianza residua). La varianza del modello deriva dalla quantità spiegata dalla linea che si adatta mentre il residuo deriva dal valore che non è spiegato dal modello. Una F significativa significa che il valore beta non è uguale a zero, significa che esiste una relazione significativa tra due variabili.
> anova(reg1)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 81.719 81.719 6.3331 0.0656 .
Residuals 4 51.614 12.904
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Qui possiamo vedere una correlazione elevata o un R-quadrato ma ancora non significativo. A volte potresti ottenere un risultato in cui una bassa correlazione è ancora significativa. La ragione della relazione non significativa in questo caso è che non abbiamo abbastanza dati (n = 6, df residuo = 4), quindi F dovrebbe essere considerato la distribuzione F con numeratore 1 df vs 4 denomeratore df. Quindi in questo caso non abbiamo potuto escludere la pendenza non è uguale a 0.
Vediamo un altro esempio:
X = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg3 <- lm(Y~X)
anova(reg3)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 69.009 69.009 7.414 0.01396 *
Residuals 18 167.541 9.308
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Valore R-quadrato per questi nuovi dati:
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
Sebbene la correlazione sia inferiore al caso precedente, abbiamo ottenuto una pendenza significativa. Più dati aumenta df e fornisce informazioni sufficienti per escludere l'ipotesi nulla che la pendenza non sia uguale a zero.
Facciamo un altro esempio in cui esiste una correlazione negativa:
X1 = c(4,5,8,6,12,15)
Y1 = c(18,16,2,4,2, 8)
# correlation
cor(X1,Y1)
-0.5266847
# r-square using regression
reg2 <- lm(Y1~X1)
summary(reg2)$r.squared
0.2773967
sqrt(summary(reg2)$r.squared)
[1] 0.5266847
Poiché i valori erano quadrati, la radice quadrata non fornirà informazioni sulla relazione positiva o negativa qui. Ma la grandezza è la stessa.
Caso di regressione multipla:
La regressione lineare multipla tenta di modellare la relazione tra due o più variabili esplicative e una variabile di risposta adattando un'equazione lineare ai dati osservati. La discussione sopra può essere estesa al caso di regressione multipla. In questo caso abbiamo beta multiple nel termine:
y = a + beta1X1 + beta2X2 + beta2X3 + ................+ betapXp + error
Example:
X1 = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
X2 = c(14,15,8,16,2, 15,3,2,4,7, 9,12,5,6,3, 12,19,13,15,20)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg4 <- lm(Y~X1+X2)
Vediamo i coefficienti del modello:
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
Quindi il tuo modello di regressione lineare multipla sarebbe:
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
Ora testiamo se le beta per X1 e X2 sono maggiori di 0.
anova(reg4)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 69.009 69.009 7.0655 0.01656 *
X2 1 1.504 1.504 0.1540 0.69965
Residuals 17 166.038 9.767
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Qui diciamo che la pendenza di X1 è maggiore di 0 mentre non potremmo escludere che la pendenza di X2 sia maggiore di 0.
Si noti che la pendenza non è correlazione tra X1 e Y o X2 e Y.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
In una situazione a più variabili (in cui la variabile è maggiore di due, entra in gioco la correlazione parziale. La correlazione parziale è la correlazione di due variabili mentre si controlla per una terza o più altre variabili.
source("http://www.yilab.gatech.edu/pcor.R")
pcor.test(X1, Y,X2)
estimate p.value statistic n gn Method Use
1 0.4567979 0.03424027 2.117231 20 1 Pearson Var-Cov matrix
pcor.test(X2, Y,X1)
estimate p.value statistic n gn Method Use
1 0.09473812 0.6947774 0.3923801 20 1 Pearson Var-Cov matrix