You are on page 1of 22

Phần 2: Xử lý số liệu

Bài tập 6. Tập tin "diem_so.csv" chứa thông tin về điểm toán của các em học sinh trung
học thuộc hai trường học ở Bồ Đào Nha. Các thuộc tính dữ liệu bao gồm điểm học sinh,
nơi cư trú, và một số hoạt động xã hội khác. Dữ liệu được thu thập bằng cách sử dụng báo
cáo của các trường và các kết quả khảo sát sinh viên. Dữ liệu gốc được cung cấp tại:

https://archive.ics.uci.edu/ml/datasets/student+performance.

Các biến chính trong bộ dữ liệu:

• G1: Điểm thi học kì 1.

• G2: Điểm thi học kì 2.

• G3: Điểm cuối khoá.

• studytime: Thời gian tự học trên tuần (1- ít hơn 2 giờ, 2 - từ 2 đến 5 giờ, 3 - từ 5-

10 giờ, or 4 - lớn hơn 10 giờ).

• failures: số lần không qua môn ( 1,2,3, hoặc 4 chỉ nhiều hơn hoặc bằng 4 lần).

• absences: số lần nghỉ học.

• paid - Có tham gia các lớp học thêm môn Toán ngoài trường (có/không).

• sex: Giới tính của học sinh. (Nam/nữ).

Các bước thực hiện:

1. Đọc dữ liệu (Import data): diem_so.csv

2. Làm sạch dữ liệu (Data cleaning): NA (dữ liệu khuyết)

3. Làm rõ dữ liệu: (Data visualization)

(a) Chuyển đổi biến (nếu cần thiết).

(b) Thống kê mô tả: dùng thống kê mẫu và dùng đồ thị.

4. Xây dựng mô hình hồi quy tuyến tính để đánh giá các nhân tố có thể ảnh hưởng đến
điểm thi cuối kỳ của sinh viên.

5. Thực hiện dự báo cho điểm Toán của học sinh.


Thực hiện:

1. Đọc dữ liệu (Import data)


Dùng lệnh read.csv () để đọc tệp tin.
Đọc tệp tin diem_so.csv và gán với tên là diem. csv
Input:
diem <- read.csv("E:/vien/xstk/diem_so.csv")
head(diem,3) #xem 3 dong dau tien cua tep tin

Giải thích:
- Đọc dữ liệu và lưu với tên diem_so
- Trích 3 dòng đầu của dữ liệu diem_so
Output:

Hình 1: Kết quả khi xem 3 dòng đầu của dữ liệu “diem_so.csv”
2. Làm sạch dữ liệu (Data cleaning)
Từ dữ liệu tổng ta trích ra các biến mà ta cần quan tâm như đã trình bày trong phần
giới thiệu và lưu lại với tên “new_DF” từ giờ ta chỉ làm việc trên dữ liệu
“new_DF” này.

Input:
new_DF <-
diem[,c("G1","G2","G3","studytime","failures","absences","paid","sex")]
head(new_DF,3) #xem 3 dong dau tien cua tep tin

Giải thích:
- Trích ra dữ liệu con đặt tên là new_DF bao gồm các biến chính.
- Trích ra 3 dòng đầu của new_DF.
Output:

Hình 2: Kết quả khi xuất 3 dòng đầu của dữ liệu “new_DF”
Nhận xét: Từ kết quả trên ta thấy rằng dòng số 2 của biến G2 trong dữ liệu bị
khuyết (NA) và có thể có nhiều dữ liệu bị khuyết hơn nên ta sẽ kiểm tra.
Kiểm tra các dữ liệu bị khuyết trong tập tin. (Các câu lệnh tham khảo: is.na (),
which (), apply ()).
Input:
apply(is.na(new_DF),2,which) #kiem tra NA va xuat vi tri dong chua NA
apply(is.na(new_DF),2,sum) #kiem tra va dem gia tri NA
apply(is.na(new_DF),2,mean) #tinh ti le NA

Giải thích:
- Kiểm tra và xuất vị trí giá trị khuyết của các biến trong dữ liệu new_DF.
- Đếm số lượng giá trị khuyết trong dữ liệu.
- Tính tỷ lệ giá trị khuyết trong dữ liệu.
Output:
Hình 3: Kết quả sau khi kiểm tra dữ liệu khuyết
Nhận xét; Ta nhận thấy có 5 dữ liệu khuyết ở biến G2. Cụ thể là các quan sát 2, 6,
9, 80, 100. Dữ liệu khuyết chiếm 1,2658% so với tổng số quan sát của dữ liệu. Do
dữ liệu bị khuyết là hoàn toàn ngẫu nhiên và chiếm một tỷ lệ thấp. Nên trong bài
này ta sẽ xóa các dữ liệu khuyết này đi.
Xóa dữ liệu khuyết trong tệp tin “new_DF” và kiểm tra lại.
CODE:

new_DF <- na.omit(new_DF) #xoa quan sat chua NA va luu lai vao tep tin
apply(is.na(new_DF),2,sum) #kiem tra lai NA

KẾT QUẢ:

Hình 4: Kết quả kiểm tra sau khi xóa các dữ liệu khuyết
Nhận xét: Nhận xét: Sau khi xóa, quan sát 10 dòng đầu của tệp tin "new_DF" thì ta
thấy các dòng chứa dữ liệu khuyết đã biến mất khỏi dữ liệu của tệp tin.
3. Làm rõ dữ liệu (Data visualization)
Đối với các biến liên tục G1, G2, G3 thì ta thực hiện thống kê mô tả bao gồm: trung
bình, trung vị, độ lệch chuẩn, giá trị lớn nhất và giá trị nhỏ nhất. Còn đối với các biến
studytime, paid, sex, failures thì ta tiến hành lập bảng thống kê số lượng cho từng biến.
Thống kê mô tả cho các biến G1, G2, G3:
CODE:

mean <- apply(new_DF[,c("G1","G2","G3")],2,mean) #tinh trung binh mau


sd <- apply(new_DF[,c("G1","G2","G3")],2,sd) #tinh do lech chuan hieu chinh
Q1 <- apply(new_DF[,c("G1","G2","G3")],2,quantile,probs=0.25) #tinh diem phan
vi 1
median <- apply(new_DF[,c("G1","G2","G3")],2,median) #tinh trung vi
Q3 <- apply(new_DF[,c("G1","G2","G3")],2,quantile,probs=0.75) #tinh diem phan
vi 3
min <- apply(new_DF[,c("G1","G2","G3")],2,min) #tinh gia tri nho nhat
max <- apply(new_DF[,c("G1","G2","G3")],2,max) #tinh gia tri lon nhat
data.frame(mean,sd,Q1,median,Q3,min,max) #tao bang voi cac bien
Giải thích: Tính trung bình, trung vị, độ lệch chuẩn, giá trị nhỏ nhất, giá trị lớn nhất,
của các biến liên tục và lần lượt lưu vào mean, median, sd, min, max.
KẾT QUẢ:

Hình 5: Kết quả tính thống kê mô tả cho các biến G1, G2, G3
Thống kê số lượng cho các biến studytime, paid, sex, failures
CODE:

table(new_DF[,"studytime"]) #lap bang thong ke so luong cho cac phan loai


table(new_DF[,"failures"]) #lap bang thong ke so luong cho cac phan loai
table(new_DF[,"paid"]) #lap bang thong ke so luong cho cac phan loai
table(new_DF[,"sex"]) #lap bang thong ke so luong cho cac phan loai

KẾT QUẢ:
studytime failures paid sex

Hình 6: Kết quả thống kê số lượng cho từng biến studytime, paid, sex, failures
Vẽ đồ thị histogram cho biến G3
CODE

hist(new_DF$G3 ,xlab ="G3",main ="Histogram of G3",label =T,col ="lightgreen",


border ="seagreen")#tao bieu do histogram

KẾT QUẢ:

Hình 7: Đồ thị Histogram cho biến G3


Nhận xét: Dựa trên đồ thị, ta nhận thấy điểm cuôí khóa của học sinh tập trung phần lớn ở
mức từ khoảng 6 - 16 điểm, cao nhất ở mức 8 - 10 điểm (84 học sinh) và thấp nhất ở mức
2 - 4 điểm (1 học sinh). Ngoài ra biểu đồ còn cho ta thấy có một lượng lớn học sinh có
mức điểm 0-2 điểm (38 học sinh), điều này sẽ ảnh hưởng không tốt đến mô hình mà
chúng em sắp xây dựng.
Vẽ biểu đồ Boxplot của biến G3 cho biến studytime
CODE:

boxplot(new_DF$G3 ~ studytime , xlab="studytime", ylab="G3", main="Boxplot of G3


for category of studytime",data = new_DF, col=c("lightgoldenrodyellow","lightgreen",
"lightskyblue","lightsalmon"))# tao boxplot cua bien G3 theo bien studytime

KẾT QUẢ:

Hình 8: Biểu đồ boxplot thể hiện phân phối của biến G3 theo phân loại của biến
studytime
Nhận xét:
● Với nhóm học sinh có thời gian tự học ít hơn 2 giờ (nhóm 1):
+ Điểm cuối khóa cao nhất khoảng 19 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng dưới 8 điểm.
+ Có 50% học sinh có điểm cuối khóa dưới 10 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 13 điểm.
● Với nhóm học sinh có thời gian tự học từ 2 đến 5 giờ (nhóm 2):
+ Điểm cuối khóa cao nhất khoảng 19 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng dưới 8 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 12 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 13 điểm.
● Với nhóm học sinh có thời gian tự học từ 5 đến 10 giờ (nhóm 3):
+ Điểm cuối khóa cao nhất khoảng 19 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa dưới 10 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 12 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 15 điểm.
● Với nhóm học sinh có thời gian tự học từ 10 giờ trở lên (nhóm 4):
+ Điểm cuối khóa cao nhất là 20 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng dưới 9 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 12 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 14.5 điểm.

Ta thấy, nhóm học sinh có thời gian tự học nhiều hơn thì có điểm trung bình cuối
khóa cao hơn. Điểm cuối khóa cao nhất là nhóm học sinh có thời gian tự học từ 10
giờ trở lên, điểm cuối khóa nhỏ nhất là nhóm học sinh có thời gian tự học từ 2 đến
5 giờ. Điều này cho thấy ở các nhóm học sinh có thời gian tự học trên 5 giờ thì
điểm số có xu hướng sẽ cao hơn nhóm học ít hơn 5 giờ.
Vẽ biểu đồ Boxplot thể hiện phân phối của biến G3 theo phân loại của biến Failures
CODE:

boxplot(new_DF$G3~failures, xlab="failures", ylab="G3", main="Boxplot of G3 for


category of failures",data = new_DF, col=c("lightgoldenrodyellow","lightgreen",
"lightskyblue","lightsalmon"))#tao boxplot cua bien G3 theo bien failures
KẾT QUẢ:
Hình 9: Vẽ biểu đồ Boxplot thể hiện phân phối của biến G3 theo phân loại của biến
Failures

Nhận xét:
● Với nhóm học sinh có 0 lần không qua môn:
+ Điểm cuối khóa cao nhất khoảng 20 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng dưới 9 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 12 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 14 điểm.
● Với nhóm học sinh có 1 lần không qua môn:
+ Điểm cuối khóa cao nhất khoảng 17 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng dưới 7 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 9 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 12 điểm.
● Với nhóm học sinh có 2 lần không qua môn:
+ Điểm cuối khóa cao nhất khoảng 15 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 8 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 9 điểm.
● Với nhóm học sinh có 3 lần không qua môn:
+ Điểm cuối khóa cao nhất khoảng 10 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 7 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 9.5 điểm.

Ta thấy, điểm trung bình cuối khóa dao động trong khoảng từ 7 – 11. Nhóm học
sinh có số lần không qua môn nhiều có xu hướng chủ quan vì nghĩ rằng đã học
qua kiến thức đó rồi nên trong quá trình học sẽ không chú ý nghe thầy cô giảng,
hoặc là có tư tưởng chán nản vì độ khó của môn học. Tuy nhiên ở nhóm học sinh
có số lần không qua môn là 1 có điểm số đồng đều hơn ba nhóm còn lại. Điểm
cuối khóa thấp nhất ở nhóm học sinh 2 và 3 lần không qua môn. Điều này cho
thấy ở các nhóm học sinh có số lần không qua môn dưới 1 lần thì điểm số có xu
hướng sẽ cao hơn nhóm học sinh có số lần không qua môn lớn hơn 1 lần.

Vẽ biểu đồ Boxplot thể hiện phân phối của biến G3 theo phân loại của biến
paid
CODE:

boxplot(new_DF$G3 ~ paid , xlab="paid", ylab="G3",data = new_DF,


main="Boxplot of G3 for category of paid", col=c("lightgreen","lightskyblue"))
# tao boxplot theo bien paid

KẾT QUẢ:
Hình 10: biểu đồ Boxplot thể hiện phân phối của biến G3 theo phân loại của biến paid
Nhận xét:
● Với nhóm học sinh không tham gia các lớp học Toán ngoài trường:
+ Điểm cuối khóa cao nhất là 20 điểm.
+ Điểm cuối khóa thấp nhất là 0 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng 8 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng 11 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng 14 điểm.
● Với nhóm học sinh có tham gia các lớp học Toán ngoài trường:
+ Điểm cuối khóa cao nhất 18 điểm.
+ Điểm cuối khóa thấp nhất là 4 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng dưới 9 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng dưới 11 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 13 điểm.
Nhìn chung, nhóm học sinh chọn học thêm ở các lớp Toán ngoài trường thì có điểm trung
bình cuối khóa cao hơn, sức học đồng đều hơn nhóm không tham gia các lớp học Toán
ngoài trường.
Vẽ biểu đồ Boxplot thể hiện phân phối của biến G3 theo phân loại của biến
sex
CODE:

boxplot(new_DF$G3 ~ sex , xlab="sex", ylab="G3",data= new_DF, main="Boxplot of G3 for


category of sex",col=c("lightgreen","lightskyblue")) # tao boxplot theo bien sex
KẾT QUẢ:

Hình 11: biểu đồ Boxplot thể hiện phân phối của biến G3 theo phân loại của biến
sex
Nhận xét:
● Với nhóm học sinh Nữ:
+ Điểm cuối khóa cao nhất khoảng dưới 19 điểm.
+ Điểm cuối khóa thấp nhất là 4 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng trên 8 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng trên 11 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 14 điểm.
● Với nhóm học sinh Nam:
+ Điểm cuối khóa cao nhất 20 điểm.
+ Điểm cuối khóa thấp nhất là 5 điểm.
+ Có 25% học sinh có điểm cuối khóa khoảng trên 9 điểm.
+ Có 50% học sinh có điểm cuối khóa khoảng trên 11 điểm.
+ Có 75% học sinh có điểm cuối khóa khoảng dưới 14 điểm.
Như vậy ta thấy, nhóm học sinh Nữ có điểm trung bình cuối khóa thấp hơn nhóm học
sinh Nam. Điều này cho thấy các học sinh Nam có học lực cao hơn các bạn Nữ.
Vẽ đồ thị phân tán thể hiện phân phối của biến G3 theo biến G1, G2 và
absences\
CODE:

par(mfrow = c(1,3)) #Xep 3 bieu do vao 1 hang


plot(G3 ~ G1, main ="G1 and G3",col ="blue", data=new_DF)
#Ve do thi phan tan cua G3 theo G1
plot(G3 ~ G2, main ="G2 and G3", col ="lightgreen", data=new_DF)
#Ve do thi phan tan cua G3 theo G2
plot(G3 ~ absences, main ="absences and G3", col ="lightsalmon", data=new_DF)
#Ve do thi phan tan cua G3 theo absences
KẾT QUẢ:

Hình 12: đồ thị phân tán thể hiện phân phối của biến G3 theo biến G1, G2 và
absences
Nhận xét: Từ các đồ thị phân tán của biến G3 theo G1, G2 và absences. Ta nhận
thấy:

- Các biến G1 và G2 có quan hệ tuyến tính với G3 (quan hệ đồng biến vì


G1, G2 tăng thì G3 cũng tăng theo).

- Đối với biến absences thì không có mối quan hệ tuyến tính với G3 vì dựa
vào biểu đồ phân tán ta có thể thấy những điểm trên 2 biểu đồ này phân tán
không có quy luật.
4: Xây dựng mô hình hồi quy tuyến tính để đánh giá các nhân tố có thể ảnh hưởng
đến điểm thi cuối kỳ của sinh viên.
CODE:

model_1 <- lm(G3 ~ G1 + G2 + studytime + failures + absences +paid + sex,new_DF)


#Xay dung mo hinh 1 va luu voi ten model_1
KẾT QUẢ:

Nhận xét: Từ kết quả phân tích, ta thu được:


βb0 = -1.68296; βb1 = 0.15705; βb2 = 0.97128; βb3 = -0.15211; βb4 = -0.26358
βb5 = 0.03769; βb6 = 0.12889; βb7 = 0.19834
Như vậy, đường thẳng hồi quy ước lượng cho bởi phương trình sau:
Gc3 = -1.68296 + 0.15705 × G1 + 0.97128 × G2 - 0.15211 × studytime - 0.26358 ×
failures +0.03769 × absences + 0.12889 × paid + 0.19834 × sex.
Kiểm định hệ số hồi quy:
Giả thuyết H0: Hệ số hồi quy không có ý nghĩa thống kê (βi = 0)
Giả thuyết H1: Hệ số hồi quy có ý nghĩa thống kê (βi ̸= 0)
+ P r(> |t|) của các hệ số ứng với biến G1, G2, absences bé hơn mức ý nghĩa α = 0.05 nên
ta bác bỏ giả thuyết H0, chấp nhận giả thuyết H1. Do đó hệ số ứng với các biến này có ý
nghĩa với mô hình hồi quy ta xây dựng.
+ P r(> |t|) của các hệ số ứng với biến studytime, failure, paidyes, sexM lớn hơn mức ý
nghĩa α = 0.05 nên ta chưa đủ cơ sở để bác bỏ giả thuyết H0. Do đó hệ số ứng với các
biến này không có ý nghĩa với mô hình hồi quy ta xây dựng. Ta có thể cân nhắc việc loại
bỏ các biến này ra khỏi mô hình.
Ta xây dựng thêm các mô hình hồi quy tuyến tính.
Mô hình 2: Loại bỏ đi biến paid từ mô hình 1.
CODE:

model_2 <- lm(G3 ~ G1 + G2 + studytime + failures + absences + sex,new_DF)


#Xay dung mo hinh 2 da loai bo bien paid tu mo hinh 1 va luu voi ten model_2
KẾT QUẢ:

Mô hình 3: Loại bỏ đi biến sex từ mô hình 2.


CODE:

model_3 <- lm(G3 ~ G1 + G2 + studytime + failures + absences,new_DF)


#Xay dung mo hinh 3 da loai bo bien sex tu mo hinh 2 va luu voi ten model_3
KẾT QUẢ:

Mô hình 4: Loại bỏ đi biến studytime từ mô hình 3


CODE:

model_4 <- lm(G3 ~ G1 + G2 + failures + absences,new_DF)


#Xay dung mo hinh 4 da loai bo bien studytime tu mo hinh 3 va luu voi ten model_4
KẾT QUẢ:

Mô hình 5: Loại bỏ đi biến failures từ mô hình 4


CODE:
model_5 <- lm(G3 ~ G1 + G2 + absences,new_DF)
#Xay dung mo hinh 5 da loai bo bien failures tu mo hinh 4 va luu voi ten model_5
KẾT QUẢ:

Sau đó tiến hành so sánh giữa các mô hình với nhau.


* So sánh giữa mô hình 1 và mô hình 2.
Giả thuyết H0: Mô hình 1 và mô hình 2 có hiệu quả như nhau
Giả thuyết H1: Mô hình 1 và mô hình 2 có hiệu quả khác nhau.
CODE:

anova(model_1,model_2) #So sanh mo hinh 1 va mo hinh 2


KẾT QUẢ:

Nhận xét: Vì p_value = 0.5264 lớn hơn mức ý nghĩa α = 0.05 nên chưa bác bỏ được giả
thuyết H0, hai mô hình 1 và 2 có hiệu quả giống nhau.
* So sánh giữa mô hình 2 và mô hình 3.
Giả thuyết H0: Mô hình 2 và mô hình 3 có hiệu quả như nhau
Giả thuyết H1: Mô hình 2 và mô hình 3 có hiệu quả khác nhau
CODE:

anova(model_2,model_3) #So sanh mo hinh 2 va mo hinh 3


KẾT QUẢ:

Nhận xét: Vì p_value = 0.3689 lớn hơn mức ý nghĩa α = 0.05 nên chưa bác bỏ được giả
thuyết H0, hai mô hình 2 và 3 có hiệu quả giống nhau.
* So sánh giữa mô hình 3 và mô hình 4.
Giả thuyết H0: Mô hình 3 và mô hình 4 có hiệu quả như nhau
Giả thuyết H1: Mô hình 3 và mô hình 4 có hiệu quả khác nhau
CODE:

anova(model_3,model_4) #So sanh mo hinh 3 va mo hinh 4


KẾT QUẢ:

Nhận xét: Vì p_value = 0.1294 lớn hơn mức ý nghĩa α = 0.05 nên chưa bác bỏ được giả
thuyết H0, hai mô hình 3 và 4 có hiệu quả giống nhau.
* So sánh giữa mô hình 4 và mô hình 5.
Giả thuyết H0: Mô hình 4 và mô hình 5 có hiệu quả như nhau
Giả thuyết H1: Mô hình 4 và mô hình 5 có hiệu quả khác nhau.
CODE:

anova(model_4,model_5) #So sanh mo hinh 4 va mo hinh 5


KẾT QUẢ:
Nhận xét:Vì p_value = 0.08117 lớn hơn mức ý nghĩa α = 0.05 nên chưa bác bỏ được giả
thuyết H0, hai mô hình 4 và 5 có hiệu quả giống nhau.
⇒ Dựa trên việc so sánh các mô hình, ta thấy các mô hình có hiệu quả giống nhau do đó
ta chọn mô hình nào cũng được. Mặt khác, ta nhận thấy hệ số R2 hiệu chỉnh ở mô hình 3
cao nhất, cho thấy sự thay đổi G3 được giải thích nhiều nhất bởi các biến độc lập. Do đó
ta lựa chọn mô hình hồi quy phù hợp nhất là mô hình 3.
Phân tích sự tác động của các nhân tố lên điểm thi cuối kỳ
Như vậy mô hình hồi quy tuyến tính về ảnh hưởng của các nhân tố lên điểm thi cuối kỳ
G3 được cho bởi:
Gc3 = -1.50268 + 0.15530 × G1 + 0.97637 × G2 - 0.17928 × studytime - 0.27224 ×
failures + 0.03687 × absences
Trước hết, ta thấy rằng p - value tương ứng với thống kê F bé hơn 2.2e - 16, có ý nghĩa rất
cao. Điều này chỉ ra rằng, ít nhất một biến dự báo trong mô hình có ý nghĩa giải thích rất
cao cho biến điểm thi cuối kỳ. Để xét ảnh hưởng cụ thể của từng biến độc lập, ta xét trọng
số (hệ số βi) và p - value tương ứng. Ta thấy rằng p-value tương ứng với hai biến G2 bé
hơn 2e-16, điều này nói lên rằng ảnh hưởng của G2 có ý nghĩa rất cao lên điểm thi cuối
kỳ G3. Ngoài ra, biến G1, absence, failures ít ảnh hưởng lên điểm thi cuối kỳ G3 và
studytime không ảnh hưởng lên điểm thi cuối kỳ G3.
Mặt khác, hệ số hồi quy βi của một biến dự báo cũng có thể được xem như ảnh hưởng
trung bình lên biến phụ thuộc điểm thi cuối kỳ G3 khi tăng một đơn vị của biến dự báo
đó, giả sử rằng các biến dự báo khác không đổi. Cụ thể, βb1 = 0.15530 thì khi điểm thi
học kỳ 1 tăng 1đ, ta có thể kỳ vọng điểm thi cuối kỳ sẽ tăng lên 0.1553đ về mặt trung
bình (giả sử rằng các biến dự báo khác không đổi). Với βb2 = 0.97637 thì khi điểm thi
học kỳ 2 tăng 1đ, ta có thể kỳ vọng điểm thi cuối kỳ sẽ tăng lên 0.97637đ về mặt trung
bình (giả sử rằng các biến dự báo khác không đổi). Tương tự, đối với các biến còn lại.
Hệ số R2 hiệu chỉnh bằng 0.824 nghĩa là 82.4% sự biến thiên trong điểm thi cuối kỳ được
giải thích bởi các biến các biến độc lập.
Kiểm tra các giả định của mô hình
Nhắc lại các giả định của mô hình hồi quy: Yi = β0 + β1.X1 + ...βi.Xi + ϵi, i = 1, ...n.
+ Tính tuyến tính của dữ liệu: mối quan hệ giữa biến dự báo X và biến phụ thuộc Y được
giả sử là tuyến tính.
+ Sai số có phân phối chuẩn
+ Phương sai của các sai số là hằng số.
+ Các sai số ϵ có kỳ vọng = 0
+ Các sai số ϵ1, ..., ϵn thì độc lập với nhau.
Ta thực hiện phân tích thặng dư để kiểm tra các giả định của mô hình.
CODE:

par(mfrow = c(2, 2)) #xep 4 bieu do thanh 2 hang 2 cot


plot(model_3) #ve do thi phan tich thang du
KẾT QUẢ:

Nhận xét:
Đồ thị 1 vẽ các giá trị sai số tương ứng với các giá trị dự báo, kiểm tra giả định tuyến
tính dữ liệu và giả định các sai số có kỳ vọng bằng 0.
* Ta nhận thấy đường màu đỏ gần như là đường thẳng nên giả định tuyến tính của dữ
liệu thỏa mãn.
* Các sai số tập trung xung quanh đường thẳng y = 0 (ngoại trừ một số ngoại lai) nên
giả định các sai số có kỳ vọng bằng 0 thỏa mãn.
Đồ thị 2 vẽ các sai số đã được chuẩn hóa kiểm tra giả định phân phối chuẩn.
Ta nhận thấy các sai số đã được chuẩn hóa chưa nằm trên một đường thẳng nên giả định
này chưa thỏa mãn.
Đồ thị 3 vẽ căn bậc hai của sai số, kiểm tra giả định phương sai của sai số là hằng số.
Ta nhận thấy các căn bậc hai sai số tập trung quanh đường thẳng màu đỏ, mặc dù có
ngoại lai nhưng tạm chấp nhận được.
Đồ thị 4 xác định các điểm có ảnh hưởng cao nếu nó hiện diện trong bộ dữ liệu.
Các điểm 141, 260, 277 có thể là các điểm có ảnh hưởng cao. Tuy nhiên các điểm này
chưa vượt qua đường Cook’s distance nên chưa thật sự là điểm ảnh hưởng cao do đó
không cần loại bỏ khi phân tích
5 Thực hiện dự báo cho điểm Toán của học sinh
Dự báo điểm thi cuối kỳ môn Toán nếu một học sinh có điểm thi học kỳ 1 là 14, điểm thi
cuối học kỳ 2 là 13, học sinh này dành trên 10 giờ một tuần cho việc tự học, chưa rớt môn
lần nào và số lần nghỉ học là 3.
CODE:

X = data.frame("G1"= 14,"G2"= 13,"studytime"= 4,"failures"= 0,"absences"= 3)


predict(model_3,X,interval="confidence")
KẾT QUẢ:

Nhận xét: Điểm thi cuối kỳ trung bình dự báo được là 11.89991đ, khoảng tin cậy cho giá
trị dự báo (11.32455; 12.47527).

You might also like