Phân tích mô tả dữ liệu béo phì và so sánh sự khác biệt giữa hai nhóm bằng các phương pháp thống kê mô tả, kiểm định t và bootstrap.
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
## age gender height weight
## Min. :13.00 Length:1217 Min. :136.0 Min. :34.00
## 1st Qu.:35.00 Class :character 1st Qu.:151.0 1st Qu.:49.00
## Median :48.00 Mode :character Median :155.0 Median :54.00
## Mean :47.15 Mean :156.7 Mean :55.14
## 3rd Qu.:58.00 3rd Qu.:162.0 3rd Qu.:61.00
## Max. :88.00 Max. :185.0 Max. :95.00
## pcfat hypertension diabetes
## Min. : 9.2 Min. :0.000 Min. :0.0000
## 1st Qu.:27.0 1st Qu.:0.000 1st Qu.:0.0000
## Median :32.4 Median :1.000 Median :0.0000
## Mean :31.6 Mean :0.507 Mean :0.1109
## 3rd Qu.:36.8 3rd Qu.:1.000 3rd Qu.:0.0000
## Max. :48.4 Max. :1.000 Max. :1.0000
## Loading required package: table1
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'table1'
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
## also installing the dependency 'Formula'
##
## Attaching package: 'table1'
## The following objects are masked from 'package:base':
##
## units, units<-
| F (N=862) |
M (N=355) |
Overall (N=1217) |
|
|---|---|---|---|
| age | |||
| Mean (SD) | 48.6 (16.4) | 43.7 (18.8) | 47.2 (17.3) |
| Median [Min, Max] | 49.0 [14.0, 85.0] | 44.0 [13.0, 88.0] | 48.0 [13.0, 88.0] |
| height | |||
| Mean (SD) | 153 (5.55) | 165 (6.73) | 157 (7.98) |
| Median [Min, Max] | 153 [136, 170] | 165 [146, 185] | 155 [136, 185] |
| weight | |||
| Mean (SD) | 52.3 (7.72) | 62.0 (9.59) | 55.1 (9.40) |
| Median [Min, Max] | 51.0 [34.0, 95.0] | 62.0 [38.0, 95.0] | 54.0 [34.0, 95.0] |
| pcfat | |||
| Mean (SD) | 34.7 (5.19) | 24.2 (5.76) | 31.6 (7.18) |
| Median [Min, Max] | 34.7 [14.6, 48.4] | 24.6 [9.20, 39.0] | 32.4 [9.20, 48.4] |
| hypertension | |||
| Mean (SD) | 0.501 (0.500) | 0.521 (0.500) | 0.507 (0.500) |
| Median [Min, Max] | 1.00 [0, 1.00] | 1.00 [0, 1.00] | 1.00 [0, 1.00] |
| diabetes | |||
| Mean (SD) | 0.118 (0.323) | 0.0930 (0.291) | 0.111 (0.314) |
| Median [Min, Max] | 0 [0, 1.00] | 0 [0, 1.00] | 0 [0, 1.00] |
##
## 0 1
## 0.4930156 0.5069844
##
## 0 1
## 0.8890715 0.1109285
💬 Nhận xét:
Tỷ lệ người có tiền căn cao huyết áp và tiểu đường trong mẫu khá thấp, chiếm tỷ lệ nhỏ hơn so với nhóm không mắc bệnh.
Điều này phản ánh mẫu dữ liệu chủ yếu là các đối tượng có sức khỏe bình thường, chưa biểu hiện nhiều bệnh lý nền.
## 25% 50% 75%
## 35 48 58
## 25% 50% 75%
## 49 54 61
## gender age.Min. age.1st Qu. age.Median age.Mean age.3rd Qu. age.Max.
## 1 F 14.00000 39.00000 49.00000 48.57309 59.00000 85.00000
## 2 M 13.00000 24.00000 44.00000 43.70141 56.00000 88.00000
## height.Min. height.1st Qu. height.Median height.Mean height.3rd Qu.
## 1 136.0000 150.0000 153.0000 153.2912 157.0000
## 2 146.0000 160.0000 165.0000 165.0592 169.0000
## height.Max. weight.Min. weight.1st Qu. weight.Median weight.Mean
## 1 170.0000 34.00000 47.00000 51.00000 52.31090
## 2 185.0000 38.00000 55.00000 62.00000 62.02254
## weight.3rd Qu. weight.Max. pcfat.Min. pcfat.1st Qu. pcfat.Median pcfat.Mean
## 1 57.00000 95.00000 14.60000 31.50000 34.70000 34.67241
## 2 68.00000 95.00000 9.20000 20.35000 24.60000 24.15607
## pcfat.3rd Qu. pcfat.Max. hypertension.Min. hypertension.1st Qu.
## 1 38.30000 48.40000 0.0000000 0.0000000
## 2 28.00000 39.00000 0.0000000 0.0000000
## hypertension.Median hypertension.Mean hypertension.3rd Qu. hypertension.Max.
## 1 1.0000000 0.5011601 1.0000000 1.0000000
## 2 1.0000000 0.5211268 1.0000000 1.0000000
##
## Welch Two Sample t-test
##
## data: weight by gender
## t = -16.952, df = 551.85, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## -10.836942 -8.586319
## sample estimates:
## mean in group F mean in group M
## 52.31090 62.02254
##
## Welch Two Sample t-test
##
## data: height by gender
## t = -29.125, df = 562.31, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## -12.56161 -10.97433
## sample estimates:
## mean in group F mean in group M
## 153.2912 165.0592
##
## Welch Two Sample t-test
##
## data: pcfat by gender
## t = 29.768, df = 602.01, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## 9.822548 11.210140
## sample estimates:
## mean in group F mean in group M
## 34.67241 24.15607
💡 Nhận xét:
Kết quả kiểm định t cho thấy nếu p-value < 0.05, có thể kết luận rằng giữa nam và nữ tồn tại sự khác biệt có ý nghĩa thống kê về biến được so sánh (ví dụ: cân nặng hoặc tỉ trọng mỡ cơ thể).
##
## Shapiro-Wilk normality test
##
## data: A
## W = 0.92541, p-value = 0.5126
##
## Shapiro-Wilk normality test
##
## data: B
## W = 0.89641, p-value = 0.2319
## [1] 8.571429
## [1] 4.237025
## [1] 11.88889
## [1] 3.95109
##
## Two Sample t-test
##
## data: A and B
## t = -1.615, df = 14, p-value = 0.1286
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -7.723188 1.088267
## sample estimates:
## mean of x mean of y
## 8.571429 11.888889
💬 Nhận xét:
Nếu p-value < 0.05, có thể kết luận rằng giữa hai nhóm có sự khác biệt có ý nghĩa thống kê về tải trọng.
Ngược lại, nếu p-value > 0.05, sự khác biệt không đáng kể – hai nhóm có trung bình tải trọng tương đương nhau.
## Loading required package: boot
library(boot)
# Tạo khung dữ liệu ghép nhóm A và B
df <- data.frame(
value = c(A, B),
group = rep(c("A", "B"), times = c(length(A), length(B)))
)
# Hàm tính trung bình giữa hai nhóm
mean_diff <- function(data, indices) {
d <- data[indices, ]
mean(d$value[d$group == "A"]) - mean(d$value[d$group == "B"])
}
set.seed(123)
boot_mean <- boot(df, statistic = mean_diff, R = 1000)
boot.ci(boot_mean, type = "bca")## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = boot_mean, type = "bca")
##
## Intervals :
## Level BCa
## 95% (-7.590, 0.374 )
## Calculations and Intervals on Original Scale
💡 Nhận xét:
Kết quả Bootstrap trung bình cho thấy ước lượng chênh lệch giữa hai nhóm A và B nằm trong khoảng tin cậy 95% (CI 95%).
Nếu khoảng tin cậy không chứa 0, điều đó khẳng định có sự khác biệt có ý nghĩa thống kê về giá trị trung bình giữa hai nhóm.
Ngược lại, nếu CI bao gồm 0, thì sự khác biệt không có ý nghĩa thống kê – trung bình tải trọng hai nhóm tương đương trong quần thể.
median_diff <- function(x, y) median(x) - median(y)
boot_median <- function(data, indices) {
d <- data[indices, ]
median_diff(d$value[d$group == "A"], d$value[d$group == "B"])
}
set.seed(123)
boot_results <- boot(df, statistic = boot_median, R = 1000)
boot.ci(boot_results, type = "bca")## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = boot_results, type = "bca")
##
## Intervals :
## Level BCa
## 95% (-10.000, 3.413 )
## Calculations and Intervals on Original Scale
📈 Nhận xét:
Bootstrap trung vị giúp đánh giá mức chênh lệch khi dữ liệu không tuân theo phân phối chuẩn.
Nếu khoảng tin cậy 95% của chênh lệch trung vị không chứa 0, có thể kết luận rằng phân bố hai nhóm khác nhau đáng kể về xu hướng trung tâm (median).
Phương pháp này đặc biệt hữu ích khi dữ liệu có nhiễu, sai lệch hoặc kích thước mẫu nhỏ.
🔍 Phân tích sâu hơn:
Kiểm định t cung cấp cách so sánh trung bình dựa trên giả định phân phối chuẩn.
Tuy nhiên, khi giả định này không thoả mãn (p < 0.05 trong Shapiro–Wilk test), việc sử dụng phép kiểm phi tham số (Mann–Whitney) hoặc Bootstrap trở nên cần thiết để đảm bảo kết quả đáng tin cậy.
💡 Ý nghĩa thực tiễn:
Trong nghiên cứu thực tế, việc so sánh hai nhóm thường xuyên gặp phải dữ liệu không chuẩn.
Phương pháp bootstrap cho phép nhà nghiên cứu vẫn ước lượng được khoảng tin cậy chính xác mà không cần dựa vào giả định phân phối.
✅ Kết luận mở rộng:
Kết hợp giữa kiểm định t, Mann–Whitney và bootstrap giúp bạn đọc có cái nhìn toàn diện hơn về sự khác biệt giữa các nhóm – một kỹ năng quan trọng khi làm luận văn hoặc báo cáo khoa học sử dụng R.