Tải bản đầy đủ (.pdf) (41 trang)

Chuong 08 phan tich so lieu bang bieu do

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (793.12 KB, 41 trang )

8
Phân tích s li u b ng bi u đ
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à
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))
N <- 200
x <- runif(N, -4, 4)
y <- sin(x) + 0.5*rnorm(N)
plot(x,y, main=”Scatter plot of y and x”)
hist(x, main=”Histogram of x”)
boxplot(y, main=”Box plot of y”)


> barplot(x, main=”Bar chart of x”)
> par(mfrow=c(1,1))
Histogram of x

20
15

Frequency

0
y


0

-2

5

-1

10

1

25

30

2

Scatter plot of y and x

-2

0

2

4

-4


-2

0

x

x

Box plot of y

Bar chart of x

2

4

2

-2

-2

-1

0

0

1


2

-4

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 hồ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))
N <- 200
x <- runif(N, -4, 4)
y <- 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).


2
1
0
-1
-2

-2

-1

y

0

Production

1

2

Production and x factor
Second line of title here


-4

-2

0

2

4

-4

-2

x

0

2

4

X factor

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 đ .
Ngồ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”)

0
-1
-2

Production

1

2

Plot of production and x factor

-4

-2

0
X factor
Figure 1

2

4


8.1.3 Cho gi i h n c a tr c tung và tr c hồnh
N u khơng cung c p gi i h n c a tr c tung và tr c hồ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 số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à đ
di n khác nhau.
>
>
>
>
>

par(mfrow=c(2,2))
plot(y, type="l");
plot(y, type="b");
plot(y, type="o");
plot(y, type="h");

title("lines")
title("both")
title("overstruck")
title("high density")


1
100

150

200

0

50

100

Index

Index

overstruck

high density

150

200

150

200


1
0
-1
-2

-2

-1

y

0

1

2

50

2

0

y

0
-2

-1


y

0
-2

-1

y

1

2

both

2

lines

0

50

100

150

200

0


Index

Bi u đ 3. Ki u bi u đ và đ

50

100
Index

ng bi u di n.

Ngồi ra, chúng ta c ng có th nhi u đ

ng bi u di n b ng lty nh sau:

ng bi u


>
>
>
>
>

par(mfrow=c(2,2))
plot(y, type="l",
plot(y, type="l",
plot(y, type="l",
plot(y, type="l",


lty=1);
lty=2);
lty=3);
lty=4);

title(main="Production
title(main="Production
title(main="Production
title(main="Production

2
1
y

-2

-1

0

1
0

100

150

200


0

50

100

150

Index
lty=2

Production data

Production data

200

1
-1
-2

-2

-1

y

0

1


2

Index
lty=1

0

y

-1
-2

50

2

0

y

sub="lty=1")
sub="lty=2")
sub="lty=3")
sub="lty=4")

Production data

2


Production data

data",
data",
data",
data",

0

50

100

150

200

0

Index
lty=3

Bi u đ 4. nh h

50

100

150


200

Index
lty=4

ng c a lty.

8.1.5 Màu s c, khung, và kí hi u
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 đ
xanh lá cây:

ng bi u di n v i ba màu đ , xanh n

> plot(runif (10), ylim=c(0,1), type='l')
> for (i in c('red', 'blue', 'green'))
{
lines(runif (10), col=i )
}
> title(main="Lines in various colours")

c bi n, và


0.0

0.2


0.4

runif(10)

0.6

0.8

1.0

Lines in various colours

2

4

6

8

10

Index

Ngồ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 đ

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

> for (i in 5:1)
{
lines( runif(5), col=i, lwd=i )
}
> title(main="Varying the line thickness")

0.0

0.2

0.4

runif(5)

0.6

0.8

1.0

Varying the line thickness

1

2

3

4


5

Index

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

ng:


> plot(runif(5), type = 'p',
main = "plot type 'p'
> plot(runif(5), type = 'l',
main = "plot type 'l'
> plot(runif(5), type = 'b',
main = "plot type 'b'
> plot(runif(5), type = 's',
main = "plot type 's'
> plot(runif(5), type = 'h',
main = "plot type 'h'
> plot(runif(5), type = 'n',
main = "plot type 'n'
> par(op)

(stair steps)")
(histogram)")
(no plot)")

0.7


runif(5)

0.3

0.5

0.9
0.7
0.5

2

3

4

5

1

2

3

4

Index

plot type 'b' (both points a nd line s)


plot type 's' (sta ir steps)

5

0.2

0.4

0.4

0.6

runif(5)

0.8

0.8

Index

0.6

runif(5)

(both points and lines)")

plot type 'l' (lines)

0.3
1


runif(5)

(lines)")

0.9

plot type 'p' (points)

(points)")

1

2

3

4

5

1

2

3

4

Index


plot type 'h' (histogra m)

plot type 'n' (no plot)

5

0.6

runif(5)

0.4

0.3
0.2

0.2

0.1

runif(5)

0.4

Index

1

2


3
Index

4

5

1

2

3

4

5

Index

Khung bi u đ có th ki m sốt b ng l nh bty v i các thông s nh sau:
bty=”n”
bty=”o”
bty=”c”
bty=”l”
bty=”7”

Khơng có vịng khung chung quanh bi u đ
Có 4 khung chung quanh bi u đ
V m t h p g m 3 c nh chung quanh bi u đ theo hình ch C
V h p 2 c nh chung quanh bi u đ theo hình ch L

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


Available symbols

21

22

23

24

25

16

17

18

19

20


11

12

13

14

15

6

7

8

9

10

1

2

3

4

5


0
-2

-1

y

1

2

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

-4

-2

0

2

4

x

Bi u đ 4.
bty=”l”.

nh h


ng c a pch=16 và col=”red”,


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

N <- 200
x <- runif(N, -4, 4)
y <- x + 0.5*rnorm(N)
plot(x,y, pch=16, main=”Scatter plot of y and x”)
reg <- 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.

-2

0


y

2

4

Scatter plot of y and x

Production
Regression line

-4

*

-4

-2

0

2

4

x

Bi u đ 5. nh h

8.1.7 Vi t ch


ng c a legend
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 số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")
Text on side 3, cex=1.5

40, 5), right aligned

4

text(15, 4.3)

Text on side 4, cex=2

0
-4

-2

Text on side 2, cex=1.2

2

text(35, 3.5), left aligned

0

50

Text on side 1, cex=1

100

150

200

8.1.8
t kí hi u vào bi u đ . abline() có th s d ng đ v m t đ
v i nh ng thông s nh sau:

ng th ng,

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.
Ngồ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


> x <- runif(N, -4, 4)
> y <- x + 0.5*rnorm(N)
> plot(x,y, pch=16, main=”Scatter plot of y and x”)

-4

-2

y


0

2

4

Scatter plot of y and x

-4

-2

0

2

4

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.
> arrows(-1, 1.0, 1.5, 1.5)
> text(0, 1, "Trung tam", cex=0.7)


2


4

Scatter plot of y and x

-4

-2

y

0

Trung tam

-4

-2

0

2

4

x

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


“Nam”, “Nu”,“Nam”,“Nam”,“Nam”, “Nu”,“Nam”,“Nam”, “Nu”, “Nu”)
age <- c(57,
63,
61,
60,
51,

64,

51,
45,
50,
58,

bmi <- c( 17,
20,
22,
24,

60,
60,
70,
60,
60,

18,
21,
22,
24,

65,
42,
51,
55,
45,

18,
21,
22,

24,

47,
64,
63,
74,
63,

18,
21,
22,
25,

65,
49,
54,
48,
52,

76,
44,
57,
46,
64,

61,
45,
70,
49,
45,


59,
80,
47,
69,
64,

57,
48,
60,
72,
62)

18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 20,
21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,
23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24,
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,
5.0,
3.1,
4.4,
3.0,

3.0,

1.3,
3.0,
4.3,
4.1,

3.0,
1.2,
1.7,
2.3,
4.4,

4.0,
0.7,
2.0,
6.0,
2.8,

2.1,
4.0,
2.1,
3.0,
3.0,

3.0,
4.1,
4.0,
3.0,
2.0,

3.0,

4.3,
4.1,
2.6,
1.0,

3.0,
4.0,
4.0,
4.4,
4.0,

3.0,
4.3,
4.2,
4.3,
4.6,

tc <-c (4.0,
6.2,
4.3,
5.6,
6.2,

3.5,
4.1,
4.8,
8.3,
6.7,

4.7,

3.0,
4.0,
5.8,
6.3,

7.7,
4.0,
3.0,
7.6,
6.0,

5.0,
6.9,
3.1,
5.8,
4.0,

4.2,
5.7,
5.3,
3.1,
3.7,

5.9,
5.7,
5.3,
5.4,
6.1,

6.1,

5.3,
5.4,
6.3,
6.7,

5.9,
7.1,
4.5,
8.2,
8.1,

4.0,
3.8,
5.9,
6.2,
6.2)

tg <- c(1.1,
1.7,
2.2,
3.3,
2.4,

2.1,
1.0,
2.7,
3.0,
3.3,

0.8,

1.6,
1.1,
1.0,
2.0,

1.1,
1.1,
0.7,
1.4,
2.6,

2.1,
1.5,
1.0,
2.5,
1.8,

1.5,
1.0,
1.7,
0.7,
1.2,

2.6,
2.7,
2.9,
2.4,
1.9,

1.5,

3.9,
2.5,
2.4,
3.3,

5.4,
3.0,
6.2,
1.4,
4.0,

1.9,
3.1,
1.3,
2.7,
2.5)

2.0,
4.0,
4.2,
4.0,
4.0)

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


cho m t bi n s

r i r c (discrete variable):

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 :
> sex.freq <- table(sex)
> sex.freq
sex
Nam Nu
22 28


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

Frequency of males and females

0


5

Nam

10

15

20

Nu

25

Frequency of males and females

Nam

Nu

0

Bi u đ 8a. T n s gi i tính th hi n b ng
c ts .

5

10

15


20

25

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

cho hai bi n s

r i r c (discrete variable):

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 :
> ageg <- cut(age, 3)
> table(ageg)
ageg
(42,54.7] (54.7,67.3]
19

24

(67.3,80]
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:
> age.sex <- 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”)

0

0

2

5

4

10

6

8

15

10

20

12

14

Number of males and females in each age group


(42,54.7]

(54.7,67.3]

(67.3,80]

(42,54.7]

(54.7,67.3]

(67.3,80]

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 .

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


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(ageg))
pie(table(cut(age,5)))

(42,54.7]
(49.6,57.2]

(42,49.6]

(72.4,80]

(67.3,80]

(54.7,67.3]

Bi u đ 8a. T n s cho 3 nhóm tu i

(64.8,72.4]
(57.2,64.8]

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



Strip chart for triglycerides

1

2

3

4

5

6

mg/L

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 r t cao (>5).
8.6.2 Histogram
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")



Histogram of age

8
0

0

2

2

4

6

No of patients

6
4

Frequency

8

10

10

12


12

Frequency distribution by age group

40

50

60

70

80

40

50

60

age

70

80

Age group

Bi u đ 9a. Tr c tung là s b nh nhân (đ i Bi u đ 9b. Thêm tên bi u đ và tên c a tr c
t ng nghiên c u) và tr c hoành là đ tu i. trung và tr c hoành b ng xlab và ylab.

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.
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)
density.default(x = age)

Density

0.00

0.00

0.01

0.02

0.02
0.01

Density

0.03

0.03

0.04

0.04


Histogram of age

30

40

50

60

70

N = 50 Bandwidth = 3.806

80

90

40

50

60

70

80

age


Bi u đ 10a. Xác su t phân ph i m t đ cho Bi u đ 10b. Xác su t phân ph i m t đ cho
bi n age (đ tu i).
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):
>
>
>
>

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)
lines(des, lty=2)

Density


0.00

0.01

0.02

0.03

0.04

Histogram of age

30

40

50

60

70

80

90

age

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 và sort nh sau:
> 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).


60

0.0

50

0.2

0.4

(1:n)/n

0.6

Sample Quantiles

70

0.8

80


1.0

Normal Q-Q Plot

50

60

70

80

-2

sort(age)

-1

0

1

2

Theoretical Quantiles

Bi u đ 11. Xác su t phân ph i m t đ cho Bi u đ 12. Ki m tra bi n age có theo lu t
bi n age (đ tu i).
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 hồ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")



×