Tôi đang cung cấp mã trong R chỉ là một ví dụ, bạn chỉ có thể xem câu trả lời nếu bạn không có kinh nghiệm với R. Tôi chỉ muốn đưa ra một số trường hợp với các ví dụ.
tương quan và hồi quy
Tương quan tuyến tính đơn giản và hồi quy với một Y và một X:
Ngươi mâu:
y = a + betaX + error (residual)
Giả sử chúng ta chỉ có hai biến:
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
Trên sơ đồ phân tán, các điểm càng nằm gần một đường thẳng, mối quan hệ tuyến tính giữa hai biến càng mạnh.
Chúng ta hãy xem mối tương quan tuyến tính.
cor(X,Y)
0.7828747
Bây giờ hồi quy tuyến tính và kéo ra các giá trị bình phương R.
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
Do đó, các hệ số của mô hình là:
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
Bản beta cho X là 0,7877698. Do đó, mô hình sẽ là:
Y = 2.2535971 + 0.7877698 * X
Căn bậc hai của giá trị R bình phương trong hồi quy giống như r
trong hồi quy tuyến tính.
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
Chúng ta hãy xem hiệu ứng quy mô trên độ dốc hồi quy và tương quan bằng cách sử dụng cùng ví dụ trên và nhân X
với một giá trị không đổi 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
Các mối tương quan vẫn không thay đổi như làm R-squared .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
Bạn có thể thấy các hệ số hồi quy đã thay đổi nhưng không phải là bình phương R. Bây giờ một thử nghiệm khác cho phép thêm một hằng số X
và xem điều này sẽ có hiệu lực.
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
Tương quan vẫn không thay đổi sau khi thêm 5
. Chúng ta hãy xem điều này sẽ có ảnh hưởng như thế nào đến các hệ số hồi quy.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
Bình phương R và tương quan không có hiệu ứng tỷ lệ nhưng đánh chặn và độ dốc thì có. Vì vậy độ dốc không giống như hệ số tương quan (trừ khi các biến được tiêu chuẩn hóa với giá trị trung bình 0 và phương sai 1).
ANOVA là gì và tại sao chúng ta làm ANOVA?
ANOVA là kỹ thuật mà chúng tôi so sánh phương sai để đưa ra quyết định. Biến trả lời (được gọi Y
) là biến định lượng trong khi X
có thể định lượng hoặc định tính (yếu tố với các mức khác nhau). Cả hai X
và Y
có thể là một hoặc nhiều về số lượng. Thông thường chúng ta nói ANOVA cho các biến định tính, ANOVA trong bối cảnh hồi quy ít được thảo luận. Có thể đây là nguyên nhân của sự nhầm lẫn của bạn. Giả thuyết khống trong biến định tính (các yếu tố, ví dụ: các nhóm) là giá trị trung bình của các nhóm không khác nhau / bằng nhau trong khi phân tích hồi quy, chúng tôi kiểm tra xem độ dốc của đường có khác 0 đáng kể hay không.
Chúng ta hãy xem một ví dụ trong đó chúng ta có thể thực hiện cả phân tích hồi quy và yếu tố định tính ANOVA vì cả X và Y đều là định lượng, nhưng chúng ta có thể coi X là yếu tố.
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)
Các dữ liệu trông như sau.
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
Bây giờ chúng tôi làm cả hồi quy và ANOVA. Hồi quy đầu tiên:
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
Bây giờ ANOVA thông thường (có nghĩa là ANOVA cho yếu tố / biến định tính) bằng cách chuyển đổi X1 thành yếu tố.
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
Bạn có thể thấy X1f Df đã thay đổi là 4 thay vì 1 trong trường hợp trên.
Trái ngược với ANOVA cho các biến định tính, trong bối cảnh các biến định lượng, trong đó chúng tôi thực hiện phân tích hồi quy - Phân tích phương sai (ANOVA) bao gồm các tính toán cung cấp thông tin về mức độ biến đổi trong mô hình hồi quy và tạo cơ sở cho các thử nghiệm có ý nghĩa.
Về cơ bản ANOVA kiểm tra giả thuyết null beta = 0 (với beta giả thuyết thay thế không bằng 0). Ở đây chúng tôi kiểm tra F tỷ lệ biến thiên được giải thích bởi mô hình so với lỗi (phương sai dư). Phương sai mô hình xuất phát từ số lượng được giải thích bởi dòng bạn phù hợp trong khi phần dư xuất phát từ giá trị không được mô hình giải thích. Một F đáng kể có nghĩa là giá trị beta không bằng 0, có nghĩa là có mối quan hệ đáng kể giữa hai biến.
> 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
Ở đây chúng ta có thể thấy tương quan cao hoặc bình phương R nhưng vẫn không có kết quả đáng kể. Đôi khi bạn có thể nhận được một kết quả trong đó tương quan thấp vẫn tương quan đáng kể. Lý do của mối quan hệ không đáng kể trong trường hợp này là chúng tôi không có đủ dữ liệu (n = 6, dư df = 4), vì vậy F nên được xem xét phân phối F với tử số 1 df so với 4 mẫu số df. Vì vậy, trường hợp này chúng tôi không thể loại trừ độ dốc không bằng 0.
Hãy xem một ví dụ khác:
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
Giá trị bình phương R cho dữ liệu mới này:
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
Mặc dù mối tương quan thấp hơn trường hợp trước, chúng tôi có độ dốc đáng kể. Nhiều dữ liệu làm tăng df và cung cấp đủ thông tin để chúng ta có thể loại trừ giả thuyết null rằng độ dốc không bằng không.
Hãy lấy một ví dụ khác khi có sự tương quan phủ định:
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
Vì giá trị bình phương căn bậc hai sẽ không cung cấp thông tin về mối quan hệ tích cực hoặc tiêu cực ở đây. Nhưng độ lớn là như nhau.
Trường hợp hồi quy bội:
Nhiều hồi quy tuyến tính cố gắng mô hình hóa mối quan hệ giữa hai hoặc nhiều biến giải thích và biến trả lời bằng cách khớp một phương trình tuyến tính với dữ liệu quan sát. Các cuộc thảo luận ở trên có thể được mở rộng cho nhiều trường hợp hồi quy. Trong trường hợp này, chúng tôi có nhiều beta trong thuật ngữ:
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)
Chúng ta hãy xem các hệ số của mô hình:
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
Do đó, mô hình hồi quy tuyến tính bội của bạn sẽ là:
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
Bây giờ hãy kiểm tra xem beta cho X1 và X2 có lớn hơn 0 không.
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
Ở đây chúng ta nói rằng độ dốc của X1 lớn hơn 0 trong khi chúng ta không thể quy định rằng độ dốc của X2 lớn hơn 0.
Xin lưu ý rằng độ dốc không tương quan giữa X1 và Y hoặc X2 và Y.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
Trong tình huống đa biến (trong đó biến lớn hơn hai tương quan một phần đi vào vở kịch. Tương quan một phần là tương quan của hai biến trong khi kiểm soát một biến thứ ba hoặc nhiều biến khác.
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