1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tiểu luận nhóm 4 nhập môn phân tích dữ liệu đề tài boston housing data

55 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Boston Housing Data
Tác giả Nhóm 4
Người hướng dẫn Bình Vũ Ngọc
Trường học Đại học Quốc gia Hà Nội, Trường Đại học Khoa học Tự nhiên
Chuyên ngành Nhập Môn Phân Tích Dữ Liệu
Thể loại bài tiểu luận
Thành phố Hà Nội
Định dạng
Số trang 55
Dung lượng 1,89 MB

Nội dung

dplyr: “ %>%” để kết hợp các hàm khác nhau trong R.hàm filter chọn các biến dựa trên giá trị của chúng Lọc ra các hàng nhất định đáp ứng các tiêu chí của bạn.gridExtra: Gói gridtrong R

Trang 1

 ĐẠI HỌC QUỐC GIA HÀ NỘI

 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

-

 BÀI TIỂU LUẬN NHÓM 4

 Học phần: Nhập Môn Phân Tích Dữ Liệu

 Giảng viên hướng dẫn: Bình Vũ Ngọc

 Nội dung đề tài : Boston Housing Data

Trang 2

Mục lục

 Giới thiệu Boston Housing Price 3

 Báo cáo vấn đề 3

 Tạo giả thiết 4

 Thư viện Mass chứa tập dữ liệu Boston 5

 Liệt kê tên các biến thuộc tính của dữ liệu Boston 8

 Cấu trúc dữ liệu và nội dung: 10

 Phân tích dữ liệu khám phá 10

 Distributions 14

 Tóm tắt nội dung mục đích code về sau 19

 Forward Variable Selection 22

 Backward Variable Selection 30

 Exhaustive Subset Selection 35

 Plotting Model metrics 36

 Selected Model, 42

 TIỂU KẾT 43

 LASSO Variable Selection 43

 Model Statistics 47

 Comparing models from Subset selection, LASSO with Full model 49

 Residual Analysis plots (lasso model) 50

 Nhận xét các thành viên trong nhóm……….53

Trang 3

 Giới thiệu Boston Housing Price

Boston Housing Price là giá trị nhà điển hình của những ngôi nhà ở Boston là

$ 739,180 Giá trị này được điều chỉnh theo mùa và chỉ bao gồm mức giá trung bình của các căn nhà Giá trị nhà ở Boston đã tăng 8,5% trong năm qua.

 Báo cáo vấn đề

Với hơn 600 ngàn dân nằm trên phía bắc Hoa Kỳ, cách DC hơn 1 giờ bay, thành phố Boston – thủ phủ của bang Massachusetts cùng lịch sử 400 năm đã trở thành thủ đô của văn hóa, giáo dục và sáng tạo của nước Mỹ Boston được mệnh danh là nơi đắt đỏ nổi tiếng thế giới nhưng lại đứng thứ 3 tại Hoa Kỳ và thứ 37 trên thế giới về địa điểm lý tưởng để sống Boston còn được mệnh danh

là thủ đô tri thức bởi có tới 200 trường đại học với những cái tên nổi tiếng đã trở thành “thương hiệu giáo dục” trong suốt thời gian qua như Harvard, MIT, U-Mass…cùng những thư viện “chứa đựng tất cả những gì mà nhân loại cần” Boston chào đón hàng trăm ngàn sinh viên ưu tú nhất từ khắp thế giới đổ về

Trang 4

cùng hơn 16 triệu du khách tham quan hàng năm vì thế lĩnh vực bất động sản khu vực này càng tăng trưởng nhanh chóng

 Tạo giả thiết

Nghiên cứu này nhằm xây dựng mô hình dự báo giá nhà ở Boston Housing dựa trên một số các thuộc tính được xác định thông qua tin đăng bất động sản trên mạng Internet

Dự án này nhằm tìm ra các yếu tố ảnh hưởng đến giá trị bất động sản trong nước tại thành phố Boston Các yếu tố như thu nhập bình quân đầu người, các yếu tố môi trường, cơ sở giáo dục, quy mô tài sản

Tạo các gói câu lệnh cần sử dụng:

Trang 5

library(PerformanceAnalytics)

đọc dữ liệu train, test và submission:

 thư viện Mass chứa tập dữ liệu Boston

tidyverse: thao tác và trực quan hóa dữ liệu dễ dàng.

corrr: phân tích ma trận tương quan.

ggplot2: tạo trực quan hóa dữ liệu như biểu đồ thanh, biểu đồ hình tròn, biểu

đồ, biểu đồ phân tán, biểu đồ lỗi, v.v

dplyr: “ %>%” để kết hợp các hàm khác nhau trong R.hàm filter () chọn các

biến dựa trên giá trị của chúng (Lọc ra các hàng nhất định đáp ứng (các) tiêu chí của bạn

gridExtra: Gói gridtrong R thực thi các hàm đồ họa nguyên thủy làm nền tảng

cho ggplot2

DT: lọc, tìm kiếm và xuất dữ liệu sang các định dạng khác nhau một cách dễ

dàng

MASS: thư viện chứa dataset Boston housing.

leaps: thư viện để có thể sử dụng các mô hình subset selection.

glmnet: Gói này phù hợp với các đường dẫn mô hình lasso và mạng đàn hồi để

hồi quy hồi quy, logistic và hồi quy đa thức bằng cách sử dụng phương pháp suy giảm tọa độ

Trang 6

PerformanceAnalytics: một tập hợp các hàm kinh tế lượng để phân tích hiệu

suất và rủi ro

 Liệt kê tên các biến thuộc tính của dữ liệu Boston

Trang 7

Với hàm glimpse(), ta sẽ có thể thấy được một vài thông số cơ bản của dataset Boston, bao gồm số lượng biến dữ liệu, số lượng đối tượng được tham gia, địnhdạng của biến dữ liệu, là một vài đối tượng của các biến

Bên cạnh đó, nếu ta vào help để tìm hiểu thì 13 biến dữ liệu được định nghĩa như sau:

crim tỷ lệ tội phạm bình quân đầu người đang sinh sống nơi đây

indus tỷ lệ mẫu đất kinh doanh không bán lẻ trên nơi đây

chas biến giả Charles River

nox nồng độ oxit nitric

dis khoảng cách có trọng số đến năm trung tâm việc làm Boston

rad chỉ số khả năng tiếp cận các đường cao tốc hướng tâm

tax thuế suất toàn bộ giá trị tài sản trên mỗi lô đất

ptratio tỷ lệ học sinh-giáo viên đang sinh sống nơi đây

black tỷ lệ người da đen đang sinh sống nơi đây

medv là giá trị nhà cửa trung bình

rm là số phòng trung bình mỗi nhà

age là trung bình độ tuổi của các căn nhà

lstat là tỉ lệ hộ gia đình có địa vị kinh tế xã hội thấp

 Cấu trúc dữ liệu và nội dung:

Để khám phá dữ liệu trong bất kỳ cuộc thi khoa học dữ liệu nào, chúng ta nên nối dữ liệu test vào dữ liệu train Vì vậy, sẽ cần kết hợp cả đào tạo và kiểm tra

để thực hiện trực quan hóa dữ liệu, kỹ thuật tính năng, mã hóa một nóng và mã

Trang 8

hóa nhãn Sau đó, chúng tôi sẽ tách dữ liệu kết hợp này trở lại để đào tạo và kiểm tra tập dữ liệu:

 Phân tích dữ liệu khám phá

summary(Boston)

Với mục đích là bản tóm tắt cung cấp đầy đủ những yếu tố quan trọng về dữ liệu của 14 biến, 6 yếu tố đấy bao gồm: giá trị nhỏ nhất(min), giá trị lớn nhất(max), giá trị quantile thứ nhất (25% dữ liệu của biến), giá trị quantile thứ

3 (75% dữ liệu của biến), giá trị trung bình, giá trị median

## crim zn indus chas

## Min : 0.00632 Min : 0.00 Min : 0.46 Min :0.00000

## 1st Qu.: 0.08204 1st Qu.: 0.00 1st Qu.: 5.19 1st Qu.:0.00000

## Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.00000

## Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.06917

## 3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.00000

## Max :88.97620 Max :100.00 Max :27.74 Max :1.00000

## nox rm age dis

## Min :0.3850 Min :3.561 Min : 2.90 Min : 1.130

## 1st Qu.:0.4490 1st Qu.:5.886 1st Qu.: 45.02 1st Qu.: 2.100

## Median :0.5380 Median :6.208 Median : 77.50 Median : 3.207

## Mean :0.5547 Mean :6.285 Mean : 68.57 Mean : 3.795

## 3rd Qu.:0.6240 3rd Qu.:6.623 3rd Qu.: 94.08 3rd Qu.: 5.188

Trang 9

## Max :0.8710 Max :8.780 Max :100.00 Max :12.127

## rad tax ptratio black

## Min : 1.000 Min :187.0 Min :12.60 Min : 0.32

## 1st Qu.: 4.000 1st Qu.:279.0 1st Qu.:17.40 1st Qu.:375.38

## Median : 5.000 Median :330.0 Median :19.05 Median :391.44

## Mean : 9.549 Mean :408.2 Mean :18.46 Mean :356.67

## 3rd Qu.:24.000 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:396.23

## Max :24.000 Max :711.0 Max :22.00 Max :396.90

colSums is.na ( (Boston))

## crim zn indus chas nox rm age dis rad

## 0 0 0 0 0 0 0 0 0

Trang 10

## tax ptratio black lstat medv

## 0 0 0 0

Ở đây, ta nhận thấy rằng, ở 13 biến dữ liệu, không có biến nào có giá trị chưa được điền (hay xuất hiện giá trị null) Điều này là tốt, để khi ta thực hiện xây dựng bài toán linear, sẽ không có rắc rối nào xảy ra.

Từ đó chúng tôi kiểm tra là đi thì hiểu mối tương quan giữa các biến giá trị với nhau, ngoài trừ biến medv do đây là biến đại lượng ta cần dư đoán kết quả, hay là biến chúng tôi cần xây dựng sự đoán bởi 13 biến còn lại

chart.Correlation(Boston[,-14], histogram=TRUE, pch=19)

Trang 11

Định nghĩa : Trước tiên, để hiểu được đây là gì, thì ta cần hiểu correlation

trước đó

Correlation hay dịch ra là hệ số tương quan giữa 2 biến với nhau, là chỉ số chỉ

mức độ mật thiết giữa các biến với nhau khi ta làm về việc xây dựng đồ thị

biểu diễn chúng Correlation có phạm vi từ đoạn -1 đến 1, khi hệ số bằng +- 1

thì 2 biến dữ liệu có mối quan hệ mật thiết với nhau và được thể hiện bằng việc

Trang 12

có điểm dữ liệu tập trung trên đường thẳng tuyến tính, và khi hệ sống bằng 0 thì 2 biến sẽ gần như không hề có sự ảnh hưởng gì đến nhau Khi hệ số càng dương thì các dữ liệu của 2 biến sẽ hướng theo hướng hệ số (a) dương của đường tuyến tính, và điều ngược lại xảy ra khi hệ số correlation càng hướng

về -1

Dựa vào hình ta, có thấy mức độ correlation (hệ số tương quan) của 13 biến

dữ liệu với nhau

Với đồ thị và chỉ số correlation của 2 biến bất kỳ với nhau là giao của 2

đường vuông góc kẻ từ vị trí biến đấy Ví dụ như đồ thị của biến crimnox

là đồ thị ở hàng 5 cột 1 và hệ số correlation là 0.42, hay đồ thị của nox với age

 Distributions

Trang 13

Chúng tôi cũng sẽ kiểm tra qua các dữ liệu của các biến, xem nó phân bố như thế nào.

Boston %>%

gather(-medv, key = "var", value = "value") %>%

filter(var != "chas") %>%

ggplot aes( (x = '',y = value)) +

geom_boxplot(outlier.colour = "red", outlier.shape = 1) +

facet_wrap(~ var, scales = "free") +

theme_bw()

Với %>% là thuộc thư viện dplyr, với mục đích là thực hiện liện tục dòng lệnhtrước dấu và sau dấu %>%, để hạn chế tài nguyên cũng như không cần hiển thị dòng lệnh đã thực thi không cần thiết qua console, giống như lệnh pipe

Trang 30

Qua 4 biểu đồ trên, ta thấy được rằng giá trị rsq, adjr2, bic, cp đều có một 1 tăng giảm nhất định mỗi khi ta tăng sô lượng biến dữ liệu vào đồ thị Giá trị rsq, adjr2 có xu hướng tăng mỗi khi ta tăng biến dữ liệu, và điều ngược lại xảy

ra đối với giá trị bic và cp

Và nếu chúng tôi chạy dòng lện thì kết quả thu được :

which.max(sum.model2$rsq)

Chúng tôi thu được kết quả là 13, chứng tỏ đã có 13 biến dữ liệu tham gia

hình càng có sự chuẩn xác Nhưng có một vấn đề, mỗi khi ta thêm biến giá trị

Dẫn đến việc là kể cả có những biến dữ liệu không có mối quan hệ gì với kết

Trang 31

Qua đó, như dự đoán trước đó, mình sẽ loại bỏ 2 biến dữ liệu là ageindus,

để cho mô hình dự đoán giá nhà trở nên chuẩn xác hơn Và từ số liệu ở coef ta cũng có thể thấy được luyện phương trình tiến tính dự đoán giá nhà:

Y= 33 -0.09*crim -0.045*zn+3.38*chas+…

 Backward Variable Selection

model3 <-regsubsets(medv~., data = Boston.train, nvmax = 13,

method="backward")

sum.model3 <-summary(model3)

Trang 32

model3.subsets <-cbind(sum.model3$which, sum.model3$bic,

sum.model3$rsq, sum.model3$adjr2,sum.model3$cp)

model3.subsets <-as.data.frame(model3.subsets)

colnames(model3.subsets)[15:18] <-c("BIC" "rsq" "adjr2" "cp", , , )

chính là về chỉ số R-squared(rsq), Adjusted R-Squared(adjr2), BIC(bic) và

giá trị CP(cp) bằng việc sử dụng hàm ggplot() và sử dụng hàm

scale_x_continuous() để biểu diễn giá trị thu được 13 mô hình về 4 đại lượng

nêu trên Cuối cùng, ta sử dụng hàm grid.arrange() để biểu diễn 4 biểu đồ đường- điểm chính theo dạng ma trận như hình bên dưới

Trang 33

Qua 4 biểu đồ trên, ta thấy được rằng giá trị rsq, adjr2, bic, cp đều có một 1 tăng giảm nhất định mỗi khi ta tăng sô lượng biến dữ liệu vào đồ thị Giá trị rsq, adjr2 có xu hướng tăng mỗi khi ta tăng biến dữ liệu, và điều ngược lại xảy

ra đối với giá trị bic và cp

Và nếu chúng tôi chạy dòng lện thì kết quả thu được:

Trang 34

Chúng tôi thu được kết quả là 13, chứng tỏ đã có 13 biến dữ liệu tham gia trong quá trình đánh giá, điều này là rất tốt do nếu R-squared càng cao thì mô hình càng có sự chuẩn xác Nhưng có một vấn đề, mỗi khi ta thêm biến giá trị vào mô hình, R-squared sẽ có xu hướng là giữ nguyên giá trị hoặc tăng lên Dẫn đến việc là kể cả có những biến dữ liệu không có mối quan hệ gì với kết

quả đầu ra, R-squared vẫn có thể tăng lên Vậy nên ta sẽ xét thêm câu lệnh:

Trang 35

Qua đó, như dự đoán trước đó, mình sẽ loại bỏ 2 biến dữ liệu là ageindus,

để cho mô hình dự đoán giá nhà trở nên chuẩn xác hơn Và từ số liệu ở coef ta cũng có thể thấy được luyện phương trình tiến tính dự đoán giá nhà:

Y= 33 -0.09*crim -0.045*zn+3.38*chas+…

 Exhaustive Subset Selection

model4 <-regsubsets(medv~., data = Boston.train, nvmax = 13)

sum.model4 <-summary(model4)

model4.subsets <-cbind(sum.model4$which, sum.model4$bic,

sum.model4$rsq, sum.model4$adjr2,sum.model4$cp)

model4.subsets <-as.data.frame(model4.subsets)

colnames(model4.subsets)[15:18] <-c("BIC" "rsq" "adjr2" "cp", , , )

model4.subsets

Trang 36

## (Intercept) crim zn indus chas nox rm age dis rad tax ptratio black

Trang 37

lstat, rm và ptration là những biến quan trọng nhất

Bảng sau hiển thị các biến được bao gồm trong các mô hình có kích thước khácnhau, cùng với các giá trị BIC, R-bình phương, adj r-bình phương, cp được liênkết với mô hình

 Plotting Model metrics

#PLOTS OF R2, ADJ R2, CP, BIC#

rsq <-data.frame round( (sum.model4$rsq,5))

model4.rsq.plot <-ggplot(data = rsq, aes(y = rsq, x = 1:13)) +

geom_point() +geom_line() +

geom_text aes( (label=rsq), size=3, vjust=-0.5) +

scale_x_continuous(breaks=1:13)

adjr2 <-data.frame round( (sum.model4$adjr2,4))

model4.adjrsq.plot <-ggplot(data = adjr2, aes(y = adjr2, x = 1:13)) +

Trang 38

geom_point() +geom_line() +

geom_text aes( (label=adjr2), size=3, vjust=-0.5) +

scale_x_continuous(breaks=1:13)

bic <-data.frame round( (sum.model4$bic,4))

model4.bic.plot <-ggplot(data = bic, aes(y = bic, x = 1:13)) +

geom_point() +geom_line() +

geom_text aes( (label=bic), size=3, vjust=-0.5) +

scale_x_continuous(breaks=1:13)

cp <-data.frame round( (sum.model4$cp,4))

model4.cp.plot <-ggplot(data = cp, aes(y = cp, x = 1:13)) +

Trang 39

Tương tự như 2 mô hinh trên, ta cũng có thể kết luận được rằng mô hình tối ưu nhất là mô hình chưa 11 biến dữ liệu.

Trang 41

## Residual standard error: 4.566 on 392 degrees of freedom

## Multiple R-squared: 0.759, Adjusted R-squared: 0.7522

## F-statistic: 112.2 on 11 and 392 DF, p-value: < 2.2e-16

Trang 42

So với mô hình lúc ban đâu của dataset Boston, giờ đây mô hình đã chỉ còn đúng 11 mà có ảnh hưởng đấy quá trình dư đoán.

data.frame cbind( (comparison_table, stats.model.ss))

Tương tự, như lúc đầu, ta sẽ kiểm tra thống kê mô hình, bằng xây dựng MSE, R-squared, adjusted R-squared, Test MSPE, AIC and BIC

## comparison_table stats.model.ss

## 1 model type model.SS

## 2 MSE 20.8454551923437

Trang 43

Bây giờ chúng ta sử dụng kỹ thuật chọn biến LASSO Chúng tôi cố gắng thu nhỏ ước lượng hệ số của các biến không có ý nghĩa về không.

Ở đây lambda là yếu tố hình phạt giúp lựa chọn biến và do đó lambda càng cao thì các biến có ý nghĩa trong mô hình càng thấp

Trước đó, ta cần chuẩn hóa các biến trước khi sử dụng chúng trong việc tạo môhình

Boston.X.std <-scale(dplyr::select(Boston, -medv))

X.train<-as.matrix(Boston.X.std)[index,]

X.test<- as.matrix(Boston.X.std)[-index,]

Y.train<-Boston[index, "medv"]

Trang 44

Y.test<-Boston[-index, "medv"]

Mục đích của code là chuẩn hóa dữ liệu trước khi áp vào sử dụng cho mô hình

scale() có thể được sử dụng để chia tỷ lệ các giá trị trong vectơ, ma trận hoặc

khung dữ liệu Với các giá trị thuộc Boston ngoại trừ biến dữ liệu medv as.matrix() được dùng để chuyển đổi data.table thành ma trận, với

Boston.X.std là độ lệch chuẩn của các giá trị của x thuộc Boston Standard (

deviation)

 Fit Model

Chúng ta sẽ nhét vừa dữ liệu của mô hình LASSO với dữ liệu đã có Từ biểu đồbên dưới, chúng ta thấy rằng khi giá trị của lambda không ngừng tăng lên, hệ

số của các biến có xu hướng bằng 0

lasso.fit<-glmnet(x=X.train, y=Y.train, alpha = 1)

plot(lasso.fit, xvar = "lambda", label=TRUE)

Ngày đăng: 14/05/2024, 16:07

HÌNH ẢNH LIÊN QUAN

Bảng sau hiển thị các biến được bao gồm trong các mô hình có kích thước khác nhau, cùng với các giá trị BIC, R-bình phương, adj r-bình phương, cp được liên kết với mô hình - bài tiểu luận nhóm 4 nhập môn phân tích dữ liệu đề tài boston housing data
Bảng sau hiển thị các biến được bao gồm trong các mô hình có kích thước khác nhau, cùng với các giá trị BIC, R-bình phương, adj r-bình phương, cp được liên kết với mô hình (Trang 37)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w