Saya memberikan kode dalam R hanya sebuah contoh, Anda hanya dapat melihat jawaban jika Anda tidak memiliki pengalaman dengan R. Saya hanya ingin membuat beberapa kasus dengan contoh.
korelasi vs regresi
Korelasi dan regresi linier sederhana dengan satu Y dan satu X:
Model:
y = a + betaX + error (residual)
Katakanlah kita hanya memiliki dua variabel:
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
Pada diagram sebar, semakin dekat titik terletak pada garis lurus, semakin kuat hubungan linier antara dua variabel.
Mari kita lihat korelasi linier.
cor(X,Y)
0.7828747
Sekarang regresi linier dan nilai pull-out R squared .
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
Dengan demikian koefisien model adalah:
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
Beta untuk X adalah 0.7877698. Jadi model yang keluar adalah:
Y = 2.2535971 + 0.7877698 * X
Akar kuadrat dari nilai R-squared dalam regresi sama dengan r
dalam regresi linier.
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
Mari kita lihat efek skala pada kemiringan regresi dan korelasi menggunakan contoh di atas yang sama dan gandakan X
dengan konstanta 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
The korelasi tetap tidak berubah sebagai do R-squared .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
Anda dapat melihat koefisien regresi berubah tetapi tidak R-square. Sekarang percobaan lain memungkinkan menambahkan konstanta ke X
dan melihat apa ini akan berpengaruh.
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
Korelasi masih tidak berubah setelah menambahkan 5
. Mari kita lihat bagaimana ini akan berpengaruh pada koefisien regresi.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
The R-square dan korelasi tidak memiliki efek skala tapi intercept dan slope lakukan. Jadi kemiringan tidak sama dengan koefisien korelasi (kecuali variabel distandarisasi dengan rata-rata 0 dan varian 1).
Apa itu ANOVA dan Mengapa kami melakukan ANOVA?
ANOVA adalah teknik di mana kita membandingkan varian untuk membuat keputusan. Variabel respon (disebut Y
) adalah variabel kuantitatif sedangkan X
dapat kuantitatif atau kualitatif (faktor dengan tingkat yang berbeda). Keduanya X
dan Y
bisa satu atau lebih jumlahnya. Biasanya kita mengatakan ANOVA untuk variabel kualitatif, ANOVA dalam konteks regresi kurang dibahas. Mungkin ini bisa jadi penyebab kebingungan Anda. Hipotesis nol dalam variabel kualitatif (faktor mis. Kelompok) adalah bahwa rata-rata kelompok tidak berbeda / sama sedangkan dalam analisis regresi kami menguji apakah kemiringan garis secara signifikan berbeda dari 0.
Mari kita lihat contoh di mana kita dapat melakukan analisis regresi dan faktor kualitatif ANOVA karena X dan Y adalah kuantitatif, tetapi kita dapat memperlakukan X sebagai faktor.
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)
Data terlihat seperti berikut.
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
Sekarang kami melakukan regresi dan ANOVA. Regresi pertama:
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
Sekarang ANOVA konvensional (artinya ANOVA untuk faktor / variabel kualitatif) dengan mengonversi X1 menjadi faktor.
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
Anda dapat melihat perubahan X1f Df yang 4 bukannya 1 dalam kasus di atas.
Berbeda dengan ANOVA untuk variabel kualitatif, dalam konteks variabel kuantitatif di mana kami melakukan analisis regresi - Analisis Varians (ANOVA) terdiri dari perhitungan yang memberikan informasi tentang tingkat variabilitas dalam model regresi dan membentuk dasar untuk uji signifikansi.
Pada dasarnya ANOVA menguji hipotesis nol beta = 0 (dengan hipotesis alternatif beta tidak sama dengan 0). Di sini kita melakukan uji F yang rasio variabilitas dijelaskan oleh model vs error (varian residual). Varians model berasal dari jumlah yang dijelaskan oleh garis yang Anda cocokkan sedangkan sisanya berasal dari nilai yang tidak dijelaskan oleh model. F signifikan berarti bahwa nilai beta tidak sama dengan nol, berarti ada hubungan yang signifikan antara dua variabel.
> 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
Di sini kita dapat melihat korelasi tinggi atau R-squared tetapi hasilnya masih tidak signifikan. Terkadang Anda mungkin mendapatkan hasil di mana korelasi rendah masih berkorelasi signifikan. Alasan hubungan yang tidak signifikan dalam hal ini adalah karena kita tidak memiliki data yang cukup (n = 6, residual df = 4), sehingga F harus dilihat pada distribusi F dengan pembilang 1 df vs 4 denomerator df. Jadi hal ini kita tidak bisa mengesampingkan kemiringan tidak sama dengan 0.
Mari kita lihat contoh lain:
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
Nilai R-square untuk data baru ini:
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
Meskipun korelasinya lebih rendah dari kasus sebelumnya, kami mendapatkan kemiringan yang signifikan. Lebih banyak data meningkatkan df dan memberikan informasi yang cukup sehingga kita dapat mengesampingkan hipotesis nol bahwa kemiringan tidak sama dengan nol.
Mari kita ambil contoh lain di mana ada korelasi negatif:
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
Karena nilai kuadrat akar kuadrat tidak akan memberikan informasi tentang hubungan positif atau negatif di sini. Tetapi besarnya sama.
Kasus regresi berganda:
Regresi linier berganda mencoba memodelkan hubungan antara dua atau lebih variabel penjelas dan variabel respons dengan menyesuaikan persamaan linier dengan data yang diamati. Diskusi di atas dapat diperluas ke kasus regresi berganda. Dalam hal ini kami memiliki beberapa beta dalam istilah:
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)
Mari kita lihat koefisien model:
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
Dengan demikian model regresi linier berganda Anda adalah:
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
Sekarang mari kita menguji apakah beta untuk X1 dan X2 lebih besar dari 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
Di sini kita mengatakan bahwa kemiringan X1 lebih besar dari 0 sementara kita tidak bisa mengesampingkan bahwa kemiringan X2 lebih besar dari 0.
Harap dicatat bahwa kemiringan bukan korelasi antara X1 dan Y atau X2 dan Y.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
Dalam beberapa situasi variasi (di mana variabel lebih besar dari dua, korelasi parsial ikut berperan. Korelasi parsial adalah korelasi dua variabel sambil mengendalikan sepertiga atau lebih variabel lainnya.
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