Làm sạch dữ liệu Data cleaning a Hãy trích ra một dữ liệu con đặt tên là new_DF 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.. Nhận xét: Dựa
Trang 1HO CHI MINH CITY
UNIVERSITY OF
BÁO CÁO BÀI TẬP LỚN 2
MÔN XÁC SUẤT THỐNG KÊ
GVHD: TS Nguyễn Bá Thi
Thực hiện: Nguyễn Việt Ngân - 1914289
(Lớp: L11 – Nhóm: 04)
Trang 2Mục lục
PHẦN CHUNG 3
BÀI 1 3
BÀI 2 16
PHẦN RIÊNG 33
Trang 4## [21] "lat" "long" "sqft_living15"
"sqft_lot15"
2 Làm sạch dữ liệu (Data cleaning)
a) Hãy trích ra một dữ liệu con đặt tên là new_DF 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_DF này.
b) Kiểm tra các dữ liệu bị khuyết trong tập tin và đề xuất phương pháp thay thế cho
những dữ liệu bị khuyết này nếu có dữ liệu bị khuyết:
Kiểm tra và xuất ra vị trí dòng có giá trị khuyết:
Trang 5 Nhận xét: Dựa vào kết quả thu được ta nhận thấy có 20 giá trị khuyết ở biến
price Do đó ta sẽ đưa ra phương pháp xử lý số liệu là như sau: Do số quan sát chỉ chứa 20 giá trị khuyết chiếm rất thấp số với tổng quan sát trên toàn bộ dữ liệu (20/2163 < 10%) vì vậy ta chọn phương pháp xóa dữ liệu khuyết:
new_DF=na.omit(new_DF)
3 Làm rõ dữ liệu (Data visualization)
Chuyển đổi các biến price, sqft_living15, sqft_above, sqft_living lần lượt
thành log(price), log(sqft_living15), log(sqft_above ), log(sqft_living) Từ đây
mọi sự tính toán với các biến trên được hiểu là đã qua biến đổi dạng log
new_DF[,c( 1 2 5 6 )]=log10(new_DF[,c( 1 2 5 6 )])
Trang 6a) Tính các giá trị thống kê mô tả đối với các biến liên tục: Trung bình (mean)
Bảng thông kê số lượng cho từng chủng loại đối với các biến phân loại
Bảng thống kê số lượng cho biến floors
Trang 7 Nhận xét: Dựa vào đồ thị trên ta thấy với mức giá nhà phân bố tập trung trong
khoảng giữa của đồ thị Và đồ thị cũng có dạng giống với dạng phân phối chuẩn
Dùng ham boxplot() ve phan phôi cua biên price cho tưng nhom phan loai
cua biên floor và biến condition
boxplot(price~floors,main="Boxplot of house price for each
category of floor",data=new_DF,col="cyan")
Trang 8boxplot(price~condition,main="Boxplot of house price for each
category of condition",data=new_DF,col="orange")
Nhận xét: Dựa vào các biểu đồ boxplot ta nhận thấy có nhiều ngoại lai của biến
price theo biến floors và condition
Trang 9Dùng lẹnh pairs() ve cac phan phôi cua biên price lân luơt theo cac biênsqft_living15, sqft_above va sqft_living.
* Vẽ phân phối biến price theo sqft_living15:
pairs(price~sqft_living15, main="price of house price for sqft_living15", data=new_DF,col="violet")
* Vẽ phân phối biến price theo sqft_above:
pairs(price~sqft_above, main="price of house price for sqft_above", data=new_DF,col="violet")
Trang 10* Vẽ phân phối biến price theo sqft_living:
pairs(price~sqft_living, main="price of house price for
sqft_living", data=new_DF,col="violet")
Nhận xét: Từ các đồ thị phân tán của biến price theo sqft_living15,
sqft_above, sqft_living, ta nhận thấy các biến sqft_living15, sqft_above, sqft_living có quan hệ tuyến tính với price, nói rõ hơn là quan hệ đồng biến
Có thể nhận thấy khi các biến sqft_living15, sqft_above, sqft_living tăng lên thì biến price có xu hướng tăng theo
Trang 114 Xây dựng các mô hình hồi quy tuyến tính (Fitting linear regression models)
Chúng ta muốn khám phá rằng có những nhân tố nào và tác động như
thế nào đến giá nhà ở quận King
Ta cần xét các biến chính trong việc xây dựng mô hình hồi quy
a) Xét mô hình hồi quy tuyến tính bao gồm biến price 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 lm() để thực thi mô hình hồi quyù̀tuyến tính bội
* Thay các biến phân loại thành biến nhân tố.
new_DF$floors=as.factor(new_DF$floors)
new_DF$condition=as.factor(new_DF$condition)
Price là một hàm số phụ thuộc vào năm biến còn lại Các thông tin về mô
hình hồi quy tuyến tính sẽ được đưa vào một object có tên là m1.
m1=lm(price~sqft_living15 + sqft_above + sqft_living + floors +
condition, data=new_DF)
summary(m1)
##
# lm(formula = price ~ sqft_living15 + sqft_above + sqft_living +
# floors + condition, data = new_DF)
Trang 12## Residual standard error: 0.1601 on 21580 degrees of freedom
## Multiple R-squared: 0.51, Adjusted R-squared: 0.5097
## F-statistic: 1872 on 12 and 21580 DF, p-value: < 2.2e-16
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ạikhỏi mô hình tương ứng với mức tin cậy 5%?
Với mức tin cậy α = 0.05
Giả thiết:
H: biến không có ý nghĩa thống kê
H: biến có ý nghĩa thống kê.
Xét giá trị kiểm định t (Pr) của các biến độc lập:
Pr (sqft_living15) < 2e-16 = 2*10-16 < 0.05 → bác bỏ giả thuyết H Pr
(floors) có các giá trị đều nhỏ hơn 0.05 → bác bỏ giả thuyết H
Pr (condition 2) có các giá trị lớn hơn 0.05 → chấp nhận giả thuyết H
Pr (condition 3, condition 4, condition 5) < 0.05 → bác bỏ giả thuyết
H Pr (sqft_above) = 2e-16 < 0.05 → bác bỏ giả thuyết H
Pr (sqft_living) = 2e-16 < 0.05 → bác bỏ giả thuyết H
Như vậy, với mức tin cậy 5%, ta sẽ loại bỏ biến “condition 2” khỏi mô hình hồi quy tuyến tính trên
c) Xét 2 mô hình tuyến tính c ng bao gồm biến price là biến phụ thuộc nhưng:ù̀
Trang 13mô hình m1 chứa tất cả các biến còn lại là biến độc lập
mô hình m2 là loại bỏ biến condition từ mô hình M1
m2=lm(price~sqft_living15 + sqft_above + sqft_living + floors,
data=new_DF)
summary(m2)
##
# lm(formula = price ~ sqft_living15 + sqft_above + sqft_living +
# floors, data = new_DF)
# Residual standard error: 0.1614 on 21584 degrees of freedom
# Multiple R-squared: 0.5019, Adjusted R-squared: 0.5017
# F-statistic: 2718 on 8 and 21584 DF, p-value: < 2.2e-16
D ng lệnh anova() để đề xuất mô hình hồi quy hợp lý hơn.ù̀
anova(m1,m2)
## Analysis of Variance Table
Trang 14H: Hai mô hình tuyến tính như nhau
H: Hai mô hình tuyến tính khác nhau
Nhận xét: Vì kết quả thu được trong bảng Anova cho 2 mô hình m1 và m2 là
Pr(>F) = 2,2e- 16 nhỏ hơn 0.05 nên ta bác bỏ H Điều đó chỉ ra rằng 2 mô
hình là khác nhau
Do đó ta sẽ cân nhắc việc chọn mô hình m1 hay mô hình m2 Đối với mô hình m2, biến loại bỏ đi từ mô hình m1 là condition, mà biến condition ta không loại bỏ khỏi mô hình (đã xét ở câu b) do đó ta sẽ có chọn mô hình m1 sẽ hợp lý hơn
Mặt khác, ta có thể xét hệ số Multiple R-squared (hệ số xác định) ở mô hình m1 =0,51 > hệ số Multiple R-squared (hệ số xác định) ở mô hình m2 = 0,5019 Tức có nghĩa là mô hình m1 cho ta biết sự thay đổi của biến price được giải thích bởi các biến độc lập tốt hơn sovới mô hình m2 Hoặc ta so sánh RSS (tổng bình phương sai lệch giữa thực tế
và dự báo) của m1 < m2
Theo kết quả trên, mô hình M1 hợp lý hơn.
d) Chọn mô hình hợp lý hơn từ câu (c) hãy suy luận sự tác động của
các biến lên giá nhà
Từ câu c, ta chọn mô hình m1 là mô hình hợp lý hơn
Biến price là một biến phụ thuộc vào 5 biến độc lập: sqft_living15, floors,
condition, sqft_above, sqft_living Dựa trên thông tin của mô hình m1, ta
có đường hồi quy tuyến tính mẫu như sau:
Trang 15price = 2.308027 + 0.462153 (sqft_living15) + 0.078713 (floors1.5) +
0.029366 (floors2) + 0.162118 (floors2.5) + 0.165894 (floors3) +
0.215827 (floors3.5) + 0.008113 (condition2) + 0.070449 (condition3) +
0.090356 (condition4) + 0.144105 (condition5) -0.142451 (sqft_above) +
0.670249 (sqft_living)
Các giá trị β của bốn biến độc lập đều khác 0, cho thấy chúng đều có tác
động đến price Mối liên hệ này có ý nghĩa thống kê
Xét đạo hàm theo từng biến độc lập, ta thấy mức độ ảnh hưởng như sau:
sqft_living15 tăng 1 đơn vị, price tăng 0.462153 đơn vị
sqft_above tăng 1 đơn vị, price giảm 0.142451 đơn vị
sqft_living tăng 1 đơn vị, price tăng 0.670249 đơn vị
e) 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 (residuals) và giá trị dự báo (fitted values) Nêu ý nghĩa và nhận xét đồ thị
plot(m1,which= 1
Trang 16Ý nghĩa: đồ thị trín biểu thị sai số hồi quy vă giâ trị dự bâo cho biến phụ thuộc price.
Nhận xĩt: Câc giâ trị residuals vă fitted values chủ yếu tập trung ở góc phần tư
thứ nhất vă phần tư thứ tư, dao động đối xứng quanh đường y = 0
- Đường thẳng chính giữa chính lă đường 0 => sai số hồi quy (XSHQ)= 0
- Đường XSHQ đỏ căng gần đường 0 căng chính xâc
Kết luận: Giâ nhă khi đó được dự bâo chính xâc nhất do khoảng câch
gần đường 0 nhất
5 Dự bâo (Predictions)
Từ mô hình bạn chọn trong cđu (c), hêy d ng lệnh (predict) để dự bâo giẫ̀
nhă tại 2 thuộc tính như sau:
x1: sqft_living15 = mean(sqft_living15), sqft_above = mean(sqft_above),
sqft_living = mean(sqft_living), floor = 2, condition = 3
x2: sqft_living15 = max(sqft_living15), sqft_above = max(sqft_above),
sqft_living = max(sqft_living), floor =2, condition = 3
So sânh khoảng tin cậy cho 2 giâ trị dự bâo năy
Khai bâo biến
Trang 17predict_X2=predict(m1,X2,interval = "confidence")
predict_X2
## 1 6.364003 6.353382 6.374624
So sánh khoảng tin cậy của hai dự báo của X1 và X2:
*Tạo bảng thể hiện dự báo giá nhà(có thể hiện độ dài khoảng tin cậy) của hai biến X1 và X2:
Nhận xét: Với khoảng tin cậy 95%, ta thấy được độ dài khoảng tin cậy giá
trị dự báo của X1 < X2 nên ta có thể kết luận với tập liệu từ X1, ta có thể thu được một giá trị dự báo chính xác hơn so với X2
Trang 18# [16] "failures" "schoolsup" "famsup" "paid" "activities"
# [21] "nursery" "higher" "internet" "romantic" "famrel"
# [26] "freetime" "goout" "Dalc" "Walc" "health"
## [31] "absences" "G1" "G2" "G3"
Trang 192 Làm sạch dữ liệu (Data cleaning)
a) Hãy trích ra một dữ liệu con đặt tên là new_DF 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 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_DF này
b) 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()) Nếu có dữ liệu bị khuyết, hãy đề xuất phương pháp thay thế cho những dữliệu này
Kiểm tra và xuất ra vị trí dòng có giá trị khuyết:
Trang 20Nhận xét: Dựa vào kết quả thu được ta nhận thấy có 5 giá trị khuyết ở biến
G2.Do đó ta sẽ đưa ra phương pháp xử lý số liệu là như sau: Do số quan sát
chỉ chứa 20 giá trị khuyết chiếm rất thấp số với tổng quan sát trên toàn bộ
dữ liệu (5/395 < 10%) vì vậy ta chọn phương pháp xóa dữ liệu khuyết:
new_DF=na.omit(new_DF)
3 Làm rõ dữ liệu (Data visualization)
a) Đôi vơi cac biên lien tuc, hay tinh cac gia tri thông ke mo ta bao gôm: trung binh, trung vi, đọ lẹch chuân, gia tri lơn nhât va gia tri nho nhât Xuât kêt qua duơi dang bang
(Ham gơi y: mean(), median(), sd(), min(), max() , apply(), as.data.frame(), rownames())
Trang 21## mean median sd max min
c) Hay dùng ham hist() đê ve đô thi phan phôi cua biên G3
hist(new_DF$G3,main = "histogram of G3",labels= T ,col="cyan")
Trang 22Nhận xét: Nhìn vào biểu đồ, ta nhận thấy điểm cuối khóa (biến G3) của sinh
viên phần lớn tập trung ở mức từ 6 – 16 điểm, cao nhất ở mức 8 – 10 điểm,
thấp nhất ở mức 2 – 4 điểm
Đồ thị có cột đầu tiên bị lệch so với đồ thị phân phối chuẩn, có thể nói cột
đầu tiên là yếu tố ngoại lai nên nếu loại bỏ cột đầu tiên thì độ thị có dạng
gần giống phân phối chuẩn
d) Hay dùng ham boxplot() ve phan phôi cua biên G3 cho tưng nhom phan loai cua biên studytime, failures, va biên higher
boxplot(G3~studytime,main ="Boxplot of G3 for each category of
studytime",data=new_DF,col="red")
Trang 23boxplot(G3~failures,main ="Boxplot of G3 for each category of failures",data=new_DF,col="yellow")
boxplot(G3~higher,main ="Boxplot of G3 for each category of higher",data=new_DF,col="green")
Trang 24Nhận xét: Nhìn chung, nhóm học sinh có thời gian tự học nhiều hơn
sẽ có điểm cuối kì cao hơn
e) Dùng lẹnh pairs() ve cac phan phôi cua biên G3 lân luơt theo cac biên G2, G1, age, va absences
pairs(G3~G2, main="Phan phoi diem thi CK theo diem HK2",
data=new_DF)
Trang 25pairs(G3~G1, main="Phan phoi diem thi CK theo diem HK1", data=new_DF)
pairs(G3~age, main="Phan phoi diem thi CK theo tuoi", data=new_DF)
Trang 26pairs(G3~absences, main="Phan phoi diem thi CK theo so lan nghi
hoc", data=new_DF)
Nhận xét: Nhìn vào biểu đồ phân tán của biến G3 theo G1, G2, age
và absences, ta nhận thấy:
Các biến G1, G2 có quan hệ tuyến tính với biến G3
Các biến age, absences không có quan hệ tuyến tính với biến G3
4 Xây dựng các mô hình hồi quy tuyến tính (Fitting linear regression models)
Chung ta muôn kham pha răng co nhưng nhan tô nao va tac đọng nhu thê
nao đên điêm cuôi khoa mon Toan cua cac em hoc sinh
Ta cần xét các biến chính trong việc xây dựng mô hình hồi quy
a) Xet mo hinh hôi quy tuyên tinh bao gôm biên G3 la mọt biên phu thuọc, va tât ca cac biên con lai đêu la biên đọc lạp Hay dùng lẹnh lm() đê thưc thi mo hinh hôi quy tuyên tinh bọi
* Thay các biến phân loại thành biến nhân tố
Trang 27# lm(formula = G3 ~ G1 + G2 + age + absences + studytime + failures +
# higher, data = new_DF)
Trang 28# Residual standard error: 1.896 on 378 degrees of freedom
# Multiple R-squared: 0.8327, Adjusted R-squared: 0.8279
# F-statistic: 171.1 on 11 and 378 DF, p-value: < 2.2e-16
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ạikhỏi mô hình tương ứng với mức tin cậy 5% và 1%?
*Với mức tin cậy α = 0.05
Giả thiết:
H: biến không có ý nghĩa thống kê
H: biến có ý nghĩa thống kê.
Xét giá trị kiểm định t (Pr) của các biến độc lập:
Pr (G1) = 0,006096 < 0.05 → bác bỏ giả thuyết H
Pr (G2) < 2e-16 = 2.10-16 < 0.05 → bác bỏ giả thuyết
H Pr (studytime4) < 0.05 → bác bỏ giả thuyết H
Pr (studytime2), Pr (studytime3) > 0.05 → chấp nhận giả thuyết
H Pr (failures1) < 0.05 → bác bỏ giả thuyết H
Pr (failures2), Pr (failures3) > 0.05 → chấp nhận giả thuyết
H Pr (higher) > 0.05 → chấp nhận giả thuyết H
Pr (absences) < 0.05 → bác bỏ giả thuyết H
Pr (age) > 0.05 → chấp nhận giả thuyết H
Như vậy, với mức tin cậy 5%, ta sẽ loại bỏ biến “studytime2”,
“studytime3”, “failures 2”, “failures3”, “higher” và “age” khỏi mô hình hồi
quy tuyến tính trên
*Với mức tin cậy α = 0.01
Giả thiết:
H: biến không có ý nghĩa thống kê
H: biến có ý nghĩa thống kê.
Xét giá trị kiểm định t (Pr) của các biến độc lập:
Pr (G1) = 0,006096 < 0.01 → bác bỏ giả thuyết H
Pr (G2) < 2e-16 = 2.10-16 < 0.01 → bác bỏ giả thuyết H
Trang 29Pr (studytime) > 0.01 → chấp nhận giả thuyết
H Pr (failures1) < 0.01 → bác bỏ giả thuyết H
Pr (higher) > 0.01 → chấp nhận giả thuyết
H Pr (absences) < 0.01 → bác bỏ giả thuyết
H Pr (age) > 0.01 → chấp nhận giả thuyết H
Như vậy, với mức tin cậy 1%, ta sẽ loại bỏ biến “studytime”, “failures2”,
“failures3”, “higher” và “age” khỏi mô hình hồi quy tuyến tính trên
c) Xet 3 mo hinh tuyên tinh cùng bao gôm biên G3 la biên phu thuọc nhung:
Mo hinh M1 chưa tât ca cac biên con lai la biên đọc lạp
Mo hinh M2 la loai bo biên higher tư M1,
Mo hinh M3 la loai bo biên failure tư M2
Dùng lẹnhh anova() đê đê xuât mo hinh hôi quy hơp ly hon.
m2=lm(G3~G1 + G2 + age + absences + studytime + failures,
Trang 30# Residual standard error: 1.894 on 379 degrees of freedom
# Multiple R-squared: 0.8326, Adjusted R-squared: 0.8282
# F-statistic: 188.5 on 10 and 379 DF, p-value: < 2.2e-16 m3=lm(G3~G1 + G2 + age + absences + studytime, data=new_DF) summary(m3)