Mấy
năm gần đây nhu cầu phân tích số liệu nghiên cứu y khoa ở nước ta càng ngày
càng cấp. Trước những công trình nghiên cứu với hàng ngàn bệnh nhân và hàng
trăm nhiều yếu tố lâm sàng, vấn đề đặt ra là làm
thế nào để hoán chuyển những số liệu đó thành một “câu chuyện” khoa học có
ích cho thực hành lâm sàng. Khoa học thống kê cung cấp cho chúng ta một số
mô hình và phương pháp có ích cho việc phân tích số liệu.
Ngày nay, có thể nói rằng
kĩ năng phân tích số liệu bằng máy tính là một kĩ năng không thể thiếu được
của một nhà nghiên cứu đúng nghĩa. Thế nhưng một thực trạng đáng tiếc là
phần lớn các nhà nghiên cứu y khoa và bác sĩ ở nước ta chưa được huấn luyện
về kĩ năng này một cách có hệ thống và do đó, đối diện với một rừng số liệu,
họ trở nên lúng túng chẳng biết phải làm gì, hay làm như thế nào.
Tôi hân hạnh giới thiệu đến các bạn đọc quan tâm đến
nghiên cứu khoa học và các vấn đề liên quan đến phân tích số liệu trong
nghiên cứu khoa học một cuốn sách do tôi biên soạn có tựa đề là “Phân tích
số liệu và tạo biểu đồ bằng R: Hướng dẫn thực hành”, do nhà xuất bản Khoa
học và Kỹ thuật in ấn và phát hành vào đầu năm 2007. Nội sách gồm 15
chương, bàn các phương pháp phân tích mô tả, biểu đồ, hồi qui tuyến tính,
hồi qui logistic, phân tích sự kiện (event analysis hay survival analysis),
phân tích tổng hợp (meta-analysis), phương pháp ước tính cỡ mẫu, v.v… (Xem
phần Mục lục dưới đây). Mỗi chương, tôi bàn qua các khái niệm chính và tiếp
theo là phần thực hành qua phần mềm R. Sách còn có một số phụ lục, kể cả
phụ lục về thuật ngữ Anh – Việt sử dụng trong sách. Tôi nghĩ các bạn quan
tâm đến nghiên cứu khoa học sẽ tìm thấy vài phương pháp và thông tin có ích
cho nghiên cứu của mình.
Xin kính mời các bạn đọc xem qua cho biết.
Nguyễn Văn Tuấn
o0o
Lời nói đầu
Trái với quan điểm của nhiều người, thống kê là một bộ
môn khoa học: Khoa học thống kê (Statistical Science). Các phương
pháp phân tích dù dựa vào nền tảng của toán học và xác suất, nhưng đó chỉ là
phần “kĩ thuật”, phần quan trọng hơn là thiết kế nghiên cứu và diễn dịch ý
nghĩa dữ liệu. Người làm thống kê, do đó, không chỉ là người đơn thuần làm
phân tích dữ liệu, mà phải là một nhà khoa học, một nhà suy nghĩ (“thinker”)
về nghiên cứu khoa học. Chính vì thế, mà khoa học thống kê đóng một vai trò
cực kì quan trọng, một vai trò không thể thiếu được trong các công trình
nghiên cứu khoa học, nhất là khoa học thực nghiệm. Có thể nói rằng ngày
nay, nếu không có thống kê thì các thử nghiệm gen với triệu triệu số liệu
chỉ là những con số vô hồn, vô nghĩa.
Một công trình nghiên cứu khoa học, cho dù có tốn kém
và quan trọng cỡ nào, nếu không được phân tích đúng phương pháp sẽ không có
ý nghĩa khoa học gì cả. Chính vì thế thế mà ngày nay, chỉ cần nhìn qua tất
cả các tập san nghiên cứu khoa học trên thế giới, hầu như bất cứ bài báo y
học nào cũng có phần “Statistical Analysis” (Phân tích thống kê), nơi mà tác
giả phải mô tả cẩn thận phương pháp phân tích, tính toán như thế nào, và
giải thích ngắn gọn tại sao sử dụng những phương pháp đó để hàm ý “bảo kê”
hay tăng trọng lượng khoa học cho những phát biểu trong bài báo. Các tạp
san y học có uy tín càng cao yêu cầu về phân tích thống kê càng nặng. Xin
nhắc lại để nhấn mạnh: không có phần phân tích thống kê, bài báo không có ý
nghĩa khoa học.
Một trong những phát triển quan trọng nhất trong khoa
học thống kê là ứng dụng máy tính cho phân tích và tính toán thống kê. Có
thể nói không ngoa rằng không có máy tính, khoa học thống kê vẫn chỉ là một
khoa học buồn tẻ khô khan, với những công thức rắc rối mà thiếu tính ứng
dụng vào thực tế. Máy tính đã giúp khoa học thống kê làm một cuộc cách mạng
lớn nhất trong lịch sử của bộ môn: đó là đưa khoa học thống kê vào thực tế,
giải quyết các vấn đề gai góc nhất và góp phần làm phát triển khoa học thực
nghiệm.

John Bunker và Fred
Mosteller (1916-2006), Oxford 2002. Ảnh: Iain
Milne
Người viết còn nhớ hơn 20 năm về trước khi còn là một
sinh viên theo học chương trình thạc sĩ thống kê ở Úc, một vị giáo sư khả
kính kể một câu chuyện về nhà thống kê danh tiếng người Mĩ, Fred Mosteller,
nhận được một hợp đồng nghiên cứu từ Bộ Quốc phòng Mĩ để cải tiến độ chính
xác của vũ khí Mĩ vào thời Thế chiến thứ II, mà trong đó ông phải giải một
bài toán thống kê gồm khoảng 30 thông số. Ông phải mướn 20 sinh viên sau
đại học làm việc này: 10 sinh viên chỉ việc suốt ngày tính toán bằng tay;
còn 10 sinh viên khác kiểm tra lại tính toán của 10 sinh viên kia. Công
việc kéo dài gần một tháng trời. Ngày nay, với một máy tính cá nhân
(personal computer) khiêm tốn, phân tích thống kê đó có thể giải trong vòng
trên dưới 1 giây.
Nhưng nếu máy tính mà không có phần mềm thì máy tính
cũng chỉ là một đống sắt hay silicon “vô hồn” và vô dụng. Một phần mềm đã,
đang và sẽ làm cách mạng thống kê là R.
Phần mềm này được một số nhà nghiên cứu thống kê và khoa học trên thế giới
phát triển và hoàn thiện trong khoảng 10 năm qua để sử dụng cho việc học
tập, giảng dạy và nghiên cứu. Cuốn sách này sẽ giới thiệu bạn đọc cách sử
dụng R
cho phân tích thống kê và đồ thị.
Tại sao R?
Trước đây, các phần mềm dùng cho phân tích thống kê đã được phát triển và
khá thông dụng. Những phần mềm nổi tiếng từ thời “xa xưa” như MINITAB,
BMD-P đến những phần mềm tương đối mới như STATISTICA, SPSS, SAS, STAT,
v.v… thường rất đắt tiền (giá cho một đại học có khi lên đến hàng trăm ngàn
đô-la hàng năm), một cá nhân hay thậm chí cho một đại học không khả năng
mua. Nhưng R
đã thay đổi tình trạng này, vì R
hoàn toàn miễn phí. Trái với cảm nhận thông thường, miễn phí không có nghĩa
là chất lượng kém. Thật vậy, chẳng những hoàn toàn miễn phí, R còn có khả năng làm tất cả (xin nói lại: tất
cả), thậm chí còn hơn cả, những phân tích mà các phần mềm thương mại làm.
R có thể tải xuống máy tính cá nhân của bất cứ
cá nhân nào, bất cứ lúc nào, và bất cứ ở đâu trên thế giới. Chỉ vài phút
cài đặt là R
có thể đưa vào sử dụng. Chính vì thế mà đại đa số các đại học Tây phương và
thế giới càng ngày càng chuyển sang sử dụng R cho
học tập, nghiên cứu và giảng dạy. Trong xu hướng đó, cuốn sách này có một
mục tiêu khiêm tốn là giới thiệu đến bạn đọc trong nước để kịp thời cập nhật
hóa những phát triển về tính toán và phân tích thống kê trên thế giới.
Cuốn sách này được soạn chủ yếu cho sinh viên đại học
và các nhà nghiên cứu khoa học, những người cần một phần mềm để học thống
kê, để phân tích số liệu, hay vẽ đồ thị từ số liệu khoa học. Cuốn sách này
không phải là sách giáo khoa về lí thuyết thống kê, hay nhằm chỉ bạn đọc
cách làm phân tích thống kê, nhưng sẽ giúp bạn đọc làm phân tích thống kê
hữu hiệu hơn và hào hứng hơn. Mục đích chính của tôi là cung cấp cho bạn
đọc những kiến thức cơ bản về thống kê, và cách ứng dụng R cho giải quyết vấn đề, và qua đó làm nền tảng
để bạn đọc tìm hiểu hay phát triển thêm R.
Tôi cho rằng, cũng như bất cứ ngành nghề nào, cách học
phân tích thống kê hay nhất là tự mình làm phân tích. Vì thế, sách này được
viết với rất nhiều ví dụ và dữ liệu thực. Bạn đọc có thể vừa đọc sách, vừa
làm theo những chỉ dẫn trong sách (bằng cách gõ các lệnh vào máy tính) và sẽ
thấy hào hứng hơn. Nếu bạn đọc đã có sẵn một dữ liệu nghiên cứu của chính
mình thì việc học tập sẽ hữu hiệu hơn bằng cách ứng dụng ngay những phép
tính trong sách. Đối với sinh viên, nếu chưa có số liệu sẵn, các bạn có thể
dùng các phương pháp mô phỏng (simulation) để hiểu thống kê hơn.
Khoa học thống kê ở nước ta tương đối còn mới, cho nên
một số thuật ngữ chưa được diễn dịch một cách thống nhất và hoàn chỉnh. Vì
thế, bạn đọc sẽ thấy đây đó trong sách một vài thuật ngữ “lạ”, và trong
trường hợp này, tôi cố gắng kèm theo thuật ngữ gốc tiếng Anh để bạn đọc tham
khảo. Ngoài ra, trong phần cuối của sách, tôi có liệt kê các thuật ngữ Anh
– Việt đã được đề cập đến trong sách.
Tất cả các dữ liệu sử dụng trong sách này đều
có thể tải từ internet xuống máy tính cá nhân, hay có thể truy nhập trực
tiếp qua trang web: http://www.ykhoa.net/R.
Tôi hi vọng bạn đọc sẽ tìm thấy trong sách một vài
thông tin bổ ích, một vài kĩ thuật hay phép tính có ích cho việc học tập,
giảng dạy và nghiên cứu của mình. Nhưng có lẽ chẳng có cuốn sách nào hoàn
thiện hay không có thiếu sót; thành ra, nếu bạn đọc phát hiện một sai sót
trong sách, xin báo cho tôi biết qua điện thư
t.nguyen@garvan.org.au hay
rknguyen@gmail.com. Thành thật cám ơn các bạn đọc trước.
Tôi muốn nhân dịp này cám ơn Tiến sĩ Nguyễn Hoàng Dzũng
thuộc khoa Hóa, Đại học Bách khoa Thành phố Hồ Chí Minh, người đã gợi ý và
giúp đỡ tôi in cuốn sách này ở trong nước. Tôi cám ơn Bác sĩ Nguyễn Đình
Nguyên, ngừơi đã đọc một phần lớn bản thảo của cuốn sách, góp nhiều ý kiến
thiết thực, và đã thiết kế bìa sách. Tôi cũng cám ơn Nhà xuất bản Đại học
Bách khoa Thành phố Hồ Chí Minh đã giúp tôi in cuốn sách này.
Bây giờ, tôi mời bạn đọc cùng đi với tôi một “hành
trình thống kê” ngắn bằng R.
Sydney, 31 Tháng Ba Năm 2006
Nguyễn Văn Tuấn
Phân tích số liệu và tạo biểu đồ
bằng

hướng dẫn thực hành
1 Lời nói
đầuu
2 Giới
thiệu ngôn ngữ R
2.1 R là gì ?
2.2 Tải và cài đặt R
vào máy tính
2.3 Package cho các phân tích đặc biệt
2.4 Khởi động và ngưng chạy
R
2.5 “Văn phạm” ngôn ngữ R
2.6 Cách đặt tên trong R
2.7 Hỗ trợ trong R
2.8 Môi trường vận hành
3 Nhập dữ
liệu
3.1 Nhập số liệu trực tiếp: c()
3.2 Nhập số liệu trực tiếp:
edit(data.frame())
3.3 Nhập số liệu từ một textfile:
read.table()
3.4 Nhập số liệu từ Excel: read.csv
3.5 Nhập số liệu từ SPSS: read.spss
3.6 Tìm thông tin cơ bản về dữ liệu
4 Biên tập
dữ liệu
4.1 Kiểm tra số liệu trống không:
na.omit()
4.2 Tách rời dữ liệu: subset
4.3 Chiết số liệu từ một data .frame
4.4 Nhập hai data.frame thành một:
merge
4.5 Mã hóa số liệu (data coding)
4.5.1 Mã hoá bằng hàm replace
4.5.2 Đổi một biến liên tục thành biến rời
rạc
4.6 Chia một biến liên tục thành nhóm:
cut
4.7 Tập hợp số liệu bằng cut2 (Hmisc)
5 Sử R cho
các phép tính đơn giản và ma trận
5.1 Tính toán đơn giản
5.2 Số liệu về ngày tháng
5.3 Tạo dãy số bằng seq,
rep
và gl
5.4 Sử dụng R cho các phép tính ma trận
5.4.1 Chiết phần tử từ ma trận
5.4.2 Tính toán với ma trận
6 Tính
toán xác suất và mô phỏng (simulation)
6.1 Tính toán đơn giản
6.1.1 Phép hoán vị (permutation)
6.1.2 Tổ hợp (combination)
6.2 Biến số ngẫu nhiên và hàm phân phối
6.3 Các hàm phân phối xác suất
(probability distribution function)
6.3.1 Hàm phân phối nhị phân (Binomial distribution)
6.3.2 Hàm phân phối Poisson (Poisson distribution)
6.3.3 Hàm phân phối chuẩn (Normal distribution)
6.3.4 Hàm phân phối chuẩn chuẩn hóa (Standardized Normal
distribution)
6.3.5 Hàm phân phối t, F và
c2
6.4. Mô phỏng (simulation)
6.4.1 Mô phỏng phân phối nhị phân
6.4.2 Mô phỏng phân phối Poisson
6.4.3 Mô phỏng phân phối
c2,
t, F, gamma, beta, Weibull,
Cauchy
6.5 Chọn mẫu ngẫu nhiên (random
sampling)
7 Kiểm định
giả thiết thống kê và ý nghĩa trị số P
7.1 Trị số P
7.2 Giả thiết khoa học và phản nghiệm
7.3 Ý nghĩa của trị số P qua mô phỏng
7.4 Vấn đề logic của trị số P
7.5 Vấn để kiểm định nhiều giả thiết
(multiple tests of hypothesis)
8
Phân tích số liệu bằng biểu đồ
8.1 Môi trường và thiết kế biểu đồ
8.1.1 Nhiều
biểu đồ cho một cửa sổ (windows)
8.1.2 Đặt tên
cho trục tung và trục hoành
8.1.3 Cho giới
hạn của trục tung và trục hoành
8.1.4 Thể loại
và đường biểu diễn
8.1.5 Màu sắc, khung, và kí hiệu
8.1.6 Ghi chú (legend)
8.17 Viết chữ trong biểu đồ
8.2 Số liệu cho phân tích biểu đồ
8.3 Biểu đồ cho một biến số rời rạc
(discrete variable): barplot
8.4. Biểu đồ cho hai biến số rời rạc
(discrete variable): barplot
8.5 Biểu đồ hình tròn
8.6 Biểu đồ cho một biến số liên tục:
stripchart và hist
8.6.1 Stripchart
8.6.2 Histogram
8.6.3 Biểu đồ hộp (boxplot)
8.6.4 Biểu đồ thanh (barchart)
8.6.5 Biểu đồ điểm (dotchart)
8.7 Phân tích biểu đồ cho hai biến liên
tục
8.7.1 Biểu đồ tán xạ (scatter plot)
8.8 Phân tích Biểu đồ cho nhiều biến:
pairs
8.9 Một số biểu đồ “đa năng”
8.9.1 Biểu đồ tán xạ và hình hộp
8.9.2 Biểu đồ tán xạ với kích thước biến
thứ ba
8.9.3 Biểu đồ thanh và xác suất tích lũy
8.9.4 Biểu đồ hình đồng hồ (clock plot)
8.9.5 Biểu đồ với sai số chuẩn (standard
error)
8.9.6 Biểu đồ vòng (contour plot)
8.9.10 Biểu đồ với kí hiệu toán
9
Phân tích thống kê mô tả
9.0 Khái niệm về tổng thể (population)
và mẫu (sample)
9.1 Thống kê mô tả: summary
9.2 Kiểm định xem một biến có phải phân
phối chuẩn
9.3 Thống kê mô tả theo từng nhóm
9.4 Kiểm định t (t.test)
9.4.1 Kiểm định t một mẫu
9.4.2 Kiểm định t hai mẫu
9.5 So sánh phương sai (var.test)
9.6 Kiểm định Wilcoxon cho hai mẫu (wilcox.test)
9.7 Kiểm định t cho các biến số theo
cặp (paired t-test, t.test)
9.8 Kiểm định Wilcoxon cho các biến số
theo cặp (wilcox.test)
9.9 Tần số (frequency)
9.10 Kiểm định tỉ lệ (proportion test,
prop.test, binom.test)
9.11 So sánh hai tỉ lệ (prop.test,
binom.test)
9.12 So sánh nhiều tỉ lệ
(prop.test,
chisq.test)
9.12.1 Kiểm định Chi bình phương
9.12.2 Kiểm định Fisher
10 Phân tích hồi qui tuyến tính (regression analysis)
10.1 Hệ số tương quan
10.1.1 Hệ số tương quan Pearson
10.1.2 Hệ số tương quan Spearman
10.1.3 Hệ số tương quan Kendall
10.2 Mô hình của hồi qui tuyến tính đơn
giản
10.2.1 Vài dòng lí thuyết
10.2.2 Phân tích hồi qui tuyến tính đơn giản
bằng R
10.2.3 Giả định của phân tích hồi qui tuyến
tính
10.2.4 Mô hình tiên đoán
10.3 Mô hình hồi qui tuyến tính đa biến (multiple linear
regression)
10.4 Phân tích hồi qui đa thức (Polynomial regression
analysis)
10.5 Xây dựng mô hình tuyến tính từ nhiều biến
10.6 Xây dựng mô hình tuyến tính bằng Bayesian Model Average
(BMA)
11 Phân tích phương sai (analysis of variance)
11.1 Phân tích phương sai đơn giản
(one-way analysis of variance - ANOVA)
11.1.1 Mô hình phân tích phương sai
11.1.2 Phân tích phương sai đơn giản với
R
11.2 So sánh nhiều nhóm (multiple
comparisons) và điều chỉnh trị số p
11.2.1 So sánh nhiều nhóm bằng phương pháp
Tukey
11.2.2 Phân tích bằng biểu đồ
11.3 Phân tích bằng phương pháp phi tham
số
11.4 Phân tích phương sai hai chiều
(two-way analysis of variance - ANOVA)
11.4.1 Phân tích phương sai hai chiều với
R
11.5 Phân tích hiệp biến (analysis of
covariance - ANCOVA)
11.5.1 Mô hình phân tích hiệp biến
11.5.2 Phân tích bằng R
11.6 Phân tích phương sai cho thí nghiệm
giai thừa (factorial experiment)
11.7 Phân tích phương sai cho thí nghiệm
hình vuông Latin (Latin square experiment)
11.8 Phân tích phương sai cho thí nghiệm
giao chéo (cross-over experiment)
11.9 Phân tích phương sai cho thí nghiệm
tái đo lường (repeated measure experiment)
12 Phân tích hồi qui
logistic (logistic regression analysis)
12.1 Mô hình hồi qui logistic
12.2 Phân tích hồi qui logistic bằng R
12.3 Ước tính xác suất bằng R
12.4 Phân tích hồi qui logistic từ số liệu giản lược bằng
R
12.5 Phân tích hồi qui logistic đa biến và chọn mô hình
12.6 Chọn mô hình hồi qui logistic bằng Bayesian Model
Average
12.7 Số liệu dùng cho phân tích
13 Phân tích biến cố
(survival analysis)
13.1 Mô hình phân tích số liệu mang tính thời gian
13.2 Ước tính Kaplan-Meier bằng
R
13.3 So sánh hai hàm xác suất tích lũy: kiểm
định log-rank (log-rank test)
13.4 Kiểm định log-rank bằng R
13.5 Mô hình Cox (hay Cox’s proportional
hazards model)
13.6 Xây dựng mô hình Cox bằng Bayesian
Model Average (BMA)
14 Phân tích
tổng hợp (meta-analysis)
14.1 Nhu cầu cho phân tích tổng hợp
14.2 Ảnh hưởng ngẫu nhiên và ảnh hưởng
bất biến (Fixed-effects và Random-effects)
14.3 Qui trình của một phân tích tổng hợp
14.4 Phân tích tổng hợp ảnh hưởng bất
biến cho một tiêu chí liên tục (Fixed-effects meta-analysis for a continuous
outcome)
14.4.1 Phân tích tổng hợp bằng tính toán
“thủ công”
14.4.2 Phân tích tổng hợp bằng R
14.5 Phân tích tổng hợp ảnh hưởng bất
biến cho một tiêu chí nhị phân (Fixed-effects meta-analysis for a
dichotomous outcome)
14.5.1 Mô hình phân tích
14.5.2 Phân tích bằng
R
15 Thiết kế
thí nghiệm (design of experiments)
15.1 Thuật ngữ
15.2 Ba nguyên tắc quan trọng của một
nghiên cứu
15.3 Ảnh hưởng giả dược (placebo),
Hawthorne, và kín đáo
15.4 Vài ví dụ về nguyên tắc của thiết kế
nghiên cứu
15.5 Thí nghiệm với một yếu tố
(single-factor designs)
15.6 Thí nghiệm với hai yếu tố
(two-factor designs)
15.7 Phương pháp ngẫu nhiên hóa
16 Ước tính
cỡ mẫu (estimation of sample size)
16.1 Khái niệm về “power”
16.2 Thử nghiệm giả thiết thống kê và
chẩn đoán bệnh
16.3 Số liệu để ước tính cỡ mẫu
16.4 Ước tính cỡ mẫu
16.4.1 Ước tính cỡ mẫu cho một chỉ số trung
bình
16.4.2 Ước tính cỡ mẫu cho so sánh hai số
trung bình
16.4.3 Ước tính cỡ mẫu cho phân tích phương
sai
16.4.4 Ước tính cỡ mẫu cho ước tính một tỉ
lệ
16.4.5 Ước tính cỡ mẫu cho so sánh hai tỉ lệ
17 Phụ lục
1: Lập trình và viết hàm bằng ngôn ngữ
R
18 Phụ lục
2: Một số lệnh thông dụng trong
R
19 Phụ lục
3: Thuật ngữ dùng trong sách
20 Lời bạt
(tài liệu tham khảo và đọc thêm)