Tải bản đầy đủ (.pdf) (27 trang)

Báo cáo bài tập lớn xác suất thống kê

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (692.43 KB, 27 trang )

lOMoARcPSD|15963670

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA

BÁO CÁO BÀI TẬP LỚN: XÁC SUẤT THỐNG KÊ
Giáo viên hướng dẫn: Nguyễn Đình Huy

Sinh viên: Lưu Hồng Phúc Hưng
MSSV:2013385
Lớp: L06
Khoa Kỹ thuật xây dựng

Hồồ Chí Minh, ngày 12 tháng 11 năm 2021.

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Đề tài 5:
Hoạt động 1:
Tập tin heat_data được thu thập với mục tiêu đánh giá các nhân tố ảnh hưởng đến
mức độ thu nhiệt và toả nhiệt của ngôi nhà.
Các biến chính trong bộ dữ liệu:












X1 - Độ nhỏ gọn
X2 - Diện tích bề mặt
X3 - Diện tích tường
X4 - Khu vực mái nhà
X5 - Chiều cao tổng thể
X6 - Định hướng
X7 - Khu vực dán kính
X8 - Phân bố khu vực dán kính
y1 - Mức độ thu Nhiệt
y2 - Mức độ tỏa nhiệt
Các bước thực hiện:

1. Đọc dữ liệu (Import data): heat_date.csv
2. Làm sạch dữ liệu (Data cleaning): NA (dữ 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. Mơ hình hồi quy tuyến tính : Sử dụng một mơ hình hồi quy tuyến tính phù
hợp để đánh giá các nhân tố tác động đến mức độ thu nhiệt của các ngôi nhà.
5. t.test: Đề suất một kiểm định phù hợp để so sánh trung bình mức thu nhiệt
và tỏa nhiệt của các ngôi nhà.

Thực hiện bằng Rstudio
1.Đọc dữ liệu (Import data): Hãy dùng lệnh read.csv() để đọc tệp tin
Khai báo các thư viện (library) được sử dụng trong toàn bộ quá trình thực hiện bài

tập (cần phải cài đặt các thư viện này thông qua Install package(s) của R.

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Input:
>#Cai dat thu vien
>install.packages("dplyr")
>library(dplyr)

>#Doc du lieu
>setwd("C:/BTL")

Thực hiện đọc dữ liệu cho file “heat_data.csv” thông qua read.csv().
>EG = read.csv("heat_data.csv")
Output:

2. Làm sạch dữ liệu (Data cleaning): NA (dữ liệu khuyết):

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Input:
#Kiem tra du lieu khuyet
>apply(is.na(EG), 2,which)
Output:


Dòng lệnh >apply(is.na(new_DF),2,which) để kiểm tra vị trí các dữ liệu khuyết
Đề xuất phương án xóa dữ liệu khuyết vì nó chiếm q nhỏ trên dữ liệu đề bài
nên bỏ sẽ không ảnh hưởng

3. Làm rõ dữ liệu (Data visualization)

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Tính các giá trị thống kê mơ tả 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ả với dưới dạng bảng bằng hàm: mean(),
median(), sd(), min(), max(), apply(), as.data.frame()
Input:
> #Bien lien tuc
> mean = apply(EG[,c(1,2,3,4,5,7,9,10)], 2, mean, na.rm = T)
> median = apply(EG[,c(1,2,3,4,5,7,9,10)], 2, median, na.rm = T)
> sd = apply(EG[,c(1,2,3,4,5,7,9,10)], 2,sd, na.rm = T)
> max = apply(EG[,c(1,2,3,4,5,7,9,10)], 2, max, na.rm = T)
> min = apply(EG[,c(1,2,3,4,5,7,9,10)], 2, min, na.rm = T)
> Bangthongtin = cbind(mean, median, sd, max, min)
> as.data.frame(Bangthongtin)
Output:

Dùng hàm boxplot() vẽ phân phối của biến X1 cho từng nhóm phân loại

Downloaded by ng?c trâm ()



lOMoARcPSD|15963670

Thống kê mô tả
Thống kê các biến rời rạc:
Đầu tiên tạo khung dữ liệu data.frame sau đó tạo bảng thống kê cho các biến bằng
Table()
Thay đổi tên cột của khung dữ liệu các biến bằng lệch colnames() “nhóm” , “số
lượng”
Input:
> #Thong ke gia tri cac bien roi rac
> X1=as.data.frame(table(EG$X1))
> colnames(X1)=c("Nhom","So luong")
> X2=as.data.frame(table(EG$X2))
> colnames(X2)=c("Nhom","So luong")
> X3=as.data.frame(table(EG$X3))
> colnames(X3)=c("Nhom","So luong")
> X4=as.data.frame(table(EG$X4))
> colnames(X4)=c("Nhom","So luong")
> X5=as.data.frame(table(EG$X5))

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

> colnames(X5)=c("Nhom","So luong")
> X6=as.data.frame(table(EG$X6))
> colnames(X6)=c("Nhom","So luong")
> X7=as.data.frame(table(EG$X7))

> colnames(X7)=c("Nhom","So luong")
> X8=as.data.frame(table(EG$X8))
> colnames(X8)=c("Nhom","So luong")

Output:

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

(theo thứ tự X1, X2, X3, X4, X5, X6, X7, X8)

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Vẽ đồ thị phân phối của mức độ thu và tỏa nhiệt bằng “hist”
Input:
> #hist Y1 Y2
> hist(EG$Y1,col = "blue", main = "Phan bo cua Y1")
> hist(EG$Y2,col = "yellow", main = "Phan bo cua Y2")

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Thay đổi kiểu dữ liệu: chuyển đổi cột dữ liệu sang định dạng số của các biến

Input:
> X1 = as.numeric(EG$X1)
> X2 = as.numeric(EG$X2)
> X3 = as.numeric(EG$X3)
> X4 = as.numeric(EG$X4)
> X5 = as.numeric(EG$X5)
> X6 = as.factor(EG$X6)
> X7 = as.numeric(EG$X7)
> X8 = as.factor(EG$X8)
> Y1=as.numeric(EG$Y1)
> Y2=as.numeric(EG$Y2)

Phân tích dữ liệu của mức độ thu và tỏa nhiệt (Y) phụ thuộc vào các biến X bằng
biểu đồ (dùng pair)
Phân phối mức độ thu nhiệt: y1
Input:
#pair Y1
>pairs(Y1 ~ X1, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X1")
>pairs(Y1 ~ X2, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X2")
>pairs(Y1 ~ X3, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X3")
>pairs(Y1 ~ X4, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X4")
>pairs(Y1 ~ X5, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X5")
>pairs(Y1 ~ X6, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X6")
>pairs(Y1 ~ X7, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X7")
>pairs(Y1 ~ X8, pch = 1,col="blue", main = "Phan phoi cua Y1 voi X8")

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670


Output:

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Phân phối mức độ tỏa nhiệt: y2

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Input:
#pairs Y2
>pairs(Y2 ~ X1, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X1")
>pairs(Y2 ~ X2, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X2")
>pairs(Y2 ~ X3, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X3")

>pairs(Y2 ~ X4, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X4")
>pairs(Y2 ~ X5, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X5")
>pairs(Y2 ~ X6, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X6")
>pairs(Y2 ~ X7, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X7")
>pairs(Y2 ~ X8, pch = 1,col="yellow", main = "Phan phoi cua Y2 voi X8")

Output:

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Mối quan hệ từng đôi một (hệ số tương quan R)
Input:

> corX1=cbind(cor(EG$X1,EG$X1),cor(EG$X1,EG$X2),cor(EG$X1,EG$X3),
+

cor(EG$X1,EG$X4),cor(EG$X1,EG$X5),

+

cor(EG$X1,EG$X6),cor(EG$X1,EG$X7),

+

cor(EG$X1,EG$X8) )

> colnames(corX1) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX1)= c("X1 vs")
> corX2=cbind(cor(EG$X2,EG$X1),cor(EG$X2,EG$X2),
+

cor(EG$X2,EG$X3),cor(EG$X2,EG$X4),

+

cor(EG$X2,EG$X5),cor(EG$X2,EG$X6),

+

cor(EG$X2,EG$X7),cor(EG$X2,EG$X8) )

> colnames(corX2) = c("X1","X2","X3","X4","X5","X6","X7","X8")


Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

> row.names(corX2)= c("X2 vs")
> corX3=cbind(cor(EG$X3,EG$X1),cor(EG$X3,EG$X2),
+

cor(EG$X3,EG$X3),cor(EG$X3,EG$X4),

+

cor(EG$X3,EG$X5),cor(EG$X3,EG$X6),

+

cor(EG$X3,EG$X7),cor(EG$X3,EG$X8) )

> colnames(corX3) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX3)= c("X3 vs")
> corX4=cbind(cor(EG$X4,EG$X1),cor(EG$X4,EG$X2),
+

cor(EG$X4,EG$X3),cor(EG$X4,EG$X4),

+

cor(EG$X4,EG$X5),cor(EG$X4,EG$X6),


+

cor(EG$X4,EG$X7),cor(EG$X4,EG$X8) )

> colnames(corX4) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX4)= c("X4 vs")
> corX5=cbind(cor(EG$X5,EG$X1),cor(EG$X5,EG$X2),
+

cor(EG$X5,EG$X3),cor(EG$X5,EG$X4),

+

cor(EG$X5,EG$X5),cor(EG$X5,EG$X6),

+

cor(EG$X5,EG$X7),cor(EG$X5,EG$X8) )

> colnames(corX5) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX5)= c("X5 vs")
> corX6=cbind(cor(EG$X6,EG$X1),cor(EG$X6,EG$X2),
+

cor(EG$X6,EG$X3),cor(EG$X6,EG$X4),

+

cor(EG$X6,EG$X5),cor(EG$X6,EG$X6),


+

cor(EG$X6,EG$X7),cor(EG$X6,EG$X8) )

> colnames(corX6) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX6)= c("X6 vs")

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

> corX7=cbind(cor(EG$X7,EG$X1),cor(EG$X7,EG$X2),
+

cor(EG$X7,EG$X3),cor(EG$X7,EG$X4),

+

cor(EG$X7,EG$X5),cor(EG$X7,EG$X6),

+

cor(EG$X7,EG$X7),cor(EG$X7,EG$X8) )

> colnames(corX7) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX7)= c("X7 vs")
> corX8=cbind(cor(EG$X8,EG$X1),cor(EG$X8,EG$X2),
+


cor(EG$X8,EG$X3),cor(EG$X8,EG$X4),

+

cor(EG$X8,EG$X5),cor(EG$X8,EG$X6),

+

cor(EG$X8,EG$X7),cor(EG$X8,EG$X8) )

> colnames(corX8) = c("X1","X2","X3","X4","X5","X6","X7","X8")
> row.names(corX8)= c("X8 vs")
> Cetable= rbind(corX1,corX2,corX3,corX4,corX5,corX6,corX7,corX8)
> as.data.frame(Cetable)

4. Mơ hình hồi quy tuyến tính
Xây dựng mơ hình hồi quy tuyến tính bao gồm biến X4 là một biến phụ thuộc, và
tất cả các biến còn lại là biến độc lập.
#Hồi quy X4
> MX4 = lm(X4~X1+X2+X3+X5+X6+X7+X8)
> summary(MX4)

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Theo mơ hình hồi quy tuyến tính “MX4”, mức tin cậy lớn hơn 5% thì sẽ khơng có
dấu sao nên X5, X63, X64, X65, X7 không mang ý nghĩa thống kê=> loại khỏi mơ
hình. Các biến cịn lại đều có ý nghĩa thống kê.


#Tong ket C.E Y1
> corY1=cbind(cor(EG$X1,EG$Y1),cor(EG$X2,EG$Y1),
+

cor(EG$X3,EG$Y1),cor(EG$X4,EG$Y1),

+

cor(EG$X5,EG$Y1),cor(EG$X6,EG$Y1),

+

cor(EG$X7,EG$Y1),cor(EG$X8,EG$Y1))

> colnames(corY1)=c("X1 vs Y1","X2 vs Y1",
+

"X3 vs Y1","X4 vs Y1",

+

"X5 vs Y1","X6 vs Y1",

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

+


"X7 vs Y1","X8 vs Y1")

> rownames(corY1)=c("correlation coefficient")
#Tong ket C.E Y2
> corY2=cbind(cor(EG$X1,EG$Y2),cor(EG$X2,EG$Y2),
+

cor(EG$X3,EG$Y2),cor(EG$X4,EG$Y2),

+

cor(EG$X5,EG$Y2),cor(EG$X6,EG$Y2),

+

cor(EG$X7,EG$Y2),cor(EG$X8,EG$Y2))

> colnames(corY2)=c("X1 vs Y2","X2 vs Y2",
+

"X3 vs Y2","X4 vs Y2",

+

"X5 vs Y2","X6 vs Y2",

+

"X7 vs Y2","X8 vs Y2")


> rownames(corY2)=c("Correlation coefficient")
Sau khi tổng kết, xây dựng mơ hình hồi quy tuyến tính cho biến Y1 và Y2
#Hồi quy Y1
> M1 = lm(Y1~X1+X2+X3+X4+X5+X6+X7+X8,data = EG)
> summary(M1)

Downloaded by ng?c trâm ()


lOMoARcPSD|15963670

Theo mơ hình hồi quy tuyến tính “M1”, mức tin cậy lớn hơn 5% thì sẽ khơng có
dấu sao nên X6 không mang ý nghĩa thống kê=> loại khỏi mô hình. Các biến cịn
lại đều có ý nghĩa thống kê
#Hồi quy Y2
> M2 = lm(Y1~X1+X2+X3+X5+X7+X8,data = EG)
> summary(M2)

> anova(m1,m2)

Đặt giả thiết : H: M1, M2 có độ phù hợp như nhau
H : M1, M2 có độ phù hợp khác nhau

Ta thấy Pr(>F)= 0.8055 nhỏ lớn mức ý nghĩa 5% nên mơ hình M1, M2 có độ phù
hợp giống nhau.

Downloaded by ng?c trâm ()



lOMoARcPSD|15963670

Đồ thị biểu hiện sai số hồi quy và giá trị dự báo bằng lệnh plot()
> #plot fitted
> plot(fitted(m2), resid(m2), xlab = "fitted values", ylab = "residuals", main = "Plot
of residuals and fitted values of Y1")

> plot(fitted(m22), resid(m22), xlab = "fitted values", ylab = "residuals", main =
"Plot of residuals and fitted values of Y2")

Downloaded by ng?c trâm ()


×