1 Cơ sở lý thuyết1.1 Thống kê mô tả Nói đến thống kê mô tả là nói đến việc mô tả dữ liệu bằng các phép tính và chỉ số thống kê như số trung bìnhmean, số trung vị median, số lớn nhất max,
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP.HCM
Trang 2Mục lục
1.1 Thống kê mô tả 3
1.2 Các lệnh dùng trong Rstudio 3
2 Nội dung báo cáo 4 2.1 Phần chung 4
2.1.1 Đọc dữ liệu 4
2.1.2 Làm sạch dữ liệu 5
2.1.3 Làm rõ dữ liệu 6
2.1.4 Xây dựng mô hình hồi quy tuyến tính: 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 10
2.1.5 Dự báo 13
2.2 Phần riêng 14
2.2.1 Giới thiệu 14
2.2.2 Xử lí số liệu 14
Trang 31 Cơ sở lý thuyết
1.1 Thống kê mô tả
Nói đến thống kê mô tả là nói đến việc mô tả dữ liệu bằng các phép tính và chỉ số thống kê như số trung bình(mean), số trung vị (median), số lớn nhất (max), số nhỏ nhất (min), phương sai (variance), độ lệch chuẩn (standarddeviation) Trong đó ta làm quen các định nghĩa:
1 Trung bình cộng:trung bình cộng trong thống kê là một đại lượng mô ta thống kê, được tính bằng cách lấy tổnggiá trị của toàn bộ các quan sát trong tập chia cho tổng số lượng các quan sát trong tập
2 Trung vị:là một số tách giữa nửa lớn hơn và nửa bé hơn của một mẫu, một quần thể, hay một phân bố xác suất
Nó là giá trị giữa trong một phân bố, mà số các số nằm trên hay dưới con số đó là bằng nhau
3 Độ lệch chuẩn:là một đại lượng thống kê mô tả dùng để đo mức độ phân tán của một tập dữ liệu đã được lậpthành bảng tần số Có thể tính ra độ lệch chuẩn bằng cách lấy căn bậc hai của phương sai
4 Giá trị nhỏ nhất:là giá trị nhỏ nhất trong toàn bộ các giá trị của một tập mẫu
5 Giá trị lớn nhất:là giá trị lớn nhất trong toàn bộ các giá trị của một tập mẫu
6 Biểu đồ hist:là biểu đồ tần số dùng cho biến định lượng liên tục nhằm biểu diễn phân phối của tập dữ liệu
7 Biểu đồ boxplot: là biểu đồ diễn tả 5 vị trí phân bổ của dữ liệu, đó là giá trị nhỏ nhất, tứ phân vị thứ nhất,trung vị, tứ phân vị thứ ba, giá trị lớn nhất
8 Biểu đồ pairs:là biểu đồ thể hiện mối liên hệ giữa các biến
9 Hồi quy tuyến tính:
Khái niệm: Đường hồi quy tuyến tính mẫu Y theo X là đường thẳng có phương trình:
y = A + Bx
Ý nghĩa: Nếu X và Y có tương quan xấp xỉ tuyến tính thì đường hồi quy cho ta khả năng dự báo một cách đơn giản:
X = x0=> Y ≈ y0= A + Bx0
1.2 Các lệnh dùng trong Rstudio
1 read_csv():đọc file csv vào R-studio
2 which():tìm kiếm các thông số thỏa mãn ràng buộc từ dữ liệu cho trước
3 is.na():kiểm tra dữ liệu có thông số nào mang giá trị NA hay không
4 median():tính trung vị của mẫu
5 mean():tính trung bình của mẫu
6 max():tính giá trị lớn nhất của mẫu
7 min():tính giá trị nhỏ nhất của mẫu
8 sd():tính độ lệch chuẩn của mẫu
9 table():tạo một bảng thông kê của từng biến phân loại
10 hist():vẽ biểu đổ tần số của một biến
11 boxplot():vẽ biểu đồ hộp
12 pairs():vẽ biểu đồ liên hệ giữa các biến
13 view():hiển thị giá trị của biến
14 lm():tính toán giá trị của các hệ số hồi quy
15 summary():liệt kê các giá trị tính toán của mô hình
16 anova():ước tính xem một biến phụ thuộc định lượng thay đổi như thế nào theo các mức của một hoặc nhiềubiến độc lập phân loại
17 predict():sử dụng một mô hình phù hợp để dự báo các giá trị phản hồi cho một tập dữ liệu mới
Trang 4
2 Nội dung báo cáo
2.1 Phần chung
Đề bài: Phân tích giá bán ra thị trường của các ngôi nhà ở quân King nước Mỹ trong khoảng thờigian từ tháng 5/2014 đến 5/2015.Bên cạnh giá nhà, dữ liệu bao gồm các thuộc tính mô tả chất lượngngôi nhà
Các biến chính trong bộ dữ liệu:
• price: giá nhà được bán ra
• sqft_living15: diện tích trung bình của 15 ngồi nhà gần nhất trong khu dân cư
• floors: số tầng của ngôi nhà được phân loại từ 1-3.5
• condition: điều kiện kiến trúc của ngôi nhà từ 1-5, 1: rất tệ và 5: rất tốt
• sqft_above: diện tích ngôi nhà
• sqft_living: diện tích khuôn viên nhà
Trang 52.1.2 Làm sạch dữ liệu
• (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 quantâ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
Trang 62.1.3 Làm rõ dữ liệu
• (a) Chuyển các biến price,sqft_living15, sqft_above và 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đều được hiểu là đã đổi qua biến dạng log
Trang 7• (b) Đối với các biến liên tục, hãy tính các giá trị 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 Xuất kết quả dưới dạng bảng.(Hàm gợiý: mean(), median(), sd(), min(), max(), apply(), as.data.frame(), rownames())
Input:
thongke<-data.frame()
mean<-cbind(mean(logDF[,1]), mean(logDF[,2]), mean(logDF[,5]), mean(logDF[,6]))
median<-cbind(median(logDF[,1]), median(logDF[,2]), median(logDF[,5]), median(logDF[,6]))sd<-cbind(sd(logDF[,1]), sd(logDF[,2]), sd(logDF[,5]), sd(logDF[,6]))
min<-cbind(min(logDF[,1]), min(logDF[,2]), min(logDF[,5]), min(logDF[,6]))
max<-cbind(max(logDF[,1]), max(logDF[,2]), max(logDF[,5]), max(logDF[,6]))
thongke<-rbind(mean, median, sd, min, max)
colnames(thongke)<-c("price", "sqft_living15", "sqft_above", "sqft_living")
rownames(thongke) <- c("mean", "median", "sd", "min", "max")
Trang 8boxplot(price ∼ condition, xlab = "condition",ylab = "price", main = "Boxplot Distribution
of Price for Condition")
Output:
Trang 9• (f) Dùng lệnh pairs() vẽ các phân phối của biến price lần lượt theo các biến sqft_living15,sqft_above và sqft_living.
Input:
pairs(price ∼ sqft_living15, data = logDF)
pairs(price ∼ sqft_above, data = logDF)
pairs(price ∼ sqft_living, data = logDF)
Output:
Trang 102.1.4 Xây dựng mô hình hồi quy tuyến tính: 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
• (a) Xét mô hình hồi quy tuyến tính bao gồm biến price là biến phụ thuộc, và tất cả các biếncò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.Input:
M1<-lm(price ∼ sqft_living15 + floors + condition + sqft_above + sqft_living, data = logDF)
Trang 11Output:
• (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 bỏ khỏi
mô hình tương ứng với mức tin cậy 5%?
Với mức tin cậy 5%:
Ta thấy các biến đều có giá trị Pr(>|t|) < 0,05nên ta sẽ không loại biến nào ra khỏi mô hình
• (c) Xét hai mô hình hồi quy tuyến tính cùng bao gồm biến price là biến phụ thuộc nhưng:
• Mô 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
Hãy dùng lệnh anova() để đề xuất mô hình hồi quy hợp lý hơn
Trang 12• (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à.
Dùng lệnh:
summary(M1)
Từ cột Estimate suy ra mô hình M1:
Từ bảng kết quả trên, ta có mô hình M1 là:
price = 5.4392 + sqft_living15 * 0.4310 + floors * 0.1371 + condition * 0.0853 - 0.1794 * sqft_above +sqft_living * 0.6874
Do đó, khi ta thay đổi một thông số và giữ nguyên giá trị các thông số còn lài thì:
– Với sqft_living15 tăng thêm 1 thì price tăng thêm 0.4310
– Với floors tăng thêm 1 thì price tăng thêm 0.1371
– Với condition tăng thêm 1 thì price tăng thêm 0.0853
– Với sqft_above tăng thêm 1 thì price giảm đi 0.1794
– Với sqft_living tăng thêm 1 thì price tăng thêm 0.6874
• (e) Từ mô hình bạn chọn ở 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ị
Trang 13Nhận xét:
Xét đồ thị nằm ở trên bên trái(đồ thi biểu thị sai số hồi quy và giá trị dự báo) ta thấy đường màu đỏ, tức
đường biểu diễn giá trị trung bình của sai số hồi quy gần bằng giá trị 0
Ý nghĩa:
Điều này cho thấy mô hình của chúng ta có ít những giá trị ngoại biên có khả năng làm sai lệch mô hình hồi
quy tuyến tính
2.1.5 Dự báo
Từ mô hình bạn chọn ở câu (c), hãy dùng lệnh predict() để dự báo giá nhà ở hai 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 hai giá trị dự báo này
Trang 14Ta có: R1= 13.09012 − 13.07429 = 0.01583 và R2= 14.65587 − 14.60732 = 0.04855 Như vậy khoảng tin cậycủax2> x1
2.2 Phần riêng
2.2.1 Giới thiệu
Chúng em chọn một tập dữ liệu thu được từ một mẫu 149 bài viết do một trang thông tin thuộcKhoa Khoa học và kỹ thuật Máy tính đăng tải, chứa các thông tin về ngày đăng, lượt xem, lượt tươngtác từ người dùng trên Facebook trong thời gian tồn tại của các bài viết Trong file "tuong_tac.xlsx"chứa các biến chính sau:
• Type: loại tệp đính kèm từ 0-2.(0 là Link, 1 là Photo, 2 là Video)
• Time Post: ngày đã đăng bài viết (định dạng m/d/y_h/m/s)
• Lifetime.Post.Total.Reach: tổng lượt click vào bài viết từ người dùng ngẫu nhiên
• Lifetime.Engaged.Users: tổng số người tương tác
• Lifetime.Post.reach.by.people.who.like.your.Page: tổng lượt click vào bài viết của người đangtheo dỗi trang thông thông tin
• Lifetime.Matched.Audience.Targeting.Consumers.on.Post: tổng số người tương tác phù hợp vớinội dung bài viết
Chúng em sẽ tiến hành phân tích hồi quy tuyến tính đối với tập dữ liệu này
Trang 16– Lập bảng thống kê mô tả cho các biến liên tục
Trang 17boxplot(Lifetime.Engaged.Users ∼ Type, xlab = "Type",ylab = "Lifetime.Engaged.Users",
main = "Boxplot Distribution of Lifetime.Engaged.Users for Type")
Output:
– Dùng pairs() vẽ các phân phối của biến Lifetime.Engaged.Users lần lượt theo các biến
Life-time.Post.Total.Reach, Lifetime.Post.reach.by.people.who.like.your.Page, Lifetime.Matched.Audience.Targeting.Consumers.on.Post.Input:
Trang 18pairs(Lifetime.Engaged.Users ∼ Lifetime.Post.Total.Reach, data = newDF2)
pairs(Lifetime.Engaged.Users ∼ Lifetime.Post.reach.by.people.who.like.your.Page, data =newDF2)
pairs(Lifetime.Engaged.Users ∼ Lifetime.Matched.Audience.Targeting.Consumers.on.Post,data = newDF2)
Output:
• d) Xây dựng mô hình hồi quy tuyến tính để kiểm tra sự tác động của các yếu tố đến việc tương
Trang 19tác với các bài viết.
– Xét mô hình hồi quy tuyến tính bao gồm biến Lifetime.Engaged.Users 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 Ta dùng lệnh lm() để thực thi môhình hồi quy tuyến tính bội
– 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 mức tin cậy 5%? Dùng lệnh anova() để xem xét mô hình có hợp lýkhông, từ đó suy luận tác động của các biến lên lượt tương tác
Với mức tin cậy 5%:
Ta thấy các biến đều có giá trị Pr(>|t|) < 0,05 nên ta sẽ không loại biến nào ra khỏi môhình
Trang 20Ta thấy các biến đều có giá trịP(>F) nhỏ hơn 0,05 nên các biến này vẫn có ý nghĩa thống
kê Do đó mô hình newM1 vẫn hợp lý
Từ bảng kết quả trên, ta có mô hình M1 là:
Lifetime.Engaged.Users = -16.2729 + 0.0486*Time - 8.3346*Type + 0.0185*Lifetime.Post.Total.Reach+
0.0057*Lifetime.Post.reach.by.people.who.like.your.Page +
0.9867*Lifetime.Matched.Audience.Targeting.Consumers.on.Post
Do đó, khi ta thay đổi một thông số và giữ nguyên giá trị các thông số còn lài thì:
∗ Với Time tăng thêm 1 thì Lifetime.Engaged.Users tăng thêm 0.0486
∗ Với Type tăng thêm 1 thì Lifetime.Engaged.Users giảm đi 8.3346
∗ Với Lifetime.Post.Total.Reach tăng thêm 1 thì Lifetime.Engaged.Users tăng thêm 0.0185
∗ Với Lifetime.Post.reach.by.people.who.like.your.Page tăng thêm 1 thì Lifetime.Engaged.Users
tăng thêm 0.0057
∗ Với Lifetime.Matched.Audience.Targeting.Consumers.on.Post tăng thêm 1 thì Lifetime.Engaged.Userstăng thêm 0.9867
– 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ị
Trang 223 Kết luận
Tóm lại, R vừa là một ngôn ngữ lập trình hàm cấp cao vừa là một môi trường dành cho tính toánthống kê R hỗ trợ rất nhiều công cụ cho phân tích dữ liệu, khám phá tri thức và khai mỏ dữ liệunhưng lại là phần mềm miễn phí mã nguồn mở Hơn nữa R rất dễ học và có thể phát triển nhanh
các ứng dụng tính toán xác suất thống kê, phân tích dữ liệu
Trang 234 Tài liệu tham khảo
• Giáo trình xác suất thống kê, Nguyễn Đình Huy, Nhà xuất bản ĐHQG-TPHCM 2019