Friday, July 5, 2013

Giải đáp vài thắc mắc về ngôn ngữ R trong phân tích dữ liệu

Ba hôm qua, tôi nhận được ít nhất là 3 emails của bạn đọc và học viên hỏi về ngôn ngữ R sẽ sử dụng trong lớp học ở Hà Nội sắp vào Tháng 7 này. Các bạn đặt vài câu hỏi mà tựu trung lại là phân vân rằng R là ngôn ngữ phân tích dữ liệu “chưa được công nhận”, vậy việc giảng dạy ngôn ngữ này có phải là có vấn đề. Tôi xin giải đáp thắc mắc của các bạn như sau (tôi sắp xếp các câu hỏi cho logical hơn): 


Hỏi: Thầy em nói rằng R là phần mềm chưa được công nhận, vậy học nó có phải là phí thì giờ? 

Đáp: Câu trả lời ngắn và nhanh là: Không. Mà, có thật là thầy em nói hay là em nói.  Thầy em mà nói thế thì có vấn đề đấy. Tôi không rõ thế nào là “được công nhận”, nên rất khó trả lời câu hỏi này. Ai công nhận? Thật ra, ngôn ngữ R là do các chuyên gia thống kê học tạo ra, và đã được cộng đồng khoa học thống kê sử dụng trong nghiên cứu, giảng dạy, và thương mại hơn 15 năm qua. Hầu như tất cả các đại học tiên tiến phương Tây (và cả Á châu nữa) đều sử dụng R trong giảng dạy và nghiên cứu. Đã có hàng trăm cuốn sách về R được xuất bản. R đang trở thành một ngôn ngữ chính thức của khoa học thống kê. Những ai tham dự hội nghị SIODS tháng Sáu vừa qua đều biết R phổ biến như thế nào trong khoa học thống kê. Do đó, tôi nghĩ nếu “công nhận” có nghĩa là được giới chuyên môn sử dụng nhiều thì R đã được công nhận từ lâu.

Hỏi: R có thể phân tích gì? Tất cả những gì SPSS và Stata làm được, R có làm được không? 

Đáp: Absolutely! R có thể xử lí tất cả những phương pháp và mô hình mà các software khác như SAS, SPSS, Stata, Systat, v.v. xử lí. Thật ra, có những phương pháp mới (như phương pháp Bayes và MCMC chẳng hạn) không có trong các software khác, nhưng lại có trong R. Các software khác không thể xử lí dữ liệu lớn (hàng tỉ tỉ data) di truyền học, nhưng R thì có thể xử lí khá dễ dàng.

Hỏi: Lợi ích của R là gì? Cái dở của R là gì?

Đáp: Lợi ích thì nhiều, nhưng tôi nghĩ cái lợi ích lớn nhất của R là … miễn phí. Hoàn toàn miễn phí. Bạn chỉ cần có máy tính và kết nối mạng là có thể tải R về máy tính và sử dụng. Thế thôi. Lợi ích thứ hai là R có rất nhiều modules, packages cho các phương pháp hiện đạu mà các software khác không/chưa có. Do đó, dùng R các bạn sẽ ở một vị thế “leading edge” trong kĩ năng và kĩ thuật. Lợi ích thứ ba là R giúp cho dự án Reproducibility Project dễ dàng hơn. Ngày nay, càng ngày càng có nhiều tập san khoa học yêu cầu tác giả phải nộp R codes kèm theo bài báo để các chuyên gia đánh giá xem kết quả có thể reproducible hay không. Nói cách khác, R giúp cho chúng ta liên lạc nhau dễ dàng hơn. Thế mạnh khác là biểu đồ: R có thể làm những biểu đồ nghiêm chỉnh và có chất lượng công bố (publication quality) chứ không phải loại biểu đồ làng nhàng như Excel hay Stata.

Còn những điểm yếu của R thì cũng không ít. Tôi nghĩ dùng lệnh trong R là một điểm yếu vì nhiều người quen với SPSS sẽ thấy … sợ. Những lệnh có khi viết tắt càng làm khó nhớ. Nhưng người làm IT hay máy tính thì họ lại thấy đó là điều hay. Điểm yếu thứ hai là vì có nhiều người cùng phát triển, nên một số phương pháp lẫn lộn nhau, và có khi làm cho người dùng bối rối. Điểm yếu thứ ba là phần output không đẹp như SAS hay SPSS, tuy nhiên các bạn có thể cắt và dán vào Word. Chỉ cần nhớ vài lệnh căn bản thôi, chứ làm sao nhớ hết được. Lớp học này sẽ giúp các bạn chọn các lệnh cần thiết cho mục tiêu phân tích.

Hỏi: Phần mềm nào phổ biến nhất hiện nay. R so với phần mềm đó như thế nào? Kết quả có đáng tin cậy. 

Đáp: Tôi nghĩ SAS có lẽ là software phổ biến nhất hiện nay trong giới kĩ nghệ và thương mại, nhưng R là phổ biến nhất trong giới khoa bảng ở đại học. R và SAS đều là dùng lệnh, tức người học phải gõ lệnh (giống như Stata) chứ không dùng menu như SPSS. Dùng menu rất nguy hiểm vì người dùng có thể lạm dụng và kết quả có khi sai với mục tiêu. Chẳng hạn như nếu không phân biệt được mô hình repeated ANOVA và Mixed effects ANOVA thì rất dễ có kết quả sai với mục tiêu. Nhưng R và SAS thì đòi hỏi người dùng phải biết mình muốn làm gì thì mới sử dụng được. Tất cả các kết quả của R đều đáng tin cậy. Có những kết quả của R thậm chí còn đáng tin cậy hơn SAS (như phân tích Bayes chẳng hạn).

Hỏi: R có được dùng nhiều ở Việt Nam không?

Đáp: Tôi không rõ và cũng chẳng có số liệu để trả lời em. Tôi có lẽ là người đầu tiên giới thiệu R ở Việt Nam, qua mấy workshop và nhất là cuốn sách về R do Nxb Khoa học và Kỹ thuật ấn hành từ năm 2005. (Năm nay hay năm tới tôi định tái bản cuốn này). Từ đó đến nay, tôi biết rằng các đại học lớn của Việt Nam đã và đang sử dụng R trong giảng dạy. Nhưng tôi thấy trong thực tế thì SPSS chắc vẫn là phổ biến nhất ở VN. Dĩ nhiên phần lớn SPSS và các phần mềm tốn tiền khác được sử dụng ở VN là … lậu thôi. Một đại học mà dùng đồ lậu thì rất kì cục và không “phải đạo”.

Hỏi: Thầy nói R hoàn toàn miễn phí. Nhưng sau này họ lấy phí thì sao? 

Đáp: Thì tôi cũng trả phí!  R hoàn toàn miễn phí. Chúng tôi hay gọi đùa là software xã hội chủ nghĩa. Không ai đoán được tương lai sẽ ra sao, nhưng R khó thành một phần mềm thương mại, bởi vì nó được sự quản lí của một Foundation. Vả lại, không có ai là tác giả chính của R cả; tất cả các thành viên trên khắp thể đều chung tay xây dựng nó. Cho dù có công ti nào mua lại thì cũng khó vì đâu có ai là chủ nhân thật sự. Do đó, tôi nghĩ chúng ta có thể an tâm là R vẫn và sẽ miễn phí.

Tôi muốn nói thêm một ý là trong việc học cũng như trong việc làm, có thêm kĩ năng là điều rất quan trọng. Đối với nghiên cứu sinh, các em hãy tự hỏi: sau 4-5 năm học tôi sẽ có thêm kiến thức gì, nhưng quan trọng hơn tôi có thêm kĩ năng gì? Nếu sau khi ra trường mà chẳng có kĩ năng gì thì rất khó cạnh tranh với các đồng môn khác. Nói thẳng ra là kiến thức thì ai cũng có thể có và rất khó đánh giá ai hơn ai, nhưng kĩ năng thì không phải ai cũng có. Nói cách khác, kĩ năng chính là một thước đo về cái mà người Tây gọi là competence của một cá nhân. Anh chị có thể nói rất hay nhưng làm không được thì rất dở. Cũng như người nhạc sĩ nói hay nhưng khi ngồi trước cái đàn piano mà chẳng đàn được nốt nhạc nào thì rất khó coi, nhưng nếu người nhạc sĩ đó lướt trên những phiếm đàn một cách điêu luyện thì sẽ tạo được ấn tượng tốt. Tương tự, nếu các bạn là (hay muốn là) nhà khoa học chuyên nghiệp, ngoài kiến thức chuyên ngành và kĩ năng khác (như kĩ năng lab, kĩ năng lâm sàng), nếu được trang bị thêm kĩ năng sử dụng R cho phân tích dữ liệu thì các bạn sẽ có cái lợi thế cao hẳn so với đồng nghiệp.

Quan điểm của tôi là học cái gì phải học từ gốc, chứ không phải từ ngọn. Dùng SPSS hay các software tương tự là kiểu học từ ngọn vì mình không biết đằng sau cái menu đó là gì. Học từ ngọn làm cho chúng ta thiếu tự tin khi bị ai chất vấn. Nhưng sử dụng R các bạn phải biết rõ mình làm cái gì và cần cái gì, và do đó các bạn hiểu kết quả của mình hơn. Vì thế, người dùng R cảm thấy tự tin hơn và có thể giải thích kết quả nghiên cứu của mình trôi chảy hơn (chứ không phải kiểu “tại phần mềm nó cho ra kết quả như thế”). Nói đùa một chút, trong giới phân tích dữ liệu, họ có câu ai sử dụng được R được xem là “genius”, còn ai dùng SAS là “intelligent”, Stata là “smart”, và SPSS là “dumb” .

Hi vọng tôi đã thuyết phục được các bạn.


== 

Dưới đây là vài dòng ghi thêm của Bs Trần Quý Phi: 


1)  Cần phải nói R còn hơn cả miễn phí, nó là một phần mềm open source, mã nguồn mở. Nghĩa là mọi người đều có thể xem, sửa mã nguồn. Khi tải R về bạn có thể tải luôn mã nguồn.

2)   Cũng vì là mã nguồn mở cộng đồng người dùng, đặc biệt là những chuyên gia sẽ dễ dàng góp ý và hiệu chỉnh. Thực tế, trước khi một tính năng, đặc biệt là các package chuyên biệt được phát hành (release) nó sẽ được kiểm tra và rà soát kỹ càng nên không hề có chuyện sai lầm trong phương pháp  và tính toán.

3)  Mặt khác R được thiết kế theo dạng các package. Ở một số phần mềm khác gọi là module như SPSS. Nhưng các package của R được xây dựng và phát hành rất nhanh, đáp ứng với sự phát triển của các thành tựu lý thuyết. Nhà nghiên cứu lý thuyết có một con đường nhanh nhất để thử nghiệm và cho mọi người áp dụng là xây dựng package trong R. Đó cũng là một lý do mà R phát triển nhanh chóng trong giới nghiên cứu, chứ không đơn thuần là do nó miễn phí.

4)   R khó dùng với người mới bắt đầu là điều ai cũng phải công nhận. Nhưng thật ra do ngại ngay từ đầu và không dùng thường xuyên nên cảm tưởng ấy ngày càng nặng. Thật ra, một số test thống kê thông thường sẽ rất dễ làm trong R. Còn với những phương pháp phức tạp, như giáo sư Tuấn nói, với “cái kiểu” bấm chuột một phát là ra một “tràng” kết quả thì rất nguy hiểm. Với R, người dùng sẽ hiểu dữ liệu hơn, hiểu cách mình tiến hành phân tích hơn. Nói chung, R không dành cho người…dễ dãi!



== 

Sau đây là vài bình luận của bạn đọc: 

SH: Kính gửi thầy, em cũng có câu hỏi phần này: tụi em trong management-finance dùng stata và các giáo sư hướng dẫn cũng dùng Stata, bây giờ dùng R thì trao đổi với các thầy không dùng R liệu có gặp nhiều khó khăn? Một người bạn nói dùng R giống như em -người sử dụng các công cụ này không sâu - thì giống như anh mới biết bơi mà nhảy vào biển lớn! Đôi khi không biết mình sai hay đúng .... Sai thì sai ở đâu…!

TH: Câu hỏi thứ 3 của em giống bạn Suoi Hoa: nếu không ai dùng R ở School (kể cả Supervisor) của em thì nếu gặp khó khăn gì thì biết hỏi ai ạ ??? mà em chẳng biết là Sup có cho phép đổi lại không nữa ???

NVT: Tôi không biết bên management người ta dùng gì, nhưng thấy bên economics và econometrics thì có người dùng R. Có những packages R cho phân tích kinh tế. Nói chung, mỗi "bộ lạc" có văn hóa riêng, nên cũng khó thay đổi. Khi thầy em dùng Stata thì họ cứ dùng. Nhưng tôi muốn nói là nếu em học thêm một kĩ năng nữa thì rất tốt cho cá nhân. R có rất nhiều forum, nên em hỏi thoải mái.

TQD: Bac Tuan tra loi rac xac dang, mot trong nhung loi ich can ban cua R la mien phi. O Vietnam da so moi nguoi dung phan mem crack nen chua thay gia tri cua phan mem mien phi. Duong nhien khi su dung cac phan mem mien phi thi khong duoc support mot cach chinh thuc tu nha san xuat nen se gap mot so kho khan. Nhung do la dieu can phai vuot qua. Hon nua, cac phan mem dang open-source thi do nhieu nguoi cung phat trien, nen khau kiem dinh cua can co thoi gian va chu yeu do nguoi su dung kiem chung va fix cac loi neu co. Do vay, khi su dung cac tinh nang moi, can phai hieu that ky minh muon gi va ket qua dat duoc da tin cay chua ... Con nhung module da duoc su dung tu lau thi theo toi la cu yen tam ma dung.

NDN: Hội đồng Bầu cử Tổng thống ở Mỹ sử dụng R để quản lý dữ liệu. Không biết vậy đã gọi là được "công nhận" chưa nhỉ! Sửa lại một chỗ a Tuấn đề cập. Thực sự SPSS không chỉ point & click, nó cũng có phần viết lênh (syntax) như bên SAS hoặc R.

NVT: Lần đầu tiên, hơn 2 năm trước, tôi nghe về R không được công nhận là từ một em nghiên cứu sinh trong nước, tôi rất ngạc nhiên. Tôi nghĩ có lẽ vì thầy em ấy chưa hiểu nên chắc chỉ là trường hợp cá biệt. Sau này tôi nghe vài người hỏi như thế thì mới biết rằng đây không phải là “random” nữa mà có “trend” rồi. Cái trend – xu hướng này hơi nguy hiểm. Làm thầy cô mà truyền cho học trò những nghi ngờ không có cơ sở như thế này thì sẽ làm cho trò yếu đi. 
Ở bên nhà, nhiều khi người ta ngại cái gì mới. Có lần một em nghiên cứu sinh đứng lên nói một cách vô tư trước lớp rằng “những gì thầy chỉ thì em cũng biết là đúng theo chuẩn mực quốc tế, nhưng em mà làm như thầy chỉ thì em sẽ bị các thầy trong hội đồng đánh rớt ngay. Em phải sống với các thầy bên này. Do đó, em có 2 bản, một bản đề qua sông, một bản đúng với chuẩn mực quốc tế.” Tôi không biết phải bình luận gì khi nghe câu đó, chỉ biết cái hủ tục nó làm tiêu hao năng lượng của các bạn trẻ.



TB: Lớp học về ứng dụng R trong phân tích dữ liệu sẽ được tổ chức tại Hà Nội từ ngày 21 đến 27/7/2013. Chi tiết chương trình học có thể xem qua ở đây


1 comment:

Pham Vu said...

Chào GS Tuấn,

Cho cháu hỏi chút: cháu đang đọc về trị số P của Fisher trong bài viết của GS. Có đoạn:

Xác suất mà tối thiểu 8 bệnh nhân với kết quả A>B là 0,055 hay 5,5%. Sử dụng tiêu chí 0,05 chúng ta có thể nói rằng dù 80% (8 trên 10) bệnh nhân với kết quả A>B, chúng ta vẫn chưa có đầy đủ bằng chứng để khẳng định rằng kết quả này nhất quán với giả thuyết thuốc A tốt hơn thuốc B.

______________

Cháu thấy rằng xác suất 8/10 bệnh nhân cho kết quả A>B càng lớn thì chứng tỏ thuốc A tốt hơn B chứ ạ ?
Xác suất này càng lớn càng chứng tỏ A tốt hơn B. Tại sao chúng ta có xác suất 5,47% lại ko khẳng định được A > B. Và với xác suất bao nhiêu thì chúng ta có thể khẳng định A>B ?

Cháu cảm ơn GS rất nhiều ạ !

Pham VU