1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chuong 08 phan tich so lieu bang bieu do

41 526 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 08 phân tích số liệu bằng biểu đồ
Trường học Trường Đại học Khoa Học Tự Nhiên - ĐHQG Hà Nội
Chuyên ngành Phân tích dữ liệu thống kê
Thể loại Báo cáo môn học
Thành phố Hà Nội
Định dạng
Số trang 41
Dung lượng 793,7 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

dùng phần mềm R phân tích số liệu bằng biểu đồ

Trang 1

8

Y u t th giác r t quan tr ng Ng i Trung Qu c có câu “m t bi u đ có giá tr

b ng c v n ch vi t” 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 hay trellis có

th t i t website c a R Trong ch ng này tôi 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à

Trang 2

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

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

Trang 3

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à

Trang 4

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”,

> 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")

Trang 5

> 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")

> plot(y, type="l", lty=4); title(main="Production data", sub="lty=4")

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 h oc 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')

> for (i in c('red', 'blue', 'green'))

Trang 6

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')

Varying the line thickness

Hình d ng c a bi u đ c ng có th thay đ i b ng type nh sau:

> op <- par(mfrow=c(3,2))

Trang 7

Khung bi u đ có th ki m soát b ng l nh bty v i các thông s nh sau:

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à:

Trang 9

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 jo b ng ví d sau đây:

> 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

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 đ

Trang 10

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")

> mtext("Text on side 1, cex=1", side=1,cex=1)

> mtext("Text on side 2, cex=1.2", side=2,cex=1.2)

> mtext("Text on side 3, cex=1.5", side=3,cex=1.5)

> mtext("Text on side 4, cex=2", side=4,cex=2)

> text(15, 4.3, "text(15, 4.3)")

> text(35, 3.5, adj=0, "text(35, 3.5), left aligned")

> text(40, 5, adj=1, "text(40, 5), right aligned")

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 đó

> N <- 200

Trang 11

Ph n text(0, 1) yêu c u R vi t ch t i t a đ x=0, y=1

> arrows(-1, 1.0, 1.5, 1.5)

> text(0, 1, "Trung tam", cex=0.7)

Trang 12

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 Theo tôi, 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, tôi 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

Tôi s quay l i ví d 2 trong ch ng tr c Trong ví d đó, 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:\works\insulin d i tên chol.txt 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”)

> cong <- read.table(“chol.txt”, header=TRUE, na.strings=”.”)

> attach(cong)

Hay đ ti n vi c theo dõi tôi 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”,

Trang 13

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

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

Trang 14

Có 22 nam và 28 n a 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”)

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

Trang 15

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

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

Trong 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

Trang 16

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,

main=”Strip chart for triglycerides”, xlab=”mg/L”)

Trang 17

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 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")

Trang 18

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

Bi u đ 10a Xác su t phân ph i m t đ cho

bi n age (đ tu i) Bi u bi n age (đ 10b Xác su t phân ph i m t đ cho đ tu i) v i nhi u interquartile

Trang 19

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):

> iqr <- diff(summary(age)[c(2,5)])

> des <- 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:

> iqr <- diff(summary(age)[c(2,5)])

> des <- density(age, width=1.5*iqr)

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

> n <- 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)

Trang 20

bi n age (đ tu i) Bi u phân ph i chu n hay không đ 12 Ki m tra bi n age có theo lu t

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

đ (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")

Trang 21

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")

Trang 22

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)

Trang 23

8.6.5 Bi u đ đi m (dotchart)

M t đ th khác cung c p thông tin gi ng nh barplot là dotchart:

> dotchart(bmi, xlab="Body mass index (kg/m^2)", main="Distribution of BMI")

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:

> plot(tc, hdl)

Trang 25

F M

M

F F

F F F

F

M

F M

F

F M F

M M

M F

M M F

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”)

> reg <- lm(hdl ~ tc)

> abline(reg)

K t qu là Bi u đ 19a d i đây Chúng ta 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")

Trang 26

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

> lipid <- data.frame(age,bmi,hdl,ldl,tc)

> pairs(lipid, pch=16)

K t qu s là:

Ngày đăng: 12/09/2013, 16:21

HÌNH ẢNH LIÊN QUAN

Hình d ng c a bi u  đ  c ng có th  thay  đ i b ng  type  nh  sau: - Chuong 08   phan tich so lieu bang bieu do
Hình d ng c a bi u đ c ng có th thay đ i b ng type nh sau: (Trang 6)

TỪ KHÓA LIÊN QUAN

w