Chương trình hun luyn y khoa – YKHOA.NET Training – Nguyn Văn Tun 1
Lâm sàng thng kê
Làm cách nào để chn ngu nhiên
Hi: “Em mun làm mt nghiên cu trong nhng bnh nhân em khám hàng tun,
Thy nói phi chn ngu nhiên thì kết qu mi ý nghĩa khoa hc. Vy xin Thy ch
cách chn ngu nhiên. Nếu em chn mi bnh nhân th 3 hay th năm th xem
ngu nhiên không?”
Đây là mt câu hi liên quan đến vn đề thiết kế nghiên cu. Liên quan đến phn
hai ca câu hi, tr li ngn gn là: “không”. Cách chn theo th t bnh nhân th 3, 6,
9, (hay 5, 10, 15, 20, …) thì không th xem ngu nhiên được, bi cách chn đã
nói lên rng đây là cách chn có h thng!
Thế thì định nghĩa “chn ngu nhiên” gì? Chn ngu nhiên nghĩa chn
đối tượng sao cho tt c các đối tượng trong mt qun th xác sut được chn như
nhau. Nếu chúng ta 10 đối tượng, tmi đối tượng xác sut được chn 1/10.
Nếu chúng ta hai nhóm A B, chn ngu nhiên nghĩa đối tượng được chn
vào nhóm A có xác sut bng vi đối tượng được chn vào nhóm B (tc là 50%).
Ý nghĩa ca vic chn ngu nhiên rt quan trng trong nghiên cu y hc và triết
ca nghiên cu khoa hc. Tt c các hình phân tích thng đều gi định rng mu
được chn phi mu ngu nhiên. Ch khi nào mu ngu nhiên thì kết qu phân tích
mi giá tr khoa hc cao. Ngoài ra, trong các nghiên cu bnh chng (case-control
study) khi so sánh hai nhóm, chúng ta cn phi đảm bo hai nhóm tương đương nhau v
các yếu t lâm sàng th nh hưởng đến kết qu nghiên cu. Chng hn như nếu
chúng ta mun tìm hiu nh hưởng ca thói quen hút thuc đến nguy cơ ung thư phi,
chúng ta có th so sánh t l ung thư gia nhóm hút thuc lá và nhóm không hút thuc lá.
Nhưng như th vn chưa đủ, các yếu t khác như độ tui, hormone, môi trường sng,
v.v… (gi chung bng thut ng “covariates”) cũng có th gây ung thư. Do đó, vn đề là
phi chn hai nhóm tương đương nhau v nhng covariates y. Ch khi nào hai nhóm
cùng (hay tương đương) v các yếu t covariates thì kết lun v mi liên h gia hút
thuc lá và ung thư mi đáng tin cy.
Nhưng cách phân chia đi tượng sao cho hai nhóm tương đương nhau rt khó làm
bng phương pháp th công, bi chúng ta hoàn toàn th chn hai nhóm tương
đương nhau v độ tui, nhưng th li khác nhau v hormone. Hay chúng ta th
phân chia đối tượng sao cho hai nhóm tương đương nhau v độ tui hormone, nhưng
th hai nhóm không tương đương v môi trường sng. S lượng covariates càng
nhiu, cách phân chia càng phc tp. Ch cách duy nht ngu nhiên hóa
(randomization) thì mi đảm bo tương đương gia hai nhóm.
Chương trình hun luyn y khoa – YKHOA.NET Training – Nguyn Văn Tun 2
Mi chúng ta (trong thế gii 4 t người) đều nhng th duy nht, hiu theo
nghĩa không ai ging ai, s độc nht nh đó được định nghĩa bng nhng
nhng đặc đim nhng đặc tính liên quan đến mi cá nhân. th hai người có cùng
chiu cao, cùng cân nng, cùng độ tui, nhưng hai người đó th khác nhau v các đặc
đim lâm sàng khác, và nht là khác nhau v môi trường sng. Vì thế, nếu chúng ta chn
đối tượng da vào mt hay hai đặc tính thì vn chưa đủ, mà phi chn sao cho hoàn toàn
ngu nhiên. Đây triết đằng sau ca các nghiên cu lâm sàng đối chng ngu nhiên
(randomized clinical trial). Qua nhiu năm kinh nghim, y hc đã hoàn thin chng
minh rng cách ngu nhiên hóa thc s tương đồng hóa các nhóm.
Máy tính th giúp chúng ta chn hay phân chia ngu nhiên. Điu cn thiết
chúng ta phi mt phn mm thng kê. đây, tôi s s dng phn mm R để ngu
nhiên hóa. Bn đọc mun biết thêm v R th tham kho cun sách “Phân tích s liu
to biu đồ bng R” ca tôi do Nhà xut bn Khoa hc K thut va mi phát hành
năm 2007.
Phương pháp chn ngu nhiên
Quay li câu hi tn, gi s bn đọc biết rng mi tháng s bnh nhân đến khám
500 người, công trình nghiên cu cn 100 ngưi. Cách chn ngu nhiên 100 bnh
nhân có th tiến hành tng bưc như sau:
Bước 1: lên danh sách t 1 đến 500 (tc qun th nghiên cu). Đối vi R vic
này cc kì đơn gin vi lnh:
population <- 1:500
Lnh y nghĩa rng chúng ta làm mt danh sách t 1, 2, 3, đến 500,
cha danh sách này trong biến có tên là population.
Bước 2: s dng hàm sample để ly mu ngu nhiên. Nên nh, chúng ta mun
chn 100 bnh nhân t population, và hàm sample đơn gin như sau:
selected <- sample(population, 100)
Lnh nàynghĩa rng chúng ta mun chn ngu nhiên 100 người t qun th
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 va mi chn đó:
Chương trình hun luyn y khoa – YKHOA.NET Training – Nguyn Văn Tun 3
selected
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
(Bn đọc th không cn lưu ý đến nhng s như [1], [19], [37], v.v… vì đây là
nhng s cho chúng ta biết v trí khi đầu ca tng dòng s liu).
Theo kết qu trên, chúng ta nên chn các bnh nhân s 42, 172, 31, v.v… Nhưng
danh sách này khó s dng, vì chúng ta biết rng bnh nhân đến khám theo th t
vi 1, 2, 3, …, 500. thế, cn phi sp xếp biến selected theo th t,
hàm sort giúp chúng ta làm vic này rt hu hiu:
sort(selected)
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 đã mt danh sách ngu nhiên. Theo danh sách này, bnh
nhân đầu tiên (sô 1), tiếp theo là bnh nhân s 3, 6, … và 500 nên được chn.
Cn chú ý rng đây cách chn hoàn toàn ngu nhiên, cho nên c mi ln
chúng ta ra 3 lnh trên tR cung cp mt danh sách hoàn toàn mi. Bn đọc th
kim tra phát biu này bng cách ra 3 lnh trên như sau:
population <- 1:500
selected <- sample(population, 100)
sort(selected)
do y, chúng ta ch cn chn mt ln, không cn phi chn nhiu ln. Sau
khi chn, chúng ta lên danh sách lưu tr trong mt phn mm khác như Excel chng
hn để s dng và theo dõi sau này.
Chương trình hun luyn y khoa – YKHOA.NET Training – Nguyn Văn Tun 4
Phương pháp phân nhóm ngu nhiên
Trong các nghiên cu lâm sàng đối chng ngu nhiên, chúng ta thường hai
nhóm đối tượng. Vi s lượng c mu định trước n, mc 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 ngu nhiên. Cách đơn gin nht
ly s chn hay l để quyết định phân nhóm. Chng hn nếu đối tượng được chn
[ngu nhiên] là s chn thì s cho vào nhóm 1 và s l vào nhóm 2 (hay ngược li). Vi
R chúng ta có th tiến hành phân nhóm cc kì đơn gin.
Ví d 1: Phân nhóm tng th. Gi s chúng ta có 100 bnh nhân và mun phân
50 vào nhóm can thip (A) và 50 vào nhóm đối chng (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à to 100 mã s và cho vào biến id.
n <- 100
id <- 1:n
Bước 2: Dùng hàm runif để to mt biến ngu nhiên mi vi 100 đối tượng.
Hàm runif cho ra nhng s t 0 đến 1 (vi nhiu s thp phân), cho nên chúng
ta cn phi hoán chuyn thành s nguyên (integer) bng cách nhân cho 100 sư
dng hàm as.integer:
random <- runif(n)
int <- as.integer(random*100)
Có th in randomint ra để hiu lnh 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 hun luyn y khoa – YKHOA.NET Training – Nguyn Văn Tun 5
Bước 3: Xác định int s chn hay l bng hàm %% cho vào biến odd.
Dùng hàm replace để chia nhóm: nếu odd s l, cho vào nhóm A; nếu odd
là s chn, cho vào nhóm P, và gi nhóm bng tên mi là group:
odd <- int%%2
group <- odd
group <- replace(group, odd == 1, "A")
group <- replace(group, odd == 0, "P")
(Trong lnh s 1, int%%2 chúng ta mun biết int s chn hay l. Nếu
int là s chn thì có th chia cho 2 và phn dư 0; nếu int s l thì phn dư
không phi là 0. Giá tr ca odd s là 0 (chn) hay 1 (l).
Lnh th hai, tm gi cho group ly giá tr ca odd.
Lnh th ba: nếu odd bng 1, thay thế group bng gtr "A"; nếu odd bng 0,
thay thế group bng giá tr "P").
Bước 4: Dùng hàm data.frame để cha tt c các s liu liên quan như id
group vào mt d liu 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 tn, chúng ta s xếp bnh nhân s 1, 2, 3 vào nhóm can thip (A),
bnh nhân 4 vào nhóm đối chng (P), v.v… Để kim tra xem chúng ta bao nhiêu
bnh nhân trong nhóm A và B, chúng ta s dng hàm table như sau: