Để mô hình hóa các bài toán như thế, ta cần một mô hình có thể có nhiều biến độc lập, và hồi quy tuyến tính bội là một trong những mô hình đơn giản và nền tảng nhất có thể đáp ứng được y
Trang 1DAI HOC QUOC GIA THANH PHO HO CHi MINH TRUONG DAI HOC BACH KHOA KHOA KHOA HOC UNG DUNG
Tp Hồ Chí Minh, Tháng 11/2021
Trang 2K “
c2 Khoa Khoa Học Ứng Dụng
Mục lục
1.1 Cơ sở lý thuyết mô hình hồi quy tuyến tính bội c2 2 1.1.1 Phương trình hồi quy tuyến tính bội 2 1.1.2 Xác định giá trị của các tham số trong mô hình hồi quy tuyến tính bội 2 1.1.3 Kiểm định giả thiết thống kê trong mô hình hồi quy tuyến tính bội 3 xoa ca a Ha 4
121 Déebai an Ằ-( 4 I5) “ad TT &%&&< -{ a 4 1.2.3 Làm sạch dữ liệu (Data cleaning) c c c c c Q Q Q Q g kg và 4 1.2.4 Làm rõ dữ liệu (Data visualizatiOn) c c c Q Q Q HQ ng va va 5 1.2.5 Xây dựng các mô hình hồi quy tuyến tính (Fitting linear regression models) 10 I6) co o 0n na Ó@ 12
2.1 Ly do chon dé tai es 13 2.2 Tập tin dữ liệu ee 13 P.0 Ta IIIaI gang a 13
241 7 Nhập dữ lệu Q Q Q Q Q Q Q Q nu ng n v.v k k k k k k k Na 13 2.3.2 Làm rõ dữ liệu (Data visualization) ee 14 2.3.3 Xây dựng các mô hình hồi quy tuyến tính (Fitting linear regression models) 18 2.3.4 Dự đoán (PredictiONS) c Q Q Q n n ng ng ng v kg v.v kg k kia 20
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022 Trang 1/20
Trang 3K “
c2 Khoa Khoa Học Ứng Dụng
1.1 Cơ sở lý thuyết mô hình hồi quy tuyến tính bội
Trong đời sông và trong kỹ thuật, việc một yếu tố phụ thuộc vào nhiều yêu tố khác diễn ra khá thường xuyên Để mô hình hóa các bài toán như thế, ta cần một mô hình có thể có nhiều biến độc lập, và hồi quy tuyến tính bội là một trong những mô hình đơn giản và nền tảng nhất có thể đáp ứng được yêu cầu
đó
1.1.1 Phương trình hồi quy tuyến tính bội
Tổng quát, biến phụ thuộc Y có thể có liên hệ đến k biến không phụ thuộc khác (biên hồi quy) Khi
c là phần sai lệch giữa giá trị Y trong phương trình và giá trị thực tế của Y Thực chất, mô hình này thường chỉ dự đoán tốt kỳ vọng của Y, chứ không phải giá trị thực tế của Y, hay nói cách khác E(Y |x; theo céc i) = Bo + B1x1 + Borg + + Bete, con € 1A một biến ngẫu nhiên có kỳ vọng là 0
và phương sai ø
Mô hình hồi quy tuyến tính bội cũng thường được dùng để xấp xỉ giá trị của hàm số Nghĩa là, mối quan hệ chính xác giữa các biến Y và #,a,#s, là chưa biết, nhưng trên những khoảng xác định của các biến độc lập (biến hồi quy), giá trị của mô hình hồi quy tuyến tính là phù hợp
1.1.2 Xác định giá trị của các tham số trong mô hình hồi quy tuyến tính bội
Có nhiều cách để xác định giá trị của các tham số, tuy nhiên, trong đó, phương pháp bình phương cực tiểu là thường được sử dụng nhất
Phương pháp bình phương cực tiểu thường được sử dụng để ước tính hệ số hồi quy của mô hình hồi quy tuyến tính bội
Giả sử, có ø quan sát, và k biến hồi quy thỏa n > &, và đặt z¿; là quan sát thứ 7 Số quan sát là:
(2515 Vi2, #ẹk, 1i) ¡„ =1,2, ,? n>k Mỗi quan sất (đ;1,đa, , #2; 1) thỏa mãn mô hình phương trình 1, nghĩa là:
Yi = Bo + Pima, + Bowig t + Bein + &
k
= Bo + >> By xij + 6; a= 1,2, ,n j=l
Công thức bình phương cực tiểu là:
rh rh k L= (ei)? = » yi — Bo — So Byxiy (2) i=l i=l j=l
Chúng ta đang muốn giảm giá trị L này theo các tham sé fo, 81, ., 8% Do đó, Bo, Ổi, , Ø„ cần thỏa, man:
Trang 4rh k \
> =-?2Ề_ M — Bo — 3 Bites xy = 0 J=1,3, ,È (4) i=l j=l )
Đơn giản phương trình 3 và 4, chúng ta có được phương trình của bình phương cực tiểu như sau:
nổ + Ủ¬ ` wa + Bo ` đa + + Be ` Lik = ` Yi
Bo Sox cia + S đội + BS > warn + +, » = »
i=l i=l i=l i=l i=l
Hy bin + Bi Soa raat a Uikbig + +h aD Lik Yi
Chú ý rằng có p = k+1 phương trình với k+ 1 ấn số Vậy giải hệ phương trình tuyến tính này, ta sẽ thu được giá trị của đo, ổI, Ó
1.1.3 Kiểm định giả thiết thống kê trong mô hình hồi quy tuyến tính bội
Bài kiểm định cho ý nghĩa của hồi quy là một bài kiểm định nhằm xác định xem có hay không một mối quan hệ tuyến tính tồn tại giữa biến Y và một nhóm các biến hồi quy #,#a, Khi đó giả thiết thống kê hợp lí là:
Ay: By = 81 = Bp = = Be =O 1H : 8; # 0 với ít nhất một j (5) Bác bỏ Hạ đồng nghĩa với việc ta chấp nhận có ít nhất một trong các biến hồi quy #,#a, có ảnh hưởng đáng kế đến mô hình Tổng bình phương 9/%r được chia thành hai phần, gồm tổng bình phương
do mô hình và tổng bình phương do chênh lệch, nghĩa là:
Giá trị R2 gần 1 cho thấy mô hình là tốt, có khả năng cao phù hợp với dữ liệu được đưa vào, trong khi #2 gần 0 chỉ ra rằng mô hình đang sử dụng không thật sự phù hợp để mô tả dữ liệu đầu vào Tuy nhiên, vì giá trị của #2 không thể giảm khi ta tăng số lượng biến hồi quy, nên giá trị E2 hiệu chỉnh thường được sử dụng trong thực tế hơn, do nó chỉ tăng khi thật sự số lượng dự đoán được cải thiện Giá trị này được tính như sau:
z S9/(n — pì hiệu chỉnh —” 1— SSr/{n — 1) @
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022 Trang 3/20
Trang 5BK „
eo Khoa Khoa Hoc Ung Dung
1.2 Nội dung báo cáo
1.2.1 Đề bài
1.2.2 Đọc dữ liệu
Để nhập dữ liệu từ ñle csv vào biến data, ta sử dụng lệnh:
data <- read.csv("C://Users//phatn//OneDrive//Documents//Statistics 203//diem_so.csv") Trén day, C://Users//phatn//OneDrive//Documents//Statistics 203//diem_so.csv la duéng din đến tập tin dữ liệu gốc, có thể khác nhan trên mỗi hệ thống
Sam khi thực thi lệnh trên, ta thu được biến data chứa những dữ liệu sau:
(a) Hãy trích ra một dữ liệu con, đặt tên là new _ DE chỉ bao gồm các biến chính mà ta quan tâm như
đã trình bày trong phần giới thiệu dữ liệu Từ câu hỏi này về sau, mọi yêu cầu xử lý đều dựa trên tập dữ liệu con new _ DE này
new_DF <- data[, c("Gi", "G2", "G3", "studytime", "failures", "absences",
Trang 66 Trường Đại Học Bách Khoa - ĐHQG TPHCM
new_DF$"G2" [which(is.na(new_DF$"G2"))] <- 0
Trong tập dữ liệu, ta nhận thấy biến G2 có những ô dữ liệu bị khuyết Ta sẽ thay các giá trị khuyết
na đó bằng 0 Sau khi thực thi dòng lệnh trên, biến new _ DF hién tai mang giá trị như sau:
median <- lapply(mew_DF[, c("Gi", "G2", "G3", "studytime", "failures",
"absences", “age")], median) stddev <- lapply(new_DF[, c("G1", "G2", "G3", "studytime", "failures",
"absences", "age")], sd) stddev <- lapply(stddev, round, 2)
min <- lapply(mew_DF[, c("Gi", "G2", "G3", "studytime", "failures", "absences",
"age")], min) max <- lapply(new_DF[, c("G1", "G2", "G3", "studytime", "failures", "absences",
"age")], max) output <- cbind(mean, median, stddev, min, max)
print (output)
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022 Trang 5/20
Trang 7K
€- Khoa Khoa Học Ứng Dụng
Trong biến new _ DE, các thuộc tính liên tục bao gồm G1, G2, G3, studytime, failures, absences
va age Dé tinh nhanh chóng các giá trị thống kê, ta đùng lệnh 1apply(Q, với tham số đầu tiên là
đữ liệu vào, và tham số thứ hai là hàm cần tính Trong các dòng lệnh bên trên, new_DF[, c("G1",
"G2", "G3", "studytime", "failures", "absences", "age")] nghĩa là chỉ lấy các thuộc tính G1, G2, G3, studytime, failures, absences và age từ bién new_ DF
Đối với các biến mean, stddev, ta sit dung thêm lệnh 1apply( một lần nữa với hàm tham gia là round() để làm tròn kết quả đến hàng phần trăm, để kết quả hiển thị sẽ dễ theo dõi hơn
Để xuất kết quả dưới dạng bảng, ta có thể sử dụng lệnh cbindQ) với danh sách tham số bao gồm các biến ta mong muốn hiển thị dưới dạng bảng Kết quả thu được như sau:
mean median stddev min max G1 10.91 11 3.32 3 19 G2 10.58 11 3.9 0 19 G3 10.42 11 4.58 0 20 studytime 2.04 2 0.84 1 4 failures 0.33 0 0.74 0 3 absences 5.71 4 8 0 75 age 16.7 17 1.28 15 22 Đối với các biến phân loại, hãy lập một bảng thông kê số lượng cho từng chủng loại
print (table (new_DF\$higher) )
Trong tập dữ liệu có biến higher là biến phân loại Để thống kê số lượng mỗi loại cho biến này, ta dùng lệnh table(), và để hiển thị bảng, ta dùng ham print() Kết quả thu được như sau:
no yes
20 375 Hay dimg ham hist() dé vé dé thi phan phối của biến G3
hist (new_DF\$G3,
xlab = "Diém", ylab = "Số lượng", main = "Đồ thị phân phối biến G3", col = "navyblue",
breaks = 20) Ham hist ( nhan vaio tham sé bit budc là dữ liệu cho biểu đồ, trong câu hỏi này là mew_ DE$G3,
và các tham số tùy chọn bao gồm x1ab để đặt tên cho trục hoành, ylab để đặt tên cho trục tung, main để đặt tên cho biểu đỗ, và breaks để chỉ ra số lượng khoảng chia mà ta mong mmốn Lệnh vẽ trên sau khi thực thi sẽ cho ra kết quả nhĩ sau:
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022 Trang 6/20
Trang 8boxplot (new_DF$G3 ~ new_DF$studytime, as.data.frame(new_DF$G3) ,
xlab = "Thời gian tu học", ylab = "Mức điểm tổng kết", main = "Mức điểm tổng kết tương ứng với thời gian tự học", col = "navyblue")
boxplot (new_DF$G3 ~ new_DF$failures, as.data.frame(new_DF$G3) ,
xlab = "Số lần thi trượt", ylab = "Mức điểm tổng kết", main = "Mức điểm tổng kết ứng với số lần thí trượt", col = "navyblue")
boxplot (new_DF$G3 ~ new_DF$higher, as.data.frame(new_DF\$G3),
xlab = "Nguyén vong", ylab = "Mức điểm tổng kết", main = "Múc điểm tổng kết ứng với nguyện vọng theo học cao học", col = "navyblue")
Tương tự như hàm hist(), hàm boxplot() cũng nhận vào một danh sách tham số để biểu diễn biểu
đồ, chỉ khác ở chỗ tham số đầu tiên, thay vì nhận vào một biến dữ liệu thì hàm boxplot() nhận vào một công thức, và tham số thứ hai mới là dữ liệu
Kết quả nhận được như sau:
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022 Trang 7/20
Trang 9Biểu đồ biểu diễn phân phối của biến Œ3 theo nhóm phân loại của biến studytime
Mức điểm tổng kết ứng với số lần thi trượt
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022
Trang 10col = "navyblue")
Ta thu được biểu đồ sau:
Trang 11
(a) Xét mô hình hồi quy tuyến tính bao gồm biến G3 là một biến phụ thuộc, và tất cả các biến còn lại đều là biến độc lập Hãy dùng lệnh 1m() để thực thi mô hình hồi quy tuyến tính bội
M1 <- Im(formula = new_DF\$G3 ~ , data = new_DF)
(b) Dựa vào kết quả của mô hình hồi quy tuyến tính trên, những biến nào bạn sẽ loại khỏi mô hình tương ứng với các mức tin cậy 5% và 1%?
Thực thi lệnh summary (M1), ta thu được bảng sau:
Estimate Std Error t value Pr(>|t!) (Intercept) 3.01238 1.70724 1.764 0.07844 G1 0.45251 0.05805 7.795 6.02e-14 ***
G2 0.66308 0.04870 13.617 < 2e-16 ***
studytime -0.17164 0.13627 -1.260 0.20860 failures -0.29251 0.16917 -1.729 0.08458 absences 0.04212 0.01409 2.990 0.00297 **
higheryes 0.21729 0.54128 0.401 0.68833 age -0.27252 0.09230 -2.953 0.00334 **
Signif codes: 0 ‘x? 0.001 “**? 0.01 “*? 0.05 “,? 0.1“? 1 Residual standard error: 2.198 on 387 degrees of freedom Multiple R-squared: 0.7739, Adjusted R-squared: 0.7698 F-statistic: 189.2 on 7 and 387 DF, p-value: < 2.2e-16 Nhận xét: Giá trị Pr(>|t|) hay p-value 1A ngưỡng mà một biến hồi quy có bác bé gia thiét Ho hay không Chẳn hạn, trong bảng giá trị trên, giá trị Pr(Œ>|t|) của biến G1 là 6.02 x 10~1* < 5%, nên
nó bác bỏ giả thiết Hạ, chấp nhận A, và do đó biến này có ý nghĩa trong mô hình Dựa trên lập luận này, ta có thể loại bỏ biến studytime, failures, higher ở mức ý nghĩa 5% Ta không thể loại thêm biến nào ra khỏi mô hình ở mức ý nghĩa 1%
(c) Xét 3 mô hình tuyến tính cùng bao gồm biến Œ3 là biến phụ thuộc nhưng:
e Mô hình MI chứa tất cả các biến còn lại là biến độc lập;
e Mô hình M2 loại bố biến higher từ MI;
e Mô hình M3 loại bỏ biến failures từ M2
Hay dùng lệnh anova() để đề xuất mô hình hồi quy hợp lí hơn
1 M1 <- 1m(formula = new_DF$G3 ~ , data = new_DF)
2 M2 <- lm(new_DF$G3 ~ - higher, new_DF)
3s M3 <- 1m(new DF$G3 ~ - higher - failures, new_DF)
Trang 12cà 6 Trường Đại Học Bách Khoa - ĐHQG TPHCM
Analysis of Variance Table
Model 1: new_DF$G3 ~ G1 + G2 + studytime + failures + absences + higher + age
Model 2: new_DF$G3 ~ (G1 + G2 + studytime + failures + absences + higher + age) - higher
Model 3: new_DF\$G3 ~ (G1 + G2 + studytime + failures + absences + higher + age) - higher - failures
Res Df RSS Df Sum of Sq F Pr(F)
1 387 1870.1
2 388 1870.8 -1 -0.7787 0.1611 0.68833
3 389 1887.4 -1 -16.5362 3.4221 0.06509 Signif codes: 0 ‘x? 0.001 “**? 0.01 “*? O.05 “,? 0.1“? 1
Estimate Std Error t value Pr(>|t!) (Intercept) 3.52630 1.55753 2.264 0.024122 * G1 0.47098 0.05734 8.214 3.21e-15 ***
G2 0.66792 0.04873 13.707 < 2e-16 ***
studytime -0.13169 0.13422 -0.981 0.327103 absences 0.04185 0.01411 2.965 0.003214 **
age -0.31671 0.08900 -3.558 0.000419 ***
Signif codes: 0 ‘x? 0.001 “**? 0.01 “*? 0.05 “,? 0.1“? 1 Residual standard error: 2.203 on 389 degrees of freedom Multiple R-squared: 0.7718, Adjusted R-squared: 0.7688 F-statistic: 263.1 on 5 and 389 DF, p-value: < 2.2e-16
Từ đó, ta thấy điểm học kì I, điểm học kì II có tác động lớn và tích cực đến điểm cuối khóa, trong khi độ tuổi có xu hướng làm giảm điểm tổng kết lại Sự vắng mặt của các bạn có ảnh hưởng đến điểm tổng kết, nhưng nhìn chung không mang tính chất quyết định như điểm thi học kì I và học kì
II
Từ mô hình hồi quy hợp lý nhất từ câu (c) hãy dùng lệnh plot() để vẽ đồ thị biểu thị sai số hồi quy
và giá trị dự báo Nêu ý nghĩa và nhận xét
Thực hiện lệnh plot (M3), ta thu được đồ thị như trong hình 9
Nhìn chung, các giá trị sai lệch đều phân bố xung quanh 0, nên mô hình này là chấp nhận được vì
nó phù hợp với đặc trưng của c (biến ngẫu nhiên có kì vọng ¿ = 0 và phương sai ø2), và sai số dự đoán sẽ nằm trong khoảng 3 đơn vị, do đa số các điểm dữ liệu đều có sai số vào khoảng này
Báo cáo bài tập lớn môn Xác suất thống kê (MT2013) - Niên khóa 2021-2022 Trang 11/20