Mục tiêu đề tài: Sử dụng các lý thuyết về thống kê đề phân tích, đánh gia tinh trang cau và các yếu tô liên quan đến tình trang cau va đưa ra kết luận về các yếu tổ ảnh hưởng lớn đến tì
Trang 1DAI HOC QUOC GIA THÀNH PHÓ HỎ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KỸ THUẬT XÂY DỰNG
PHAN TICH, DANH GIA TINH TRANG CAU VOI CAC BIEN DOC LAP DUA TREN DU LIEU 2022 CUA
NATIONAL BRIDGE INVENTORY
MON: XAC XUAT THONG KE
GV hướng dẫn: ThS Huỳnh Thái Duy Phương
Lop: L08
Nhom: 21
TP.HCM, 2024
Trang 2BAO CAO PHAN CONG NHIEM VU VA KET QUA
THUC HIEN DE TAI CUA TUNG THANH VIEN NHOM 21
Trang 3
MỤC LỤC
2 Cơ sở lý thuyẾt in Tnhh TH TH Tà TH Hàng TH TH HT HT HH HH HH -5-
3.1 Doc va kim tra dit WQU oo ce ccccccccccecscsescsecscsesesesacscscsesecscecseseseecsesesesesasaees -7-
3.2.2 Kiém tra dir ligu khuyét thiéu (N/A) 0 cccccccccccececscseseetecstetseseeeteeaes -9-
3.2.3 Thay đối các giá trị bằng 0 của cột Average_Daily_ Traffic và thay bang giá trị trung bình nn nor Ki ky -9- 3.2.4 Thay thế các giá trị bằng “N” trong cột Deck_Condition_Rating và thay bằng giá trị trung bình 2c St 2n St St H2 HE 11 HH to -10- 3.3 Phân tích tương quan - - ch kh kkh - 12- 3.3.1 Xây dựng ma trận tương quan - che - 12- 3.4 Phân tích phương sai ANOVA .0 ccc etree ee neeeeeeeeeeeteeeee eee eiiad - 14-
3.4.1 Chuẩn bị dữ liệu -.- ¿c2 22 S32 2v S21 TH H1 Hit -14-
3.4.2 Thực hiện phân tích ANOYA Q nh rirrdk -14- 3.5 Xây dựng mô hình phân loại St hnhhhkkhHheierse -21-
3.5.1 Mô hình hồi quy Logistic .0 cccccccccesssecssssecesecseseeecseseeetecseeseseeaes -22- 3.5.2 Mô hình cây quyết định .- St St nhiêu - 23 -
3.6 So sánh 2 mô hình hồi quy Logistic và cây quyết định - -25- 3.7, File code TS Hs KT nọ TK Ki TK ĐK KH - 26-
4 Tài liệu tham khảo
Trang 41 Đề tài
Tập tin “Last Year All Field Bridges.csv” chứa thông tin chỉ tiết về tình trạng của
15035 cây cầu ở bang Georgia nước Mỹ trong khoảng thời gian từ năm 1872 đến 2022 Bên cạnh tình trạng cầu, dữ liệu còn bao gồm các thuộc tính cầu trúc, giao thông và khí hậu ảnh hưởng đến tình trạng cây cầu Dữ liệu gốc được cung cấp tại:
https://www.kagegle.com/datasets/cynthiamengyuanli/2022-national-bridge-inventory- data
Các biến chính được chọn trong bộ dữ liệu:
e Bridge Age: Bién s6 (numeric) Day 1a bién s6 thyc (continuous), biểu thị tuôi thọ của cây cầu tính đến năm 2022
e Bridge Condition: Bién phan loai (categorical) Đây là biến phân loại với ba giá
trị: “poor” (kém), “fair”" (rung bình), và “good” (tốt) Đây là biến phân loại thứ
e© Deck Condiion Rating: Biến số (numeric) Đây là biến số thực (continuous), là
chỉ số đánh giá tỉnh trạng của mặt cầu, có thê là một giá trị từ một thang điểm
đánh giá
Theo đó, ta có biến phụ thuộc: Bridge_Condition (tình trang cau: "poor", "fair", "good")
và các biến độc lập: Bridge Age, Structure Length, Average Daily Traffic, Number _of Spans in Main Unit, Deck Condition Rating sé la cdc yếu tố dùng để dự
doan tinh trang cau
Mục tiêu đề tài: Sử dụng các lý thuyết về thống kê đề phân tích, đánh gia tinh trang cau
và các yếu tô liên quan đến tình trang cau va đưa ra kết luận về các yếu tổ ảnh hưởng lớn
đến tình trạng cầu
Trang 5Nn Cơ sở lý thuyết
Các bước thực hiện đề tài:
Bước 1: Đọc và kiểm tra dữ liệu
Đọc dữ liệu từ ñle là bước đầu tiên để đưa đữ liệu vào trong R và giúp kiểm tra lại
dữ liệu xem có bị lỗi hoặc thiêu sót nào không
Kiểm tra cấu trúc của dữ liệu giúp hiểu rõ về kiêu đữ liệu và các đặc điểm của từng
biến Việc hiểu dữ liệu là điều kiện tiên quyết để thực hiện phân tích và xây dựng mô
hình
Bước 2: Tiền xử lý dữ liệu
Nếu đữ liệu có missing values (giá trị thiếu) thì cần phải xử lý để tránh ảnh hưởng
đến các mô hình phân tích Việc bỏ qua hoặc không xử lý missing values có thể làm sai
lệch kết quả và làm giảm độ chính xác của mô hỉnh
Làm sạch dữ liệu: Dữ liệu trong thực tế thường chứa nhiều giá trị thiểu, lỗi định
dạng, hoặc các giá trị không hợp lệ Nếu không làm sạch dữ liệu, các mô hình phân tích
sẽ gặp phải các vấn đề như mắt tính chính xác hoặc không thê xây dựng được mô hình
Mã hóa dữ liệu phân loại: Các mô hình máy học yêu cầu dữ liệu đầu vào là số Các
biến phân loại (như "good”, "fair", "poor") cần được mã hóa thành dạng số để mô hình
có thê xử lý Ví dy, "good" = 3, "fair" = 2, va "poor" = 1 Đây là bước quan trọng trong
tiền xử lý đữ liệu đề chuẩn bị cho phân tích và xây dựng mô hình
Chuan hoa dit ligu: Cac bién lién tuc nhu "Bridge Age", “Average Daily Traffic”
có thê có giá trị rất lớn hoặc nhỏ Việc chuẩn hóa đữ liệu (chang hạn như đưa các gia tri
về cùng một phạm vi hoặc đơn vị) giúp tăng cường hiệu quả của mô hình
Bước 3: Phân tích tương quan: Sử dụng hàm cor( để tính ma trận tương quan và
vẽ đồ thị
Phân tích tương quan giúp xác định mối quan hệ giữa các biến Ví dụ, liệu có thé khám phá liệu tuổi của cây cầu (Bridge Age) có ảnh hưởng đến tình trạng cầu hay không, hay lưu lượng giao thông (ADT) có mối quan hệ như thế nào với độ bền của cầu Phân tích tương quan giúp hiểu các yêu tô quan trọng nhất ảnh hưởng đến tình trạng câu Từ đó, ta có thê đưa ra quyêt định về các biên sô nào nên được đưa vào mô hình
Trang 6Ma trận tương quan: ta có thê sử dụng ma trận tương quan đê nhìn nhận mỗi quan
hệ giữa các biên liên tục Điêu này giúp xác định liệu có biên nào có sự liên quan mạnh
mẽ với nhau (như giữa chiêu đải câu và độ tuôi câu) Khi có sự liên quan mạnh, ta có thê quyết định có nên đưa chúng vào mô hình hay không
Bước 4: Sử dụng ANOVA: Kiểm tra sự khác biệt giữa các nhóm tình trạng cầu ANOVA (phân tích phương sai) giúp kiểm tra xem liệu các nhóm (ví dụ: các tinh trang cau "good", "fair", "poor") có sự khác biệt đáng kê về các yếu tô như tuổi cầu (Bridge Age), chiều dài cầu (Structure Length), hay lưu lượng giao thông (ADT) hay không
Nếu có sự khác biệt đáng kế giữa các nhóm, điều này có thể chỉ ra rằng các yếu tô
đó có ảnh hưởng đến tình trạng cầu Nếu không có sự khác biệt, ta có thể loại bỏ những
yếu tố này khỏi mô hình
Bước 5: Xây dựng các mô hình phân loại như hồi quy logisfic, cây quyết định
Mô hình phân loại sẽ giúp phân nhóm các cầu theo tình trạng (có thê la "good", "fair",
"bpoor") Đây là bước quan trọng đê dự đoán tình trạng cầu dựa trên các yếu tố đã được xác định trong các bước tiền xử lý và phân tích
Các mô hình phân loại như hồi quy logistic, cây quyết định sẽ giúp tìm ra quy luật giữa các yêu tô độc lập và tình trạng cầu Ta cần chọn mô hình phù hợp với kiểu dữ liệu
và bài toán
Việc huấn luyện mô hình trên dữ liệu huấn luyện giúp mô hình học cách dự đoán
tình trạng cầu dựa trên các yếu tô độc lập Mô hình sẽ học được mối quan hệ giữa các biến và sử dụng các mối quan hệ đó để dự đoán các tình trang cầu trong tương lai
Do đó ta có lưu đồ các bước thực hiện như sau:
Đọc và kiểm tra Tiền xử lý dữ Phân tích tương
Phân tích
phương sai Xây dựng mô
Trang 73 Sử dụng R
3.1 Đọc và kiểm tra dữ liệu
Sử dụng lệnh:
f#† Bước 1: Đọc và kiểm tra dữ liệu
TRUE)
data <-
k6/BTL/Last_ Year All Field Bridges.csv", header =
Sau khi đọc xong, dữ liệu của chúng ta sẽ được lưu vào | bién kiéu data frame tén data, ta có thể xem qua biến này bằng cách click đúp vào tên biến ở góc phải màn
hình Lúc này màn hình sẽ hiền thị như dưới đây:
* X1 State.Code X1 State.Name X8 Structure.Number X22 Owner.Agency X3 County.Code X3 County.Name X4 Place.Cc
1 13 Georgia 6950690 State Highway Agency 69 Coffee County
2 13 Georgia 6753350 State Highway Agency 67 Cobb County
3 13 Georgia 11551180 County Highway Agency 115 Floyd County
6 13 Georgia 803F+13 US Forest Service 241 Rabun County
& 13 Georgia DAPTRABENOM0929 Army 53 Chattahoochee County
9 13 Georgia DAPTRABENOM9421 Army 215 Muscogee County
10 13° Georgia DAPTRABENOM94 16 Army 215 Muscogee County
#Kiểm tra thông tin cơ bản
str(đata) # Kiểu đữ liệu và thông tin cột
summary(data) # Thống kê mô tả
Sau khi xài lệnh, ở khung Console sẽ hiển thị tất cả các thông tin chúng ta cần để kiêm tra như hình dưới
Trang 8> str(data) # Kiểu dê Tiệu và thông tỉn cệt
essed Concrete Continuous"
«Main Span Design
re" TChanne] Beam" "Box Beam or Girders - Single or Spread"
§ Number_of_spans_in_Main_unit
§ structure_Length
X6A Features Intersected
-Facility Carried By Structure
chr “stringer/Multi-beam or Girder" "Stringer/Multi-beam or Girde
chr "SR 135 " "T-75/1-285/RAMP-A " "EVERETT SPRINGS R
chr "Fair" "Fair" "Fair" "Fair"
int 55678910101011
num 19096 31180 644 amen 538
int 4764212000 chr "IN E DOUGLAS " "6.7 num 10 20 12 410.9150000
new data <- datal[,c
"Number of Spans_in Main Unit",
Condition", "Bridge Age ","Deck Condition Rating
("Average Daily Traffic",
mì]
"Structure Length", "Bridge _
Trang 9+ Average_Daily Traffic Number_of_Spans_in_Main_Unit Structure_Length
#lìm số giá trị khuyết thiếu
apply (18s.na (new đata)„, 2, sum
Do không có bất kỳ giá trị khuyết thiếu nào nên ta không cần xử lý thêm
3.2.3 Thay doi các giá trị bằng 0 của cột Average_Daily_Traffic và thay bằng giá trị trung bình
Do cột lưu lượng xe qua cầu mỗi ngày có sự biến động rất lớn và giá trị bằng 0 gần như không phù hợp với thực tế nên ta thay giá trị bằng 0 thành giá trị trung bình (mean) của biến Average Daily Traffc giúp duy trì kích thước mẫu và giảm thiêu sai lệch trong phân tích
Ta thực hiện lệnh
f# Tính giá trị trung bình của cột Average Daily Traffic, loại bỏ NA
Trang 10mean (new đata$Average Daily Traffic[new_data$Average Daily
_Traffic != 0], na.rm = TRUE)
# Thay thé gia tri 0 bang gia tri trung binh
new data$Average Daily Traffic([new data$Average Daily Traf fic == 0] <- mean ADT
Kết quả: Ta đã thay các giá trị bang 0 cia bién Average Daily Traffic bang mean ADT
Do cột chất lượng bề mặt cầu có một số giá trị N (tương đương bị khuyết thiếu N/A) nên
ta thay giá trị N thành giá trị trung bình (mean) của biên Average_Daily_ Trafñc giúp duy trì kích thước mẫu và giảm thiêu sai lệch trong phân tích
Ta thực hiện lệnh
† Tính giá trị trung bình của các giá trị hợp lệ (không phải
W N" )
mean (as.numeric(new_ data$Deck Condition _Rating[new_data$De
ck Condition Rating != "N"]), na.rm = TRUE)
# Thay thé "N" bang gia tri trung binh
Trang 11new dđata$Deck Condition Rating[new đataSDeck Condition RaL
ing == "N"] <- mean value
Két qua: Ta da thay cac gia tri N cua bién Deck Condition Rating bang mean value = 6.8433
+ Average_Daily Traffic Number_of_Spans_in_Main_Unit Structure_Length Bridge_Condition Bridge Age Deck_Condition_ Rating
# Kiểm tra số lượng giá trị thiếu của cột Bridge Condition
sum(18.na (new data$Bridge Condition) )
# Mã hóa giá trị phân loại thành giá trị số
factor (new _data$Bridge Condition, levels = c("Poor", "Fair",
"Good"),labels = c(1, 2, 3))
# Kiểm tra đữ liệu sau khi mã hóa
summarzy (new đata$Bridge_Condition)
Ta có kết quả:
> # Ma hoa gia trị phan loạ1 thanh g1a trị s
> new_data$Bridge_condition <- factor(new_data$Bridge_condition, levels cC"Poor", "Fair", "Good"), labels c1, 2, 3))
> # Kiếm tra dữ Tiệu sau khi mã hóa
> suluary(new_data5Bridge_Condirion)
2
Trang 123.3 Phân tích tương quan
Mục đích của bước này là để xác định các mối quan hệ giữa các biến độc lập như Lưu lượng giao thông (Average Daily Traffic), Tudi cau (Bridge Age), Chiéu dài cầu (Structure Length), v.v va bién phụ thuộc như Tình trạng cầu (Bridge_Condition) Phân tích tương quan giúp hiều rõ hơn về các yếu tố ảnh hưởng đến tình trạng cầu
và có thê chọn ra các biến quan trọng nhất đê đưa vào mô hình phân tích sau nay 3.3.1 Xây dựng ma trận tương quan
ĐỂ tao ma trận tương quan từ 6 biến: Average Daily Traffic, Number of Spans in Main Unit, Structure Length, Bridge Age, Bridge Condition, Deck Condition Rating Ta can ma hoa tat cả các biến về dạng số (numeric)
Buéc 1: Kiém tra kiéu dé liệu của các cột
Trước khi tính toán ma trận tương quan, ta cần kiêm tra kiêu dữ liệu của các cột bằng hàm str(new_data) va cho két qua sau
> # Kiếm tra kiếu dữ liệu củỏa các cệt
> str(new_data)
Ta thay dugc rang cé 2 bién Bridge Condition va Deck Condition Rating không có
kiêu đữ liệu số (num) nên ta cần chuyên đôi 2 biến này thành định dạng số (num) để có
thê xây dựng ma trận tương quan Ta sử dụng 2 lệnh sau:
# Mã hóa Bridge Condition thành số
new data$Bridge Condition <-
as.numeric(as.character(new_ data$Bridge Condition) )
# Chuyén Deck Condition Rating thanh sé
new _data$Deck Condition Rating <-
as.numeric(new_data$Deck Condition Rating)
Sau đó ta xay dung Ma tran tuong quan 6 bién va vé biéu dé Heatmap dé dé so sánh các biến trong ma trận tương quan
#lính ma trận tương quan cho 6 biến
Trang 13correlation_matrix<-
cor(new_data[,c("Average Daily Traffic","Number of Spans i
n Main Unit", "Structure Length", "Bridge Age", "Bridge Condi
tion", "Deck Condition Rating")], use = "complete.obs")
3.3.2 Vẽ heatmap ma trận tương quan
† Vẽ heatmap ma trận tương quan
11brary(corrpleE)
corrplot(correlation_matrix, method = "circle", type =
"upper", col = colorRampPalette(c("blue", "white"
"red")) (200), addCoef.col = "black", tl.col = "black", tl.srt = 45)
Ta có kết qua như sau:
Trang 14Deck Condition Rating Nhung day là mối quan hệ nghịch biến nghĩa là tuổi cầu càng cao thì tình trạng cầu và tình trạng mặt cầu càng xuống cấp
e_ Các yếu tô liên quan đến cầu (như chiều dài cầu và số nhịp cầu) không có mối tương quan mạnh với Average Daily Traffic (luu luong giao thông), cho thấy lưu lượng giao thông không phải là yếu tố chính tác động đến kết cấu và tình trạng
cau
e Méi quan hé gitta tudi cau (Bridge Age) va tinh trang cau (Bridge Condition, Deck Condition Rating) là yếu tố cần được chú ý khi phân tích và dự đoán tình
trạng cầu
3.4 Phân tích phương sai Anova
ANOVA (Analysis of Variance) giúp kiểm tra sự khác biệt giữa các nhóm Trong đề tài, nhóm này có thể là các mức d6 cha Bridge Condition (vi du: "Good", "Fair", "Poor")
3.4.1 Chuẩn bị dữ liệu
Trước tiên, chúng ta cần đảm bảo rằng biến Bridge_Condition là một biến phân loại
(factor), néu no chua phải là một factor, bạn sẽ cần chuyền đôi nó
# Kiểm tra kiểu đữ liệu của Bridge Condition
str(dataSBridge_Condi Cion)
thanh factor
data$Bridge Condition <- as.factor(data$Bridge Condition)
Ta có kết qua như sau:
> # Kiểm tra kiểu d# Tiệu của Bridge_condition
> str(data$Bridge_Condition)
chr [1:15034] "Fair" "Fair" "Fair" "Fair" "Fair" "Faire" "Fair" "Fair" "Fair" "Fair" "Fair" "Fair"
> # Kiém tra kiéu dt 1iéu cua Bridge_condition
> str(data$Bridge_Condition)
Factor w/ 3 levels "Fair","Good”, : 1111111111
3.4.2 Thực hiện phân tích ANOVA
Dưới đây là cách thực hiện ANOVA để kiểm tra sự khác biệt giữa nhóm
Bridge Condition với các biến liên tục như Bridge Age, Structure Length, và Average Daily Traffic
e ANOVA cho Bridge Age theo Bridge Condition:
Trang 15"Bridge Condition'
anova_age <- aov(Bridge Age ~ Bridge Condition, data = data)
# Xem k&ét gua ANOVA
e ANOVA cho Structure Length theo Bridge Condition:
# Kiém tra su khác biệt giữa các nhom ' Structure Length'
dựa trên 'Bridge Condition'
anova_length <- aov(Structure_ Length ~ Bridge Condition, data = data)
# Xem k&ét gua ANOVA
kê đến các biến độ dài cầu (Bridge_Length).
Trang 16Đề có góc nhìn trực quan hóa hơn ta có thể sử dụng biểu đồ boxplot
# Cài đặt ggoloLt2 nếu chưa có
install.packages ("ggplot2")
# Nap thu vién ggplot2
library (ggplot2)
# Tao boxplot gitta Structure Length va Bridge Condition
ggplot (data, aes(x = Bridge Condition, V = Structure Length, fill = Bridge Condition)) +
geom_boxplot() +
Bridge Condition",
x = "Bridge Condition", y = "Structure Length") +
scale fill manual (values = c("red", "yellow", "green”))
So sanh Structure_Length theo Bridge_Condition