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

BÁO cáo bài tập lớn 2 môn xác SUẤT THỐNG kê

49 4 0

Đ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 đề Báo Cáo Bài Tập Lớn 2 Môn Xác Suất Thống Kê
Tác giả Nguyễn Việt Ngân
Người hướng dẫn TS. Nguyễn Bá Thi
Trường học Ho Chi Minh City University Of Technology
Chuyên ngành Xác Suất Thống Kê
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Ho Chi Minh City
Định dạng
Số trang 49
Dung lượng 1,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ự

Trang 1

BÁO CÁO BÀI TẬP LỚN 2

MÔN XÁC SUẤT THỐNG KÊ

TECHNOLOGY

GVHD: TS Nguyễn Bá Thi

Thực hiện: Nguyễn Việt Ngân - 1914289

(Lớp: L11 – Nhóm: 04)

Trang 2

BÀI 2 16

PHẦN RIÊNG 33

Trang 3

Câu hỏi:

1 Đọc dữ liệu (Import data):

gia_nha <- read.csv( "C:/Users/DELL/Desktop/gia_nha.csv" )

Liệt kê các biến có trong giá nhà

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.

new_DF=data.frame(gia_nha[,c( 6 23 , 11 , 14 , 16 , )]) head(new_DF)

## price sqft_living15 floors condition sqft_above sqft_living

## 1 221900 1340 1 3 1180 1180

## 2 538000 1690 2 3 2170 2570

## 3 180000 2720 1 3 770 770

## 4 604000 1360 1 5 1050 1960

## 5 510000 1800 1 3 1680 1680

## 6 1225000 4760 1 3 3890 5420

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 6

a) 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) mean=apply(new_DF[,c( 1 2 5 6 )], 2 ,mean)

 Trung vị (median) median=apply(new_DF[,c( 1 2 5 6 )], 2 ,median)

 Độ lệch chuẩn (sd) sd=apply(new_DF[,c( 1 2 5 6 )], 2 ,sd)

 Giá trị lớn nhất (max) max=apply(new_DF[,c( 1 2 5 6 )], 2 ,max)

 Giá trị nhỏ nhất (min) min=apply(new_DF[,c( 1 2 5 6 )], 2 ,min)

 Xuất các giá trị vừa tìm được dưới dạng bảng descriptive = data.frame(mean,median,sd,max,min) descriptive

## mean median sd max min

## price 5.666605 5.653213 0.2286882 6.886491 4.875061

## sqft_living15 3.274340 3.264818 0.1422124 3.793092 2.600973

## sqft_above 3.211557 3.193125 0.1857231 3.973590 2.462398

## sqft_living 3.279066 3.281033 0.1844762 4.131619 2.462398

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 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 floor và biến condition.

boxplot(price~floors,main= "Boxplot of house price for each category of floor" ,data=new_DF,col= "cyan" )

Trang 8

boxplot(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 9

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.

* 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 11

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.

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)

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ại khỏ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 13

 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

m2=lm(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 14

Giả thuyết

 H: 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 so vớ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 15

price = 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

So sánh khoảng tin cậy cho 2 giá trị dự báo này.

Khai báo biến

X1=data.frame(sqft_living15=mean(new_DF$sqft_living15),sqft_abo ve=mean(new_DF$sqft_above),sqft_living=mean(new_DF$sqft_living) ,floors= "2" ,condition= "3" )

X2=data.frame(sqft_living15=max(new_DF$sqft_living15),sqft_abov e=max(new_DF$sqft_above),sqft_living=max(new_DF$sqft_living),fl oors= "2" ,condition= "3" )

Dự báo giá nhà tại thuộc tính X1:

predict_X1=predict(m1,X1,interval = "confidence" ) predict_X1

## fit lwr upr

## 1 5.66139 5.657203 5.665577

Dự báo giá nhà tại thuộc tính X2:

Trang 17

predict_X2=predict(m1,X2,interval = "confidence" ) predict_X2

## fit lwr upr

## 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:

pred=data.frame(rbind(predict_X1,predict_X2)) pred=data.frame(rbind(predict_X1,predict_X2)) row.names(pred)=c( "X1" , "X2" )

pred$range=pred$upr-pred$lwr pred

## fit lwr upr range

## X1 5.661390 5.657203 5.665577 0.008374017

## X2 6.364003 6.353382 6.374624 0.021242160

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

BÀI 2

Câu hỏi:

1 Đọc dữ liệu (Import data):

diem_so <- read.csv( "C:/Users/DELL/Desktop/gia_nha.csv" ) names(diem_so)

## [1] "X" "school" "sex" "age"

Trang 19

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 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.

new_DF=data.frame(diem_so[,c( 32 , 33 , 34 , 15 , 16 , 31 , 22 , )]) head(new_DF)

## G1 G2 G3 studytime failures absences higher age

Kiểm tra và xuất ra vị trí dòng có giá trị khuyết:

Trang 20

Nhậ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 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())

mean=apply(new_DF[,c( 1 2 3 6 8 )], 2 ,mean) median=apply(new_DF[,c( 1 2 3 6 8 )], 2 ,median) sd=apply(new_DF[,c( 1 2 3 6 8 )], 2 ,sd)

max=apply(new_DF[,c( 1 2 3 6 8 )], 2 ,max) min=apply(new_DF[,c( 1 2 3 6 8 )], 2 ,min) descriptive = data.frame(mean,median,sd,max,min) descriptive

Trang 21

## mean median sd max min

##

## 0 1 2 3

## 307 50 17 16 table(new_DF$higher)

##

## no yes

## 20 370

c) Hãy dùng hàm hist() để vẽ đồ thị phân phối của biến G3.

hist(new_DF$G3,main = "histogram of G3" ,labels= T ,col= "cyan" )

Trang 22

Nhậ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) Hãy dùng hàm boxplot() vẽ phân phối của biến G3 cho từng nhóm phân loại của biến studytime, failures, và biến higher.

boxplot(G3~studytime,main = "Boxplot of G3 for each category of studytime" ,data=new_DF,col= "red" )

Trang 23

boxplot(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 24

Nhậ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() vẽ các phân phối của biến G3 lần lượt theo các biến G2, G1, age, và absences.

pairs(G3~G2, main= "Phan phoi diem thi CK theo diem HK2" , data=new_DF)

Trang 25

pairs(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 26

pairs(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)

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 điểm cuối khoá môn Toán của các em học 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) Xét mô hình hồi quy tuyến tính bao gồm biến G3 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ố

Trang 27

new_DF[, 4 ]=as.factor(new_DF[, 4 ]) new_DF[, 5 ]=as.factor(new_DF[, 5 ]) new_DF[, 7 ]=as.factor(new_DF[, 7 ])

* G3 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(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ại khỏ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.

Ngày đăng: 23/12/2023, 22:52

HÌNH ẢNH LIÊN QUAN

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ÁO cáo bài tập lớn 2 môn xác SUẤT THỐNG kê
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 (Trang 6)
Đồ 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ị. - BÁO cáo bài tập lớn 2 môn xác SUẤT THỐNG kê
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 15)
Đồ 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. - BÁO cáo bài tập lớn 2 môn xác SUẤT THỐNG kê
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 (Trang 22)
Đồ thị biểu thị sai số hồi quy và giá trị dự báo. Nêu ý nghĩa và nhận xét - BÁO cáo bài tập lớn 2 môn xác SUẤT THỐNG kê
th ị biểu thị sai số hồi quy và giá trị dự báo. Nêu ý nghĩa và nhận xét (Trang 34)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w