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

Giáo trình lâm sàng 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 (3.5 MB, 236 trang )


1
Lâm sàng thống kê
Độ lệch chuẩn hay sai số chuẩn?

Nguyễn Văn Tuấn

Trong vài năm qua, tôi nhận khá nhiều email hỏi về những vấn đề căn bản trong
thống kê sinh học và phương pháp dịch tễ học. Tôi có ý định mở mục Lâm sàng thống
kê (Statistical Clinic) để trao đổi với bạn đọc về các vấn đề mà tôi thấy quan trọng này.
Tôi hân hoan chào đón các câu hỏi của bạn đọc để có cảm hứng trả lời.

Trong hàng trăm thư hỏi và tham vấn trong thời gian 3 năm qua, tôi đếm có đến 5
thư hỏi về vấn đề mà tôi lấy làm tựa đề cho bài viết này. Chẳng hạn như một bạn đọc ở
Hà Nội viết email đến tôi hỏi: “Thưa thầy! Em đọc thấy trong các tập san y học người ta
thường hay trình bày số trung bình kèm theo SEM, nhưng cũng có bài báo trình bày số
trung bình kèm theo SD. Xin hỏi Thầy cách trình bày nào đúng?”

Đây là một câu hỏi đơn giản nhưng tôi thấy có ý nghĩa ứng dụng khá rộng, nên
muốn nhân cột báo Lâm sàng thống kê để trả lời bạn đọc.

***

Trong các tập san y học, chúng ta thường thấy những cột số dưới hình thức x ± y,
trong đó x là số trung bình, còn y thì có khi là độ lệch chuẩn (standard deviation – SD)
hay sai số chuẩn (standard error – SE). Cũng có tác giả viết SEM (viết tắt từ cụm từ
standard error of the mean). Cách trình bày như thế thông dụng đến nỗi một số chuyên
gia và các ban biên tập tập san y học phải lên tiếng khuyến cáo. Theo khuyến cáo chung
và cũng là qui ước nghiên cứu y học: để mô tả một biến số lâm sàng tuân theo luật
phân phối chuẩn, các nhà nghiên cứu nên cách trình bày số trung bình và kèm độ
lệch chuẩn (không phải sai số chuẩn; để mô tả một biến số lâm sàng không tuân


theo luật phân phối chuẩn, nên trình bày số trung vị và số ở vị trí 25% và 75% (tức
là interquartile range).

Để hiểu qui ước này, chúng ta cần phải tìm hiểu ý nghĩa của độ lệch chuẩn và sai
số chuẩn. Tôi thấy điều này cần thiết, bởi vì hầu hết sách giáo khoa thống kê (ngay cả
sách giáo khoa do người Tây phương viết) đều không giải rõ những khác biệt về ý nghĩa
của hai chỉ số thống kê này.

Mô tả một biến số theo luật phân phối chuẩn


2
Xin nhắc lại thuật ngữ: cụm từ “phân phối chuẩn” ở đây chính là “Normal
distribution” (hay có sách còn gọi là “Gaussian distribution”, lấy từ tên của nhà toán học
vĩ đại người Đức Frederick Gauss). Một biến số tuân theo luật phân phối chuẩn, khi vẽ
bằng biểu đồ, giống như hình một cái chuông cân đối (Biểu đồ 1). Phân phối này được
xác định bằng hai thông số: số trung bình và độ lệch chuẩn. Để tiết kiệm chữ nghĩa, tôi
sẽ lấy kí hiệu m thể hiện số trung bình, và s thể hiện độ lệch chuẩn.

Tại sao chúng ta cần độ lệch chuẩn? Để trả lời câu hỏi này, chúng ta thử xem qua
ví dụ sau đây:

Ví dụ 1. Một biến số phản ảnh tình trạng của một bệnh trong hai nhóm bệnh
nhân (nhóm A gồm 6 bệnh nhân, và nhóm B gồm 4 bệnh nhân) như sau:

Nhóm A: 6, 7, 8, 4, 5, 6
Nhóm B: 10, 2, 3, 9

Có thể dễ dàng thấy rằng số trung bình của nhóm A là 6, bằng với số trung bình
của nhóm B. Tuy có cùng số trung bình, chúng ta khó có thể kết luận hai nhóm này

tương đương nhau, bởi vì độ khác biệt trong nhóm B cao hơn trong nhóm A. Thật vậy,
độ khác biệt giữa số lớn nhất và số nhỏ nhất trong nhóm B là 8 (tức 10 trừ cho 2) gấp hai
lần so với nhóm A với độ khác biệt là 4 (lấy 8 trừ cho 4).

Chúng ta cần một chỉ số để phản ảnh sự khác biệt giữa các bệnh nhân (hay nói
theo thuật ngữ là biến thiên). Cách làm hiển nhiên nhất là lấy kết quả của từng bệnh nhân
trừ cho số trung bình và cộng chung lại. Gọi chỉ số này là D, và để phân biệt hai nhóm A
và B, chúng ta dùng kí hiệu dưới dòng (subscript):

Nhóm A:
A
D = (6-6) + (7-6) + (8-6) + (4-6) + (5-6) + (6-6) = 0
Nhóm B:
B
D = (10-6) + (2-6) + (3-6) + (9-6) = 0

Như thấy trên, vấn đề ở đây là tổng số khác biệt của D là 0. Như vậy D vẫn chưa
phản ảnh được độ biến thiên mà chúng ta muốn. Một cách làm cho D có “hồn” hơn là
chúng ta lấy bình phương của từng cá nhân và cộng số bình phương lại với nhau. Gọi chỉ
số mới này là
2
D , chúng ta có:

Nhóm A:
2
A
D = (6-6)
2
+ (7-6)
2

+ (8-6)
2
+ (4-6)
2
+ (5-6)
2
+ (6-6)
2
= 10
Nhóm B:
2
B
D = (10-6)
2
+ (2-6)
2
+ (3-6)
2
+ (9-6)
2
= 50


3
Bây giờ thì
2
D rõ ràng cho thấy nhóm B có độ biến thiên cao hơn nhóm A.
Nhưng còn một vấn đề, vì
2
D là tổng số, tức là chịu ảnh hưởng số cỡ mẫu trong từng

nhóm. Một cách điều chỉnh hợp lí nhất là chia
2
D cho số cỡ mẫu. Gọi chỉ số mới này là
S
2
, chúng ta có:

Nhóm A:
2
A
S = 10 / 6 = 1.67
Nhóm B:
2
B
S = 50 / 4 = 12.5

Nhưng để khách quan hơn nữa, chúng ta còn phải điều chỉnh cho số thông số sử
dụng trong tính toán. Chú ý rằng khi tính D hay
2
D , chúng ta trừ kết quả mỗi bệnh nhân
cho số trung bình (tức là tốn một thông số). Vì thế, thay vì chia
2
D cho số cỡ mẫu,
chúng ta phải chia cho số cỡ mẫu trừ 1. Gọi chỉ số mới nhất là
2
s , chúng ta có:

Nhóm A:
2
10

2
51
A
s
=
=


Nhóm B:
2
50
16.7
41
B
s ==



Chỉ số
2
s ở đây chính là phương sai.

Nhưng còn một vấn đề nhỏ nữa: bởi vì đơn vị phương sai là bình phương, khác
với đơn vị của số trung bình. Vì thế, cách hoán chuyển tốt nhất là chuyển giá trị của
phương sai sao cho có cùng đơn vị với số trung bình bằng cách lấy căn số bậc hai, và đây
chính là
độ lệch chuẩn (kí hiệu s).

Nhóm A:
21.41

A
s ==
Nhóm B:
16.7 4.08
B
s ==

Đến đây, chúng ta có thể thấy nhóm B có độ biến thiên cao hơn nhóm A. Một
cách để định lượng hóa độ lệch chuẩn tương quan với số trung bình là lấy độ lệch chuẩn
chia cho số trung bình (và nếu cần, nhân cho 100). Kết quả của tính toán này có tên là
hệ
số biến thiên
(coefficient of variation – CV):

Nhóm A:
CV
A
= 1.41 / 6 × 100 = 23.5%
Nhóm B:
CV
B
= 4.08 / 6 × 100 = 68.3%


4
Lợi thế của hệ số biến thiên là nó cho chúng ta một phép so sánh các biến số
không có cùng đơn vị. Chẳng hạn như chúng ta có thể so sánh độ biến thiên của áp suất
máu và độ cholesterol trong một quần thể, vì hệ số biến thiên có cùng đơn vị phần trăm.

Đến đây, chúng ta có thể tóm lược sự phân phối của hai nhóm bệnh nhân bằng

bẳng sau đây:

Nhóm Số đối tượng
(N)
Trung bình Độ lệch chuẩn Hệ số biến
thiên
A 6 6.0 1.41 23.5%
B 4 6.0 4.08 68.3%


Mô tả sự biến thiên của số trung bình: sai số chuẩn

Các sách giáo khoa thống kê thường mô tả cách tính sai số chuẩn trong phần mở
đầu, nhưng không giải thích nó có nghĩa là gì và tại sao phải cần đến chỉ số thống kê này.
Công thức tính sai số chuẩn (kí hiệu bằng SE – viết tắt từ
standard error) rất đơn giản:
lấy độ lệch chuẩn chia cho căn số bậc hai của số cỡ mẫu (
n):
s
SE
n
=

Áp dụng công thức trên cho ví dụ,
SE của nhóm A và B lần lược là:

Nhóm A:
1.41/ 6 0.58
A
SE ==

Nhóm B:
4.08/ 4 2.04
A
SE ==

Tại sao chúng ta cần tính
SE ? Xin nhắc lại nguyên lí và mục đích đằng sau của
thống kê học là ước tính những thông số của một quần thể (population). Trong thực tế
chúng ta không biết các thông số này, mà chỉ dựa vào những ước tính từ một hay nhiều
mẫu để suy luận cho giá trị của quần thể mà các mẫu được chọn. Chẳng hạn như chúng
ta không biết chiều cao của người Việt là bao nhiêu (bởi vì đâu có ai đo lường chiều cao
của 82 triệu dân); chúng ta phải chọn một mẫu gồm
n đối tượng để tính trị số trung bình
của mẫu này, và dùng trị số trung bình của mẫu để suy luận cho toàn dân số.

Nhưng chọn mẫu phải ngẫu nhiên thì mới mang tính đại diện cao. Cứ mỗi lần
chọn mẫu, chúng ta có một nhóm đối tượng khác. Và, cứ mỗi mẫu, chúng ta có một số
trung bình mới. Câu hỏi đặt ra là: nếu chọn mẫu nhiều lần (“nhiều” ở đây có nghĩa là
hàng triệu hay tỉ lần) thì các số trung bình này dao động cỡ nào.

5


Ví dụ 2. Hãy lấy một ví dụ cụ thể (nhưng đơn giản) để minh họa cho ý tưởng vừa
trình bày. Giả sử chúng ta có một quần thể chỉ 10 người, và chiều cao tính bằng cm của
10 người này là:

Quần thể: 130, 189, 200, 156, 154, 160, 162, 170, 145, 140

Như vậy chiều cao trung bình của quần thể (chúng ta biết) là 160.6 cm. Gọi chỉ

số này là
µ
= 160.6 cm.

Bây giờ, giả sử chúng ta không có điều kiện và tài lực để đo chiều cao của toàn bộ
quần thể, mà chỉ có khả năng lấy mẫu 5 người từ quần thể này để ước tính chiều cao.
Chúng ta có thể lấy nhiều mẫu ngẫu nhiên, mỗi lần 5 người:

Lần thứ 1: 140, 160, 200, 140, 145
x
1
= 157.0
Lần thứ 2: 154, 170, 162, 160, 162
x
2
= 161.6
Lần thứ 3: 145, 140, 156, 140, 156
x
3
= 147.4
Lần thứ 4: 140, 170, 162, 170, 145
x
4
= 157.4
Lần thứ 5: 156, 156, 170, 189, 170
x
5
= 168.2
Lần thứ 6: 130, 170, 170, 170, 170
x

6
= 162.0
Lần thứ 7: 156, 154, 145, 154, 189
x
7
= 159.6
Lần thứ 8: 200, 154, 140, 170, 170
x
8
= 166.8
Lần thứ 9: 140, 170, 145, 162, 160
x
9
= 155.4
Lần thứ 10: 200, 200, 162, 170, 162
x
10
= 178.8
….

Chú ý trong dãy trên, các số
x
1
, x
2
, x
3
, … là số trung bình cho mỗi mẫu được
chọn. Chúng ta thấy cứ mỗi lần chọn mẫu, số trung bình chiều cao ước tính khác nhau,
và biến thiên từ 147.4 cm đến 178.8 cm. Các số trung bình này dao động chung quanh số

trung bình của quần thể (tức là 160.6 cm).

Nếu chúng ta chọn mẫu
N lần (mỗi lần với n đối tượng), thì chúng ta sẽ có N số
trung bình.
Độ lệch chuẩn của N số trung bình này chính là sai số chuẩn. (Nen nhớ N
ở đây là hàng triệu hay tỉ lần). Do đó, sai số chuẩn phản ảnh độ dao động hay biến thiên
của các số trung bình mẫu (sample averages).

Một số sách giáo khoa thống kê dùng danh từ “Standard error of the mean”
(SEM), nhưng đây là một cách dùng từ sai. Như tôi vừa trình bày trên, không có cái gọi
là “standard error of the mean”, mà chỉ là
standard deviation of the means (chú ý chữ

6
“means” số nhiều vì tính từ nhiều số trung bình). Thay vì gọi standard deviation of the
means (quá dài dòng), người ta gọi ngắn gọn bằng một thuật ngữ mới:
standard error.


Ý nghĩa của độ lệch chuẩn và sai số chuẩn

Gọi thông số trung bình của một quần thể là
µ
(nên nhớ rằng chúng ta không biết
giá trị của
µ
). Gọi ước số trung bình tính từ mẫu là
x
và độ lệch chuẩn là s. Theo lí

thuyết xác suất của phân phối chuẩn, chúng ta có thể phát biểu rằng:

• 68% cá nhân trong quần thể đó có giá trị từ
x
─ s đến
x
+ s;
• 95% cá nhân trong quần thể đó có giá trị từ
x
─ 1.96×s đến
x
+1.96×s ;
• 99% cá nhân trong quần thể đó có giá trị từ
x
─ 3×s đến
x
+3×s.

Ngoài ra, gọi sai số chuẩn là
SE, chúng ta còn có thể phát biểu rằng:

• 68% số trung bình tính từ mẫu có giá trị từ
x
─ SE đến
x
+ SE;
• 95% số trung bình tính từ mẫu có giá trị từ
x
─ 1.96×SE đến
x

+1.96×SE ;
• 99% số trung bình tính từ mẫu có giá trị từ
x
─ 3×SE đến
x
+3×SE.

Qua trình bày trên, chúng ta thấy rõ ràng độ lệch chuẩn phản ảnh độ biến thiên
của một số cá nhân trong một quần thể. Còn sai số chuẩn phản ảnh độ dao động của các
số trung bình chọn từ quần thể.

Ví dụ 3. Chẳng hạn như khi nói trọng lượng trung bình của một nhóm bệnh nhân
là 55 kg với độ lệch chuẩn 8.2 kg, thì câu nói này có nghĩa rằng nếu ta chọn [một cách
ngẫu nhiên] một bệnh nhân từ quần thể, thì xác suất 95% là bệnh nhân này sẽ có trọng
lượng từ 55─1.96
×8.2 = 39 kg đến 55+1.96×8.2 = 71 kg. Giá trị 39 kg đến 71 kg được
gọi là
khoảng tin cậy 95% (95% confidence interval).

Trong trường hợp khoảng tin cậy 95% hàm chứa giá trị âm thì sao? Chúng ta biết
rằng chiều cao không thể có giá trị âm! Vì thế, nếu khoảng tin cậy 95% hàm chứa giá trị
âm thì điều này cho chúng ta biết rằng hoặc là (a) phân phối của biến số không tuân theo
luật phân phối chuẩn, và các số trung bình, độ lệch chuẩn, hay phương sai không còn ý
nghĩa thực tế nữa, hoặc (b) cách chọn mẫu có vấn đề. Đây là một đề tài thú vị mà tôi sẽ
trở lại trong một bài khác.

Về ý nghĩa của sai số chuẩn, chúng ta quay lại với
Ví dụ 2. Giả sử chúng ta
không biết giá trị thật của số trung bình cho toàn quần thể, mà chỉ dựa vào mẫu thứ nhất
để ước tính. Lần chọn mẫu thứ nhất là: 140, 160, 200, 140, 145, và:


7

Số trung bình của mẫu:
x
= 157.0 cm
Độ lệch chuẩn:
s = 25.4 cm
Sai số chuẩn: SE = 25.4/ 5 = 11.36 cm

Như vậy, theo lí thuyết xác suất, chúng ta có thể nói rằng xác suất 95% là số trung
bình của toàn quần thể dao động từ 157─1.96
×11.36 = 139 cm đến 157+1.96×11.36 =
179 cm
. (Trong thực tế, chúng ta biết rằng số trung bình của toàn quần thể là 160.6 cm).

Tóm tắt

Cần phải nói ngay rằng không một biến số lâm sàng nào có thể được mô tả chỉ
bằng một ước số. Để có một “bức tranh” chung về một biến số lâm sàng, chúng ta nên sử
dụng ba ước số chính: số cỡ mẫu, số trung bình, và độ lệch chuẩn. Sai số chuẩn không
cung cấp thông tin về độ biến thiên của một quần thể, cho nên ước số này không nên sử
dụng cho việc mô tả một chỉ số lâm sàng.

Nhưng trong thực tế, vì hiểu sai hay nhập nhằng về độ lệch chuẩn và sai số chuẩn
nên các bài báo y học được trình bày thiếu thống nhất. Lúc thì các tác giả trình bày độ
lệch chuẩn, lại có khi cung cấp sai số chuẩn. Đây không phải là vấn đề gian lận khoa
học, mà chỉ đơn giản là thiếu hiểu biết. Chính vì thế mà ban biên tập các tập san y học
quốc tế ra chỉ dẫn khuyến cáo tác giả chỉ nên trình bày độ lệch chuẩn kèm theo số trung
bình và cỡ mẫu.


Bởi vì mẫu số của sai số chuẩn là số cỡ mẫu, cho nên sai số chuẩn thường thấp
hơn độ lệch chuẩn. Chính vì thế mà có khi tác giả có lẽ ngại trình bày độ lệch chuẩn quá
cao (ngại người bình duyệt chất vấn và có thể bài báo bị từ chối) nên họ cố tình trình bày
bằng độ lệch chuẩn mà không ghi chú thích! Tình trạng nhập nhằng này mới là gian lận
khoa học – nhưng là một gian lận ở trình độ thấp.

Hi vọng rằng những giải thích trên đây của tôi đã cung cấp cho bạn đọc một cách
hiểu sâu hơn và rõ ràng hơn về khác biệt giữa độ lệch chuẩn và sai số chuẩn.

Chú thích: Bài viết này thực chất là dựa vào một bài giảng về phương pháp dịch tễ học
mà người viết đã thực hiện ở Bộ môn nội tiết (Đại học Y dược, Thành phổ Hồ Chí Minh)
vào tháng 7 năm 2006, và buổi tập huấn về nghiên cứu khoa học tại Bệnh viện Đa khoa
Kiên Giang vào tháng 2 năm 2007. Thành thật cám ơn các bác sĩ, học viên và bạn đọc
ykhoa.net đã đặt nhiều câu hỏi làm cảm hứng cho bài viết
.



8

Thuật ngữ sử dụng trong bài viết

Tiếng Việt Tiếng Anh
Số trung bình Mean
Độ lệch chuẩn Standard deviation (SD)
Sai số chuẩn Standard error (SE)
Khoảng tin cậy 95% 95% confidence interval
Số trung vị Median
Phân phối chuẩn Normal distribution (Gaussian distribution)

Biến thiên Variation
Phương sai Variance
Hệ số biến thiên Coefficient of variation (CV)
Quần thể Population
Sample Mẫu
Thông số Parameter
Estimate Ước số


Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn

1

Lâm sàng thống kê
Ước tính khoảng tin cậy 95%
cho một biến số đã hoán chuyển sang đơn vị logarít

Hỏi: “Nhiều biến số lâm sàng không tuân theo luật phân phối Gaussian, do đó
cách tính khoảng tin cậy 95% theo phương pháp thông thường không thể áp dụng. Nếu
phải biến đổi biến số sang logarít thì cách tính khoảng tin cậy 95% sẽ như thế nào?”

Rất nhiều biến số lâm sàng (và trong sinh học nói chung) như lượng đường trong
máu, độ cholesterol trong máu, và nhiều chỉ số sinh học khác không tuân theo luật phân
phối chuẩn. Trong trường hợp này, phương pháp mô tả biến số thường là số trung vị
(median), và các điểm tứ phân vị 25% và 75% (tức là 25th quartile và 75th quartile).
Nhưng cũng có trường hợp phân tích, chúng ta cần phải hoán chuyển các biến số này
sang một đơn vị khác sao cho tuân theo luật phân phối chuẩn. Một trong những hàm số
hoán chuyển là logarít. Khi một biến số đã hoán chuyển sang một đơn vị khác thì tất cả
các số trung bình và độ lệch chuẩn cũng thay đổi, cách diễn dịch cũng thay đổi. Bài viết
này sẽ trình bày một cách tính rất đơn giản để duy trì ý nghĩa sinh học ban đầu của biến

số.

Hãy lấy một ví dụ cụ thể. Chúng ta đo lường độ SHBG ở 50 bệnh nhân nam tuổi
60 trở lên, và kết quả như sau:

53.6, 87.1, 35.2, 40.7, 74.5, 35.6, 82.9, 50.2, 33.8, 40.6,
110.5, 147.6, 35.8, 52.5, 72.5, 90.5, 37.8, 76.0, 48.5, 44.7,
53.2, 32.6, 39.3, 49.4, 34.6, 99.3, 46.4, 73.2, 57.7, 24.9,
45.5, 46.7, 45.9, 50.8, 69.2, 57.2, 30.0, 31.5, 50.8, 46.6,
70.8, 64.4, 34.2, 51.9, 49.8, 78.3, 52.1, 33.4, 35.5, 67.4


Một vài chỉ số thống kê cho biến số SHBG có thể ước tính như sau:

Số trung bình 55.46
Độ lệch chuẩn 23.42
Trung vị 50


Nếu tính theo luật phân phối chuẩn, khoảng tin cậy 95% của SHBG là: 55.46–1.96×23.42
= 9.55 và 101.37 mmol/L. Nhưng trước khi chấp nhận sự hợp lí của khoảng tin cậy này,
chúng ta phải xem qua phân phối của biến SHBG (Biểu đồ 1) dưới đây.

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn

2

Histogram of shbg
shbg
Frequency

20 40 60 80 100 120 140
0
2
4
6
8
10
12

Biểu đồ 1: Phân phối của biến SHBG

Như có thể thấy, phần lớn bệnh nhân có độ SHBG thấp hơn 80 mmol/L, và rất ít bệnh
nhân với SHBG cao hơn 80 mmol/L. Nói cách khác, phân phối của SHBG xiên lệch về
những giá trị thấp, không cân đối, tức là không tuân theo luật phân phối chuẩn (Normal
distribution). Do đó, khoảng tin cậy 95% và số trung bình vừa ước tính trên không có ý
nghĩa vì đã vi phạm một qui luật thống kê học.

Cách “khắc phục” cho tình trạng này là hoán chuyển SHBG sang một đơn vị sao
cho tuân theo luật phân phối chuẩn. Vì độ lệch về một phía (phía trái) chúng ta có thể áp
dụng hàm số logarít để hoán chuyển. Chẳng hạn như thay vì 53.6, chúng ta chuyển thành
log(53.6) = 3.98. Tiếp tục hoán chuyển như thế, chúng ta sẽ có một dãy số mới như sau:

3.982 4.467 3.561 3.706 4.311 3.572 4.418 3.916 3.520 3.704 4.705 4.995 3.578 3.961
4.284 4.505 3.632 4.331 3.882 3.800 3.974 3.484 3.671 3.900 3.544 4.598 3.837 4.293
4.055 3.215 3.818 3.844 3.826 3.928 4.237 4.047 3.401 3.450 3.928 3.842 4.260 4.165
3.532 3.949 3.908 4.361 3.953 3.509 3.570 4.211

Bây giờ chúng ta thử xem phân phối của log(SHBG) (Biểu đồ 2):

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn


3

Histogram of log(shbg)
log(shbg)
Frequency
3.5 4.0 4.5 5.0
0
5
10
15

Biểu đồ 2: Phân phối của biến log(SHBG)

Phân phối này vẫn chưa thoả đáng, vì vẫn còn xiên lệch. Chúng ta để ý thấy giá trị cao
nhất của log(SHBG) là khoảng 5, cho nên chúng ta có thể áp dụng một hàm số hoán
chuyển mới: log(SHBG + 5). Chẳng hạn như nếu SHBG = 53.6, thì log(SHBG+5) =
log(53.6 + 5) = 4.07. Giá trị mới này cho 50 bệnh nhân và biểu đồ phân phối như sau:

4.071 4.523 3.694 3.822 4.376 3.704 4.476 4.011 3.658 3.820 4.749 5.028 3.709 4.052
4.350 4.559 3.757 4.394 3.980 3.906 4.064 3.627 3.791 3.996 3.679 4.647 3.940 4.359
4.138 3.398 3.922 3.945 3.930 4.022 4.307 4.130 3.555 3.597 4.022 3.944 4.328 4.240
3.669 4.041 4.004 4.422 4.045 3.648 3.701 4.282

Histogram of log(shbg + 5)
log(shbg + 5)
Frequency
3.5 4.0 4.5 5.0
0
2

4
6
8
10

Biểu đồ 3: Phân phối của biến log(SHBG+5)

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn

4

Bây giờ thì chúng ta đã thành công hoán chuyển SHBG sang phân phối chuẩn. Do đó, chúng
ta có thể ước tính số trung bình và độ lệch chuẩn cho biến số mới:

Trung bình log(SHBG+5): 4.041
Độ lệch chuẩn (SD) của log(SHBG+5): 0.3427

Như vậy, khoảng tin cậy 95% của biến số mới là: 4.041-1.96×0.3427 = 3.369 đến
4.041+1.96×0.3427 = 4.712.

Vấn đề đặt ra là chúng ta cần phải hoán chuyển ngược lại đơn vị mmol/L, vì một đơn vị
logarít rất khó hiểu và khó diễn dịch. Để hoán chuyển ngược lại, chúng ta tạm gọi
log(SHBG+5) = y, và mục tiêu là chúng ta tìm SHBG:

Log(SHBG + 5) = y
Do đó,
SHBG +5 = e
y



Hay, cụ thể hơn:
SHBG = e
y
– 5

Do đó, số trung bình và khoảng tin cậy 95% SHBG có thể ước tính như sau:

Trung bình SHBG: e
4.041
– 5 = 51.86 mmol/L
Và khoảng tin cậy 95%: e
3.369
– 5 = 24.05 đến e
4.712
– 5 = 106.3 mmol/L.

Chúng ta có thể so sánh kết quả ước tính “sai” và kết quả ước tính “đúng” như sau:

Ước tính không hoán chuyển

Ước tính dựa vào hoán
chuyển logarít
Số trung bình 55.46 51.86
Khoảng tin cậy 95% CI 23.42 – 101.37 24.05 – 106.3

Nhìn vào Biểu đồ 1, chúng ta sẽ thấy ngay rằng các ước số dựa vào hoán chuyển logarít hợp
lí hơn là những ước số không hoán chuyển, vì chúng phản ảnh đầy đủ hơn sự phân phối của
SHBG.

Ví dụ trên đây cho thấy trước khi phân tích bằng bất cứ mô hình nào, chúng ta cần phải xem

xét cẩn thận phân phối của biến số. Bởi vì phần lớn các phương pháp phân tích thống kê dựa
vào giả định luật phân phối chuẩn, vi phạm giả định này cũng có nghĩa là kết quả không có ý
nghĩa khoa học cao.
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn

5


Ghi chú:

Các tính toán trên đây có thể thực hiện bằng máy tính cầm tay hay Excel. Nhưng đối với bạn
đọc quen sử dụng ngôn ngữ thống kê R, thì các tính toán và biểu đồ trên được thực hiện bằng
các mã sau đây. (Bạn đọc có thể cắt tất cả mã và dán vào R để tự mình kiểm nghiệm).

# nhập số liệu 50 bệnh nhân vào biến có tên là shbg

shbg <- c(53.6, 87.1, 35.2, 40.7, 74.5, 35.6, 82.9, 50.2, 33.8, 40.6,
110.5, 147.6, 35.8, 52.5, 72.5, 90.5, 37.8, 76.0, 48.5,
44.7, 53.2, 32.6, 39.3, 49.4, 34.6, 99.3, 46.4, 73.2, 57.7,
24.9, 45.5, 46.7, 45.9, 50.8, 69.2, 57.2, 30.0, 31.5, 50.8,
46.6, 70.8, 64.4, 34.2, 51.9, 49.8, 78.3, 52.1, 33.4,
35.5, 67.4)

# ước tính số trung bình, độ lệch chuẩn và 95% CI

mean(shbg)
sd(shbg)
lower95 <- mean(shbg) – 1.96*sd(shbg)
upper95 <- mean(shbg) + 1.96*sd(shbg)


# vẽ biểu đồ 1

hist(shbg, breaks=15)

# hoán chuyển sang log(shbg+5)

logshbg <- log(shbg +5)

# vẽ biểu đồ 3

hist(logshbg)

# tính số trung bình, sd, 95% CI
m <- mean(logshbg)
stdev <- sd(logshbg)
lower95 <- mean(logshbg) – 1.96*sd(logshbg)
upper95 <- mean(logshbg) + 1.96*sd(logshbg)

# hoán chuyển ngược về shbg

exp(m) – 5
exp(lower95) – 5
exp(upper95) – 5

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn

6

Muốn biết thêm cách sử dụng R cho phân tích thống kê, các bạn có thể tham khảo cuốn sách
“Phân tích số liệu và tạo biểu đồ bằng R” của tôi, do Nhà xuất bản Khoa học Kỹ thuật phát

hành đầu năm 2007.

Nguyễn Văn Tuấn

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
1

Lâm sàng thống kê
Khoảng tin cậy 95% của trung vị

Nguyễn Văn Tuấn

Hỏi: “Em đo một biến số lâm sàng, nhưng vì biến số này không tuân theo luật
phân phối chuẩn, nên em phải dùng số trung vị để mô tả biến số. Em muốn biết cách
tính khoảng tin cậy 95% của nó. Tìm trong sách giáo khoa không thấy sách nào chỉ cách
tính này. Mong thầy chỉ cách tính khoảng tin cậy 95% của số trung vị.”

Đây là một vấn đề thú vị! Đối với các biến không tuân theo luật phân phối chuẩn,
chúng ta không thể sử dụng số trung bình và độ lệch chuẩn để mô tả biến. Thay vào đó,
chúng ta phải áp dụng các phương pháp thống kê phi tham số (non-parametric statistics)
để tính. Một trong những chỉ số để mô tả trung bình của biến là số trung vị (median).

Đúng như bạn đọc viết, các sách giáo khoa không mô tả cách tính khoảng tin cậy
95% của số trung vị. Đơn giản vì … không có công thức nào để tính. Tuy nhiên, trong
ba thập niên trở lại đây, với sự phát triển của máy tính, một cuộc cách mạng thống kê đã
xảy ra. Phương pháp cách mạng đó có tên là “bootstrap method” do nhà thống kê học
Bradley Efron phát triển vào năm 1979. Phương pháp bootstrap đã được ứng dụng rộng
rãi trong nhiều lĩnh vực khoa học, và đến nay có thể xem là một phương pháp chuẩn.
Trong bài này, tôi sẽ “lợi dụng” câu hỏi để giới thiệu phương pháp này. Vì phải sử dụng
máy tính, cho nên bạn đọc cần phải biết qua một ngôn ngữ thống kê, chẳng hạn như R để

tiện việc theo dõi. Chúng ta sẽ bắt đầu bằng một ví dụ cụ thể.

Phương pháp ước tính số trung vị

Ví dụ 1. Số liệu về chỉ số đau (pain index) ở 11 bệnh nhân thấp khớp như sau:

0.05, 0.15, 0.35, 0.25, 0.20, 0.05, 0.10, 0.05, 0.30, 0.05, và 0.25

(Chú ý chỉ số càng cao, độ đau càng nghiêm trọng). Số trung bình của 11 bệnh nhân là
0.163 và độ lệch chuẩn 0.112. Vì số trung bình thấp hơn 2 lần độ lệch chuẩn, chúng ta có
thể kết luận rằng biến số này không tuân theo luật phân phối chuẩn. Cách tính median có
thể tiến hành qua hai bước đơn giản sau đây:

• Bước 1: Sắp xếp dữ liệu theo thứ tự từ thấp nhất đến cao nhất:

0.05, 0.05, 0.05, 0.05, 0.10, 0.15, 0.20, 0.25, 0.25, 0.30, 0.35
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
2


Chú ý: hàng thứ 2 (số trong ngoặc) là số thứ tự từ thấp đến cao.

• Bước 2: Xác định số giữa. Vì có 11 bệnh nhân, số giữa phải là số hàng thứ 6. Số
hàng thứ 6 là 0.15 và đây chính là số trung vị:

0.05, 0.05, 0.05, 0.05, 0.10, 0.15, 0.20, 0.25, 0.25, 0.30, 0.35

Phương pháp bootstrap


Vấn đề bây giờ là xác định khoảng tin cậy 95% của số trung vị. Nói cách khác,
nếu nghiên cứu được lặp lại 1000 lần, và mỗi lần chọn 11 đối tượng, thì khoảng tin cậy
của số trung vị ra sao. Phương pháp bootstrap rất có ích để giải quyết vấn đề. Phương
pháp này được tiến hành như sau:

• Bước 1: Bắt đầu bằng mẫu gốc x
1
, x
2
, x
3
, …, x
n
. Trong ví dụ trên:

0.05, 0.05, 0.05, 0.05, 0.10, 0.15, 0.20, 0.25, 0.25, 0.30, 0.35

• Bước 2: Chọn ngẫu nhiên n cá nhân từ mẫu gốc với qui trình lấy mẫu có hoàn lại
(replacement sample). Mỗi lần chọn mẫu, tính số trung vị và tạm gọi số này là m
i
.

Cần giải thích thêm ở đây về phương pháp lấy mẫu có hoàn lại có nghĩa là một cá
nhân có thể được hơn một lần trong một lần chọn mẫu. Chẳng hạn như từ quần
thể 2, 3, 4, 5, lấy mẫu có hoàn lại có nghĩa là lần chọn mẫu thứ nhất có thể là 2, 4,
5, 2 (tức đối tượng thứ hai được chọn hai lần); lần thứ hai có thể là 4, 4, 2, 2, 5
(tức đối tượng thứ hai và thứ tư được chọn hai lần); lần thứ ba có thể là 2, 5, 2, 3;
v.v

• Bước 3: Lặp lại bước hai N lần (N thường là 1000 hay 10000 hay thậm chí 1 triệu

– tùy theo nhu cầu). Trong trường hợp trên, 10 mẫu đầu tiên có thể là:

Mẫu 1: 0.05 0.05 0.10 0.05 0.20 0.20 0.05 0.25 0.10 0.10 0.30  0.10
Mẫu 2: 0.05 0.25 0.30 0.05 0.30 0.30 0.05 0.05 0.25 0.05 0.35  0.25
Mẫu 3: 0.35 0.10 0.05 0.25 0.05 0.05 0.20 0.25 0.15 0.25 0.10  0.15
Mẫu 4: 0.05 0.05 0.10 0.25 0.15 0.05 0.20 0.05 0.10 0.25 0.05  0.10
Mẫu 5: 0.30 0.25 0.05 0.25 0.25 0.05 0.20 0.05 0.25 0.05 0.05  0.20
Mẫu 6: 0.05 0.25 0.10 0.05 0.05 0.15 0.25 0.05 0.05 0.05 0.05  0.05
Mẫu 7: 0.05 0.15 0.25 0.05 0.05 0.30 0.20 0.25 0.30 0.05 0.35  0.20
Mẫu 8: 0.05 0.05 0.20 0.05 0.10 0.05 0.05 0.10 0.20 0.10 0.05  0.05
Mẫu 9: 0.05 0.05 0.10 0.25 0.20 0.25 0.25 0.20 0.35 0.25 0.35  0.25
Mẫu 10: 0.05 0.05 0.05 0.25 0.35 0.25 0.25 0.15 0.20 0.20 0.15  0.20
v.v…
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
3


(Chú ý: số phía sau  có nghĩa là số trung vị cho từng mẫu)

• Bước 4: Đến đây chúng ta có N số trung vị. Sắp xếp N số từ thấp đến cao và đánh
số: 1, 2, 3, …, N. Chọn số trung vị ở hạng 2.5% và 97.5% của N số trung vị, và
đó chính là khoảng tin cậy 95%. Chẳng hạn như nếu N = 1000 lần, thì khoảng tin
cậy 95% chính là số trung vị hàng thứ 25 và 975.

Các bước tính toán trên có thể thực hiện bằng ngôn ngữ R (hay một ngôn ngữ hay
phần mềm nào mà bạn đọc quen thuộc) rất dễ dàng. Đối với R, các mã sử dụng (và giải
thích kèm theo) như sau:

# nhập các số liệu gốc vào một vector có tên là x
x <- c(0.05,0.15,0.35,0.25,0.20,0.05,0.10,0.05,0.30,0.05,0.25)


# bước 2 – xác định xem có bao nhiêu số liệu trong vector x
n = length(x)

# muốn lấy 1000 mẫu từ số liệu gốc
B = 1000

# tạo một vector mới để chứa số trung vị
median = numeric(B)

# bắt đầu lấy B mẫu và mỗi mẫu tính toán số trung vị
for (i in 1:B)
{
bs.sample <- sample(x, n, replace=T)
median[i] = median(bs.sample)
}
# ước tính khoảng tin cậy 95%
quantile(median, probs=c(0.025, 0.975))

Chương trình trên sẽ báo cho chúng ta biết khoảng tin cậy 95% của số trung vị là
0.05 đến 0.25.

Tóm tắt

Phương pháp bootstrap có thể áp dụng để tính toán khoảng tin cậy 95% (hay bất
cứ độ tin cậy nào) cho nhiều thông số “bất thường” khác, chứ chẳng riêng gì số trung vị.
Đây là một phương pháp rất hữu hiệu và, như đề cập trên, được đánh giá là một cuộc
cách mạng quan trọng trong khoa học thống kê.

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn

4

Vì phương pháp bootstrap đòi hỏi có máy tính, và do đó, người sử dụng phải am
hiểu một ngôn ngữ hay phần mềm thống kê. Trong bài này, tôi sử dụng ngôn ngữ R để
thực hiện phương pháp bootstrap, vì R là một ngôn ngữ tương đối dễ sử dụng nhưng rất
linh hoạt để tính toán các vấn đề khó trong thực tế nghiên cứu lâm sàng. Bạn đọc muốn
biết thêm về ngôn ngữ R có thể tìm đọc cuốn sách “Phân tích số liệu và tạo biểu đồ bằng
R” của tôi, do Nhà xuất bản Khoa học Kỹ thuật phát hành đầu năm 2007. Trong đó có
phần hướng dẫn cách chọn mẫu như sử dụng trong bài viết này.


Thuật ngữ sử dụng trong bài viết

Tiếng Việt Tiếng Anh
Thống kê phi tham số Non-parametric statistics
Trung vị Median
Khoảng tin cậy 95% 95% confidence interval

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
1

Lâm sàng thống kê
Làm cách nào để chọn ngẫu nhiên

Hỏi: “Em muốn làm một nghiên cứu trong những bệnh nhân em khám hàng tuần,
Thầy nói phải chọn ngẫu nhiên thì kết quả mới có ý nghĩa khoa học. Vậy xin Thầy chỉ
cách chọn ngẫu nhiên. Nếu em chọn mỗi bệnh nhân thứ 3 hay thứ năm có thể xem là
ngẫu nhiên không?”

Đây là một câu hỏi liên quan đến vấn đề thiết kế nghiên cứu. Liên quan đến phần

hai của câu hỏi, trả lời ngắn gọn là: “không”. Cách chọn theo thứ tự bệnh nhân thứ 3, 6,
9, … (hay 5, 10, 15, 20, …) thì không thể xem là ngẫu nhiên được, bởi vì cách chọn đã
nói lên rằng đây là cách chọn có hệ thống!

Thế thì định nghĩa “chọn ngẫu nhiên” là gì? Chọn ngẫu nhiên có nghĩa là chọn
đối tượng sao cho tất cả các đối tượng trong một quần thể có xác suất được chọn như
nhau. Nếu chúng ta có 10 đối tượng, thì mỗi đối tượng có xác suất được chọn là 1/10.
Nếu chúng ta có hai nhóm A và B, và chọn ngẫu nhiên có nghĩa là đối tượng được chọn
vào nhóm A có xác suất bằng với đối tượng được chọn vào nhóm B (tức là 50%).

Ý nghĩa của việc chọn ngẫu nhiên rất quan trọng trong nghiên cứu y học và triết lí
của nghiên cứu khoa học. Tất cả các mô hình phân tích thống kê đều giả định rằng mẫu
được chọn phải là mẫu ngẫu nhiên. Chỉ khi nào mẫu ngẫu nhiên thì kết quả phân tích
mới có giá trị khoa học cao. Ngoài ra, trong các nghiên cứu bệnh chứng (case-control
study) khi so sánh hai nhóm, chúng ta cần phải đảm bảo hai nhóm tương đương nhau về
các yếu tố lâm sàng có thể có ảnh hưởng đến kết quả nghiên cứu. Chẳng hạn như nếu
chúng ta muốn tìm hiểu ảnh hưởng của thói quen hút thuốc lá đến nguy cơ ung thư phổi,
chúng ta có thể so sánh tỉ lệ ung thư giữa nhóm hút thuốc lá và nhóm không hút thuốc lá.
Nhưng như thể vẫn chưa đủ, vì các yếu tố khác như độ tuổi, hormone, môi trường sống,
v.v… (gọi chung bằng thuật ngữ “covariates”) cũng có thể gây ung thư. Do đó, vấn đề là
phải chọn hai nhóm tương đương nhau về những covariates này. Chỉ khi nào hai nhóm
có cùng (hay tương đương) về các yếu tố covariates thì kết luận về mối liên hệ giữa hút
thuốc lá và ung thư mới đáng tin cậy.

Nhưng cách phân chia đối tượng sao cho hai nhóm tương đương nhau rất khó làm
bằng phương pháp thủ công, bởi vì chúng ta hoàn toàn có thể chọn hai nhóm tương
đương nhau về độ tuổi, nhưng có thể lại khác nhau về hormone. Hay chúng ta có thể
phân chia đối tượng sao cho hai nhóm tương đương nhau về độ tuổi và hormone, nhưng
có thể hai nhóm không tương đương về môi trường sống. Số lượng covariates càng
nhiều, cách phân chia càng phức tạp. Chỉ có cách duy nhất là ngẫu nhiên hóa

(randomization) thì mới đảm bảo tương đương giữa hai nhóm.
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
2


Mỗi chúng ta (trong thế giới 4 tỉ người) đều là những cá thể duy nhất, hiểu theo
nghĩa không có ai giống ai, và sự “độc nhất vô nhị” đó được định nghĩa bằng những
những đặc điểm và những đặc tính liên quan đến mỗi cá nhân. Có thể hai người có cùng
chiều cao, cùng cân nặng, cùng độ tuổi, nhưng hai người đó có thể khác nhau về các đặc
điểm lâm sàng khác, và nhất là khác nhau về môi trường sống. Vì thế, nếu chúng ta chọn
đối tượng dựa vào một hay hai đặc tính thì vẫn chưa đủ, mà phải chọn sao cho hoàn toàn
ngẫu nhiên. Đây là triết lí đằng sau của các nghiên cứu lâm sàng đối chứng ngẫu nhiên
(randomized clinical trial). Qua nhiều năm kinh nghiệm, y học đã hoàn thiện và chứng
minh rằng cách ngẫu nhiên hóa thực sự tương đồng hóa các nhóm.

Máy tính có thể giúp chúng ta chọn hay phân chia ngẫu nhiên. Điều cần thiết là
chúng ta phải có một phần mềm thống kê. Ở đây, tôi sẽ sử dụng phần mềm R để ngẫu
nhiên hóa. Bạn đọc muốn biết thêm về R có thể tham khảo cuốn sách “Phân tích số liệu
và tạo biểu đồ bằng R” của tôi do Nhà xuất bản Khoa học Kỹ thuật vừa mới phát hành
năm 2007.

Phương pháp chọn ngẫu nhiên

Quay lại câu hỏi trên, giả sử bạn đọc biết rằng mỗi tháng số bệnh nhân đến khám
là 500 người, và công trình nghiên cứu cần 100 người. Cách chọn ngẫu nhiên 100 bệnh
nhân có thể tiến hành từng bước như sau:

• Bước 1: lên danh sách từ 1 đến 500 (tức quần thể nghiên cứu). Đối với R việc
này cực kì đơn giản với lệnh:


population <- 1:500

Lệnh này có nghĩa rằng chúng ta làm một danh sách từ 1, 2, 3, … đến 500, và
chứa danh sách này trong biến có tên là population.

• Bước 2: sử dụng hàm sample để lấy mẫu ngẫu nhiên. Nên nhớ, chúng ta muốn
chọn 100 bệnh nhân từ population, và hàm sample đơn giản như sau:

selected <- sample(population, 100)

Lệnh này có nghĩa rằng chúng ta muốn chọn ngẫu nhiên 100 người từ quần thể có
tên là population và lưu trữ danh sách này trong biến có tên là selected.

• Bước 3: In ra 100 đối tượng vừa mới chọn đó:
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
3


selected

và R sẽ cho chúng ta biết:

[1] 42 172 31 22 234 432 75 190 386 183 64 291 139 323 356 68 462 485
[19] 61 253 456 484 337 363 488 136 498 113 117 197 378 406 256 476 466 351
[37] 95 1 218 300 219 69 28 43 250 239 326 303 84 210 3 162 493 36
[55] 425 368 182 233 57 311 51 282 93 100 130 70 18 74 446 376 321 103
[73] 125 344 500 391 34 161 78 349 252 265 147 289 9 342 231 395 73 13
[91] 180 400 6 414 367 137 81 155 360 187

(Bạn đọc có thể không cần lưu ý đến những số như [1], [19], [37], v.v… vì đây là

những số cho chúng ta biết vị trí khởi đầu của từng dòng số liệu).

Theo kết quả trên, chúng ta nên chọn các bệnh nhân số 42, 172, 31, v.v… Nhưng
danh sách này khó sử dụng, vì chúng ta biết rằng bệnh nhân đến khám theo thứ tự
với mã 1, 2, 3, …, 500. Vì thế, cần phải sắp xếp biến selected theo thứ tự, và
hàm sort giúp chúng ta làm việc này rất hữu hiệu:

sort(selected)

và R sẽ cho chúng ta biết:

[1] 1 3 6 9 13 18 22 28 31 34 36 42 43 51 57 61 64 68
[19] 69 70 73 74 75 78 81 84 93 95 100 103 113 117 125 130 136 137
[37] 139 147 155 161 162 172 180 182 183 187 190 197 210 218 219 231 233 234
[55] 239 250 252 253 256 265 282 289 291 300 303 311 321 323 326 337 342 344
[73] 349 351 356 360 363 367 368 376 378 386 391 395 400 406 414 425 432 446
[91] 456 462 466 476 484 485 488 493 498 500

Bây giờ thì chúng ta đã có một danh sách ngẫu nhiên. Theo danh sách này, bệnh
nhân đầu tiên (sô 1), tiếp theo là bệnh nhân số 3, 6, … và 500 nên được chọn.

Cần chú ý rằng vì đây là cách chọn hoàn toàn ngẫu nhiên, cho nên cứ mỗi lần
chúng ta ra 3 lệnh trên thì R cung cấp một danh sách hoàn toàn mới. Bạn đọc có thể
kiểm tra phát biểu này bằng cách ra 3 lệnh trên như sau:

population <- 1:500
selected <- sample(population, 100)
sort(selected)

Vì lí do này, chúng ta chỉ cần chọn một lần, không cần phải chọn nhiều lần. Sau

khi chọn, chúng ta lên danh sách và lưu trữ trong một phần mềm khác như Excel chẳng
hạn để sử dụng và theo dõi sau này.
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
4



Phương pháp phân nhóm ngẫu nhiên

Trong các nghiên cứu lâm sàng đối chứng ngẫu nhiên, chúng ta thường có hai
nhóm đối tượng. Với số lượng cỡ mẫu định trước là n, mục tiêu là chia n/2 đối tượng vào
nhóm 1 và n/2 vào nhóm 2. Có vài phương pháp để chia ngẫu nhiên. Cách đơn giản nhất
là lấy số chẳn hay lẻ để quyết định phân nhóm. Chẳng hạn nếu đối tượng được chọn
[ngẫu nhiên] là số chẳn thì sẽ cho vào nhóm 1 và số lẻ vào nhóm 2 (hay ngược lại). Với
R chúng ta có thể tiến hành phân nhóm cực kì đơn giản.

Ví dụ 1: Phân nhóm tổng thể. Giả sử chúng ta có 100 bệnh nhân và muốn phân
50 vào nhóm can thiệp (A) và 50 vào nhóm đối chứng (P). Chúng ta tiến hành theo trình
tự sau đây:

• Bước 1: Cho biết chúng ta có 100 đối tượng và tạo 100 mã số và cho vào biến id.

n <- 100
id <- 1:n

• Bước 2: Dùng hàm runif để tạo một biến ngẫu nhiên mới với 100 đối tượng.
Hàm runif cho ra những số từ 0 đến 1 (với nhiều số thập phân), cho nên chúng
ta cần phải hoán chuyển thành số nguyên (integer) bằng cách nhân cho 100 và sư
dụng hàm as.integer:


random <- runif(n)
int <- as.integer(random*100)

Có thể in random và int ra để hiểu lệnh trên:

random

[1] 0.0165335056 0.5482203555 0.7691326942 0.9717108703 0.7892011970
[6] 0.3479388587 0.2547544581 0.2909628002 0.8007796723 0.9694102113

[96] 0.6618360400 0.4355043718 0.2979350316 0.9742071696 0.3063064239

int

[1] 1 54 76 97 78 34 25 29 80 96 17 3 22 31 68 46 64 50 92 60 53 61 92 70

[97] 43 29 97 30

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
5

• Bước 3: Xác định int là số chẳn hay lẻ bằng hàm %% và cho vào biến odd.
Dùng hàm replace để chia nhóm: nếu odd là số lẻ, cho vào nhóm A; nếu odd
là số chẳn, cho vào nhóm P, và gọi nhóm bằng tên mới là group:

odd <- int%%2
group <- odd
group <- replace(group, odd == 1, "A")
group <- replace(group, odd == 0, "P")


(Trong lệnh số 1, int%%2 chúng ta muốn biết là int là số chẳn hay lẻ. Nếu
int là số chẳn thì có thể chia cho 2 và phần dư là 0; nếu int là số lẻ thì phần dư
không phải là 0. Giá trị của odd sẽ là 0 (chẳn) hay 1 (lẻ).

Lệnh thứ hai, tạm gọi cho group lấy giá trị của odd.

Lệnh thứ ba: nếu odd bằng 1, thay thế group bằng giá trị "A"; nếu odd bằng 0,
thay thế group bằng giá trị "P").

• Bước 4: Dùng hàm data.frame để chứa tất cả các số liệu liên quan như id và
group vào một dữ liệu có tên là grouping và in ra:

grouping <- data.frame(id, group)
grouping

id group
1 1 A
2 2 A
3 3 A
4 4 P
5 5 A
6 6 P
7 7 P
8 8 P
9 9 P
10 10 A

98 98 A
99 99 P
100 100 P


Theo kết quả trên, chúng ta sẽ xếp bệnh nhân số 1, 2, 3 vào nhóm can thiệp (A),
bệnh nhân 4 vào nhóm đối chứng (P), v.v… Để kiểm tra xem chúng ta có bao nhiêu
bệnh nhân trong nhóm A và B, chúng ta sử dụng hàm table như sau:

Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
6

table(group)

Và kết quả là có 45 bệnh nhân được phân chia vào nhóm A, 55 vào nhóm P.

group
A P
45 55


Vì phân chia hoàn toàn ngẫu nhiên, cho nên số lượng bệnh nhân không hoàn toàn
cân đối, nhất là những nghiên cứu có số lượng đối tượng không nhiều. Nhưng đối với
những nghiên cứu với hàng ngàn đối tượng thì phân chia theo ngẫu nhiên hóa có thể cân
đối rất hữu hiệu.

Tất nhiên, chúng ta có thể “chạy” (lặp lại các lệnh trên) qui trình trên cho đến khi
nào số lượng đối tượng của hai nhóm cân bằng thì ngưng (bạn đọc chỉ đơn giản cắt (cut)
toàn bộ lệnh và dán (paste) vào R các lệnh dưới đây):

n <- 100
id <- 1:n
random <- runif(n)
int <- as.integer(random*100)

odd <- int%%2
group <- odd
group <- replace(group, odd == 1, "A")
group <- replace(group, odd == 0, "P")
grouping <- data.frame(id, group)
table(group)

Tôi đã thử chạy các lệnh trên, và chỉ 3 lần là đáp ứng yêu cầu 50:50! Khi đã đạt
yêu cầu, chúng ta chỉ đơn giản in ra (với lệnh grouping) và lưu trữ kết quả trong một
hồ sơ Excel để tham chiếu sau này.

Ví dụ 2: Phân nhóm theo từng cụm (block). Vì khả năng thiếu cân đối trong
cách phân nhóm tổng thể như trên, chúng ta cần một phương pháp khác để đảm bảo cân
đối ngay cả với những nghiên cứu ít đối tượng (như 40 đối tượng chẳng hạn). Một
phương pháp có thể đáp ứng yêu cầu này là phân chia theo từng cụm. Chẳng hạn như với
40 bệnh nhân, chúng ta chia thành 4 cụm, mỗi cụm gồm 10 bệnh nhân, và tiến hành phân
chia ngẫu nhiên từng cụm. Trong trường hợp này, lệnh n <- 100 trên sẽ được thay thế
bằng n <- 10 và các lệnh khác không thay đổi.

Tóm lại, ngẫu nhiên hóa đóng vai trò quan trọng trong suy luận khoa học và
kiểm định giả thuyết khoa học. Trong nghiên cứu y học, ý tưởng ngẫu nhiên hóa đã làm
Chương trình huấn luyện y khoa – YKHOA.NET Training – Nguyễn Văn Tuấn
7

nên một cuộc cách mạng trong việc thẩm định các thuật điều trị trong vòng nửa thế kỉ
qua. Đứng trên phương diện “kĩ thuật”, việc chọn ngẫu nhiên và phân nhóm ngẫu nhiên
rất đơn giản nếu bạn đọc có sẵn phần mềm R (có thể tải về máy tính cá nhân hoàn toàn
miễn phí). Bạn đọc nên tự mình kiểm tra các lệnh trên đây bằng cách thay đổi các thông
số để hiểu thêm về cơ chế của chọn và phân nhóm ngẫu nhiên.




Ghi chú kĩ thuật:

Các lệnh R trong ví dụ 1 có thể đơn giản hóa thành một hàm (function). Gọi hàm bằng
tên grp, chúng ta có thể viết như sau:

grp <- function(k)
{
n <- k
id <- 1:n
random <- runif(n)
int <- as.integer(random*100)
odd <- int%%2
group <- odd
group <- replace(group, odd == 1, "A")
group <- replace(group, odd == 0, "P")
grouping <- data.frame(id, group)
grouping[,1:2]
table(group)
}

Để chạy hàm grp này, chúng ta trước hết copy toàn bộ hàm vào R, và sau đó chỉ đơn
giản ra lệnh grp(k), trong đó, k là số lượng đối tượng chúng ta muốn phân chia:

grp(1000)

Lệnh này có thể lặp lại nhiều lần, cho đến khi nào hai nhóm cân đối nhau.



×