Nhan xét: Đồ thị thr 1 Residuals vs Fitted vẽ các giá trị dự báo với các gia tri thang dur sai số tương ứng, dùng dé kiém tra tinh tuyén tinh cua dữ liệu giả dinh 1 va tính đồng nhất của
Trang 1
DAI HOC MO THANH PHO HO CHI MINH
BO MON XAC SUAT THONG KE
Trang 2Đề tài 1 Hoạt động 1: 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à, đữ 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
Các biến chính trong bộ đữ liệu:
» "price": Gia nha được bán ra
+ "floors": Số tầng của ngôi nhà được phân loại từ 1-3.5
+ "condition": Diéu kiện kiến trúc của ngôi nhà từ 1-5, 1 là rất tệ và 5 rất tốt
* "view": Danh gia cảnh quan xung quanh nhà theo mức độ từ thấp đến cao: 0-4
* "sgft_above”: Diện tích ngôi nhà
* "sgft_living”: Diện tích khuôn viên nhà
+ "sqÑ_basement": Diện tich tang ham
Các bước thực hiện:
1 Đọc dir ligu (import data): "house_price.csv"
2 Làm sạch đữ liệu (Data cleaning): NA (đữ 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
giá nhà ở quận King
5 Thực hiện dự báo cho giá nhà quận King
1 Đọc dữ liệu:
- Su dung read.csv() để đọc đữ liệu và lưu vào house_ data
Trang 3Str dung attach() dé gan dé liệu vào đường dẫn của R sau đó sử dụng data.frame
để tạo dữ liệu con Cuối cùng sử đụng head() để xem dữ liệu
- Kiém tra dit liéu khuyét:
Để kiểm tra dữ liệu khuyết, sử dụng hàm sau:
> summary(is.na(new_DF))
price soft_living15 floors condition sqft_above sqft_living Mode :logical Mode : logical Mode :logical Mode :logical Mode : logical Mode :logical FALSE: 21613 FALSE: 21613 FALSE: 21613 FALSE:21613 FALSE: 21613 FALSE :21613 Hoặc:
> apply(is.na(new_DF), 2, which)
integer (0)
Vậy kết luận không có dữ liệu khuyết
- - Kiểm tra outliner:
Trang 5b Tinh gia tri thống kê các biến liên tục:
Sử dụng thư viện psych và hàm describe để thu được giá trị cần tìm:
> library(psych)
> describe(log.DF[,c(1,2,5,6)])
vars n mean sd median trimmed mad price 1 20467 12.98 0.45 12.99 12.99 0.48 sqft_living15 2 20467 7.51 0.31 7.50 7.51 0.32 sqft_above 3 20467 7.36 0.40 7.33 7.35 0.43 sqft_living 4 20467 7.51 0.40 7.53 7.52 0.41
min max range skew kurtosis se
Trang 6> boxplot (log DF[,1]~log DF[,3] ,xlab = "Floors", ylab = "price")
13.5 14.0
Trang 8g Vé cac phan phéi cua bién price cho timg nhém phan loai cua bién floors va biến
4 Xây dụng mô hình hỏi quy:
Thực hiện mô hình hồi quy tuyến tính bội với biến price:
Mô hình mh]:
Trang 9ving, data = log DF)
(intercept) 6.757697 0.061983 109.02 <2e-16 *** sqft_livingl5 0.388640 0.011466 33.89 <2e-16 *** floors 0.142342 0.005584 25.49 <2e-16 *** condition 0.075947 0.003862 19.67 <2e-16 ***
0
0
Residual standard error: 0.3406 on 20461 degrees of freedom
> mh2= Im(price~sqft_living15+floors+sqft_above+sqft_living, d ata = log.DF)
Residual standard error: 0.3438 on 20462 degrees of freedom
Trang 10- Dung anova() dé xuất mô hình hợp lí hơn:
Trang 14Nhan xét:
Đồ thị thr 1 (Residuals vs Fitted) vẽ các giá trị dự báo với các gia tri thang dur (sai số) tương ứng, dùng dé kiém tra tinh tuyén tinh cua dữ liệu (giả dinh 1) va tính đồng nhất của các phương sai sai số (giả định 3) Nếu như giả định về tính tuyến tính của đữ liệu KHÔNG thỏa, ta sẽ quan sat thay rang cac diém thang du (residuals) trén đô thị sé phân
bồ theo một hình mẫu (pattern) đặc trưng nào đó (ví dụ parabol) Nếu đường màu đỏ trên
đô thị phân tán là đường thắng nằm ngang mà không phải là
đường cong, thi giả định tính tuyến tính của đữ liệu được thỏa mãn Đề kiểm tra giá định thứ 3 (phương sai đồng nhất) thì các điểm thặng dự phải phân tán đều nhau xung quanh đường thăng y=0
Do thị thứ 2 (Normal Q-Q) cho phép kiểm tra giá định về phân phối chuẩn của các sai số Nếu các điểm thặng dư nằm trên cùng 1 đường thăng thì điều kiện về phân
phối chuẩn được thỏa
hóa với các giá trị dự báo, được dùng đề kiếm tra giá định thứ 3 (phương sai của các sai
số là hằng số) Nếu như đường màu đỏ trên đồ thị là đường thẳng nằm ngang và các điểm thặng dư phân tán đều xung quanh đường thẳng này thì giá định thứ 3 được thỏa Nếu như đường màu đỏ có độ dốc (hoặc cong) hoặc các điểm thặng dư phân tán không đều xung quanh đường thang nay, thì giá định thứ 3 bị vi phạm
Đồ thị thứ 4 (Residuals vs Leverage) cho phép xác định những điểm có ánh
hưởng cao (influential observations), néu chúng có hiệndiện trong bộ dữ liệu Những
điểm có ảnh hưởng cao này có thê là các điểm outliers, là những điểm có thê gây nhiều ảnh hưởng nhất khi phân tích đữ liệu Nếu như ta quan sát thấy một đường thắng màu đỏ đứt nét (Cook”s distance), và có một số điểm vượt qua đường thắng khoảng cách này, nghĩa là các điểm đó là các điểm có ảnh hưởng cao Nếu như ta chỉ quan sát thấy đường thẳng khoảng cách Cook ở góc của đồ thị và không có điểm nào vượt qua nó, nghĩa
không có điểm nào thực sự có ảnh hưởng cao
Y nghĩa:
Fitted values: gia tri dy bao cua gia thành ngôi nhà (price) phụ thuộc vào các biến còn lạiResiduals là sai số hồi quy, tức là chênh lệch giữa giá trị thực tế so voi gia tri dy báo
Nhận xét:
Đồ thị Normal Q-Q cho thay gia định sai số có phân phối chuẩn thỏa mãn
Đồ thị thứ 1 (Residuals vs Fitted) cho thấy giá định về tính tuyến tính của dữ liệu
chưathực sự thoả mãn
nhất của phương sai tương đối thoả mãn
D6 thị thứ 4 chỉ ra có các quan trac thứ 18877, 3915 và 13529 có thê là các điểm
có ánh hưởng cao trong bộ dữ liệu
Vùng phố biến của giá thành ngôi nhà (price) tir hon 12 dén can 14
Trong vùng này các giá thành ngôi nha (price) năm xung quanh đường hỏi quy tuyến tính, giá trị residuals tương đối thấp
Trang 15Từ dé thi, ta co thé thay được đa số các điểm đều nằm gần đường thẳng y=0, chủ yếu là trong khoảng (-0,5;0,5), sai số nhỏ nên ta có thé kết luận được răng nó khá chính
xác Từ đó cho thay dự đoán theo mô hình DT1 1a kha én
5 Dự đoán:
Dựa trên mô hình hỏi quy ta xây dựng, hãy dự báo giá một ngôi nhà có:
+2 tầng
+ Điều kiện kiến trúc ngôi nhà: 3
+ Đánh giá quang cảnh ngôi nhà: Ö
+ Diện tích ngôi nhà: 2170 m?
+ Diện tích khuôn viên nhà 2570 m?
+ Diện tích tang ham 400 m?
> X <-data.frame('floors'=2, 'condition'=3, "view"=0, "sqft_above" = log(2170+1), "sqft_living"=log(2570+1), "sqft_basemen tsTog(400+1) "sqft_living15" = 10g(1690))
Dựa vào kết quả dự báo, ta nhận được:
+ Giá nhà dự báo trung bình là 499816.3
+ Khoảng tin cậy so với giá trị dự báo (495083.5;504594.4)
Ta nhận thấy giá nhà quan sát ở thuộc tính trên (538000) không : thuộc khoảng tin cậy vừa tìm được, chứng tỏ mô hình hồi quy ta xây dựng chưa thực sự tốt
Hoạt động 2:
1 Đọc dữ liệu(Import Data)
Đọc tệp Range-Queries-Agpregates.csv và lưu đữ liệu vào biến query
Trang 16Hình 1: Kết quá khi xem 3 dòng đầu tiên của tệp tin "query”
2 Làm sạch dữ liệu (Data cleaning):
a) Từ dữ liệu trong query, trích ra một đữ liệu con bao gồm các biến chính của đẻ bài
> 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
Kết qua thực thi:
Trang 17Hình 3: Kết quá khi kiếm tra dit ligu khuyét cua tép tin "new_DF"
Nhận xét: Ta thấy có 157 dữ liệu khuyết ở biến avg, số lượng đữ liệu khuyết chiếm 0.0785% so với tông số quan sát của đữ liệu Do đữ liệu bị khuyết có tỉ lệ khá thấp nên ta chọn cách xóa các quan sát có dữ liệu khuyết
e) Xóa dữ liệu khuyết trong tép tin “new_DF”:
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
> new_DF <- na.omit(new_DF)
> apply(is.na(new_DF) ,2,sum)
x y X_range y_range = count sum_ avg
Hình 4: Kết quá khi kiếm tra lại đữ liệu khuyết của tệp tin "new_DF"
đ) Kiểm tra tính chính xác của đữ liệu (Dữ liệu có là dạng số không?)
Trang 183 Lam r6 dt liéu (Data visualization):
Thống kê mô tả: Dùng thống kê mẫu: Các biến chính của đữ liệu đều là biến liên tục a) Tính các giá trị thông kê mô tả bao gồm: trung bình (mean), trung vị (median), độ lệch chuẩn (sđ), giá trị lớn nhất (max) và giá trị nhỏ nhất (min) đối với các biến
Trang 19
> sd <- apply(new_DF[, c("x", "y", "x_range", "y_range", "count", "sum_", “avg")],2,sd)
> 01 <- apply(new DF[, c("x", "y", "x_range", "y_range", "count", "sum_", “avg")],2,quantile, probs = 0.2
5)
> median <- apply(new_DFL[, cC"x", "y", "x range", "y_range", "count", "sum", "avg")],2,median)
> Q3 <- apply(new_DF[, cC"x", "y", "x_range", "y_range", "count", "sum_", "avg")],2,quantile, probs = 0.7
5
> min <- apply(new_DF[, c("x", "y", "x_range", "y_range", "count", "sum_", "avg')],2,min)
> max <- apply(new_DF[, c("x", "y", "x range", "“y_range", “count", “sum_", "“avg")],2,max)
> data.frame(mean, sd, Ql, median, Q3, min, max)
sd mean g1 median Q3 min max
x 1162688.320 8273.0410 1157427.8693 1159591 3534 1162271 23 1.149843e+06 1185386.150
y 1889319.735 13484.9452 1878072.8588 1884031 3399 1900771.53 1.862018e+06 1923186.805 x_range 4044.400 2333.7941 2023 3769 4044.0309 6065.60 3.595235e-01 8090.421 y_range 7855.195 4533.8659 3922.8150 7856.7548 11787.16 4.245152e-01 15704.277 count 159678.228 154471.9369 38722.0000 110628.0000 238004.50 1.000000e+00 985284.000 sum_ 47969.793 47947.5893 10971.5000 32201.0000 71585.50 0.000000e+00 347441.000 avg 1042.687 268 7314 887.0689 954 7895 1258.98 1 315716e+02 2249.719
b) Vẽ biêu đồ Histogram thê hiện phân phôi của biên AVG:
Trang 20y_range, count va sum_:
> pairs(new_DF $ave ~ new_DF $count, main = "Pairs of AVG for each category of
count", col = "blue")
> pairs(new_DF $ave ~ new_DF$sum_, main = "Pairs of AVG for each category of sum_", col = "blue")
Trang 240e+00
Pairs of AVG for each category of count
Trang 25Pairs of AVG for each category of sum_
4 Mô hình hồi quy tuyến tính:
a) Ta xây dựng mô hình hồi quy bội (gọi là mô hình 1) bao gồm:
- Biến phụ thuộc: avg
- Biến độc lập: x, y, X_range, y_range, count va sum_
- M6 hinh duge biéu dién nhu sau: avg = By+B,* x + B)* y + Byx
x range + B„x y_range + B;x count + Bạx sum _
- Ta thực hiện ước lượng các hệ số Bạ,¡=0, ,6,
Trang 26Estimate Std Error t value Pr(>|t])
x -9.874e-03 3.798e-05 -259.96 <2e-16 ***
y_range -7.848e-03 1.13le-04 -69.41 <2e-16 ***
count 9.029e-04 1.537e-05 58.74 <2e-16 ***
Residual standard error: 133.6 on 199836 degrees of freedom
Trang 27Kếtquảthựcthi:
Scale-Location Residuals vs Leverage
600 800 1000 1400 0e+00 2e-04 3e-04 4e-04
Nhan xét:
— Dé thi 1 (Residuals vs Fitted) vé cac gia trị sai số tương ứng với các giá trị dự báo, kiếm tra gia định tuyến tính đữ 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
— D6 thi 2 (Normal Q - Q) vé cac sai số đa đượ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ố đa đượ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
Trang 28— Đồ thị 3 (Seale - Location) vé can bac hai cua sat 86, kiém tra gia dinh phuong 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 (Residuals vs Leverage) xac dinh 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 123740, 153412, 154245 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
c) Thực hiện dự báo cho AVG:
Giá sử chọn mẫu B¡có x = 1159191, y = 1894756, x_range = 5225.37567,
y_range = 2981.7284, count = 96046, sum_ = 34927 dé thực hiện đự báo cho gia tri
Nhận xét: Vậy giá trị của AVG ứng với mô hình l với các giá tri x, y, x_range,
y_range, count, sum_ như đã cho ở Bị là 1179.547 với khoảng ước lượng (có độ tin cậy 95%) là: (1178.392; 1180.703)