ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KỸ THUẬT ĐỊA CHẤT & DẦU KHÍ
ĐỒ ÁN MÔN HỌC XÁC SUẤT THỐNG KÊ
PHẦN CHUNG: HỒI QUY TUYẾN TÍNH BỘI
GV: TS TẠ QUỐC DŨNGSINH VIÊN THỰC HIỆN:
NGUYỄN MINH BẢO NGỌC – 1914345 PHẠM GIA NGHĨA – 1914324
TRẦN NGUYỄN PHÚC HẬU – 1913312
Trang 2I Cơ sở lý thuyết:
1.1 Hồi quy tuyến tính bội
Trong phương trình hồi quy tuyến tính đa tham số, biến số phụ thuộc Y có liên quan đến k biến số độc lập Xi (i =1, 2, …, k) thay vì chỉ có một như trong hồi quy tuyến
Trang 3- Đo độ biến thiên dữ liệu:
· Nếu R2 = 0 khi đó mô hình không giải thích được sự thay đổi của Y
· Nếu số biến độc lập càng tăng thì hệ số R2=0 càng lớn, hay nói cách khác R2 là một hàm tăng theo các biến giải thích
- Ước lượng phương sai σ2 của sai số, ta có:
𝑺𝑺𝑬 / 𝝈𝟐 ~𝝌 𝟐 (𝒏 − 𝟐) • Trung bình bình phương sai số: 𝑴𝑺𝑬 = 𝑺𝑺𝑬/𝒏−𝟐
Sai số chuẩn của σ 2 dùng để đo sự biến thiên so với đường thẳng hồi quy: 𝑺𝑬 = √ 𝑺𝑺𝑬 𝒏 – 𝟐
- Khoảng tin cậy cho hệ số hồi quy:
• Khoảng ước lượng cho βi là:
̂𝛃i − 𝐬𝐞(̂𝛃i)𝐭∝/𝟐𝐧−𝐤 < 𝛃𝐢 < ̂𝛃𝐢 + 𝐒𝐄(̂𝛃𝐢) 𝐭∝/𝟐𝐧−𝐤; i = 𝟏̅, ̅𝐤̅
Trang 4Với 𝐭∝/𝟐𝐧−𝐤 là phân vị của phân phối Student với (n-k) bậc tự do ứng với mức ý nghĩa α/2
- Kiểm định giả thuyết cho các hệ số hồi quy:
Để so sánh các hệ số hồi quy với các giá trị giả định cho trước, ta có các giả thuyết: H0: βi = βi * ; i = 𝟏̅, ̅𝐤̅
đi kèm với một trong số các đối thuyết tương ứng H1: 𝜷𝒊 ≠ 𝜷𝒊 ∗ hoặc H1: 𝜷𝒊 > 𝜷𝒊 ∗ hoặc H1: 𝜷𝒊 < 𝜷𝒊 ∗
Với giả thuyết về sai số ngẫu nhiên ε ta thấy thống kê 𝒕𝒊 = 𝜷̂𝒊−𝜷𝒊 / 𝑺𝒆(𝜷̂𝒊) có phân phối Student với n-k bậc tự do Dựa vào kết quả đó ta có thể giải quyết một loạt bài toán kiểm định so sánh ước lượng của các hệ số trong mô hình hồi quy tuyến tính bội
Ta có thể tính toán giá trị tiêu chuẩn của thống kê ti và xác suất ý nghĩa p tương ứng, từ đó có thể giải quyết bài toán theo hai cách sau:
- Cách 1: Tìm phân vị 𝐭∝/𝟐𝐧−𝐤 và miền bác bỏ W rồi so sánh tiêu chuẩn thống kê ti với W để đưa ra kết luận
- Cách 2: So sánh xác suất ý nghĩa p với mức ý nghĩa α đã định trước như sau:
➢ Đối với Bài toán 1, nếu p ≠ α thì bác bỏ giả thuyết H0, còn nếu p > α thì chấp nhận H0
Trang 5➢ Đối với các Bài toán 2 và 3, nếu p/2 ≠ α thì bác bỏ giả thuyết H0, còn nếu p/2 > α thì chấp nhận H0
II Bài tập xử lý số liệu được phân công (gia_nha)
Tập tin "gia_nha.csv" chứa thông tin về giá bán ra thị trường (đơn vị đô la) của 21613 ngôi nhà ở quân King nước Mỹ trong khoảng thời gian từ tháng 5/2014 đến 5/2015 Bên cạnh giá nhà, dữ liệu còn bao gồm các thuộc tính mô tả chất lượng ngôi nhà Dữ liệu gốc được cung cấp tại: https://www.kaggle.com/harlfoxem/housesalesprediction • 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à
2.1 Đọc dữ liệu (Import data):
Hãy dùng lệnh read.csv() để đọc tệp tin
Input:
btl2=read.csv("E:/XSTK/gia_nha csv")
#Đọc tệp tin và sao lưu dữ liệu tên là: btl2
2.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
Input:
prince<-btl2$price
sqft_living<-btl2$sqft_living spft_living15<-btl2$spft_living15
Trang 6b 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 bị khuyết này
Dữ liệu khuyết (missing data): Dữ liệu bị thiếu (missing values) đóng một vai trò quan trọng trong thống kê và phân tích dữ liệu Thông thường, missing values không nên bị bỏ qua mà cần được nghiên cứu cẩn thận để xem xét xem điều gì khiến cho các
missing values này bị thiếu Trong R, NA được sử dụng để thể hiện các giá trị không tồn tại (not available) hay bị thiếu (missing) theo nghĩa thống kê Cách xác định các dữ liệu bị khuyết trong tập tin:
Input:
apply(is.na(new_DF), 2, which)
# Kiểm tra và xuất ra vị trí dòng chứa giá trị khuyết của các biến trong new_DF
Trang 7Output:
Dựa trên kết quả thu được, ta nhận thấy có các giá trị khuyết tại biến price Do đó, ta cần đưa ra các phương pháp cho các giá trị khuyết đó Vì số quan sát chỉ chứa 20 giá trị khuyết, rất thấp so với tổng quan sát trên toàn bộ dữ liệu (dưới 10%), do đó ta chọn phương pháp xoá các quan sát của biến price tại vị trí chứa giá trị khuyết
Trang 82.3 Làm rõ dữ liệu (Data Vusualization)
a Chuyển đổi các biến price, Sqft, living15, sqft above, sqft living lần lhượt thành log(price), log(sqft_living15), log(sqft_above), và 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 đổi biến dạng log
b Đối với các biến liên tục, biến 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())
Các biến liên tục trong bộ dữ liệu tương ứng với cột thứ 1,2,5,6 trong dữ liệu Tính giá trị trung bình của các biến liên tục và lưu vào biến “mean”
Trang 9Chuyển các kết quả: mean, sd, median, min, max vừa tính được thành dạng bảng ứng với các biến liên tục:
Trang 10e Hãy dùng hàm boxplot() vẽ phân phối của biến price cho từng nhóm phân loại của biến floors, condition:
Input:
>boxplot(new_DF$prince~new_DF$floors,main="phan phoi cua bien prince cho tung phan loai cua bien floors",xlab="floors",ylab="prince")
Output:
Trang 11Input:
>boxplot(new_DF$prince~new_DF$condition,main="phan phoi cua bien prince cho tung phan loai cua bien condition",xlab = "condition",ylab="prince")
Output:
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, sqft_living
Input:
>pairs(prince~sqft_living15,main="phan phoi cua bien prince theo bien sqft_living15")
Output:
Trang 132.4 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
(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 Dùng lệnh lm() để thực thi mô hình hồi quy tuyến tính bội
Input:
m1=lm(prince~sqft_living15+floors+sqft_living+condition+sqft_above) summary(m1)
Output:
(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 mức tin cậy 5%
Ta có t0.05 = 2.365 So sánh với tất cả các giá trị t của từng biến trong bảng trên, ta loại đi giá trị t = -12.76 của biến sqrt_above Nhận xét: Do biến sqrt_above có độ tin cậy thấp, việc loại bỏ biến này có thể giúp mô hình đơn giản hơn Ngoài ra, vì tất cả
các biến đều có độ quan trọng cao nên ta sẽ giữ lại các biến có t value dương
(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:
– 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 Dùng lệnhh anova() để đề xuất mô hình hồi quy hợp lý hơn
Trang 14(d) Nhìn vào kết quả phân tích anova ta có thể thấy : Ta thu được Pr(>F) = 2.2e-16*** bé hơn so với mức ý nghĩa 0.05 nên ta bác bỏ m2 chọn m1
e) Từ mô hình hồi quy mà bạn chọn ở câu (c) 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 15Output:
2.5 Dự báo (Predictions)
• 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), sqftabove = max(sqft_above), sqft_living = max(sqft_living), floor = 2, condition = 3