Giới thiệu

Báo cáo này thực hiện các bước xử lý dữ liệu béo phì theo hướng dẫn trong môn Phân tích dữ liệu với R.
Dữ liệu gồm 13 biến số liên quan đến nhân trắc học, thành phần cơ thể, và bệnh lý chuyển hoá.


1️⃣ Đọc dữ liệu

# Thiết lập môi trường làm việc
setwd("/cloud/project")

# Đọc dữ liệu CSV
ob <- read.csv("Obesity data.csv", header = TRUE)

# Kiểm tra vài dòng đầu tiên
head(ob)
##   id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat hypertension
## 1  1      F    150     49 21.8  53  1312  0.88 17802 28600  37.3            0
## 2  2      M    165     52 19.1  65  1309  0.84  8381 40229  16.8            1
## 3  3      F    157     57 23.1  64  1230  0.84 19221 36057  34.0            1
## 4  4      F    156     53 21.8  56  1171  0.80 17472 33094  33.8            1
## 5  5      M    160     51 19.9  54  1681  0.98  7336 40621  14.8            0
## 6  6      F    153     47 20.1  52  1358  0.91 14904 30068  32.2            1
##   diabetes
## 1        1
## 2        0
## 3        0
## 4        0
## 5        0
## 6        0

2️⃣ Thông tin cơ bản của dữ liệu

# Số biến và số quan sát
dim(ob)
## [1] 1217   13
# Tên biến
names(ob)
##  [1] "id"           "gender"       "height"       "weight"       "bmi"         
##  [6] "age"          "WBBMC"        "wbbmd"        "fat"          "lean"        
## [11] "pcfat"        "hypertension" "diabetes"
# Tóm tắt dữ liệu
summary(ob)
##        id            gender              height          weight     
##  Min.   :   1.0   Length:1217        Min.   :136.0   Min.   :34.00  
##  1st Qu.: 309.0   Class :character   1st Qu.:151.0   1st Qu.:49.00  
##  Median : 615.0   Mode  :character   Median :155.0   Median :54.00  
##  Mean   : 614.5                      Mean   :156.7   Mean   :55.14  
##  3rd Qu.: 921.0                      3rd Qu.:162.0   3rd Qu.:61.00  
##  Max.   :1227.0                      Max.   :185.0   Max.   :95.00  
##       bmi            age            WBBMC          wbbmd            fat       
##  Min.   :14.5   Min.   :13.00   Min.   : 695   Min.   :0.650   Min.   : 4277  
##  1st Qu.:20.2   1st Qu.:35.00   1st Qu.:1481   1st Qu.:0.930   1st Qu.:13768  
##  Median :22.2   Median :48.00   Median :1707   Median :1.010   Median :16955  
##  Mean   :22.4   Mean   :47.15   Mean   :1725   Mean   :1.009   Mean   :17288  
##  3rd Qu.:24.3   3rd Qu.:58.00   3rd Qu.:1945   3rd Qu.:1.090   3rd Qu.:20325  
##  Max.   :37.1   Max.   :88.00   Max.   :3040   Max.   :1.350   Max.   :40825  
##       lean           pcfat       hypertension      diabetes     
##  Min.   :19136   Min.   : 9.2   Min.   :0.000   Min.   :0.0000  
##  1st Qu.:30325   1st Qu.:27.0   1st Qu.:0.000   1st Qu.:0.0000  
##  Median :33577   Median :32.4   Median :1.000   Median :0.0000  
##  Mean   :35463   Mean   :31.6   Mean   :0.507   Mean   :0.1109  
##  3rd Qu.:39761   3rd Qu.:36.8   3rd Qu.:1.000   3rd Qu.:0.0000  
##  Max.   :63059   Max.   :48.4   Max.   :1.000   Max.   :1.0000

💡 Nhận xét: Dữ liệu có 13 biến và hơn 100 quan sát. Các biến số liên quan đến chiều cao, cân nặng, BMI và tỉ lệ mỡ.


3️⃣ Mã hoá và xử lý biến

# Giới tính (F/M -> 1/0)
ob$sex <- ifelse(ob$gender == "F", 1, 0)

# Phân loại béo phì theo BMI
ob$obese <- cut(
  ob$bmi,
  breaks = c(-Inf, 18.5, 25.0, 30.0, Inf),
  labels = c("Underweight", "Normal", "Overweight", "Obese"),
  right = FALSE
)

# Đổi đơn vị từ g sang kg
ob$lean.kg <- ob$lean / 1000
ob$fat.kg  <- ob$fat / 1000

💡 Ghi chú: Biến sex mã hóa giới tính, obese giúp phân nhóm theo BMI, còn lean.kgfat.kg chuyển đổi đơn vị về kg.


4️⃣ Tạo các tập dữ liệu phụ

# Nam giới quá cân và béo phì
men.overweight <- subset(ob, gender == "M" & bmi >= 25)
dim(men.overweight)
## [1] 85 17
# Bộ dữ liệu Demo chỉ gồm 6 biến
Demo <- ob[, c("id", "age", "gender", "height", "weight", "pcfat")]
head(Demo)
##   id age gender height weight pcfat
## 1  1  53      F    150     49  37.3
## 2  2  65      M    165     52  16.8
## 3  3  64      F    157     57  34.0
## 4  4  56      F    156     53  33.8
## 5  5  54      M    160     51  14.8
## 6  6  52      F    153     47  32.2

📊 Kết quả: men.overweight gồm các nam giới có BMI ≥ 25, còn Demo chỉ chứa các biến nhân trắc cơ bản để mô tả mẫu nghiên cứu.


5️⃣ Biểu đồ minh hoạ

💡 Nhận xét: BMI tập trung chủ yếu trong nhóm “Normal” và “Overweight”.


6️⃣ Kết luận

Các bước xử lý dữ liệu và phân loại đã được hoàn thành.
Kết quả có thể được lưu ra file CSV hoặc sử dụng cho các phân tích tiếp theo như kiểm định t-test, ANOVA hoặc hồi quy.

write.csv(ob, "Obesity_data_edited.csv", row.names = FALSE)

Hoàn thành phần Ngày 1: Phân tích dữ liệu cơ bản với R