Xem Nhiều 1/2023 #️ Vietsciences; Nguyễn Văn Tuấn; Nguyen Van Tuan;Phân Tích Số Liệu Bằng Biểu Đồ ; Hướng Dẫn Phân Tích Số Liệu Và Vẽ Biểu Đồ Bằng R ; Science, Khoa Hoc, Khoahoc, Tin Hoc, Informatique;Computer; Vat Ly; P # Top 5 Trend | Maiphuongus.net

Xem Nhiều 1/2023 # Vietsciences; Nguyễn Văn Tuấn; Nguyen Van Tuan;Phân Tích Số Liệu Bằng Biểu Đồ ; Hướng Dẫn Phân Tích Số Liệu Và Vẽ Biểu Đồ Bằng R ; Science, Khoa Hoc, Khoahoc, Tin Hoc, Informatique;Computer; Vat Ly; P # Top 5 Trend

Cập nhật thông tin chi tiết về Vietsciences; Nguyễn Văn Tuấn; Nguyen Van Tuan;Phân Tích Số Liệu Bằng Biểu Đồ ; Hướng Dẫn Phân Tích Số Liệu Và Vẽ Biểu Đồ Bằng R ; Science, Khoa Hoc, Khoahoc, Tin Hoc, Informatique;Computer; Vat Ly; P mới nhất trên website Maiphuongus.net. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Yếu tố thị giác rất quan trọng. Quả thật, biểu đồ tốt có khả năng gây ấn tượng cho người đọc báo khoa học rất lớn, và thường có giá trị đại diện cho cả công trình nghiên cứu. Vì thế biểu đồ là một phương tiện hữu hiệu nhất để nhấn mạnh thông điệp của bài báo. Biểu đồ thường được sử dụng để thể hiện xu hướng và kết quả cho từng nhóm, nhưng cũng có thể dùng để trình bày dữ kiện một cách gọn gàng. Các biểu đồ dễ hiểu, nội dung phong phú là những phương tiện vô giá. Do đó, nhà nghiên cứu cần phải suy nghĩ một cách sáng tạo cách thể hiện số liệu quan trọng bằng biểu đồ. Vì thế, phân tích biểu đồ đóng một vai trò cực kì quan trọng trong phân tích thống kê. Có thể nói, không có đồ thị là phân tích thống kê không có nghĩa.    

      Trong ngôn ngữ R có rất nhiều cách để thiết kế một biểu đồ gọn và đẹp. Phần lớn những hàm để thiết kế biểu đồ có sẵn trong R, nhưng một số loại biểu đồ tinh vi và phức tạp khác có thể thiết kế bằng các package chuyên dụng như

lattice có thể tải từ website của R. Chương này sẽ chỉ cách vẽ các biểu đồ thông dụng bằng cách sử dụng các hàm phổ biến trong R.   

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)    

      Thông thường, R vẽ một biểu đồ cho một cửa sổ. Nhưng chúng ta có thể vẽ nhiều biểu đồ trong một cửa sổ bằng cách sử dụng hàm par.

Chẳng hạn như

par(mfrow=c(1,2))có hiệu năng chia cửa sổ ra thành 1 dòng và hai cột, tức là chúng ta có thể trình bày hai biểu đồ kề cạnh bên nhau. Còn

par(mfrow=c(2,3)) chia cửa sổ ra thành 2 dòng và 3 cột, tức chúng ta có thể trình bày 6 biểu đồ trong mộ cửa sổ. Sau khi đã vẽ xong, chúng ta có thể quay về với “chế độ” 1 cửa sổ bằng lệnh

par(mfrow=c(1,1).    

      Ví dụ sau đây tạo ra một dữ liệu gồm hai biến x và y bằng phương pháp mô phỏng (tức số liệu hoàn toàn được tạo ra bằng R). Sau đó, chúng ta chia cửa sổ thành 2 dòng và 2 cột, và trình bày bốn loại biểu đồ từ dữ liệu được mô phỏng:    

par(mfrow=c(2,2))

runif(N, -4, 4)

sin(x) + 0.5*rnorm(N)

plot(x,y, main=”Scatter plot of y and x”)

main=”Histogram of x”)

boxplot(y, main=”Box plot of y”)

barplot(x, main=”Bar chart of x”)

par(mfrow=c(1,1))   

  Biểu đồ 1. Cách chia cửa sổ thành 2 dòng và 2 cột và trình bày 4 biểu đồ trong cùng một cửa số.

8.1.2 Đặt tên cho trục tung và trục hoành   

      Biểu đồ thường có trục tung (y-axis) và trục hoành. Vì dữ liệu thường được gọi bằng các chữ viết tắt, cho nên biểu đồ cần phải có tên cho từng biến để dễ theo dõi. Trong ví dụ sau đây, biểu đồ bên trái không có tên mà chỉ dùng tên của biến gốc (tức x và y), còn bên phải có tên dễ hiểu hơn.    

par(mfrow=c(1,2))

runif(N, -4, 4)

sin(x) + 0.5*rnorm(N)

plot(x,y)

plot(x, y, xlab=”X factor”,

      ylab=”Production”,

      main=”Production and x factor n Second line of title here”)

par(mfrow=c(1,1))

Trong các lệnh trên, xlab (viết tắt từ x label) và ylab (viết tắt từ y label) dùng để đặt tên cho trục hoành và trục tung. Còn main được dùng để đặt tên cho biểu đồ. Chú ý rằng trong main có kí hiệu n dùng để viết dòng thứ hai (nếu tên gọi biểu đồ quá dài).    

  Biểu đồ 2. Biểu đồ bên trái không có tên gọi, biểu đồ bên phải có tên gọi cho trục tung, trục hoành và tên của biểu đồ.

Ngoài ra, chúng ta còn có thể sử dụng hàm title và sub để đặt tên:    

plot(x, y, xlab=”Time”,

      ylab=”Production”)

title(main=“Plot of production and x factor”,

    sub=”Figure 1”) 

 

8.1.3 Cho giới hạn của trục tung và trục hoành   

      Nếu không cung cấp giới hạn của trục tung và trục hoành, R sẽ tự động tìm điều chỉnh và cho các số liệu này. Tuy nhiên, chúng ta cũng có thể kiểm soát biểu đồ bằng cách sử dụng xlim và ylim để cho R biết cụ thể giới hạn của hai trục này:    

plot(x, y, xlab=”X factor”,

      ylab=”Production”,

      main=”Plot of production and x factor”,

      xlim=c(-5, 5),

      ylim=c(-3, 3))    

8.1.4 Thể loại và đường biểu diễn   

      Trong một dãy biểu đồ, chúng ta có thể yêu cầu R vẽ nhiều kiểu và đường biểu diễn khác nhau.    

par(mfrow=c(2,2))  plot(y, type=”l”); title(“lines”)  plot(y, type=”b”); title(“both”)  plot(y, type=”o”); title(“overstruck”)  plot(y, type=”h”); title(“high density”)   

  Biểu đồ 3. Kiểu biểu đồ và đường biểu diễn.

Ngoài ra, chúng ta cũng có thể biểu diễn nhiều đường bằng lty

như sau:

par(mfrow=c(2,2))

plot(y, type=”l”, lty=1); title(main=”Production data”,

       sub=”lty=1″)  plot(y, type=”l”, lty=2); title(main=”Production data”,

       sub=”lty=2″)   plot(y, type=”l”, lty=3); title(main=”Production data”,

       sub=”lty=3″)  

       sub=”lty=4″)   

 Biểu đồ 4. Ảnh hưởng của lty.  

8.1.5 Màu sắc, khung, và kí hiệuu   

      Chúng ta có thể kiểm soát màu sắc của một biểu đồ bằng lệnh col. Giá trị mặc định của col là 1. Tuy nhiên, chúng ta có thể thay đổi các màu theo ý muốn hoặc bằng cách cho số hoặc bằng cách viết ra tên màu như “red”, “blue”, “green”, “orange”, “yellow”, “cyan”, v.v…    

Ví dụ sau đây dùng một hàm để vẽ ba đường biểu diễn với ba màu đỏ, xanh nước biển, và xanh lá cây:    

plot(runif (10), ylim=c(0,1), type=’l’)

in c(‘red’, ‘blue’, ‘green’))

{

lines(runif (10), col=i )

title(main=”Lines in various colours”)   

Ngoài ra, chúng ta còn có thể vẽ đường biểu diễn bằng cách tăng bề dày của mỗi đường:    

plot(runif(5), ylim=c(0,1), type=’n’)

(i in 5:1)

{

lines( runif(5), col=i, lwd=i )

}

Hình dạng của biểu đồ cũng có thể thay đổi bằng

type như sau:   

par(mfrow=c(3,2))

plot(runif(5), type = ‘p’,

   main = “plot type ‘p’ (points)”)

plot(runif(5), type = ‘l’,

   main = “plot type ‘l’ (lines)”)

plot(runif(5), type = ‘b’,

   main = “plot type ‘b’ (both points and lines)”)

plot(runif(5), type = ‘s’,

   main = “plot type ‘s’ (stair steps)”)

plot(runif(5), type = ‘h’,

   main = “plot type ‘h’ (histogram)”)

plot(runif(5), type = ‘n’,

   main = “plot type ‘n’ (no plot)”)

par(op)  

   

Khung biểu đồ có thể kiểm soát bằng lệnh bty với các thông số như sau:   

bty=”n”

Không có vòng khung chung quanh biểu đồ

bty=”o”

Có 4 khung chung quanh biểu đồ

bty=”c”

Vẽ một hộp gồm 3 cạnh chung quanh biểu đồ theo hình chữ C

bty=”l”

Vẽ hộp 2 cạnh chung quanh biểu đồ theo hình chữ L

bty=”7”

Vẽ hộp 2 cạnh chung quanh biểu đồ theo hình số 7

Cách hay nhất để bạn đọc làm quen với các cách vẽ biểu đồ này là bằng cách thử trên R để biết rõ hơn.  

Kí hiệu của một biểu đồ cũng có thể thay thế bằng cách cung cấp số cho pch (plotting character) trong R. Các kí hiệu thông dụng là:    

plot(x, y, col=”red”, pch=16, bty=”l”)

Biểu đồ 4. Ảnh hưởng của pch=16

và col=”red”, bty=”l”.

 

8.1.6 Ghi chú (legend)   

      Hàm legend rất có ích cho việc ghi chú một biểu đồ và giúp người đọc hiểu được ý nghĩa của biếu đồ tốt hơn. Cách sử dụng legend có thể minh họa bằng ví dụ sau đây:    

runif(N, -4, 4)

0.5*rnorm(N)

plot(x,y, pch=16, main=”Scatter plot of y and x”)

lm(y~x)

abline(reg)

legend(2,-2, c(“Production”,”Regression line”), pch=16, lty=c(0,1))   

Thông số legend(2,-2) có nghĩa là đặt phần ghi chú vào trục hoành (x-axis) bằng 2 và trục tung (y-axis) bằng -2.    

 Biểu đồ 5. Ảnh hưởng của legend  

8.1.7 Viết chữ trong biểu đồồ   

      Phần lớn các biểu đồ không cung cấp phương tiện để viết chữ hay ghi chú trong biểu đồ, hay có cung cấp nhưng rất hạn chế. Trong R có hàn mtext()

cho phép chúng ta đặt chữ viết hay giải thích bên cạnh hay trong biểu đồ.

      Bắt đầu từ phía dưới của biểu đồ (side=1), chúng ta chuyển theo hướng kim đồng hồ đến cạnh số 4. Lệnh plot trong ví dụ sau đây không in tên của trục và tên của biểu đồ, nhưng chỉ cung cấp một cái khung. Trong ví dụ này, chúng ta sử dụng cex (character expansion) để kiểm soát kích thước của chữ viết. Theo mặc định thì cex=1, nhưng với cex=2, chữ viết sẽ có kích thước gấp hai lần kích thước mặc định. Lệnh text()

cho phép chúng ta đặt chữ viết vào một vị trí cụ thể. Lệnh thứ nhất đặt chữ viết trong ngoặc kép và trung tâm tại x=15, y=4.3. Qua sử dụng adj, chúng ta còn có thể sắp xếp về phía trái (adj=0) sao cho tọa độ là điểm xuất phát của chữ viết.    

    plot(y, xlab=” “, ylab=” “, type=”n”)   side=1,cex=1)   side=2,cex=1.2)   side=3,cex=1.5)   side=4,cex=2)   left aligned”)   aligned”)

     

    8.1.8 Đặt kí hiệu vào biểu đồ.. abline() có thể sử dụng để vẽ một đường thẳng, với những thông số như sau:

    abline(a,b) : đường hồi qui tuyến tính a=intercept và b=slope.  

    abline(h=30): vẽ một đường ngang tại y=30.  

    abline(v=12): vẽ một đường thẳng đứng tại điểm x=12.    

    Ngoài ra, chúng ta còn có thể cho vào biểu đồ một mũi tên để ghi chú một điểm số liệu nào đó.

    runif(N, -4, 4)

    plot(x,y, pch=16, main=”Scatter plot of y and x”)   

    Giả sử chúng ta muốn ghi chú ngay tại x=0 và y=0 là điểm trung tâm, chúng ta trước hết dùng arrows để vẽ mũi tên. Trong lệnh sau đây,

    arrows(-1, 1, 1.5, 1.5) có nghĩa như sau tọa độ x=-1, y=1 bắt đầu vẽ mũi tên và chấm dứt tại tọa độ x=1.5, y=1.5. Phần text(0, 1)

    yêu cầu R viết chữ tại tọa độ x=0, y=1.    

    text(0, 1, “Trung tam”, cex=0.7)   

    8.2 Số liệu cho phân tích biểu đồ    

          Sau khi đã biết qua môi trường và những lựa chọn để thiết kế một biểu đồ, bây giờ chúng ta có thể sử dụng một số hàm thông dụng để vẽ các biểu đồ cho số liệu. Biểu đồ có thể chia thành 2 loại chính: biểu đồ dùng để mô tả một biến số và biểu đồ về mối liên hệ giữa hai hay nhiều biến số. Tất nhiên, biến số có thể là liên tục hay không liên tục, cho nên, trong thực tế, chúng ta có 4 loại biểu đồ. Trong phần sau đây, chúng ta sẽ điểm qua các loại biểu đồ, từ đơn giản đến phức tạp.    

          Có lẽ cách tốt nhất để tìm hiểu cách vẽ đồ thị bằng R là bằng một dữ liệu thực tế. Quay lại ví dụ 2 trong chương trước, chúng ta có dữ liệu gồm 8 cột (hay biến số): id, sex, age, bmi, hdl, ldl, tc, và tg.(Chú ý, id là mã số của 50 đối tượng nghiên cứu; sex là giới tính (nam hay nữ); age là độ tuổi; bmi là tỉ số trọng lương; hdl là high density cholesterol; ldl là low density cholesterol; tc là tổng số – total – cholesterol; và tg

    triglycerides). Dữ liệu được chứa trong directory directory

    c:worksinsulin dưới tên chúng tôi Trước khi vẽ đồ thị, chúng ta bắt đầu bằng cách nhập dữ liệu này vào R.    

    setwd(“c:/works/stats”)

    <- read.table(“chol.txt”, header=TRUE,

                         na.strings=”.”)

    attach(cong)   

    Hay để tiện việc theo dõi chúng ta sẽ nhập các dữ liệu đó bằng các lệnh sau đây:

    sex <- c(“Nam”, “Nu”, “Nu”,“Nam”,

             “Nam”, “Nu”,“Nam”,“Nam”,“Nam”, “Nu”,

             “Nu”,“Nam”, “Nu”,“Nam”,“Nam”, “Nu”, “Nu”, “Nu”,

            “Nu”, “Nu”, “Nu”, “Nu”, “Nu”, “Nu”,“Nam”,“Nam”,

            “Nu”,“Nam”, “Nu”, “Nu”, “Nu”,“Nam”,“Nam”, “Nu”,

             “Nu”,“Nam”, “Nu”,“Nam”, “Nu”, “Nu”, “Nam”,

             “Nu”,“Nam”,“Nam”,“Nam”, “Nu”,“Nam”,“Nam”, “Nu”,

             “Nu”)

    age <- c(57, 64, 60, 65, 47, 65, 76, 61, 59, 57,

        63, 51, 60, 42, 64, 49, 44, 45, 80, 48,

        61, 45, 70, 51, 63, 54, 57, 70, 47, 60,

        60, 50, 60, 55, 74, 48, 46, 49, 69, 72,

        51, 58, 60, 45, 63, 52, 64, 45, 64, 62)   

    bmi <- c( 17, 18, 18, 18, 18, 18, 19, 19, 19, 19, 20,

              20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21,

              21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22,

              22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24,

              24, 24, 24, 24, 25, 25)   

    hdl <- c(5.000,4.380,3.360,5.920,6.250,4.150,0.737,7.170,

             6.942,5.000, 4.217,4.823,3.750,1.904,6.900,

             0.633,5.530,6.625,5.960,3.800,5.375,3.360,5.000,

             2.608,4.130,5.000,6.235,3.600,5.625,5.360,6.580,

             7.545,6.440,6.170,5.270,3.220,5.400,6.300,

             9.110,7.750, 6.200,7.050,6.300,5.450,5.000,

             3.360,7.170,7.880,7.360,7.750)   

    ldl <- c(2.0, 3.0, 3.0, 4.0, 2.1, 3.0, 3.0, 3.0, 3.0,

             2.0, 5.0, 1.3, 1.2, 0.7, 4.0, 4.1, 4.3, 4.0,

             4.3, 4.0, 3.1, 3.0, 1.7, 2.0, 2.1, 4.0, 4.1,

             4.0, 4.2, 4.2, 4.4, 4.3, 2.3, 6.0, 3.0, 3.0,

             2.6, 4.4, 4.3, 4.0, 3.0, 4.1, 4.4, 2.8, 3.0,

             2.0, 1.0, 4.0, 4.6, 4.0)   

    tc <-c (4.0, 3.5, 4.7, 7.7, 5.0, 4.2, 5.9, 6.1, 5.9,

            4.0, 6.2, 4.1, 3.0, 4.0, 6.9, 5.7, 5.7, 5.3,

            7.1, 3.8, 4.3, 4.8, 4.0, 3.0, 3.1, 5.3, 5.3,

      5.4, 4.5, 5.9, 5.6, 8.3, 5.8, 7.6, 5.8, 3.1,

      5.4, 6.3, 8.2, 6.2, 6.2, 6.7, 6.3, 6.0, 4.0,

      3.7, 6.1, 6.7, 8.1, 6.2)   

    tg <- c(1.1, 2.1, 0.8, 1.1, 2.1, 1.5, 2.6, 1.5, 5.4, 1.9,

        1.7, 1.0, 1.6, 1.1, 1.5, 1.0, 2.7, 3.9, 3.0, 3.1,

        2.2, 2.7, 1.1, 0.7, 1.0, 1.7, 2.9, 2.5, 6.2, 1.3,

        3.3, 3.0, 1.0, 1.4, 2.5, 0.7, 2.4, 2.4, 1.4, 2.7,

        2.4, 3.3, 2.0, 2.6, 1.8, 1.2, 1.9, 3.3, 4.0, 2.5)   

    cong <- data.frame(sex, age, bmi, hdl, ldl, tc, tg)

    Sau khi đã có số liệu, chúng ta sẵn sàng tiến hành phân tích số liệu bằng biểu đồ như sau:    

    8.3 Biểu đồ cho một biến số rời rạc (discrete variable): barplot    

       Biến sex trong dữ liệu trên có hai giá trị (nam và nu), tức là một biến không liên tục. Chúng ta muốn biết tần số của giới tính (bao nhiêu nam và bao nhiêu nữ) và vẽ một biểu đồ đơn giản. Để thực hiện ý định này, trước hết, chúng ta cần dùng hàm table để biết tần số:    

    chúng tôi <- table(sex)

    sex.freq

    sex

    Nam Nu

    22 28   

    Có 22 nam và 28 nữ trong nghiên cứu. Sau đó dùng hàm barplot

    để thể hiện tần số này như sau:    

    barplot(sex.freq, main=”Frequency of males and females”)   

    Biểu đồ trên cũng có thể có được bằng một lệnh đơn giản hơn (Biểu đồ 8a):  

    barplot(table(sex), main=”Frequency of males and females”)

    Biểu đồ 8a. Tần số giới tính thể hiện bằng cột số.

    Biểu đồ 8b. Tần số giới tính thể hiện bằng dòng số.

    Thay vì thể hiện tần số nam và nữ bằng 2 cột, chúng ta có thể thể hiện bằng hai dòng bằng thông số horiz = TRUE, như sau (xem kết quả trong Biểu đồ 6b):    

    barplot(sex.freq,

        horiz = TRUE,

        col = rainbow(length(sex.freq)),

        main=”Frequency of males and females”)   

    8.4 Biểu đồ cho hai biến số rời rạc (discrete variable): barplot

          Age là một biến số liên tục. Chúng ta có thể chia bệnh nhân thành nhiều nhóm dựa vào độ tuổi. Hàm cut có chức năng “cắt” một biến liên tục thành nhiều nhóm rời rạc. Chẳng hạn như:   

    <- cut(age, 3)

    table(ageg)

    ageg

    (42,54.7] (54.7,67.3] (67.3,80]

        19     24     7

    Có hiệu quả chia biến age thành 3 nhóm. Tần số của ba nhóm này là: 42 tuổi đến 54.7 tuổi thành nhóm 1, 54.7 đến 67.3 thành nhóm 2, và 67.3 đến 80 tuổi thành nhóm 3. Nhóm 1 có 19 bệnh nhân, nhóm 2 và 3 có 24 và 7 bệnh nhân.   

    Bây giờ chúng ta muốn biết có bao nhiêu bệnh nhân trong từng độ tuổi và từng giới tính bằng lệnh table:   

    chúng tôi <- table(sex, ageg)

    age.sex

      ageg

    sex (42,54.7] (54.7,67.3] (67.3,80]

    Nam    10     10    2

    Nu     9     14    5   

    Kết quả trên cho thấy chúng ta có 10 bệnh nhân nam và 9 nữ trong nhóm tuổi thứ nhất, 10 nam và 14 nữa trong nhóm tuổi thứ hai, v.v… Để thể hiện tần số của hai biến này, chúng ta vẫn dùng barplot:    

    barplot(age.sex, main=”Number of males and females in each age group”)  

     

    Biểu đồ 7a. Tần số giới tính và nhóm tuổi thể hiện bằng cột số.

    Biểu đồ 7b. Tần số giới tính và nhóm tuổi thể hiện bằng hai dòng số.

    Trongg Biểu đồ 7a, mỗi cột là cho một độ tuổi, và phần đậm của cột là nữ, và phần màu nhạt là tần số của nam giới. Thay vì thể hiện tần số nam nữ trong một cột, chúng ta cũng có thể thể hiện bằng 2 cột với beside=T như sau (Biểu đồ 7b):    

    barplot(age.sex, beside=TRUE, xlab=”Age group”)     

    8.5 Biểu đồ hình tròn    

    Tần số một biến rời rạc cũng có thể thể hiện bằng biểu đồ hình tròn. Ví dụ sau đây vẽ biểu đồ tần số của độ tuổi. Biểu đồ 8a là 3 nhóm độ tuổi, và Biểu đồ 8b là biểu đồ tần số cho 5 nhóm tuổi:

    pie(table(cut(age,5))) 

         

    Biểu đồ 8a. Tần số cho 3 nhóm tuổi           Biểu đồ 8b. Tần số cho 5 nhóm tuổi

    8.6 Biểu đồ cho một biến số liên tục: stripchart và hist   

    8.6.1 Stripchart    

          Biểu đồ strip cho chúng ta thấy tính liên tục của một biến số. Chẳng hạn như chúng ta muốn tìm hiểu tính liên tục của triglyceride (tg), hàm

    stripchart() sẽ giúp trong mục tiêu này:      

    stripchart(tg,

    Chúng ta thấy biến số tg có sự bất liên tục, nhất là các đối tượng có tg cao. Trong khi phần lớn đối tượng có độ tg thấp hơn 5, thì có 2 đối tượng với tg  

    8.6.2 Histogram

    Biểu đồ 9a. Trục tung là số bệnh nhân (đối tượng nghiên cứu) và trục hoành là độ tuổi. Chẳng hạn như tuổi 40 đến 45 có 6 bệnh nhân, từ 70 đến 80 tuổi có 4 bệnh nhân.

    Biểu đồ 9b. Thêm tên biểu đồ và tên của trục trung và trục hoành bằng xlab và ylab.

          Age là một biến số liên tục. Để vẽ biểu đồ tần số của biến số age, Chúng ta chỉ đơn giản lệnh hist(age). Như đã đề cập trên, chúng ta có thể cải tiến đồ thị này bằng cách cho thêm tựa đề chính (main) và tựa đề của trục chúng ta chỉ đơn giản lện hist (age. Như đã đề cập trên, chúng ta có thể cải tiến đồ thị này bằng cánh cho thêm tựa đề chính (main) và tựa đề của trục hoành (xlab) và trục tung (ylab):    

    hist(age)

    hist(age, main=”Frequency distribution by age group”, xlab=”Age group”, ylab=”No of patients”)

    Chúng ta cũng có thể biến đổi biểu đồ thành một đồ thị phân phối xác suất bằng hàm

    plot(density) như sau (kết quả trong Biểu đồ 10a):    

    plot(density(age),add=TRUE) 

    Biểu đồ 10a. Xác suất phân phối mật độ cho biến age (độ tuổi).

    Biểu đồ 10b. Xác suất phân phối mật độ cho biến age (độ tuổi) với nhiều interquartile.

    Chúng ta có thể vẽ hai đồ thị chồng lên bằng cách dùng hàm interquartile như sau (kết quả xem Biểu đồ 10b):    

    diff(summary(age)[c(2,5)])

    density(age, width=0.5*iqr)

    hist(age, xlim=range(des$x), probability=TRUE)

    lines(des, lty=2)   

    Trong đồ thị trên, chúng ta dùng khoảng cách

    0.5*iqr (tương đối “gần” nhau). Nhưng chúng ta có thể biến đổi thông số này thành 1.5*iqr để làm cho phân phối thực tế hơn:    

    diff(summary(age)[c(2,5)])

    density(age, width=1.5*iqr)

    hist(age, xlim=range(des$x), probability=TRUE)

    lines(des, lty=2)

    Chúng ta có thể biến đổi biểu đồ thành một đồ thị phân phối xác suất tích lũy (cumulative distribution) bằng hàm plot

    sort như sau:    

    length(age)

    plot(sort(age), (1:n)/n, type=”s”, ylim=c(0,1))   

    Kết quả được trình bày trong phần trái của biểu đồ sau đây (Biểu đồ 11).  

    Biểu đồ 11. Xác suất phân phối mật độ cho biến age (độ tuổi).

    Biểu đồ 12. Kiểm tra biến age có theo luật phân phối chuẩn hay không.

    Trong đồ thị trên, trục tung là xác suất tích lũy và trục hoành là độ tuổi từ thấp đến cao. Chẳng hạn như nhìn qua biểu đồ, chúng ta có thể thấy khoảng 50% đối tượng có tuổi thấp hơn 60.

    Để biết xem phân phối của age có theo luật phân phối chuẩn (normal distribution) hay không chúng ta có thể sử dụng hàm qqnorm.

    qqnorm(age)

    Trục hoành của biểu đồ trên là định lượng theo luật phân phối chuẩn (theoretical quantile) và trục hoành định lượng của số liệu (sample quantiles). Nếu phân phối của age theo luật phân phối chuẩn, thì đường biểu diễn phải theo một đường thẳng chéo 45 độ (tức là định lượng phân phối và định lượng số liệu bằng nhau). Nhưng qua Biểu đồ 12, chúng ta thấy phân phối của age không hẳn theo luật phân phối chuẩn.    

    8.6.3 Biểu đồ hộp (boxplot)    

    Để vẽ biểu đồ hộp của biến số tc, chúng ta chỉ đơn giản lệnh:    

    boxplot(tc, main=”Box plot of total cholesterol”, ylab=”mg/L”)  

    Biểu đồ 13. Trong biểu đồ này, chúng ta thấy median (trung vị) khoảng 5.6 mg/L, 25% total cholesterol thấp hơn 4.1, và 75% thấp hơn 6.2. Total cholesterol thấp nhất là khoang 3, và cao nhất là trên 8 mg/L.  

    Trong biểu đồ sau đây, chúng ta so sánh tc giữa hai nhóm nam và nữ:    

    boxplot(tc ~ sex, main=”Box plot of total cholestrol by sex”, ylab=”mg/L”)

    Kết quả trình bày trong Biểu đồ 14a. Chúng ta có thể biến đổ giao diện của đồ thị bằng cách dùng thông số

    horizontal=TRUE và thay đổi màu bằng thông số col như sau (Biểu đồ 14b):    

    boxplot(tc~sex, horizontal=TRUE, main=”Box plot of total cholesterol”, ylab=”mg/L”, col = “pink”)

    Biểu đồ 14a. Trong biểu đồ này, chúng ta thấy trung vị của total cholesterol ở nữ giới thấp hơn nam giới, nhưng độ dao động giữa hai nhóm không khác nhau bao nhiêu.

    Biểu đồ 14b. Total cholesterol cho từng giới tính, với màu sắc và hình hộp nằm ngang.

    8.6.4 Biểu đồ thanh (bar chart)    

    Để vẽ biểu đồ thanh của biến số bmi, chúng ta chỉ đơn giản lệnh:

    barplot(bmi, col=”blue”)   

    Biểu đồ 15. Biểu đồ thanh cho biến bmi.

    8.6.5 Biểu đồ điểm (dotchart)

    Một đồ thị khác cung cấp thông tin giống như barplot

    dotchart:    

    dotchart(bmi, xlab=”Body mass index (kg/m^2)”,

              main=”Distribution of BMI”)   

    Biểu đồ 16. Biểu đồ điểm biến bmi.

    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)    

    Để tìm hiểu mối liên hệ giữa hai biến, chúng ta dùng biểu đồ tán xạ. Để vẽ biểu đồ tán xạ về mối liên hệ giữa biến số tc và hdl, chúng ta sử dụng hàm plot. Thông số thứ nhất của hàm plot là trục hoành (x-axis) và thông số thứ 2 là trục tung. Để tìm hiểu mối liên hệ giữa tc và hdl chúng ta đơn giản lệnh:    

    hdl)     

    Biểu đồ 17. Mối liên hệ giữa tc và hdl. Trong biểu đồ này, chúng ta vẽ biến số hdl

    trên trục tung và tc trên trục hoành.

    Chúng ta muốn phân biệt giới tính (nam và nữ) trong biểu đồ trên. Để vẽ biểu đồ đó, chúng ta phải dùng đến hàm ifelse. Trong lệnh sau đây, nếu sex==”Nam”

    thì vẽ kí tự số 16 (ô tròn), nếu không nam thì vẽ kí tự số 22 (tức ô vuông):    

    plot(hdl, tc, pch=ifelse(sex==”Nam”, 16, 22))   

    Kết quả là biểu đồ 18a. Chúng ta cũng có thể thay kí tư thành “M” (nam) và “F” nữ(xem biểu đồ 18b):    

    plot(hdl, tc, pch=ifelse(sex==”Nam”, “M”, “F”))

    Biểu đồ 18a. Mối liên hệ giữa tc và hdl theo từng giới tính được thể hiện bằng hai kí hiệu dấu.

    Biểu đồ 18a. Mối liên hệ giữa tc và hdl theo từng giới tính được thể hiện bằng hai kí tự.

    Chúng ta cũng có thể vẽ một đường biểu diễn hồi qui tuyến tính (regression line) qua các điểm trên bằng cách tiếp tục ra các lệnh sau đây:    

    plot(hdl ~ tc, pch=16, main=”Total cholesterol and HDL cholesterol”, xlab=”Total cholesterol”, ylab=”HDL cholesterol”, bty=”l”)

    lm(hdl ~ tc)

    abline(reg)    

    Kết cũng có thể dùng hàm trơn (smooth function) để biểu diễn mối liên hệ giữa hai biến số. Đồ thị sau đây sử dụng lowess (một hàm thông thường nhất) trong việc “làm trơn” số liệu tc và hdl (Biểu đồ 19b).    

    plot(hdl ~ tc, pch=16,

          main=”Total cholesterol and HDL cholesterol with

                 LOEWSS smooth function”,

       xlab=”Total cholesterol”,

        ylab=”HDL cholesterol”,

        bty=”l”)   

    lines(lowess(hdl, tc, f=2/3, iter=3), col=”red”)     

    Biểu đồ 19a. Trong lệnh trên,

    reg<-lm(hdl~tc) có nghĩa là tìm phương trình liên hệ giữa hdl và tc bằng linear model (lm) và đạt kết quả vào đối tượng reg. Lệnh thứ hai

    abline(reg) yêu cầu R vẽ đường thẳng từ phương trình trong reg

    Biểu đồ 19b. Thay vì dùng abline, chúng ta dùng hàm lowess để thể hiện mối liên hệ giữa tc và hdl.

    Bạn đọc có thể thí nghiệm với nhiều thông số

    f=1/2,f=2/5, hay thậm chí f=1/10    

    8.8 Phân tích Biểu đồ cho nhiều biến: pairs   

    Chúng ta có thể tìm hiểu mối liên hệ giữa các biến số như age, bmi, hdl, ldl và tc bằng cách dùng lệnh pairs. Nhưng trước hết, chúng ta phải đưa các biến số này vào một data.frame chỉ gồm những biến số có thể vẽ được, và sau đó sử dụng hàm pairs trong R.    

    data.frame(age,bmi,hdl,ldl,tc)

    pairs(lipid, pch=16)

    Kết quả sẽ là:

    Biểu chúng tôi (do một tác giả trên mạng soạn) sau đây để cho ra nhiều thông tin thú vị.

    chúng tôi <- function(x, y, digits=2, prefix=””, cex.cor)

    {

      usr <- par(“usr”); on.exit(par(usr))

      par(usr = c(0, 1, 0, 1))

      r <- abs(cor(x, y))

      txt <- format(c(r, 0.123456789), digits=digits)[1]

      txt <- paste(prefix, txt, sep=””)

      if(missing(cex.cor)) cex <- 0.8/strwidth(txt)

     

      test <- cor.test(x,y)

      # borrowed from printCoefmat

      Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,

             cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),

             symbols = c(“***”, “**”, “*”, “.”, ” “))

     

      text(0.5, 0.5, txt, cex = cex * r)

      text(.8, .8, Signif, cex=cex, col=2)

    }

    Chúng ta quay lại với dữ liệu lipid bằng cách gọi hàm chúng tôi như sau:

       

    pairs(lipid,lower.panel=panel.smooth, upper.panel=matrix.cor)

    Đồ thị này cung cấp cho chúng ta tất cả hệ số tương quan giữa tất cả các biến số. Chẳng hạn như, hệ số tương quan giữa age và bmi quá thấp và không có ý nghĩa thống kê; giữa age

    và hdl

    hay giữa age và hdl cũng không có ý nghĩa thống kê; nhưng giữa age và tc thì bằng 0.22. Hệ số tương quan cao nhất là giữa ldl và tc (0.65) và hdl và tc (0.62). Giữ hdl và ldl, hệ số tương quan chỉ 0.35, nhưng có ý nghĩa thống kê (có sao).

    Chú ý biểu đồ trên chẳng những cung cấp hai thông tin chính (hệ số tương quan hay correlation coefficient, và vẽ biểu đồ tán xạ cho từng cặp biến số), mà còn cho biết hệ số tương quan nào có ý nghĩa thống kê (những kí hiệu sao). Hệ số tương quan càng cao, kích thước của font chữ càng lớn.

    8.9 Một số biểu đồ “đa năng”

     

    8.9.1 Biểu đồ tán xạ và hình hộp

       Như trên đã trình bày, biểu đồ tán xạ giúp cho chúng ta hình dung ra mối liên hệ giữa hai biến số liên tục như độ tuổi age và hdl chẳng hạn. Và để làm việc này, chúng ta dùng hàm plot. Để tìm hiểu phân phối cho từng biến age hay hdl chúng ta có thể dùng hàm boxplot. Nhưng nếu chúng ta muốn xem phân phối của hai biến và đồng thời mối liên hệ giữa hai biến, thì chúng ta cần phải viết một vài lệnh để thực hiện việc này. Các lệnh sau đây age và hdl, đồng thời vẽ biểu đồ hình hộp cho từng biến.

    op <- par()

    layout( matrix( c(2,1,0,3), 2, 2, byrow=T ),

        c(1,6), c(4,1),

       )

       

    par(mar=c(1,1,5,2))

    plot(hdl ~ age,

      xlab=”, ylab=”,

      las = 1,

      pch=16)

    rug(side=1, jitter(age, 5) )

    rug(side=2, jitter(hdl, 20) )

    title(main = “Age and HDL”)

       

    par(mar=c(1,2,5,1))

    boxplot(hdl, axes=F)

    title(ylab=’HDL’, line=0)

       

    par(mar=c(5,1,1,2))

    boxplot(age, horizontal=T, axes=F)

    title(xlab=’Age’, line=1)

       

    par(op)

       

    Và kết quả là:

    8.9.2 Biểu đồ tán xạ với kích thước biến thứ ba

          Biểu đồ trên thể hiện mối liên hệ giữa age và hdl, với mỗi điểm chấm có kích thước nhau. Nhưng chúng ta biết rằng hdl cũng có liên hệ với triglyceride (tg). Để thể hiện một phần nào mối liên hệ 3 chiều này, một cách làm là vẽ kích thước của điểm tùy theo giá trị của tg. Chúng ta sẽ sử dụng thông số cex đã bàn trong phần đầu để vẽ mối liên hệ ba chiều này như sau:

    plot(age, hdl, cex=tg,

      pch=16,

      col=”red”,

      xlab=”Age”, ylab=”HDL”,

      main=”Bubble plot”)

     

    8.9.3 Biểu đồ thanh và xác suất tích lũy  

          Để vẽ biểu đồ tần số của một biến liên tục chúng ta chủ yếu sử dụng hàm hist. Hàm này cho ra kết quả tần số cho từng nhóm (như nhóm độ tuổi chẳng hạn). Nhưng đôi khi chúng ta cần biết cả xác suất tích lũy cho từng nhóm, và muốn vẽ cả hai kết quả trong một biểu đồ. Để làm việc này chúng ta cần phải viết một hàm bằng ngôn ngữ R. Hàm sau đây được gọi là pareto (tất nhiên bạn đọc có thể cho một tên khác) được soạn ra để thực hiện mục tiêu trên. Mã cho hàm pareto như sau:  

    pareto <- function (x, main = “”, ylab = “Value”)

    {

      op <- par(mar = c(5, 4, 4, 5) + 0.1, las = 2)

    if( ! inherits(x, “table”) ) {

      x <- table(x)

    }

    x <- rev(sort(x))

    plot(x, type = ‘h’, axes = F, lwd = 16,

          xlab = “”, ylab = ylab, main = main)

    axis(2)

    points(x, type = ‘h’, lwd = 12,

             col = heat.colors(length(x)) )

    y <- cumsum(x)/sum(x)

    par(new = T)

    plot(y, type = “b”, lwd = 3, pch = 7,

           axes = FALSE,

           xlab=”, ylab=”, main=”)

    points(y, type = ‘h’)

    axis(4)

    par(las=0)

    mtext(“Cumulated frequency”, side=4, line=3)

    print(names(x))

    axis(1, at=1:length(x), labels=names(x))

    par(op)

    }

     

    Bây giờ chúng ta sẽ áp dụng hàm pareto vào việc vẽ tần số cho biến tg (triglyceride) như sau. Trước hết, chúng ta chia tg thành 10 nhóm bằng cách dùng hàm cut và cho kết quả vào đối tượng tg.group.

         

    Kế đến, chúng ta ứng dụng hàm pareto:

         

    [1] “(0.695,1.25]” “(2.35,2.9]” “(1.25,1.8]” “(2.9,3.45]” “(1.8,2.35]”

    [6] “(3.45,4]”  “(5.65,6.21]” “(5.1,5.65]” “(4.55,5.1]” “(4,4.55]” 

      cumulated frequencies”)

       

    Trong biểu đồ này, chúng ta có hai trục tung. Trục tung phía trái là tần số (số bệnh nhân) cho từng nhóm tg, và trục tung bên phải là tần số tích lũy tích bằng xác suất (do đó, số cao nhất là 1).

       

    8.9.4 Biểu đồ hình đồng hồ (clock plot)

          Biểu đồ hình đồng hồ, như tên gọi là biểu đồ dùng để vẽ một biến số liên tục bằng kim đồng hồ. Tức là thay vì thể hiện bằng cột hay bằng dòng, biểu đồ này thể hiện bằng đồng hồ. Hàm sau đây (clock) được soạn để thực hiện biểu đồ hình đồng hồ:  

    chúng tôi <- function (x, col = rainbow(n), …) {

    if( min(x)<0 ) x <- x – min(x)

    if(

    n <- length(x)

    if(is.null(names(x))) names(x) <- 0:(n-1)

    m <- 1.05

    plot(0,

        type = ‘n’, # do not plot anything

        xlim = c(-m,m), ylim = c(-m,m),

        axes = F, xlab = ”, ylab = ”, …)

    a <- pi/2 – 2*pi/200*0:200

    polygon( cos(a), sin(a) )

    v <- .02

    a <- pi/2 – 2*pi/n*0:n

    segments( (1+v)*cos(a), (1+v)*sin(a),

          (1-v)*cos(a), (1-v)*sin(a) )

    segments( cos(a), sin(a),

          0, 0,

          col = ‘light grey’, lty = 3)

    ca <- -2*pi/n*(0:50)/50

    for (i in 1:n) {

      a <- pi/2 – 2*pi/n*(i-1)

      b <- pi/2 – 2*pi/n*i

      polygon( c(0, x[i]*cos(a+ca), 0),

           c(0, x[i]*sin(a+ca), 0),

           col=col[i] )

      v <- .1

      text((1+v)*cos(a), (1+v)*sin(a), names(x)[i])

    }

    }

    Chúng ta sẽ ứng dụng hàm clock để vẽ biểu đồ cho biến ldl như sau:

     

          main = “Distribution of LDL”)

       

    Và kết quả là:

    8.9.5 Biểu đồ với sai số chuẩn (standard error)

       

    Trong biểu đồ sau đây, chúng ta có 5 nhóm (biến số x được mô phỏng chứ không phải số liệu thật), và mỗi nhóm có giá trị trung bình mean, và độ tin cậy 95% (lcl và ucl). Thông thường

    lcl=mean-1.96*SE và ucl = mean+1.96*SE (SE là sai số chuẩn). Chúng ta muốn vẽ biểu đồ cho 5 nhóm với sai số chuẩn đó. Các lệnh và hàm sau đây sẽ cần thiết:

    c(1,2,3,4,5)

    c(1.1, 2.3, 3.0, 3.9, 5.1)

    c(0.9, 1.8, 2.7, 3.8, 5.0)

    c(1.3, 2.4, 3.5, 4.1, 5.3)

    plot(group, mean, ylim=range(c(lcl, ucl)))

    arrows(group, ucl, group, lcl, length=0.5, angle=90, code=3)

    Sau đây là một mô phỏng khác. Chúng ta tạo ra 10 giá trị x và y theo luật phân phối chuẩn, và 10 giá trị sai số theo luật phân phối đều (se.x và se.y uniform distribution).

     

    rnorm(10)

    rnorm(10)

    runif(10)

    runif(10)

    ypch=22)

    arrows(x, y-se.y, x, y+se.y, code=3, angle=90, length=0.1)

    8.9.6 Biểu đồ vòng (contour plot)

       

    R có thể vẽ các đồ thị vòng với nhiều hình dạng khác nhau, tùy theo ý thích và dữ liệu. Trong các lệnh sau đây, chúng ta sử dụng kĩ thuật mô phỏng để vẽ đồ thị vòng cho ba biến số x, y và z.

    50

    seq(-1, 1, length=N)

    seq(-1, 1, length=N)

    matrix(x, nr=N, nc=N)

    matrix(y, nr=N, nc=N, byrow=TRUE)

    1 / (1 + xx^2 + (yy + .2 * sin(10*yy))^2)

    contour(x, y, z, main = “Contour plot”)

    Đồ thị này có thể chuyển thành một hình (image) bằng hàm image.

     

    Một vài thay đổi nhỏ nhưng quan trọng:

     

        xlab=”x”,

        ylab=”y”)

    contour(x, y, z, lwd=3, add=TRUE)

    Sau đây là một vài thay đổi để vẽ biểu đồ theo hàm số sin và 3 chiều. Đồ thị này tuy xem “hấp dẫn”, nhưng trong thực tế có lẽ ít sử dụng. Tuy nhiên, biểu đồ được trình bày ở đây để cho thấy tính đa dụng của R.

      x

    function(x,y) { r <- sqrt(x^2+y^2); 10 * sin(r)/r }

    outer(x, y, f)

    <- 1

    par(bg = “white”, mar=c(0,2,3,0)+.1)

    persp(x, y, z,

       theta = 30, phi = 30,

       expand = 0.5,

       col = “lightblue”,

       ltheta = 120,

       shade = 0.75,

       ticktype = “detailed”,

       xlab = “X”, ylab = “Y”, zlab = “Sinc(r)”,

       main = “The sinc function”

    )

    par(op)

     

    8.9.10 Biểu đồ với kí hiệu toán

       

    Đôi khi chúng ta cần vẽ biểu đồ với tựa đề có kí hiệu toán học. Trong đồ thị sau đây, chúng ta tạo ra một biến số x với 200 giá trị từ -5 đến 5, và . Để viết công thức trên, chúng ta cần sử dụng hàm expression như sau:

      seq(-5,5,length=200)

    sqrt(1+x^2)

    plot(y~x, type=’l’, ylab=expression(sqrt(1+x^2)))

    title(main=expression(“Graph of the function f”(x)==sqrt(1+x^2)))

     

    Ngay cả tiếng Nhật cũng có thể thể hiện bằng R:

       

    plot(1:9, type=”n”, axes=FALSE, frame=TRUE, ylab=””,

       main= “example(Japanese)”, xlab= “using Hershey fonts”)

    par(cex=3)

    c(“serif”, “plain”)

    2, “\#J2438\#J2421\#J2451\#J2473”, vfont = Vf)

    4, “\#J2538\#J2521\#J2551\#J2573”, vfont = Vf)

    6, “\#J467c\#J4b5c”, vfont = Vf)

    8, “Japan”, vfont = Vf)

    par(cex=1)

    2, “Hiragana”)

    4, “Katakana”)

    6, “Kanji”)

    8, “English”)

       

          Chương này chỉ giới thiệu một số biểu đồ thông thường trong nghiên cứu khoa học. Ngoài các biểu đồ thông dụng này, R còn có khả năng vẽ những đồ thị phức tạp và tinh vi hơn nữa. Hiện nay, R có một package tên là lattice có thể vẽ những biểu đồ chất lượng cao hơn.

    lattice, cũng như bất cứ package nào của R, đều miễn phí, có thể tải về máy tính và cài đặt để sử dụng khi cần thiết.

    Vietsciences; Nguyễn Văn Tuấn; Cách Viết Báo Cáo Khoa Học Cho Các Tập San Khoa Học Quốc Tế; Science, Khoa Hoc, Khoahoc, Tin Hoc, Informatique;Computer; Vat Ly; Physics, Physique, Chimie, Chemistry, Ho

      

                Mới đây trên Tạp chí Hoạt động Khoa học, tác giả Phạm Duy Hiển nêu vấn đề về sự có mặt rất khiêm tốn của các nghiên cứu khoa học Việt Nam trên các tập san khoa học quốc tế.  Đây là một ưu tư rất chính đáng.  Trong ngành y sinh học, trong vòng 40 năm qua, số lượng bài báo từ các nhà khoa học ở Việt Nam chỉ trên dưới con số 300.  Con số này cực kì khiêm tốn nếu so với 5.000 từ Thái Lan hay trên 20.000 từ Singapore. Trong thực tế, ở nước ta có nhiều công trình nghiên cứu có giá trị và hấp dẫn, nhưng ít khi nào có mặt trên trường quốc tế.  Vấn đề đặt ra là tại sao có tình trạng này, và làm sao chúng ta có thể cải thiện tình thế.

    Qua kinh nghiệm cá nhân và tiếp xúc với đồng nghiệp trong nước, người viết bài này tin rằng một phần của vấn đề là các nhà khoa học nước ta thiếu kĩ năng phân tích dữ kiện và thiếu kĩ năng thông tin (communication skill).  Về phân tích số liệu, tôi sẽ bàn trong một dịp khác, ở đây tôi chỉ bàn đến vấn đề thông tin, mà cụ thể là soạn một bài báo khoa học.

    Đại đa số các tập san khoa học quốc tế sử dụng tiếng Anh để truyền đạt thông tin.  Một phần không nhỏ các nhà khoa học nước ta chưa quen với tiếng Anh, và đó là một trở ngại lớn.  Nhưng ngay cả trong số các nhà khoa học thạo tiếng Anh, thì họ lại thiếu kĩ năng viết báo khoa học.  Bài viết này muốn góp một phần nhỏ trong nỗ lực cải thiện tình thế đó, bằng cách chia sẻ một số kinh nghiệm viết báo cáo khoa học với các đồng nghiệp và bạn trẻ trong nước.  Bài viết này chỉ là một tóm lược của một tài liệu bằng tiếng Anh dài hơn (khoảng 40 trang) mà người viết dùng để giảng dạy cho các nghiên cứu sinh ở Mĩ và Úc.  Bạn đọc muốn có tài liệu đó xin liên lạc riêng với tác giả tại địa chỉ t.nguyen@garvan.org.au.

    ***

     

    Tại sao phải công bố báo cáo khoa học?

                Trong hoạt động nghiên cứu khoa học, các bài báo khoa học đóng một vai trò rất quan trọng.  Nó không chỉ là một bản báo cáo về một công trình nghiên cứu, mà còn là một đóng góp cho kho tàng tri thức của thế giới.  Khoa học tiến bộ cũng nhờ một phần lớn vào thông tin từ những bài báo khoa học, bởi vì qua chúng mà các nhà khoa học có dịp trao đổi, chia sẻ và học hỏi kinh nghiệm lẫn nhau. 

    Một công trình nước, và số tiền này là do dân chúng đóng góp.  Khi tiến hành nghiên cứu, nhà nghiên cứu có khi phải nhờ đến sự tham gia của tình nguyện viên hay của bệnh nhân.  Trong trường hợp đó, tình nguyện viên và bệnh nhân phải bỏ thì giờ, tạm bỏ qua công ăn việc làm để tự nguyện cung cấp thông tin và có khi hi sinh một phần da máu cho nhà nghiên cứu.  Nếu một công trình nghiên cứu đã hoàn tất mà kết quả không được công bố, thì công trình nghiên cứu đó có thể xem là có vấn đề về y đức và đạo đức khoa học, và nhà nghiên cứu có thể xem như chưa hoàn thành nghĩa vụ của mình với sự đóng góp của quần chúng.  Do đó, báo cáo khoa học trên các diễn đàn khoa học quốc tế là một nghĩa vụ của nhà nghiên cứu, là một cách gián tiếp cám ơn sự đóng góp của bệnh nhân và giúp đỡ của dân chúng qua sự quản lí của nhà nước.

    Đối với cá nhân nhà khoa học, báo cáo khoa học trên các tập san khoa học quốc tế là một “currency” (đơn vị tiền tệ).  Đó là những viên gạch xây dựng sự nghiệp của giới khoa bảng.  Tại các đại học Tây phương, số lượng và chất lượng bài báo khoa học là tiêu chuẩn số một trong việc xét đề bạt lên chức giảng sư hay giáo sư.  Vì thế công bố báo cáo khoa học, đối với giới khoa bảng Tây phương, là một việc làm ưu tiên hàng đầu của họ.  Chính vì thế mà các đại học Tây phương có cái văn hóa gọi là “publish or perish” (xuất bản hay là tiêu tan).  Nếu trong vòng 1 hay 2 năm mà nhà khoa bảng không có một bài báo nào đăng trên các tập san khoa học quốc tế, ban giám hiệu sẽ mời vị đó trả lời câu hỏi “tại sao”.  Nếu có lí do chính đáng thì còn giữ chức vụ; nếu không có lí do chính đáng thì có nguy cơ mất chức như bỡn. 

    Nói tóm lại, báo cáo khoa học trên các diễn đàn khoa học quốc tế (không chỉ ở trong nước) là một việc làm chính yếu, một nghĩa vụ, và một điều kiện để tồn tại của một nhà khoa học.  Nhưng từ lúc tiến hành nghiên cứu, thu thập dữ kiện đến lúc có báo cáo là một quá trình gian nan.  Một công việc còn gian nan hơn nữa là làm sao đảm bảo báo cáo được đăng trên một tập san khoa học có uy tín trên thế giới.  Vì thế, các nhà khoa học cần phải đặc biết chú ý đến việc soạn thảo một báo cáo khoa học sao cho đạt tiêu chuẩn quốc tế.  Bài viết này mách bảo một cách thân mật những “mẹo” và kĩ năng để đạt tiêu chuẩn đó. 

     

    Báo cáo khoa học: khổ hạnh  

    Mỗi bài báo khoa học là một công trình khổ hạnh.  “Khổ hạnh” ở đây phải được hiểu theo nghĩa vừa đau khổ, vừa hạnh phúc.  Đau khổ trong quá trình chuẩn bị và viết thành một bài báo, và hạnh phúc khi nhìn thấy bài báo được công bố trên một tập san có nhiều đồng nghiệp đọc và chia sẻ.  Để đạt kết quả sau cùng này, tác giả phải phấn đấu làm sao để giữ sự cân bằng giữa tính trong sáng và [nhưng] nội dung phải đầy đủ.  Bài báo phải làm sao hấp dẫn người đọc và để người đọc “nhập cuộc”.  Bài báo phải được viết bằng một văn phong cực kì súc tích, nhưng phải đầy đủ.  Đó là những yêu cầu rất khó mà không phải tác giả nào cũng đạt được.

    Nếu không tiếp cận vấn đề một cách có việc hệ thống, tất cả những nỗ lực cho một bài báo khoa học có thể trở nên vô dụng, thậm chí đem lại ảnh hưởng xấu vì một công trình nghiên cứu sẽ không có cơ hội xuất hiện trên các tập san chuyên môn.  Mặc dù

    ở các nước phương Tây, người ta đã có nhiều bài viết chỉ dẫn – thậm chí cả sách dạy – cách viết một bài báo khoa học, nhưng ở nước ta, hình như vẫn chưa có một tài liệu chỉ dẫn như thế.  Bài viết này, vì thế, được soạn ra nhằm mục đích duy nhất là cung cấp cho bạn đọc những chỉ dẫn đơn giản và thực tế để sao cho bạn đọc có thể tự mình viết một bài báo khoa học đạt yêu cầu của các tập san khoa học quốc tế.

     

    Vạn sự khởi đầu nan …

    Viết một bài báo tốt là một việc làm không đơn giản chút nào, nếu không muốn nói là phức tạp.  Nó đòi hỏi người viết phải sáng tạo và suy tưởng … trong lặng lẽ.  Con đường dẫn đến một sản phẩm hoàn hảo không bao giờ là một con đường thẳng, mà là một con đường với nhiều ngõ ngách, nhiều đường cùng, và nhiều chông gai.  Nói một cách ngắn gọn, viết cần phải có thời gian.  Thành ra, cách tốt nhất là phải khởi công viết càng sớm càng tốt, đừng bao giờ để cho đến giai đoạn cuối của nghiên cứu mới viết. 

    Tác giả có thể viết ngay những phần cần viết ra của bài báo trong khi công trình nghiên cứu vẫn còn tiến hành.  Phát họa ra phần dẫn nhập (introduction) ngay từ khi công trình nghiên cứu đang được thai nghén.  Viết phần phương pháp (methods) ngay trong khi công trình nghiên cứu còn dở dang.  Làm đến đâu, viết ngay đến đó.  Sau cùng là một phát họa những biểu đồ, bản thống kê cần phải có trong bài báo.

    Viết ra những ý tưởng và phương pháp sớm giúp cho nhà nghiên cứu rất nhiều trong những lần sửa chữa sau này.  Chẳng hạn như làm sáng tỏ động cơ và lí do nghiên cứu trong phần dẫn nhập giúp cho nhà nghiên cứu nhận ra bối cảnh mà công trình nghiên cứu có thể đóng vai trò.  Viết ra những phương pháp nghiên cứu giúp cho nhà nghiên cứu khỏi phải tốn công xây dựng lại những bước đi, những thủ tục mà công trình nghiên cứu đã hoàn tất.  Việc phát thảo ra những biểu đồ và bản số liệu giúp cho nhà nghiên cứu tập trung vào nỗ lực phân tích dữ kiện.  Và quan trọng hơn hết, khi ngồi xuống viết, tự việc làm đó, tạo cơ hội cho [hay nói đúng hơn là bắt buộc] nhà nghiên cứu phải suy nghĩ nghiêm túc về việc làm của mình.

    Một điều quan trọng khác là tác giả cần phải bỏ ra một thời gian tịnh tâm suy nghĩ về cái thông điệp của công trình nghiên cứu cho cộng đồng khoa học.  Trong phần này, tác giả nên chịu khó viết ra những điểm chính nhằm trả lời những câu hỏi sau đây: tại sao mình làm những gì mình đã làm; thực tế mình đã làm gì; mình phát hiện điều gì mới lạ; và những điều này có ý nghĩa gì?

      

    Tập trung vào những thông tin chính

    Mặc dù thành phần độc giả của các tập san khoa học có thể rất đa dạng, một đặc tính mà giới chuyên môn đều có chung là: bận rộn.  Giới khoa học gia, bác sĩ, kĩ sư, nhà quản lí, lãnh đạo … có lẽ chỉ nhìn qua bài báo khoa học một cách nhanh chóng, chứ ít khi nào có thì giờ nghiền ngẫm từng chi tiết trong bài báo.  Tuy rằng phần lớn tác giả nghiên cứu biết điều này, nhưng họ có thể không nghĩ đến khi đặt bút xuống soạn bài báo khoa học.  Do đó, tác giả nên tự đặt mình vào vai trò của người đọc và suy nghĩ như người đọc bằng cách chú ý đến những gì mà người đọc muốn tìm hiểu: tựa đề bài báo, bản tóm tắt (abstract), những bản số liệu, và biểu đồ.

     

    Tựa đề và tóm tắt

    Tựa đề và bản tóm tắt là hai phản chiếu đầu tiên đập vào mắt của người đọc.  Đây cũng là phần mà đại đa số người đọc đọc trước khi quyết định có nên đọc tiếp hay không.  Tất nhiên, tựa đề và bản tóm tắt là hai phần nhà nghiên cứu cần phải để tâm suy nghĩ cẩn thận khi soạn hai phần này sao cho thu hút sự chú ý của người đọc.  Hai phần này cần phải được viết trước hết, trước khi cả đặt bút viết các phần khác của bài báo.

     

    Bảng số liệu và biểu đồ

    Yếu tố thị giác rất quan trọng.  Nếu người đọc quyết định đọc bài báo (sau khi đã xem qua tựa đề và bản tóm tắt), họ sẽ tiếp tục xem đến các bảng thống kê và biểu đồ.  Các bảng thống kê số liệu thường được dùng để trình bày những số liệu mang tính trang trọng, tính chính xác cao, tính chính thức.  Các bảng thống kê có thể dùng để tổng hợp và so sánh số liệu của các công trình nghiên cứu trong quá khứ, để giải thích mối liên hệ giữa các nhân tố trong công trình nghiên cứu, hay trình bày những câu hỏi đã được sử dụng trong công trình nghiên cứu.

    Người Trung Hoa từng nói “Một biểu đồ có giá trị bằng một vạn chữ viết.”  Mục đích của biểu đồ là cung cấp một ấn tượng về phát hiện chính của công trình nghiên cứu.  Biểu đồ có khi được dùng làm tài liệu giảng dạy.  Vì thế biểu đồ là một phương tiện hữu hiệu nhất để nhấn mạnh thông điệp của bài báo.  Biểu đồ thường được sử dụng để thể hiện xu hướng và kết quả cho từng nhóm, nhưng cũng có thể dùng để trình bày dữ kiện một cách gọn gàng.  Các biểu đồ dễ hiểu, nội dung phong phú là những phương tiện vô giá.  Do đó, nhà nghiên cứu cần phải suy nghĩ một cách sáng tạo cách thể hiện số liệu quan trọng bằng biểu đồ.

     

    Phát thảo một cách làm có hệ thống

    Tiếp cận và phác họa cấu trúc của một bài báo trước khi đặt bút viết tạo điều kiện dễ dàng cho tác giả sau này.  Bước đầu tiên đòi hỏi tác giả phải biết tập san mà mình muốn gửi bài báo, bởi vì mỗi tập san có những yêu cầu khác nhau về hình thức cũng như nội dung.  Một khi đã xác định được tập san đối tượng, tác giả cần phải xem qua phong cách và hình thức bài báo mà tập san đó qui định.  Đặc biệt là phải xem qua các bài báo đã được công bố trên tập san đó, như số lượng chữ là bao nhiêu, biểu đồ phải trình bảy như thế nào, bảng số liệu phải viết ra sao, trình bày phần tài liệu tham khảo theo cách gì, v.v…  Phần lớn các tập san y khoa và sinh học đều tuân thủ theo các qui định được công bố trong tài liệu Uniform Requirements for Manuscripts Submitted to Biomedical Journals.

    Có nhiều “chiến lược” để thu hút người đọc theo dõi bài báo của mình.  Cách tốt nhất và hiệu quả nhất có lẽ là ngắn gọn.  Không nên nhầm lẫn giữa sự phức tạp với tính tinh vi.  Câu văn cần phải ngắn gọn, đơn giản, nhưng chính xác và trực tiếp đi thẳng vào vấn đề.  Cũng cần phải nhận thức rằng có được một bài báo khúc chiết như thế không phải là điều dễ dàng chút nào — nó đòi hỏi nhiều thời gian và suy nghĩ.

    Một bài báo khoa học hay cũng cần phải được cấu trúc gọn gàng.  Mỗi đoạn văn cần phải có một mục đích hay phải nói lên được một ý tưởng.  Mỗi câu văn phải phục vụ cho mục đích đó.  Các đoạn văn phải liên kết với nhau thành một chuỗi ý tưởng phản ánh lí luận cho một thông điệp nào đó.  Cách tổ chức hiển nhiên cho một bài báo khoa học đạt là cấu trúc mà các tập san y khoa và sinh học thường sử dụng: dẫn nhập, phương pháp, kết tiếng Anh là IMRAD (Introduction Methods Results And Discussion).

     

    Dẫn nhập

    “Nhiệm vụ” thiết yếu nhất trong phần dẫn nhập là phải làm sao làm cho người đọc tiếp nhận bài báo và quan tâm đến kết quả của công trình nghiên cứu.  Hơn nữa, phần dẫn nhập còn giúp cho người bình duyệt bài báo hay tổng biên tập tập san thẩm định tầm quan trọng của bài báo.  Trong phần dẫn nhập, tác giả phải nói rõ tại sao công trình nghiên cứu ra đời và tại sao người đọc phải quan tâm đến công trình đó.  Sơ đồ 1 sau đây phác họa cái khung cho phần dẫn nhập được viết với 3 đoạn văn.

    Đọan văn thứ nhất mô tả một vấn đề chung hay yếu tố chung làm động cơ cho công trình nghiên cứu.  Đặc biệt là câu văn đầu tiên phải “mạnh mẽ” và làm sao thu hút chú ý của người đọc.  Đoạn văn thứ hai tập trung vào vấn đề cụ thể mà công trình nghiên cứu phải giải quyết.  Trong đoạn văn này, tác giả có thể nêu ra những vấn đề mà người đọc có thể chưa từng biết qua.  Đoạn văn thứ hai cũng cần nêu lên cái khoảng trống tri thức mà cho đến nay vẫn chưa có câu trả lời.  Đoạn văn thứ ba mô tả các mục tiêu của công trình nghiên cứu.  Phần dẫn nhập phải được làm sao mà đọc đến đoạn thứ ba, người đọc cảm thấy háo hức và thiết tha đọc các phần kế tiếp của bài báo.

     

    Sơ đồ 1.  Khung bài cho phần dẫn nhập (3 đoạn văn)

    Đoạn văn

    Câu hỏi

    Ví dụ

    Ví dụ 1

    Ví dụ 2

    Ví dụ 3

    1

    Vấn đề chung là gì, tình hình hiện nay ra sao?

    Loãng xương là một bệnh nghiêm trọng trong người có tuổi vì nó là nguyên nhân dẫn đến gãy xương.

    Có nhiều bằng chứng cho thấy carotid endarterectomy có thể làm giảm nguy cơ bệnh tim.

    Tiểu đường thận (diabetic nephropathy) là nguyên nhân số một của bệnh thận vào giai đoạn cuối.

    2

    Vấn đề cụ thể là gì, và trong kho tàng tri thức còn khoảng trống nào?

    Mật độ xương (BMD) là một yếu tố quan trọng trong việc chẩn đoán loãng xương trong người Âu Mĩ.  Tuy nhiên trong người Việt sự chính xác của BMD trong việc tiên đoán gãy xương vẫn chưa được nghiên cứu.

    Thông tin về carotid endarterectomy vẫn còn rất hạn chế.  phẫu thuật này vẫn còn chưa được rõ ràng.

    Mặc dù microalbumin được đề nghị dùng để truy tìm bệnh tiểu đường thận, nhưng phần lớn bác sĩ vẫn không tuân theo qui định chung này.

    3

    Thế thì công trình nghiên cứu này sẽ đóng góp gì ?

    Nghiên cứu khả năng ứng dụng BMD trong người Việt hay một dân số khác sẽ giúp cho việc phát triển một tiêu chuẩn chẩn đoán mới.

    Để giúp cho bác sĩ thẩm định lợi ích của carotid endarterectomy, chúng tôi tính toán số ca phẫu thuật cần thiết để ngăn ngừa một ca bệnh tim trong những điều kiện khác nhau.

    Nhằm mục đích phát triển một phương pháp mới và đơn giản hơn cho việc chẩn đoán tiểu đường thận, chúng tôi ứng dụng một mô hình quyết định (decision making model) và phân tích hệ quả của thuật chữa trị ACE

    Phương pháp

    Phần phương pháp phải cung cấp một cách chi tiết những gì tác giả đã làm và làm như thế nào trong công trình nghiên cứu.  Ở đây, tác giả phải cẩn thận quân bình giữa hai nhu cầu: súc tích (vì không thể mô tả tất cả các kĩ thuật với những chi tiết chi li) và đầy đủ (tác giả phải trình bày đầy đủ thông tin sao cho người đọc biết được những gì đã làm).  Đạt được sự cân đối giữa súc tích và đầy đủ là một thách thức của người viết, và có thể của cả biên tập và nhà xuất bản.  Phần ph

    ươn

    g pháp cần phải cho ng

    ườ

    i (chẳng hạn nh

    ư

    đối tượng nghiên c

    u là ai, có tiêu chuẩn nào tuyển chọn đối tượng hay không, hay cách thức chọn mẫu như thế nào …)

    Có thể bài báo đề ra một phương pháp mới, và trong trường hợp đó, tác giả cần phải chú ý những tên gọi (và ý tưởng) xuất hiện nhiều lần trong bài báo.  Tác giả nên suy nghĩ kĩ về những tên gọi này: phải dùng chữ ngắn gọn mà dễ hiểu.  Nên gọi phương pháp điều trị là gì?  Phải sử dụng từ gì để mô tả chỉ tiêu của nghiên cứu?  Kinh nghiệm người viết bài này cho thấy trước khi viết cần phải liệt kê ra danh sách những từ hay sử dụng trong bài báo.  Không có gì lẫn lộn và khó chịu người đọc hơn là dùng nhiều từ khác nhau để gọi một hiện tượng!

    Một cấu trúc cứng nhắc sẽ làm cho phần phương pháp trở thành máy móc.  Nhưng đó lại là cấu trúc mà các tập san y khoa đòi hỏi cho các nghiên cứu lâm sàng đối chứng ngẫu nhiên (randomized clinical trial).  Trong cấu trúc này, tác giả phải viết dưới các tiêu đề như khái quát, nơi làm nghiên cứu, tiêu chuẩn tuyển chọn đối tượng, chỉ tiêu chính của nghiên cứu, chỉ tiêu phụ, cách đo lường, phương pháp phân tích dữ kiện … 

    Trong các nghiên cứu khác, tác giả có thể tự mình sáng tạo ra những tiêu đề thích hợp với công trình nghiên cứu.  Ngay cả nếu tác giả sau này phải xóa bỏ các tiêu đề này thì sự bố cục của chúng giúp ích cho tác giả rất nhiều.  Có thể dùngmột biểu đồ nh

    ư

    là một cách mô tả qui trình nghiên c

    u (chẳng hạn như thiết kế, tuyển chọn bệnh nhân, và phân tích dữ kiện).  Nếu cần, tác giả có thể thêm phần phụ lục để cung cấp chi tiết về phương pháp phân tích, mã (codes) dùng trong máy tính, hay phương pháp thu thập dữ kiện cùng phương pháp đo lường (đây là những phương pháp có thể giúp cho người duyệt bài hay người đọc có thể lặp lại thử nghiệm).

     

    Kết quả

    Phần kết quả phải được viết một cách ngắn gọn và đi thẳng vào vấn đề nêu ra trong phần dẫn nhập.  Tác giả phải trả lời cho được câu hỏi “Đã phát hiện gì?” Cần phải phân biệt rõ đâu là kết quả chính và đâu là kết quả phụ.  Phần kết quả phải có biểu đồ và bảng số liệu, và những dữ kiện này phải được diễn giải một cách ngắn gọn trong văn bản.  Những số liệu này phải trình bày sao cho lần lượt trả lời các mục đích mà tác giả đã nêu ra trong phần dẫn nhập.

    Tất cả các bảng thống kê, biểu đồ, và hình ảnh phải được chú thích rõ ràng; tất cả những kí hiệu phải được đánh vần hay chú giải một cách cụ thể để người đọc có thể hiểu được ý nghĩa của những dữ kiện này.  Trong phần kết quả, tác giả chỉ trình bày sự thật và chỉ sự thật (facts), kể cả những sự thật mà nhà nghiên cứu không tiên đoán trước được hay những kết quả “tiêu cực” (ngược lại với điều mình mong đợi). Trong phần kết kết quả này cao hay thấp, xấu hay tốt, v.v.. vì những nhận xét này sẽ  được đề cập đến trong phần

     

     

    Đối với phần lớn nhà nghiên cứu, đây là phần khó viết nhất vì nó không có một cấu trúc cố định nào cả.  Nói một cách ngắn gọn, trong phần này, tác giả phải trả lời câu hỏi “Những phát hiện này có nghĩa gì?”.  Tuy không phải theo cấu trúc cố định nào, tác cấu trúc như sau: (a) giải thích những dữ kiện trong phần kết quả; (b) so sánh những kết quả này với các nghiên cứu trước; (c) bàn về ý nghĩa của những kết quả; (d) chỉ ra những ưu điểm và khuyết điểm của cuộc nghiên cứu; (e) và sau cùng là một kết luận sao cho người đọc có thể lĩnh hội được một cách dễ dàng. 

    đề nghị một mô hình giải thích, tại sao những dữ kiện thu thập được có xu hướng đã quan sát trong cuộc nghiên cứu.  Nếu không giải thích được thì nhà nghiên cứu phải thành thật nói y như thế: không biết.  Tác giả còn phải so sánh với kết quả của những nghiên cứu trước và giải thích tại sao chúng (những kết quả) khác nhau, hay tại sao chúng lại giống nhau, và ý nghĩa của chúng là gì.  Ngoài ra, nhà nghiên cứu còn phải có trách nhiệm tự mình vạch ra những thiếu sót, những trắc trở, khó khăn trong cuộc nghiên cứu, cùng những ưu điểm của cuộc nghiên cứu, cũng như đưa ra các giải pháp khắc phục hay những đề xuất hướng nghiên cứu trong tương lai.  Sơ đồ 2 sau đây có thể dùng để làm dàn bài để

    Sơ đồ 2. 

    Câu hỏi cần phải trả lời

    Nội dung

    Phát hiện chính là gì?

    Phát biểu những phát hiện chính; đặt những phát hiện này vào bối cảnh của các nghiên cứu trước đây.

    Phát hiện đó có khả năng sai lầm không ?

    Xem xét những yếu tố sau đây: thiếu khách quan trong đo lường và thu thập số liệu? Số lượng đối tượng ít? Cách chọn mẫu có vấn đề? Các yếu tố khác chưa xem xét đến? Phân tích chưa đầy đủ?  Chưa điều chỉnh cho các yếu tố phụ? V.v…

    Ý nghĩa của phát hiện là gì?

    Đặt kết quả của nghiên cứu vào bối cảnh lớn hơn, và so sánh với các nghiên cứu trước đây.  Suy luận về cơ chế (nhưng không nên quá lời hay quá xa xỉ trong khi suy luận, mà phải nằm trong khuôn khổ của dữ kiện thật). 

    Kết luận có phù hợp với dữ kiện hay không?

    Kết luận phải rõ ràng, nhưng không nên đi ra ngoài khuôn khổ của dữ kiện.  Chẳng hạn như nếu kết quả cho thấy hút thuốc lá làm tăng ung thư phổi, tác giả không nên kết luận rằng ngưng hút thuốc lá sẽ giảm ung thư phổi.

    Hỗ trợ từ đồng nghiệp

    Những bài báo khoa học có giá trị thường là những bài báo đã được xem xét và duyệt đi duyệt lại nhiều lần, kể cả những lần phản hồi (response) hay phản biện lại những phê bình của những người bình duyệt.  Điều này đòi hỏi bài báo, trước khi gửi đi cho một tập san, phải được các đồng nghiệp nội bộ đọc và phê bình.  Tác giả không nên ngần ngại tiếp nhận những phê bình gay gắt từ đồng nghiệp.  Để làm việc này, tác giả cần phải có một danh sách những đồng nghiệp có thể duyệt bài.  Những đồng nghiệp này không hẳn phải là những tên tuổi lớn như giáo sư, mà có thể là nghiên cứu sinh.  Thật ra, các giáo sư ít khi nào có thì giờ đọc kĩ; chính các nghiên cứu sinh hay đồng nghiệp cấp thấp thường là những người có khả năng và có thì giờ chăm chú, có động cơ để cho ý kiến một cách nghiêm chỉnh.  Có hai nhóm đồng nghiệp có thể làm người duyệt bài nội bộ:

    * Những người bình duyệt chung, nhiệm vụ chính của họ là xem xét cách viết của tác giả có dễ hiểu hay không.  Bất cứ ai, kể cả những người không cùng chuyên môn, cũng có thể là người duyệt bài trong nhóm này, nhưng người duyệt bài lí tưởng nhất là người có nỗ lực suy nghĩ cẩn thận.

    * Những người bình duyệt có cùng chuyên môn, nhiệm vụ của họ là giúp tác giả chuẩn bị để đối phó với những người bình duyệt của tập san và ban biên tập.  Trong nhóm này, tác giả cần một hay hai thành viên trong cùng chuyên môn và có khả năng “soi mói” chi tiết hay nêu ra những sai sót của bài báo hay công trình nghiên cứu (chẳng hạn như nghiên cứu có đúng phương pháp không, diễn dịch có logic không, kết luận có đi ra ngoài dữ kiện không …).  Trong nhóm này, người duyệt lí tưởng là một người “khó tính ” sẵn sàng nói thẳng với tác giả những gì họ nghĩ, thậm chí không mấy có cảm tình với ý tưởng của tác giả.

     

    Cải tiến

    Muốn trở thành một tác giả khoa học tốt cần phải có thời gian.  Một bài báo khoa học thường nhắm vào một vấn đề hẹp.  Nhưng tác giả phải có một cái nhìn rộng và lớn hơn khi đọc bài báo của mình.  Cần phải đặt bài báo và kết quả nghiên cứu vào một bối cảnh lớn hơn để thấy thành quả ra sao hay những gì cần phải làm tiếp trong tương lai.

    Sơ đồ 3

    sau đây phác thảo vài cách tiếp cận để tác giả có thể tự mình cải tiến.  Nhiều tác giả thiếu kiên nhẫn vì họ chỉ muốn gửi bài báo đi càng sớm càng tốt, nhưng đó không phải là một hành động có hiệu quả cao.  Do đó, điều thứ nhất là không nên hấp tấp trong khi viết.  Sau khi viết xong bản thảo, có thể để đó vài ngày hay vài tuần.  Sau đó, đọc lại và xem xét những chi tiết nào cần thêm hay cần bỏ đi.  Đọc đi đọc lại với một cái nhìn mới để xem có gì cần phải phân tích thêm hay không, hay cách diễn dịch số liệu có hợp lí hay không.  Kiểm tra lại cách viết và các đoạn văn có ăn khớp với nhau hay không, ý tưởng có trôi chảy hay không … 

    Sau đó là xem xét đến những chi tiết.  Hai điểm quan trọng cần phải để ý

    ở đây.  Thứ nhất, kiểm tra tính nhất quán: cả số liệu hay dữ kiện và các chú thích phải nhất quán với văn bản, bảng thống kê, và biểu đồ.  Thứ hai là loại bỏ những “nhiễu”  — tức là những điểm lặp đi lặp lại hay những điểm làm cho người đọc sao lãng cái thông điệp chính trong bài báo.  Có khi cần phải kiểm tra từng chữ một xem nó có thích h

    p với mục đích của bài báo hay không.  Tránh dùng nh

    ng từ ngữ tối nghĩa, những biệt ngữ khó hiểu, hay những viết tắt mà người ngoài chuyên môn chưa quen biết.

    Một bài báo thường phải qua bình duyệt từ ban biên tập của tập san.  Nếu tập san cho tác giả cơ hội trả lời những phê bình này, đó là một bước tiến tích cực.  Tuy nhiên, việc trả lời những phê bình của ban biên tập không phải lúc nào cũng là việc làm thoải mái, dù sau khi phản biện thì bài báo sẽ tốt hơn.  Trong khi trả lời phê bình, điều tối quan trọng là không nên có thái độ quá chống chế, hay quá công kích người phê bình.  Tác giả có nhiệm vụ phải trả lời từng câu hỏi một, từng điểm phê bình một, và trả lời một cách lịch sự.  Nếu tác giả không đồng ý với người bình duyệt, tác giả có quyền nói thẳng.  Thông thường, sau khi trả lời bình duyệt, bài báo phải có sửa đổi, và tác giả phải thông báo cho ban biên tập biết những chỗ nào đã thay đổi và tại sao thay đổi.

    Khoa học là một trường hoạt động khá bình đẳng.  Công trình của tác giả có người khác bình duyệt, và tác giả cũng có cơ hội bình duyệt công trình của người khác.  Thành ra, để giúp đỡ đồng nghiệp và để tự mình cải tiến, tác giả nên nhận lời bình duyệt công trình nghiên cứu của các đồng nghiệp.  Nếu tác giả cảm thấy học hỏi được một vài điều từ việc trả lời phê bình của người khác, tác giả cũng có thể học hỏi nhiều điều từ việc đọc và phê bình công trình của đồng nghiệp.  Qua đọc và xem xét cẩn thận, tác giả sẽ cảm thấy mình trưởng thành và thoải mái với các nguyên lí và sự sắp xếp của các lí giải trong một bài báo khoa học.  Làm người bình duyệt là một hình thức tự mình trao dồi kĩ năng nghiên cứu: nhận dạng nhầm lẫn của người khác cũng có nghĩa là nâng cao kĩ năng nhận dạng nhầm lẫn của chính mình.  

    Ai trong chúng ta cũng muốn là tác giả của những bài báo khoa học tốt, những bài báo mà chúng ta có thể tự hào, và hi vọng sẽ được lưu truyền rất lâu trong tương lai.  Tuy nhiên, dù chúng ta có cẩn thận cách mấy, và bất kể bao nhiêu lần chúng ta đọc đi đọc lại, rà soát, xác suất bài báo có ít nhất là một sai lầm hay lỗi nhỏ đều rất cao.  Một cá nhân rất khó mà phát hiện tất cả các lỗi lầm của chính mình.  Điều đó có nghĩa là tác giả cần đồng nghiệp, những người đọc và phê bình một cách nghiêm túc và thành thật.  Tác giả cần phải bỏ tính tự ái, và không nên sợ hãi trước những phê phán.  Theo kinh nghiệm của người viết bài này, những phê phán của đồng nghiệp, dù lớn hay nhỏ, dù gay gắt hay thân thiện, lúc nào cũng giúp cho bài báo trở nên hoàn hảo hơn.

    Ở phần đầu tôi đã nêu ra vài lí do tại sao cần phải công bố báo cáo khoa học trên các diễn đàn khoa học quốc tế, ở đây tôi muốn nói thêm một lí do quan trọng hơn nữa. 

    Đối với quốc gia, công bố báo cáo khoa học trên các diễn đàn khoa học quốc tế là một cách không chỉ nâng cao sự hiện diện, mà còn nâng cao năng suất khoa học, của nước ta.  Ở phương Tây người ta thường đếm số lượng bài báo khoa học mà các nhà khoa học công bố trên các tập chí khoa học để đo lường và so sánh hiệu suất khoa học giữa các quốc gia.  Hiện nay, trong bất cứ lĩnh vực nào, phải nhìn nhận một thực tế là hiệu suất khoa của nước ta chưa cao.  Phần lớn các công trình nghiên cứu tại nước ta chỉ được kết thúc bằng những buổi nghiệm thu hay luận án. Đối với hoạt động khoa học, cho dù công trình đã được nghiệm thu hay đưa vào luận án, nếu chưa được công bố trên các diễn đàn khoa học quốc tế thì công trình đó coi như chưa hoàn tất, bởi vì nó chưa qua “thử lửa” với môi trường rộng lớn hơn. 

    Để kết thúc bài viết này, tôi xin mượn một câu nói của một người thông thái, Khổng Tử: “Nếu dùng ngôn ngữ không đúng, thì những gì được phát biểu sẽ bị hiểu sai; nếu những gì phát biểu bị hiểu sai, thì những gì cần phải làm sẽ không thực hiện được; và những gì không thực hiện được, đạo đức và nghệ thuật sẽ trở nên tồi tệ hơn.”  Và tôi cũng có thể thêm rằng, nước nhà sẽ thiệt thòi hơn.

    Sơ đồ 3.  Cải tiến

    Cách tiếp cận căn bản

    Chú thích

    Cải tiến bài báo: Không hấp tấp; đọc và sửa lại liên tục.

     

     

    ·   Cần phải để dành thời gian, suy nghĩ lại, lĩnh hội vấn đề, đọc lại một lần nữa với một cách nhìn hoàn toàn mới

    ·   Xem xét lại cấu trúc bài báo; xem có phần nào thiếu nhất quán hay không; có mâu thuẫn trong lí giải hay không; xóa bỏ những phần lặp đi lặp lại.

    Trả lời những phê bình của người duyệt bài

    ·   Trả lời từng điểm một, tuyệt đối không chối bỏ bất cứ điểm nào;

    ·   Phải lịch sự trong khi trả lời, không dùng những từ mang tính thách thức và tấn công cá nhân; nếu cần bất đồng ý kiến với người duyệt bài, cứ nói thẳng như thế;

    ·   Thông báo cho biên tạp biết những gì đã thay đổi trong bài báo và giải thích tại sao phải thay đổi.

     

    Cải tiến kĩ năng phê bình công trình của người khác

    ·   Sẵn sàng phục vụ làm người bình duyệt bài cho các tập san khoa học;

    ·   Công bằng và vô tư trong việc phê bình;

    ·   Không duyệt bài nếu cảm thấy mình có mâu thuẫn quyền lợi cá nhân.

     

    Những điểm chính

    Nên bắt đầu viết sớm trước khi hoàn tất công trình nghiên cứu.

    Tập trung vào những gì mà người đọc cần đọc: tựa đề, tóm tắt, biểu đồ, bảng số liệu.

    Phát thảo một cách tiếp cận có hệ thống: dẫn nhập, phương

    Cải tiến bài báo bằng cách yêu cầu giúp đỡ từ đồng nghiệp.

    Địa chỉ liên lạc:

    Nguyễn Văn Tuấn

    Viện nghiên cứu y khoa Garvan

    Đại học New South Wales

    Sydney, Australia

    Email:

    t.nguyen@garvan.org.au

     

    Cách Vẽ Biểu Đồ Phân Tích Báo Cáo Bằng Power Bi Desktop

    Xem báo cáo dưới dạng biểu đồ phân tích mang lại sự trực quan và nâng cao hiệu quả công việc. Trong bài viết này chúng ta sẽ cùng tìm hiểu về cách vẽ biểu đồ từ các dữ liệu trong báo cáo.

    1. Vẽ biểu đồ phân tích từ báo cáo trong Power BI Desktop

    Để bắt đầu chúng ta sẽ cần một file báo cáo, vì vậy tôi chọn file đã tạo ra trong bài học trước, nếu bạn chưa có file này hãy xem lại bài viết sau: Hướng dẫn chỉnh sửa và định hình dữ liệu trong Power BI Desktop.

    Giao diện xử lý sẽ có 6 mục mà bạn cần chú ý như trên, chính là các khu vực thường xuyên được sử dụng:

    Nơi lựa chọn xem báo cáo ở dạng biểu đồ hay các con số và mối quan hệ giữa các cột dữ liệu.

    Vùng hiển thị, nơi chứa biểu đồ để bạn xử lý và sắp xếp.

    Cũng giống như nhiều công cụ khác Power BI cho phép tạo ra nhiều trang. Để bạn tùy ý sử dụng cùng dữ liệu cho nhiều mục đích khác nhau.

    Fields: nơi chứa các bảng dữ liệu và các cột được dùng để vẽ biểu đồ.

    Visualizations: khu vực chỉnh sửa biểu đồ, nơi bạn chọn loại biểu đồ, màu sắc, cách hiển thị của từng dữ liệu…

    Filters: cho phép thêm vào các điều kiện để xử lý dữ liệu trong biểu đồ. Ví dụ: hiển thị Top 10 quốc gia đứng đầu trong báo cáo.

    Bắt đầu bằng cách tích 1 cột từ các bảng dữ liệu tại Fields mà bạn muốn dùng để vẽ biểu đồ. Ở đây, ta chọn cột State từ bảng RetirementStats để làm ví dụ, bạn chú ý làm theo để có kết quả tương tự và áp dụng cho các bước tiếp theo.

    Trong hình trên bạn sẽ thấy rằng Power BI Desktop sẽ tự động tạo ra một bản đồ. Sở dĩ phần mềm có thể làm việc này là vì cột State có chứa dữ liệu vị trí địa lý. Để nhìn rõ biểu đồ của chúng ta, bạn có các tùy chọn phóng to bằng cách kéo tại các góc hoặc chọn Focus mode ngay góc phải bên dưới biểu đồ, nhấn nút ” Back to report ” để trở lại giao diện mặc định.

    Bây giờ, hãy chú ý cột Visualization bạn có thể chọn các loại biểu đồ khác nhau. Power BI cung cấp khá nhiều định dạng, cho phép tải hoặc mua các loại biểu đồ theo nhu cầu sử dụng.

    Tại đây, chúng ta sẽ chọn biểu đồ cột, một dạng rất thường gặp khi lập biểu đồ phân tích báo cáo. Bạn sẽ thấy bản đồ lúc này sẽ được thay thế bằng một trang trắng, sở dĩ như vậy vì biểu đồ cột cần có các biến số nhất định để thể hiện.

    Hãy thêm vào biến số Overall rank từ Fields để có thêm biến so sánh giữa các tiểu bang. Khi đã đủ dữ liệu bao gồm tên các tiểu bang (State) và thứ hạng (Overall Rank), biểu đồ sẽ hiển thị, bạn có thể thêm bao nhiêu mục tùy thích.

    Bạn có chú ý thấy rằng các cột xếp theo Overall rank đang bị ngược với thứ hạng thấp nhất đứng trước. Đó là vì Power BI không hiểu được đây là thứ hạng, chúng ta sẽ cần đảo ngược nó lại với vị trí đầu tiên sẽ có Overall rank là 1 (Nebraska).

    Với mỗi loại biểu đồ ta lại có các tùy chỉnh ngay trong Visualizations, trong ví dụ trên ta có thể sử dụng dạng đường thay cho dạng cột bằng cách kéo thả dữ liệu từ Column Values xuống Line Values.

    Vì biểu đồ mà chúng ta đang tạo có dữ liệu khá lớn với số lượng các tiểu bang lên đến 50. Để tập trung vào các thông tin cần thiết, ta cần nhóm các tiểu bang theo thứ tự mong muốn (ví dụ: 10 hạng đầu).

    Để làm điều này, chú ý cột Filters do biểu đồ hiện tại đang sắp xếp theo dữ liệu tại cột Overall rank. Ta sẽ thêm vào các tiêu chuẩn để tạo bộ lọc cho biểu đồ, ví dụ ở đây ta tùy biến Show items when the value is less than 11 để hiển thị 10 thứ hạng đầu.

    Như vậy, với bộ công cụ được Power BI Desktop cung cấp miễn phí, bạn hoàn toàn có thể tạo ra bất kì biểu đồ nào với độ tùy biến từ đơn giản đến phức tạp. Để có thể áp dụng một cách thành thục những tính năng này cần sự tìm hiểu và trau dồi trong thời gian dài.

    https://docs.microsoft.com/en-us/power-bi/desktop-getting-started#build-reports

    Nhu cầu đào tạo doanh nghiệp

    là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

    Tham khảo chương trình đào tạo:

    Biên soạn và tổng hợp nội dung

    7 Loại Biểu Đồ Dùng Để Minh Họa &Amp; Phân Tích Dữ Liệu Hoạt Động Dn

    Biểu đồ dùng để minh họa & phân tích dữ liệu

    1. Biểu đồ đường

    Biểu đồ đường chỉ sự thay đổi của các biến theo thời gian qua các điểm dữ liệu.Loại biểu đồ này hỗ trợ cho việc quan sát sự thay đổi của bộ dữ liệu qua thời gian. Ví dụ thống kê lượng người dùng vào 3 trang landing page hàng tháng trong một chu kỳ 1 năm. (hình)

    2. Biểu đồ thanh

    Ví dụ như minh họa doanh thu của công ty thay đổi theo thời gian. (xem hình)

    Biểu đồ thanh là một dạng khác phù hợp cho việc so sánh bộ dữ liệu. Có 2 dạng là biểu đồ thanh đứng và thanh ngang. Không chỉ có tác dụng so sánh, biểu đồ thanh còn làm nổi bật giữa các biến qua các thanh có màu sắc và độ dài theo giá trị của dữ liệu.

    3. Biểu đồ Histogram

    Biểu đồ Histogram thường bị nhầm lẫn với biểu đồ dạng thanh vì hình dạng của chúng khá giống nhau ở cách hiển thị dạng cột.

    Tuy nhiên mục tiêu của chúng khác nhau dẫn đến hình thành 2 dạng biểu đồ riêng biệt như vậy.

    Biểu đồ Histogram minh họa dữ liệu qua một khoảng thời gian liên tục và thời gian xác định. Trục Y bạn có thể thấy giá trị của tần suất và trục X thể hiện giá trị liên tục của thời gian. (hình)

    Không như biểu đồ Histogram, biểu đồ thanh không chỉ các giá trị liên tục mà mỗi cột thể hiện một loại thuộc tính cần để minh họa.

    Khi minh họa số lượng người mua hàng trong những năm khác nhau thì sử dụng biểu đồ thanh sẽ phù hợp hơn.

    Tuy nhiên, nếu bạn muốn biết số lượng khách hàng yêu cầu đơn hàng trong các giá trị như $10–100, $101–200, $201–300 bạn sẽ dùng biểu đồ Histogram.

    4. Biểu đồ tròn

    Ví dụ, minh họa phần trăm tổng doanh thu của mỗi loại sản phẩm. (xem hình)

    Biểu đồ tròn thể hiện thị phần của mỗi giá trị trong tập dữ liệu.

    Loại biểu đồ này hữu ích trong việc thể hiện cấu thành của bộ dữ liệu.

    5. Phân phối điểm

    Biểu đồ phân phối điểm thể hiện sự kết nối giữa các điểm trong dữ liệu.

    Ví dụ, bạn có thể thấy tỷ lệ chuyển đổi thay đổi theo kích cỡ của sản phẩm giảm giá. (xem hình)

    6. Biểu đồ bong bóng

    Đây là dạng biểu đồ bong bóng cho phép thể hiện 3 biến và so sánh các giá trị của 1 biến dựa trên 2 biến còn lại.

    Ví dụ: 2 biến tỷ lệ chuyển đổi và giảm giá đại diện ở 2 cột X và Y. Biến minh họa trên mặt phẳng là doanh thu, được chỉ ra bởi các hình tròn và kích cỡ của chúng tùy theo giá trị doanh thu. (hình)

    7. Biểu đồ địa lý

    Biểu đồ địa lý là một cách minh họa được đánh giá là đơn giản. Khi được sử dụng, chúng sẽ minh họa cho các giá trị của các vùng, quốc gia, lục địa.  (hình)

    Bạn đang xem bài viết Vietsciences; Nguyễn Văn Tuấn; Nguyen Van Tuan;Phân Tích Số Liệu Bằng Biểu Đồ ; Hướng Dẫn Phân Tích Số Liệu Và Vẽ Biểu Đồ Bằng R ; Science, Khoa Hoc, Khoahoc, Tin Hoc, Informatique;Computer; Vat Ly; P trên website Maiphuongus.net. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!