Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

t.test(x,alternative= c(“two.sided”, “less”, “greater”),mu = mu_0, conf.level = 0.

95)
# Trong đó:
o x: véc tơ d li u.
o alternative: xác đ nh ki m đ nh là hai phía (“two.sided”), bên trái (“less”) hay bên
ph i (“greater”), mặc đ nh là two.sided.
o mu = mu_0: giá tr c n ki m đ nh.
o conf.level: xu t ra kho ng tin cậy v i đ tin cậy tương ứng.
Ví d 1.23. Trong file d li u Diem_TN, ta th y đi m toán (T) trung bình c a 30 học sinh
là 7,22. Chúng ta sẽ ki m đ nh đi m toán c a học sinh toàn trường có th c s th p hơn 8
hay không v i mức ý ngh a 5%? Đ ng thời xác đ nh kho ng tin cậy 95% cho đi m toán
trung bình c a toàn trường v i câu l nh”
t.test(Diem_TN$T, mu = 8, conf.level = 0.95 )
K t qu hi n th :
One Sample t-test
data: Diem_TN$T
t = -4.7092, df = 29, p-value = 5.689e-05
alternative hypothe sis: true mean is not equal to 8
95 percent confidence interval:
6.881241 7.558759
sample estimates:
mean of x
7.22

Từ kết qu trên ta thu được”


- Th ng kê ki m đ nh t = -4.7092, bậc t do n – 1 = 29, p-value = 5.689e-05.
- Kho ng tin cậy 95%: 6.881241 ≤ a ≤ 7.558759.
- V i mức ý ngh a 5%, ta th y p-value (r t th p) < 0.05, do đó bác bỏ H0 tức đi m
trung bình toán c a học sinh toàn trường th p hơn 8.
Nếu s dụng giá tr th ng kê t = -4.7092, ta so sánh v i t1n−−1/2 = t0,975
29
= 2.045 (dùng l nh
qt(0.975, 29)) ta cũng có kết luận tương t .
• Kiểm định giả thuyết cho tỷ lệ một mẫu
Gi s c n ki m đ nh t l phẩn t thỏa mãn tính ch t A trong t ng th . Kh o sát m t
c mẫu n . Gọi m là t ng s ph n t thỏa mãn tính ch t A trong n ph n t kh o sát, suy ra
m
t l mẫu: f = . Gi thuyết c mẫu kh o sát n ph i tương đ i l n.
n
 p  p0

Gi thuyết: H0 : p = p0 ; Đ i thuyết: H1 :  p  p0 (M t trong 3 trường hợp).
p  p
 0

f − p0
Tính th ng kê ki m đ nh: u = . n.
p0 .(1 − p0 )

38
Miền bác bỏ:
o V i H1 : p  p0 bác bỏ H0 nếu u  − z1− / 2 hoặc u  z1− /2 .
o V i H1: p  p0 bác bỏ H0 nếu u  − z1− .
o V i H1 : p  p0 bác bỏ H0 nếu u  z1− .
Đ tìm z1− / 2 , s dụng hàm qnorm(1-alpha/2).
S dụng hàm prop.test đ ki m đ nh:
prop.test(m, n, p = p0, alternative = c(“two.sided”, “less”, “greater”), conf.level =
0.95)
# trong đó:
o m: s ph n t thỏa mãn tính ch t A trong n ph n t kh o sát.
o n: c mẫu.
o alternative: xác đ nh ki m đ nh là hai phía (“two.sided”), bên trái (“less”) hay bên
ph i (“greater”).
o p = p0: giá tr c n ki m đ nh .
o conf.level: xu t ra kho ng tin cậy v i đ tin cậy tương ứng.
Ví d 1.24. Trong m t cu c b u c th trưởng t i m t thành ph , ứng c viên A tin r ng có
trên 50% người dân thành ph ng h ông ta. Đ ki m đ nh điều này, các chuyên gia
th ng kê chọn ngẫu nhiên 800 người dân trong thành ph , th y có 448 người dân cho ý
kiến ng h ông A. Hãy nhận xét xem tuyên b c a ông A về t l c tri có đúng không
v i mức ý ngh a 1%?
Ta có:
C mẫu kh o sát n = 800 .
S người dân ng h ông A: m = 448 .
 H 0 : p = 0.5
Gi thuyết c n ki m tra: 
 H1 : p  0.5
Trong đó p là t l người dân thành ph ng h ông A.
S dụng hàm prop.test:
> n=800;m=448
> prop.test(m ,n,p=0.5,alternative="greater",conf.level=0.99)
K t qu hi n th :
1-sample proportions test with continuity
correction
data: m out of n, null probability 0.5
X-squared = 11.281, df = 1, p-value = 0.0003915
alternative hypothesis: true p is greater than 0.5
99 perc ent confidence interval:
0.5182781 1.0000000
sample estimates:
p
0.56

39
Kết qu cho biết p-value = 0.0003915 <1% dẫn đến bác bỏ gi thuyết H0, ta kết luận r ng
t l người dân ng h ông A trong thành ph trên 50%.Kho ng tin cậy 99% cho t l p là:
0.5182 ≤ p ≤ 1.0000.
• Kiểm định trung bình hai mẫu
Ví d 1.25. Xét d li u Diem_TN, qua phân tích mô t chúng ta th y nam có đi m toán
(T) trung bình (7.3) cao hơn n (7.1). Câu hỏi đặt ra là có ph i thật s đi m toán trung
bình c a nam và n khác nhau hay không.
x2 − x1
Tính th ng kê ki m đ nh: t = . Trong đó x1 và x2 là đi m toán trung bình c a hai
SED
nhóm nam và n , và SED là đ l ch chuẩn c a ( x1 − x2 ) . SED có th tính b ng công thức:
SED = SE12 + SE22 .Trong đó SE1 , SE2 là sai s chuẩn (standard error) c a hai nhóm nam và
n . Theo lí thuyết xác su t, t tuân theo luật phân ph i t v i bậc t do n1 + n2 − 2 , trong đó
n1 , n2 là s mẫu c a hai nhóm. Chúng ta có th dùng R đ tr lời câu hỏi trên b ng hàm
t.test như sau:
> t.test(T~gioitinh)
# k t qu hi n th :
Welch Two Sample t-test
data: T by gioitinh
t = 0.51659, df = 24.495, p-value = 0.6101
alternative hypothesis: true difference in means between group Nam and group Nu is not
equal to 0
95 percent confidence interval:
-0.5184389 0.8651055
sample estima tes:
mean in group Nam mean in group Nu
7.306667 7.133333
R trình bày các giá tr quan trọng trư c hết:
t = 0.51659, df = 24.495, p-value = 0.6101

df là bậc t do. Tr s p = 0.6101 cho th y mức đ khác bi t gi a hai nhóm nam và n


không có ý ngh a th ng kê (vì cao hơn 0.05 hay 5%).
95 percent confidence interval:

-0.5184389 0.8651055

Là kho ng tin cậy 95% về đ khác bi t gi a hai nhóm. Kết qu tính toán trên cho biết
đi m toán trung bình c a n có th th p hơn nam gi i 0.52 hoặc cao hơn nam gi i 0.86. Vì
đ khác bi t quá l n và đó là thêm b ng chứng cho th y không có khác bi t có ý ngh a
th ng kê gi a hai nhóm.
Ki m đ nh trên d a vào gi thiết hai nhóm nam và n có khác phương sai. Nếu chúng ta
có lí do đ cho r ng hai nhóm có cùng phương sai, chúng ta chỉ thay đ i m t thông s
trong hàm t v i var.equal = TRUE như sau:
40
> t.test(T~gioitinh, var.equal = TRUE)
K t qu hi n th :
Two Sample t-test
data: T by gioitinh
t = 0.51659, df = 28, p-value = 0.6095
alternative hypothesis: true difference in means between group Nam and group Nu is not
equal to 0
95 percent confidence interval:
-0.5139801 0.8606468
sample estimates:
mean in group Nam mean in group Nu
7.306667 7.133333

Về mặt s li u, kết qu phân tích trên có khác chút ít so v i kết qu phân tích d a vào gi
đ nh hai phương sai khác nhau, nhưng tr s p cũng đi đến m t kết luận r ng đ khác bi t
gi a hai nhóm không có ý ngh a th ng kê.
• Kiểm định tỷ lệ hai mẫu
Cho hai mẫu v i s đ i tượng n1 và n2 , gọi s ph n t thỏa mãn tính ch t A
trong mẫu 1 là m1 , trong mẫu 2 là m2 .Do đó, chúng ta có th tính được tỉ l tương ứng
trong hai mẫu là p1 , p2 .Lí thuyết xác su t cho phép chúng ta phát bi u r ng đ khác bi t
gi a hai mẫu d = p1 − p2 tuân theo luật phân ph i chuẩn v i s trung bình 0 và phương sai
b ng:
1 1 m + m2
Vd = ( + ) p(1 − p) . Trong đó: p = 1 ; z = d / Vd tuân theo luật phân ph i chuẩn
n1 n2 n1 + n2
v i trung bình 0 và phương sai 1.
Ví d 1.26. M t nghiên cứu được tiến hành so sánh hi u qu c a thu c ch ng gãy xương.
B nh nhân được chia thành hai nhóm: nhóm A được điều tr g m có 100 b nh nhân, và
nhóm B không được điều tr g m 110 b nh nhân. Sau thời gian 12 tháng theo dõi, nhóm A
có 7 người b gãy xương, nhóm B có 20 người gãy xương. Hỏi tỉ l gãy xương trong hai
nhóm có b ng nhau (tức thu c không có hi u qu )?
Đ ki m đ nh hai tỉ l này có thật s khác nhau, chúng ta có th s dụng hàm
prop.test(x,n,π) như sau:

> m<-c(7,20)
> n<-c(100,110)
> prop.test(m,n)
K t qu hi n th :
2-sample test for equality of proportions with continuity
correct ion
data: m out of n
X-squared = 4.8901, df = 1, p-value = 0.02701
alternative hypothesis: two.sided
41
95 percent confidence interval:
-0.20908963 -0.01454673
sample estimates:
prop 1 prop 2
0.0700000 0.1818182

Kết qu phân tích trên cho th y tỉ l gãy xương trong nhóm 1 là 0.07 và nhóm 2 là 0.18.
Phân tích trên còn cho th y xác su t 95% r ng đ khác bi t gi a hai nhóm có th là 0.01
đến 0.20 (tức 1 đến 20%). V i tr s p = 0.027, chúng ta có th nói r ng tỉ l gãy xương
trong nhóm A qu thật th p hơn nhóm B.
c) Ki m định Wilcoxon cho hai mẫu (wilcox.test)
Ki m đ nh t d a vào gi thiết là phân ph i c a m t biến ph i tuân theo luật phân
ph i chuẩn. Nếu gi đ nh này không đúng, kết qu c a ki m đ nh t có th không hợp lí.
Ví d 1.26. Trong Ví d 1.25. chúng th y trong file d li u Diem_TN đi m toán (T)
không có phân ph i chuẩn. Trong trường hợp này, vi c so sánh gi a hai nhóm có th d a
vào phương pháp phi tham s (non-parametric) có tên là ki m đ nh Wilcoxon, vì ki m
đ nh này (không như ki m đ nh t) không tùy thu c vào gi đ nh phân ph i chuẩn.
> wilcox.test(T~gioitinh)
# K t qu hi n th :
Wilcoxon rank sum test with continuity correction
data: T by gioitinh
W = 121, p-value = 0.7383
alterna tive hypothesis: true location shift is not equal to 0

Tr s p = 0.7383 cho th t qu thật đ khác bi t về đi m toán gi a hai nhóm nam và n


không có ý ngh a th ng kê.
d) So sánh phương sai ( var.test)
Ví d 1.28. S dụng file d li u Diem_TN, đ ki m đ nh phương sai đi m toán (T) gi a
hai nhóm nam và n có khác nhau không, ta dùng câu l nh sau:
> var.test(T~gioitinh)
K t qu hi n th :
F test to compare two variances
data: T by gioitinh
F = 0.45106, num df = 14, denom df = 14, p-value = 0.1485
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.1514355 1.3435331
sample estimates:
ratio of variances
0.4510638

42
Kết qu trên cho th y đ khác bi t về phương sai gi a hai nhóm là 0.45 l n. Tr s p =
0.1485 cho th y phương sai gi a hai nhóm khác nhau không có ý ngh a th ng kê.
e) Thủ t c ki m định shapiro.test về phân phối chu n
Đ ki m đ nh m t luật phân ph i mẫu xem li u có tuân theo luật chuẩn hay không,
ch ng ta có th s dụng h m shapiro.test có c u tr c như sau:
shapiro .test( x)

trong đ : x: l d li u m u

V d 1.29. Theo d i năng su t café t i m t nông trường thu được s li u sau:

Năng su t (t /ha) 4-6 6-8 8-10 10-12 12-14 14-16 16-18 18-20 20-22
S vườn 15 26 25 30 26 21 24 20 13
V i mức ngh a 0,05 có th kết luận năng su t café ở nông trường n y tuân theo luật
phân ph i chuẩn?
dl<-rep(c(5,7,9,11,13,15,17,19,21),times=c( 15,26,30,26,21,24,20,13))
shapiro.test(dl)
K t qu hi n th :
Shapiro -Wilk normality test
data: dl
W = 0.94668, p-value = 9.158e-07

Qua b ng kết qu hi n th ta th y tr s W = 0.94668v tr s p-value = 9.158e-07. V vậy,


kết qu nhận được l qua mẫu cụ th chưa th khẳng đ nh năng su t tuân theo quy luật
chuẩn.
1.2.3. Thống kê suy di n trong các b i toán phân t ch tương quan
H s tương quan (r) là m t chỉ s th ng kê đo lường m i liên h tương quan gi a hai biến
s . H s tương quan có giá tr từ -1 đến 1. H s tương quan b ng 0 (hay g n 0) có ngh a
là hai biến s không có liên h gì v i nhau; ngược l i nếu h s b ng -1 hay 1 có ngh a là
hai biến s có m t m i liên h tuy t đ i. Nếu giá tr c a h s tương quan là âm (r < 0) có
ngh a là hai biến tương quan ngh ch (biến này tăng thì biến kia gi m và ngược l i); nếu giá
tr h s tương quan là dương (r > 0) có ngh a là hai biến tương quan thuận (hai biến cùng
tăng hoặc cùng gi m).
Có nhiều h s tương quan trong th ng kê, nhưng ở đây chúng ta sẽ trình bày 3 h s
tương quan thông dụng nh t: h s tương quan Pearson r, Spearman ρ, và Kendall τ.
Trong ti u mục này d li u dùng đ minh họa là file d li u markettimng.csv tham kh o từ
link: https://drive.google.com/drive/folders/1maNUAWyCcjXrU0m6hMgZNhjEI0jUI9Gu
library(readr)
marketing <- read_csv "marketing.csv"
head(marketing)
# k t qu hi n th

43
1 youtube facebook newspaper sales

<dbl> <dbl> <dbl> <dbl> <dbl>

1 1 201. 142. 145. 943.

2 2 156. 130. 62.7 856.

3 3 124. 188. 140. 965.

4 4 158. 187. 144. 1017.

5 5 158. 222. 116. 1115.

6 6 132. 182. 120. 932.

7 7 121. 214. 144. 1022.

8 8 108. 82.6 126. 650.

9 9 190. 173. 104. 1001.

10 10 117. 115. 133. 713.

# ... with 190 more rows

B ng 1.4: D li u quan sát s lượt qu ng cáo, (ngu n: internet).


a) H số tương quan mẫu
• Hệ s tương quan Pearson
Cho hai biến s x và y từ n mẫu, h s tương quan Pearson được tính b ng công thức
sau đây:

 ( x − x)( y
n

i i − y)
r= i =1
.
 ( x − x)  ( y
n n

i
2
i − y) 2

i =1 i =1

Trong đó, x và y là giá tr trung bình c a biến s x và y .


Đ tính h s tương quan Pearson trong R, cú ph p như sau:

cor(data, method = "pearson")

Ví d 1.30. S dụng file d li u markettimng.csv, ta sẽ tính h s tương quan pearson gi a


các biến trong đó:
cor(marketing, method = "pearson")
# k t qu hi n th :
...1 youtube facebook newspaper sales
...1 1.00000000 -0.04977015 -0.03918551 -0.177473371 -0.047532656
youtube -0.04977015 1.00000000 0.08401121 0.047806059 0.487083735
facebook -0.03918551 0.08401121 1.00000000 -0.039579633 0.903092760
newspaper -0.17747337 0.04780606 -0.03957963 1.000000000 -0.002900308
sales -0.04753266 0.48708374 0.90309276 -0.002900308 1.000000000

Qua kết qu trên ta th y: gi a biến sales và facebook có tương quan r t m nh 0.903, còn
l i đều có mức tương quan yếu gi a các biến khác.
44
• Hệ s tương quan Spearman ρ
H s tương quan Pearson chỉ hợp lí nếu biến s x và y tuân theo luật phân ph i
chuẩn. Nếu x và y không tuân theo luật phân ph i chuẩn, chúng ta ph i s dụng m t h s
tương quan khác tên là Spearman, m t phương pháp phân tích phi tham s . H s này
được ư c tính b ng cách biến đ i hai biến s x và y thành thứ bậc (rank), và xem đ
tương quan gi a hai dãy s bậc. Do đó, h s còn có tên tiếng Anh là Spearman’s Rank
correlation.
Đ tính h s tương quan spearman trong R, cú ph p như sau:

cor(data, method = " spearman ")

Ví d 1.31. S dụng file d li u markettimng.csv, ta sẽ tính h s tương quan spearman


gi a các biến trong đó:
cor(marketing, method = "spearman")
# k t qu hi n th :
...1 youtube facebook newspaper sales
...1 1.000000000 -0.007446197 -0.06512643 -0.1753965822 -0.0706097652
youtube -0.007446197 1.000000000 0.06036389 0.0620604644 0.4422117186
facebook -0.065126427 0.060363895 1.00000000 -0.0332461435 0.8994231601
newspaper -0.175396582 0.062060464 -0.03324614 1.0000000000 -0.0004522618
sales -0.070609765 0.442211719 0.89942316 -0.0004522618 1.0000000000

Kết qu phân tích cũng tương t như trong Ví dụ 1.29.


• Hệ s tương quan Kendall τ
H s tương quan Kendall (cũng là m t phương pháp phân tích phi tham s ) được ư c
tính b ng cách tìm các cặp s ( x, y ) ”song hành” v i nhau. M t cặp ( x, y ) song hành ở đây
được đ nh ngh a là hi u (đ khác bi t) trên trục hoành có cùng d u hi u (dương hay âm)
v i hi u trên trục tung. Nếu hai biến s x và y không có liên h v i nhau, thì cặp s song
hành b ng hay tương đương v i cặp s không song hành.
Vì có nhiều cặp ph i ki m đ nh, phương pháp tính toán h s tương quan Kendall đòi hỏi
thời gian c a máy tính khá cao. Tuy nhiên, nếu m t d li u dư i 5000 đ i tượng thì m t
máy vi tính có th tính toán khá d dàng.
Đ tính h s tương quan Kendall trong R, cú ph p như sau:

cor(data, method = " kendall ")

Ví d 1.32. S dụng file d li u markettimng.csv, ta sẽ tính h s tương quan kendall gi a


các biến trong đó:
cor(marketing, method = " kendall")
# k t qu hi n th :
...1 youtube facebook newspaper sales
...1 1.000000000 -0.005025631 -0.04532891 -0.11734553 -0.04874372

45
youtube -0.005025631 1.000000000 0.03789516 0.04829995 0.30324656
facebook -0.045328911 0.037895160 1.00000000 -0.02326925 0.72656918
newspaper -0.117345529 0.048299952 -0.02326925 1.00000000 -0.00587984
sales -0.048743719 0.303246559 0.72656918 -0.00587984 1.00000000

b) Ki m định h số tương quan


Bên c nh vi c tính các giá tr tương quan mẫu, chúng ta cũng có th ki m đ nh h s tương
quan lý thuyết v i gi thuyết ki m đ nh:
o H0: Không có tương quan (h s tương quan = 0).
o H1: Có tương quan.
Đ tính ki m đ nh trong R, cú ph p như sau:

cor.test(nhân tố 1, nhân tố 2, method = c("pearson","spearman", "kendall"))

Trong đó:
Nhân t 1, nhân t 2 là 2 biến c n ki m đ nh t nh tương quan.
methol được l a chọn m t trong 3 phương ph p tương ứng.
Ví d 1.33. S dụng file d li u markettimng.csv, ta sẽ ki m đ nh t nh tương quan gi a 2
biến sales và youtube:
> cor.test(marketing$youtube, marketing$sales)
#K t qu hi n th :
Pearson 's product-moment correlation
data: marketing$youtube and marketing$sales
t = 7.8478, df = 198, p-value = 2.597e-13
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3735893 0.5862096
sample estimates:
cor
0.4870837

Kết qu trên v i tr s p-value = 2.597e-13, cho th y m i liên h gi a doanh thu (sales) và


chi phí qu ng cáo qua youtube là có ý ngh a th ng kê.
1.3. C C BƯ C TR C QUAN H A D LI U
Khi tr c quan hóa d li u, công vi c đ u tiên là l a chọn lo i bi u đ đ th hi n d li u
đang phân tích. Công vi c này không chỉ là chọn m t lo i hay m t s lo i bi u đ , mà có
th là l a chọn kết hợp các bi u đ , kết hợp bi u đ và b ng phân tích th ng kê mô t , khi
đó hi u qu mang l i sẽ t i ưu nh t.
Vi c l a chọn bi u đ ph hợp đ tr c quan d li u phụ thu c v o nhiều yếu t , bao g m
lo i d li u, mục tiêu truyền đ t thông đi p, s lượng v phân lo i c a c c biến d li u,
cũng như sở th ch c nhân. Hình 1.32 dư i đây l m t s hư ng dẫn đ chọn bi u đ ph
hợp:

46
Hình 1.32: Cách thức l a chọn bi u đ .
1.3.1. Bi u đồ th hi n k ch thư c dữ li u trong tr c quan hóa
Trong qu tr nh phân t ch, m t s trường hợp ta c n quan tâm đến s kh c bi t về đ
l n gi a c c nhóm, chẳng h n như s kh c bi t về dân s ở c c th nh ph kh c nhau hoặc
chênh l ch doanh thu c a c c nh n hi u ô tô kh c nhau. Khi đó, tr c quan b ng lo i bi u
đ ph hợp sẽ gi p di n gi i kết qu m t c ch r r ng hơn. Theo t i li u “C c nguyên tắc
cơ b n về tr c quan hóa d li u”, ba d ng bi u đ thường được s dụng đ bi u di n đ
l n c a d li u l : bi u đ thanh, bi u đ đi m v b n đ nhi t.
a) Bi u đ thanh
Bi u đ thanh tr nh b y m t c ch tr c quan d li u phân lo i v i c c thanh h nh ch
nhật có chiều cao hoặc chiều d i t l v i c c gi tr m ch ng đ i di n. C c thanh có th
được vẽ theo chiều dọc hoặc chiều ngang. Có 3 ki u bi u đ thanh thường gặp: bi u đ
thanh đơn p dụng cho m t biến phân lo i, bi u đ thanh nhóm (clustered) v bi u đ
thanh xếp ch ng (stacked) p dụng cho từ hai biến phân lo i trở lên.
• Biểu đồ thanh đơn
Bi u đ thanh đơn được s dụng khi chỉ có 1 biến phân lo i, mỗi thanh sẽ đ i di n cho
m t nhóm cụ th , chiều cao hoặc đ d i c a mỗi thanh t l v i t ng c c gi tr trong
nhóm m nó đ i di n.
# G i l nh 1: m t bi n phân lo i x t trên to n b d li u

47
ggplot(data) +
# Bi u đ thanh ngang
geom_bar(mapping=aes(y =bi n phân lo i), width = ,fill=”m u s c”)
# Bi u đ thanh d c
geom_bar(mapping=aes(x =bi n phân lo i), width = ,fill=”m u s c”)
# G i l nh 2: m t bi n phân lo i x t nh m d li u con
ggplot(data) +
geom_bar(aes(x =bi n phân lo i ,y =nh m d li u con), width = ,fill=”m u s c”)

o V i geom_bar: Chỉ cung c p ph p g n c t trên m t trục ( trục x nếu mu n hi n


th theo thanh dọc, trục y nếu mu n hi n th theo thanh ngang). Trục đ i di n sẽ
có tiêu đề l “s lượng” theo mặc đ nh, bởi v nó đ i di n cho s h ng
o V i geom_col: Cung c p phép g n c t trên c hai trục ( trục x hi n th cho biến
phân lo i, trục y hi n th nhóm d li u con). Trục đ i y thường l biến d ng
numberic.
V d 1.34. Hình 1.32 dư i đây bi u di n s lượng c c lo i xe trong tập d li u theo 2 hình
d ng bi u đ thanh ngang (A) và thanh dọc (B).
# Bi u đ thanh ngang
ggplot(mpg) +
geom_bar(mapping=aes(y = class), width = 0.5,fill="darkgreen") +
theme_minimal()+
labs(title = "A) BI U Đ THANH NGANG", y = "Lo i xe")
# Bi u đ thanh d c
ggplot(mpg) +
geom_bar(mapping=aes(x = class), width = 0.5, fill="darkgreen") +
theme_minimal()+
labs(title = "B) BI U Đ THANH D C", x = "Lo i xe")

Hình 1.33: Bi u đ thanh đơn.

48
Ch : B t k bi u đ dọc hay ngang, ta đều c n ch đến thứ t sắp xếp c c thanh. Bi u
đ có th sắp xếp mặc đ nh c c thanh theo thứ t b ng ch c i, theo đ cao hoặc đ d i
thanh. Nhưng đ bi u đ tr c quan cho người xem, c c thanh nên được sắp xếp tương ứng
theo t nh ch t c a biến phân lo i m nó th hi n:
o Biến phân lo i mang t nh rời r c (v dụ như qu c gia, th nh ph , quận/huy n,
…): bi u đ thanh nên được sắp xếp theo đ l n thanh từ cao đến th p .
o Biến phân lo i mang t nh liên tục hay có thứ t (v dụ như theo chuỗi thời
gian, theo đ tu i, theo k ch thư c, …): bi u đ thanh nên được sắp xếp theo
thứ t tăng hoặc gi m d n c a biến phân lo i.
V d 1.35. Hình 1.33 dư i đây bi u di n s lượng c c lo i xe được sắp theo thứ t gi m
d n, vi c n y gi p quan s t v so s nh t n s gi a c c lo i xe d d ng hơn
# Bi u đ m c đ nh
ggplot(mpg) +
geom_bar(aes(x = class), width = 0.5, fill="darkgreen") +
theme_minimal()+
labs(title = "A) BI U Đ Đ L N M C Đ NH", x = "Lo i xe")
# Bi u đ s p th t đ l n
ggplot(mpg) +
geom_bar(aes(x = fct_infreq(class)), width = 0.5, fill="darkgreen") +
theme_minimal()+
labs(title = "B) BI U Đ S P X P Đ L N THEO T N S ", x = "Lo i xe")

Hình 1.34: Bi u đ thanh mặc đ nh v bi u đ thanh được sắp xếp.


V d 1.36. Hình 1.34 dư i đây bi u di n s lượng c c lo i xe x t theo d li u hi u su t
đ ng cơ.
ggplot(mpg) +
geom_col(aes(x = class,y=hwy), width = 0.5,fill ="darkgreen") +
theme_minimal()+

49
labs(title = "BI U Đ C T LO I XE X T TRÊN MỨC TIÊU THỤ NHIÊN LIỆU TRÊN ĐƯỜNG CAO
T C", x = "Lo i xe")

Hình 1.35: Bi u đ thanh x t theo d li u nhóm con.


• Biểu đồ thanh nh m (clustered)
Bi u đ thanh nhóm được s dụng đ b i u di n c ng l c từ 2 biến phân lo i trở lên
trong m t tập d li u. Trong đó, c c nhóm c a m t biến phân lo i được đặt c ch đều dọc
theo trục x, to n b nhóm thu c biến phân lo i c n l i được đặt liền kề v i nhau trong
từng nhóm c a biến phân lo i trư c.
Câu l nh:
ggplot(data) +
geom_bar(mapping=aes(x =bi n phân lo i1,fill=bi n phân lo i 2),position = "dodge")

V d 1.37. Trong d li u mpg ta x t hai biến phân lo i l phương thức dẫn đ ng drv v
ki u d ng xe class. Khi đó bi u đ thanh nhóm có kết qu như sau:
# phân nh m theo bi n drv
ggplot(mpg) +
geom_ba r(mapping=aes(x =drv,fill=class),position = "dodge")+
theme_minimal()+
labs(title = "A) BI U Đ PHÂN NH M THEO BI N: drv", x = "Phương th c d n đ ng")
# phân nh m theo bi n class
ggplot(mpg) +
geom_bar(mapping=aes(x =class,fill=drv),position = "dodge")+
theme_minimal()+
labs(title = "B) BI U Đ PHÂN NH M THEO BI N: class", x = "Ki u d ng xe")

50
Hình 1.36: Bi u đ thanh nhóm.
• Biểu đồ thanh chồng (stacked)
Bi u đ thanh ch ng cũng được s dụng đ bi u di n c ng l c từ 2 biến phân lo i trở
lên trong m t tập d li u. Kh c v i bi u đ thanh nhóm có các thanh đặt liền kề nhau, bi u
đ thanh ch ng đặt c c thanh xếp ch ng lên nhau.
# G il nh 1: hai bi n phân lo i trong to n b d li u

ggplot(data)+

# Bi u đ thanh ngang

geom_bar(mapping=aes(y =fct_infreq(nhân t 1),fill = nhân t 2), position = ""))

# Bi u đ thanh d c

geom_bar(mapping=aes(x =fct_infreq(nhân t 1),fill = nhân t 2), position = ""))

# G il nh 2: hai bi n phân lo i trong nh m d li u con

ggplot(data)+

geom_col(mapping = aes(x = nhân t 1,y= d li u nh m con,fill = nhân t 2 ),color = )

o V i geom_bar: Chỉ cung c p ph p g n c t trên m t trục ( trục x nếu mu n hi n


th theo thanh dọc, trục y nếu mu n hi n th theo thanh ngang). Trục đ i di n sẽ
có tiêu đề l “s lượng” theo mặc đ nh, bởi v nó đ i di n cho s h ng.
o V i geom_col: Cung c p ph p g n c t trên hai trục ( trục x cho nhân t 1, trục y
cho d li u nhóm con).
o Biến phân lo i thứ hai được g n trong h m fill tương ứng.
o Position nhận gi tr : identity nếu mu n gi nguyên k ch thư c c a nhóm; fill
nếu mu n mỗi b thanh xếp ch ng có c ng chiều cao.
V d 1.38. Hình 1.36 dư i đây bi u di n s lượng c c lo i xe kết hợp v i yếu t dẫn
đ ng: f-c u trư c; r-c u sau; 4-b n hư ng theo 2 h nh d ng bi u đ thanh ngang (A, C) và
thanh dọc (B, D).
# Bi u đ thanh ngang
ggplot(mpg) +

51
geom_bar(mapping = aes(y = fct_infreq(class), fill = drv), position =
"identi ty" ) +
theme_minimal()+
scale_x_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
labs(title = "A) BI U Đ THANH NGANG", y = "Lo i xe")
# Bi u đ thanh d c
ggplot(mpg) +
geom_bar(mapping = aes(x = fct_infreq(class), fill = drv), position =
"identi ty") +
theme_minimal()+
scale_y_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
labs(title = "B) BI U Đ THANH D C", x = "Lo i xe")
# Bi u đ thanh ngang c c ng chi u d i
ggplot(mpg) +
geom_bar(mapping = aes(y = fct_infreq(class), fill = drv), position = "fill") +
theme_minimal()+
scale_x_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
labs(title = "C) BI U Đ THANH NGANG C C NG CHI U D I", y = "Lo i xe")
# Bi u đ thanh d c c c ng chi u cao
ggplot(mpg) +
geom_bar(mapping = aes(x = fct_infreq(class), fill = drv), position = "fill") +
theme_minimal()+
scale_y_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
labs(title = "D) BI U Đ THANH D C C C NG CHI U CAO", x = "Lo i xe")

52
Hình 1.37: Bi u đ thanh ch ng.
V d 1.39. Hình 1.387 dư i đây bi u di n s lượng c c lo i xe kết hợp v i yếu t dẫn
đ ng: f-c u trư c; r-c u sau; 4-b n hư ng, x t theo d li u nhóm con về mức tiêu thụ trên
cao t c.
ggplot(mpg) +
geom_col(mapping = aes(,x=class,y =hwy, fill = drv), color = "black") +
theme_minimal()+
labs(title = "BI U Đ THANH TRONG X T TRÊN D LIỆU NH M", x = "Lo i xe")

Hình 1.38: Bi u đ thanh ch ng kết hợp phân lo i theo nhóm d li u.


• Biểu đồ thanh phân nh m
Bi u đ thanh ch ng ph hợp v i mục đ ch so s nh t ng gi tr gi a c c nhóm (v dụ
Hình1.37. A, so s nh t ng s lo i xe theo lo i dẫn đ ng) , nhưng đôi khi khó đ t s phân
bi t khi mu n so s nh c c gi tr kh c nhau trong c ng m t nhóm. Đ khắc phục điều n y
ta có th s dụng bi u đ phân nhóm, đặc bi t khi so s nh ba yếu t t c đ ng.
# g i 1: x t trên to n b d li u
ggplot(data) +
geom_bar(aes(x =bi n phân lo i ), width = ,fill=”m u s c”)+
# chia bi u đ theo m t nhân t k t h p
facet_wrap(~ nhân t k t h p )

53
# chia bi u đ theo hai nhân t k t h p
facet_grid(nhân t k t h p 1 ~ nhân t k t h p 2)
# g i 2: x t trên nh m d li u con
ggplot(data) +
geom_col(aes(x =bi n phân lo i, y= nh m d li u con ), width = ,fill=”m u s c”)+
# chia bi u đ theo m t nhân t k t h p
facet_wrap(~ nhân t k t h p )
# chia bi u đ theo hai nhân t k t h p
facet_grid(nhân t k t h p 1 ~ nhân t k t h p 2)
o C c facets được sắp xếp theo thứ t b ng ch cái, trừ khi biến có ki u factor v i
c c thứ bậc đ được x c đ nh.
o Có th s dụng m t s t y chọn nh t đ nh đ x c đ nh b cục c a các facets, (v
dụ: nrow = 1 hoặc ncol = 1 đ ki m so t s h ng hoặc c t m ch ng được sắp
xếp).
o Đ i v i facet_wrap(), ch ng sẽ thường chỉ viết m t c t trư c d u ngã ~ chẳng
h n như facet_wrap(~drv).
o Ch ng ta s dụng facet_grid khi mu n đưa m t biến thứ hai v o sắp xếp c c
bi u đ con. Ở đây mỗi ô th hi n s giao nhau c a các gi tr gi a hai cột.
o Đ i v i facet_grid() ch ng cũng có th chỉ đ nh m t hoặc hai c t t i công thức
(grid rows ~ columns). Nếu chỉ mu n chỉ đ nh m t c t, h y đặt m t d u
ch m . ở m t ph a c a d u ng chẳng h n như facet_grid(. ~
drv) hoặc facet_grid(drv ~ .).
V d 1.40. Minh họa facet_wrap():
ggplot(mpg) +
geom_bar(aes(x = drv), width = 0.5, fill="darkgreen") +
theme_minimal()+
labs(title = " BI U S S LƯ NG XE THEO D N Đ NG K T H P NHÂN T LO I XE", x =
"Phương th c d n đ ng")+
scale_y_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
facet_wrap(~ class)
k t qu hi n th :

54
Hình 1.39: Bi u đ phân nhóm nh hưởng m t nhân t .
V d 1.41. Minh họa facet_grid() x t to n b d li u
ggplot(mpg) +
geom_bar(aes(x = drv), width = 0.5, fill="darkgreen") +
theme_minimal()+
labs(title = " BI U S S LƯ NG XE THEO D N Đ NG K T H P NHÂN T LO I XE V S
XYLANH", x = "phương th c d n đ ng")+
scale_y_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
facet_grid(class ~ cyl)
k t qu hi n th

Hình 1.40: Bi u đ phân nhóm nh hưởng hai nhân t .

55
Nhận x t 3: Bi u đ phân nhóm trên có th kết hợp nhiều nhân t kh c nhau, đặc bi t l
phân t ch 2 nhân t đ nh lượng (numberic) thông qua m t nhân t đ nh t nh (character)
hoặc hai nhân t đ nh t nh nh hưởng.
V d 1.42. X t nhân t dung t ch đ ng cơ và lo i xe theo mức tiêu thụ nhiên li u khi xe di
chuy n trên cao t c.
ggplot(mpg, aes(x = displ, y = hwy)) +
geom_col(width = 1, fill = "darkred") +
facet_wrap(~ class, scales = "free")
k t qu hi n th :

Hình 1.41: Bi u đ v i t l c t ở v tr t do.


Trong bi u đ trên t l c c c t được gi i phóng ở d ng “fredom”, dẫn đến t l chia hợp
v i s li u th c ti n.
b) Bi u đ đi m
Bi u đ đi m s dụng d u ch m đ bi u di n v tr c a c c gi tr d li u. Bi u đ đi m
được s dụng ph biến đ bi u di n phân ph i c a m t biến liên tục hay s phân cụm trong
m t tập d li u. Trong bi u di n đ l n c a d li u, bi u đ thanh ph i bắt đ u từ gi tr 0 đ
chiều d i thanh t l v i s lượng hi n th . Tuy nhiên, v i m t s b d li u, c c thanh đôi
khi quá dài và t t c ch ng đều có chiều d i g n như nhau, khiến bi u đ không truyền t i
được ngh a. Do đó, bi u đ đi m được s dụng đ thay thế bi u đ thanh trong t nh hu ng
này.
ggplot(data = mpg)+
geom_point(mapping = aes(x = nhân t ch nh,
y = nhân t k t h p,
color = nhân t phân lo i))+
56
labs(title = " Tiêu đ ")

o Nhân t 1: biến đ nh t nh hoặc đ nh lượng c n kh o s t.


o Nhân t kết hợp: nhân t c n đo lường về đ l n (thường dư i d ng numberic),
trường hợp nhân t kết hợp l đ nh t nh th đ l n sẽ l y theo s lượng trên tập
hợp d li u ch nh.
o Nhân t phân lo i có th kh o s t thêm thông qua m u sắc.
V d 1.43. Bi u đ mô t s cylanh trong c c lo i xe, kết hợp phân bi t phương thức dẫn
đ ng qua m u sắc.
ggplot(data = mpg)+
geom_point(mapping = aes(x =class, y = cly,color = drv))+
labs(title = " S CYLANH THEO T NG LO I XE ")
k t qu hi n th :

Hình 1.42: Bi u đ đi m.
c) B n đ nhi t (Heatmap)
B n đ nhi t l m t kỹ thuật tr c quan hóa th hi n đ l n c a d li u dư i d ng màu
sắc trong hai chiều. Trong bi u di n đ l n c a d li u, b n đ nhi t được s dụng đ thay
thế bi u đ thanh trong trường hợp có 2 biến phân lo i, g m 1 biến rời r c v 1 biến liên
tục (thường theo chuỗi thời gian). Trong đó, s lượng nhóm trong mỗi biến phân lo i quá
nhiều, khiến vi c bi u di n b ng bi u đ thanh nhóm hoặc bi u đ thanh ch ng trở nên
không ph hợp. Mỗi gi tr d li u trên b n đ nhi t được bi u di n trong m t ma trận v i
m t m u đặc trưng. Thông thường, gi tr th p hi n th ở tông m u l nh v d n chuy n đ i
qua tông màu nóng khi có gi tr cao hơn.
ggplot(data = )+
geom_tile( aes(x = nhân t đ nh t nh,y = nhân t đ nh lư ng, fill = Freq))+

57
scale_fill_gradient()+
labs(x =,
subtitle =,
fill =)

V d 1.44. B n đ nhi t mô t m i quan h gi a ki u d ng xe v i mức tiêu thụ trên cao


t c v dung t ch đ ng cơ.
ggplot(data = mpg)+
geom_tile( aes(x = class,y = hwy, fill = displ))+
scale_fill_gradient( low = "blue",high = "orange")+
labs(x = "Lo i xe",y = "M c tiêu th trên cao t c",title = "B N Đ NHIỆT",
subtitle = "phân lo i theo dung t ch đ ng cơ",
fill = "Dung t ch")

Hình 1.43: B n đ nhi t.


1.3.2. Bi u đồ th hi n t l c a dữ li u trong tr c quan hóa
D ng bi u đ s dụng k ch thư c c a d li u đôi khi không gi p ch ng ta nhận di n
được m i quan h gi a c c nhóm trong m t t ng th . Tr ong trường hợp n y, ta có th s
dụng bi u đ t l đ bi u di n c c nhóm th nh c c ph n riêng bi t, m mỗi ph n đ i di n
cho m t t l c a t ng th .
a) Một số dạng bi u đ tr c quan tỷ l đơn gi n
Hai d ng bi u đ t l đơn gi n v thường gặp nh t là bi u đ tr n (pie chart) v bi u
đ bánh xe.
• Biểu đồ tròn (pie chart)

58
Bi u đ tr n chia m t v ng tr n th nh c c ph n, sao cho di n t ch c a mỗi ph n t l
v i gi tr m nó bi u th . Bi u đ tr n ph hợp cho tập d li u s dụng m t biến phân
lo i, v i s lượng t (nhỏ hơn 10).
# bi u đ tr n d ng 2D
ggpie(data =, group_key = "bi n phân lo i", count_type = "full",
label_info = " all", label_type = "horizon", label_split = NULL,
label_size = 4, label_pos = "in", label_threshold = 10)+
labs(title =, fill =)
# bi u đ tr n d ng 3D
ggpie3D(data =,group_key = "bi n phân lo i", count_type = "full",
tilt_degrees = -10, start_degrees = 0)+
labs(title =, fill =)

V d 1.45. Bi u đ tr n mô t phân lo i ki u d ng xe trong s li u.


# BI U Đ 2D
ggpie(data =mpg, group_key = " class ", count_type = "full",
label_in fo = "all", label_type = "horizon", label_split = NULL,
label_size = 4, label_pos = "in", label_threshold = 10)+
labs(title ="A) BI U Đ PHÂN LO I KI U D NG XE:2D", fill ="ki u d ng")
# BI U Đ 3D
ggpie3D( data = mpg, group_key = "class", c ount_type = "full", tilt_degrees = -10)+
labs(title ="B) BI U Đ PHÂN LO I KI U D NG XE:3D", fill ="ki u d ng")

Hình 1.44: Bi u đ tròn d ng 2D và 3D.


59
• Biểu đồ bánh
Bi u đ bánh, m t d ng tương t bi u đ tròn, chỉ có m t chút khác bi t là ở gi a có
thêm ghi chú về về t ng s lượng mẫu hoặc m t biến phân lo i khác (ví dụ biến phân lo i
về thời gian, qu c gia,…).
# bi u đ tròn d ng bánh
library(ggpie)
ggdonut(data =, group_key = "bi n phân lo i", count_type = "full",
label_info = "all", label_type = "horizon", label_split = NULL,
label_size = 4, label_pos = "in" )+
labs(title =" ", fill ="")

V d 1.46. Bi u đ bánh mô t phân lo i ki u d ng xe trong s li u.


ggdonut(data =mpg, group_key = "class", count_type = "full",
label_info = "all", label_type = "horizon", label_split = NULL,
label_size = 4, label_pos = "in" )+
labs(title =" BI U Đ PHÂN LO I KI U D NG XE D NG BÁNH", fill ="ki u d ng")

Hình 1.45: Bi u đ bánh.


Bi u đ tr n và bi u đ bánh không ph hợp nếu s lượng nhóm trong m t biến phân lo i
qu nhiều, hoặc t l gi a c c biến phân lo i x p xỉ b ng nhau (như Hình 1.45 A). Trong
t nh hu ng n y, ta nên b sung thêm bi u đ thanh đơn đ so s nh s chênh l ch về đ l n
(Hình 1.45 B).
V d 1.47. Bi u đ tr n kết hợp bi u đ thanh mô t phân lo i s lượng theo hãng s n
xu t trong s li u mpg.
# BI U Đ TRÒN
ggpie(data =mpg, group_key = "manufacturer", count_type = "full",

60
label_info = "all", label_type = "horizon", label_split = NULL,
label_si ze = 4, label_pos = " in", label_threshold = 10)+
labs(title ="A) BI U Đ TRÒN", fill ="Hãng s n xu t")
# BI U Đ THANH
# Bi u đ thanh d c
ggplot(mpg) +
geom_bar(mapping = aes(x =manufacturer,fill= manufacturer), position = "identity") +
theme_minimal()+
scale_y_continuous(expand = c(0,0),breaks = seq(from = 0,to = 70,by = 5))+
labs(title = "B) BI U Đ THANH", x = "Hãng s n xuât")

Hình 1.46: Bi u đ tròn kế hợp bi u đ thanh.


b) Tr c quan tỷ l với nhiều biến phân loại
Trong nhiều trường hợp phân t ch, ta mu n đi sâu hơn v chia nhỏ tập d li u theo
nhiều biến phân lo i c ng m t l c. C c trường hợp n y được gọi l t l l ng nhau, v mỗi
61
biến phân lo i b sung v o sẽ t o ra m t ph n nhỏ hơn c a d li u được l ng trong c c t
l trư c đó. M t s d ng bi u đ được s dụng đ bi u di n c c t l l ng nhau l : bi u đ
sunburst, bi u đ cây (treemaps) và bi u đ tập hợp song song (parallel sets p lot).
• Biểu đồ sunburst
Bi u đ sunburst có th xem l m t d ng mở r ng c a bi u đ tròn (pie chart), được s
dụng đ tr c quan hóa tập d li u phân c p. Thay v chỉ bi u di n m t biến phân lo i b ng
m t v ng tr n, bi u đ sunburst s dụng đ ng thời nhiều d li u phân lo i theo thứ bậc,
mỗi thứ bậc sẽ được bi u di n b ng m t v ng tr n đ ng tâm. V i v ng tr n c ng r ng, thứ
bậc sẽ c ng gi m, c c lát trong có th được tô m u đ l m n i bật thứ bậc hoặc danh mục
mu n th hi n.
ggnestedpie(data = , group_key = c("nhân t 1", "nhân t 2"),
count_type = "full", inner_label_info = "all",
inner_label_split = NULL, inner_ label_threshold = 1,
inner_label_size = 3, outer_label_type = "horizon",
outer_label_pos = "in", outer_label_info = "all",
outer_label_threshold = 10)+
labs(title =,)

V d 1.48. Bi u đ t l gi a s xy lanh v phương thức dẫn đ ng trong d li u xe ô tô.


ggnestedpie(data =mpg , group_key = c("drv", "cyl"),
count_type = "full", inner_label_info = "all ",
inner_label_split = NULL, inner_label_threshold = 1,
inner_label_size = 3, outer_label_type = "horizon",
outer_label_pos = "in", outer_label_info = "all",
outer_label_threshold = 10)+
labs(title ="BI U Đ TỶ LỆ GI A S XY LANH V PHƯƠNG THỨC D N Đ NG")

Hình 1.47: Bi u đ sunberst.


62
Bi u đ sunburst s dụng b cục xuyên tâm đ t o h nh nh tr c quan c a tập d li u được
phân lo i. Nó cho th y s liên kết gi a c c v ng tr n v i nhau khi x l theo nhiều c p đ .
Do đó, bi u đ sunburst r t hi u qu đ gi i thi u c ch m t v ng tr n được tách thành các
ph n c u thanh ra nó, cũng như cho th y s đóng góp c a m t thứ nguyên cụ th trong h
th ng phân c p đó.
• Biểu đồ dạng cây (treemaps)
Bi u đ d ng cây l m t phương ph p hi n th d li u phân c p b ng c ch s dụng c c
hình l ng nhau (thường l h nh ch nhật). Mỗi nh nh c a cây có m t h nh ch nhật, được
l ng c c h nh ch nhật nhỏ hơn đ i di n cho các nh nh phụ hoặc l . C c nh nh phụ hoặc
l có di n t ch t l v i gi tr c a d li u.

# Câu l nh

ggplot(data, aes(area =nhân t đ nh lư ng 1, fill = nhân t phân bi t, label = ,

subgroup =)) +

geom_treemap() +

geom_treemap_subgroup_border() +

geom_treemap_subgroup_text(place = "centre", grow = T, alpha = 0.5, colour =

"black", fontface = "italic", min.size = 0) +

geom_treemap_text (colour = "white", place = "topleft", reflow = T)

V d 1.49. Bi u đ cây v i d li u về các qu c gia G-20. Di n t ch c a ô sẽ được nh x


t i GDP c a qu c gia v m u tô c a ô sẽ được nh x t i HDI (Chỉ s ph t tri n con
người) c a qu c gia đó như sau: (file d li u G20 tích hợp c ng thư vi n treemapify)

ggplot(G20, aes(area = gdp_mil_usd, fill = hdi, label = country,

subgroup = region)) +

geom_treemap() +

geom_treemap_subgroup_border() +

geom_treemap_subgroup_text (place = "centre", grow = T, alpha = 0.5, colour =

"black", fontface = "italic", min.size = 0) +

geom_treemap_text(colour = "white", place = "topleft", reflow = T)

63
Hình 1.48: Bi u đ cây.
Bi u đ d ng cây ho t đ ng t t ngay c khi d li u kết hợp c ng l c nhiều biến đ nh t nh
v đ nh lượng. Đặc bi t khi có cùng lúc 2 d li u đ nh lượng tương ứng v i k ch thư c c c
h nh ch nhật v m u sắc, mặc d có th khó di n gi i theo c ch tr c quan kh c nhưng v i
bi u đ d ng cây, ta có th d d ng hi u được ngh a.
• Biểu đồ tập h p song song (parallel sets plot)
Khi d li u có nhiều hơn hai biến phân lo i, bi u đ sunburst, bi u đ d ng cây đều có
th nhanh chóng trở nên khó s dụng. Trong trường hợp n y, ta có th d ng bi u đ tập
hợp song song. Theo đó, t ng s d li u được chia nhỏ theo từng biến phân lo i riêng lẻ
và các nhóm c a từng biến phân lo i sẽ được liên kết v i nhau thông qua c c d i m u.

# Câu l nh
library(ggplot2)
library(ggalluvial)
ggplot(data,
aes(axis1 =nhân t 1, axis2 =nhân t 2, axis3 = nhân t 3,
y =)) +
scale_x_discrete(limits = c(" nhân t 1", "nhân t 2", "nhân t 3"), expand = c(.2,
.05)) +
xlab("") +
geom_alluvium(aes(fill =)) +
geom_stratum() +
geom_text(stat = "stratum", a es(label = after_stat(stratum))) +
theme_minimal() +
ggtitle(" Tiêu đ ")

64
Ví d 1.50. Xét file d li u hành khách đi trên tàu Titanic (tích hợp trong thư vi n
ggalluvial), phân t ng theo nhân khẩu học và t l s ng sót.

# Câu l nh
library(ggplot2)
library(ggalluvial)
ggplot(as.data.frame(Tita nic),
aes(axis1 = Class, axis2 = Sex, axis 3 = Age, y = Freq)) +
scale_x_discrete(limits = c("Phân lo i","Gi i t nh","L a tu i"),expand=c(.2, .05)) +
xlab("Nhân khẩ u h c") +
geom_alluvium(aes(fill = Survived)) +
geom_stratum() +
geom_text(stat = "stratum", aes(label = after_stat(st ratum))) +
theme_minimal() +
ggtitle("HÀNH KHÁ CH TRÊN T U TITANIC: Phân t ng theo nhân khẩu v sinh tr c h c")

Hình 1.49: Bi u đ song song.


V dụ trong Hình 1.48, d li u hành khách được chia nhỏ theo 3 biến: Phân t ng hành
khách ( h ng 1,2,3 và th y th ); Gi i tính (Male; Female) và lứa tu i (trẻ em, trưởng
thành). C c d i m u kết n i c c biến phân lo i được bắt đ u từ tr i qua ph i v tô m u
phân lo i theo 2 lo i vật li u.
Bi u đ cho th y th y th đoàn đa s là nam và t l s ng sót r t ít. T l trẻ em s ng sót
r t cao, điều này phù hợp th c tế là trẻ em được ưu tiên cứu h , còn th y th đoàn được
cứu h cu i cùng.
Chú ý: Khi d ng d ng bi u đ tập hợp song song, ta nên bắt đ u d i m u theo hư ng từ
tr i qua ph i, điều n y sẽ người xem d d ng quan s t d i m u bắt ngu n từ đâu v c ch
nó di chuy n qua tập d li u. Ngo i ra, thứ t sắp xếp c a c c biến phân lo i trên bi u đ
cũng c n lưu sao cho c c d i m u đan ch o nhau được gi m xu ng mức t i thi u.

65
1.3.3. Bi u đồ th hi n phân phối c a dữ li u trong tr c quan hóa
Tr c quan h nh d ng phân ph i c a d li u đóng vai tr quan trọng vi c phân t ích d
li u và so sánh mức đ tập trung d li u gi a c c nhóm. Trong đó, c c d ng bi u đ đơn
gi n v thường gặp nh t l Histogram v bi u đ mật đ , ngoài ra còn có các d ng bi u đ
bi u di n nhiều phân ph i c ng l c như bi u đ h p, violin v ridgeline.
a) Bi u đ Histogram và bi u đ mật độ
Bi u đ Histogram được s dụng đ mô t tr c quan s phân b t n su t cho tập d
li u kh ph biến, t nh t từ thế k 18, v d được vẽ b ng tay (Wilke, 2019). Tuy nhiên,
hi n bi u đ Histogram đang d n b thay thế bởi c c bi u đ mật đ , do nh ng h n chế khi
so s nh s phân b c a m t biến trên nhiều danh mục.
Bi u đ mật đ bi u di n d li u liên tục b ng m t đường cong được ư c lượng từ d
li u v i phương ph p ư c lượng mật đ h t nhân. Vì thế, c ng có nhiều đi m d li u trong
tập d li u, th vi c l a chọn h t nhân c ng t quan trọng, nên c c bi u đ mật đ có xu
hư ng đ ng tin cậy v cung c p nhiều thông tin đ i v i các tập d li u l n, nhưng l i có
th gây hi u nh m cho c c tập d li u chỉ m t v i đi m.
• Biểu diễn phân b của một biến phân loại
# Bi u đ Histogram
ggplot(data = , aes(x = ))+
geom_histogram (bins = 50, binwidth =)+
labs(title = "Tiêu đ ")
# Bi u đ m t đ
ggplot(data =, mapping = aes(x = )) +
geom_density(size = , alpha = )+
labs(title = "Tiêu đ ")
o Bins= chỉ đ nh s lượng các c t được ngắt gi a giá tr min và max c a d li u, có
th thay thế b ng binwidth =, khi đó m t s lượng bins th ch hợp sẽ được
chọn phù hợp v i bề r ng c t mà chúng ta chọn.
o Đ i s bên trong aes có th thay b ng trục y.
Ví d 1.51. Xét file d li u về ô tô mpg ta sẽ vẽ bi u đ t n s và bi u đ mật đ cho biến
mức tiêu hao nhiên li u khi di chuy n trên cao t c.
# Bi u đ Histogram
ggplot(data =mpg , aes(x =hwy, fill="darkgreen" ))+
geom_histogram (binwidth = 1)+
theme_minimal()+
labs(title = "Bi u đ phân b ")
# Bi u đ m t đ
ggplot(data = mpg, mapping = aes(x =hwy, fill="darkgreen" )) +
geom_density(size =2 , alpha =1)+
theme_minimal()+

66
labs(title = "Bi u đ m t đ ")

Hình 1.50: Bi u đ phân b và mật đ .


Nhận xét 4: V i 1 biến phân lo i, h nh d ng 2 bi u đ g n như tương t nhau v không
khó đ quan s t. Tuy nhiên, bi u đ mật đ có xu hư ng t o ra s xu t hi n c a d li u
không t n t i, đặc bi t l ở ph n đuôi.
• Biểu diễn phân b của nhiều biến cùng l c
# Bi u đ Histogram
ggplot(data = , mapping = aes(x = , fill = nhân t nh hưởng)) +
geom_histogram (binwidth = 2)+
labs(title = "Tiêu đ ")
# Bi u đ m t đ
ggplot(data = , mapping = aes(x = , y = after_stat(density), fill = nhân t nh
hưởng)) +
geom_density(size = 2, alpha = 0.2)+
labs(title = "Tiêu đ ")

Ví d 1.52. Xét file d li u về ô tô mpg ta sẽ vẽ bi u đ t n s và bi u đ mật đ cho biến


hwy và phân lo i theo hư ng dẫn đ ng.
# Bi u đ Histogram
ggplot(data =mpg , mapping = aes(x =hwy , fill =drv))+
geom_histogram(binwidth = 2)+
theme_minimal ()+
labs(title = "Bi u đ phân b m c tiêu hao (hwy) gi a các h th ng d n đ ng")
# Bi u đ m t đ
ggplot(data = mpg, mapping = aes(x =hwy , y = after_stat(density), fill =drv)) +
geom_density(size =1 , alpha =1)+
theme_minimal ()+
labs(title = "Bi u đ m t đ m c tiêu hao (hwy) gi a các h th ng d n đ ng ")

67
Hình 1.51: Bi u đ phân b và mật đ c a nhiều biến trên cùng tọa đ .
Khi d li u có thêm nhiều biến phân lo i như h th ng dẫn đ ng, c ch tr c quan theo d ng
xếp ch ng lên nhau c a bi u đ mật đ trở nên t i ưu, v i c c đường liên tục gi p c c
phân b t ch bi t nhau v d quan s t hơn bi u đ Histogram .
b) C c dạng bi u đ sử d ng cho tr c quan nhiều phân phối cùng lúc
Trong trường hợp c n bi u di n nhiều phân ph i c ng l c, chẳng h n như mức tiêu hao
nhiên li u trên các lo i xe khác nhau, các d ng bi u đ như trên sẽ không c n ph hợp.
Khi đó, người ta s dụng c c bi u đ phân ph i như bi u đ h p (box plots), bi u đ
violin (violin plots) v bi u đ ridgeline (ridgeline plots).
• Biểu đồ hộp
Bi u đ h p (Box plots) được nh th ng kê John Tukey t o ra vào đ u nh ng năm
1970. Nó nhanh chóng trở nên ph biến, v d vẽ b ng tay v mang l i nhiều thông tin.
Bi u đ h p chia d li u th nh c c ph n tư v hi n th ch ng theo c ch chuẩn hóa (H nh
1.51).

Hình 1.52: Các thông tin trên bi u đ h p.


# Câu l nh

68
ggplot(data =, mapping = aes(y = bi n kh o sát, x = nhân t nh hưởng, fill = nhân t
nh hưởng)) +
geom_boxplot()+
theme(legend.position = "none")+
labs(title = "")

Ví d 1.53. Xét file d li u về ô tô mpg ta sẽ vẽ bi u đ h p biến hwy phân lo i theo biến


class.
ggplot(data = mpg, mapping = aes(y = hwy, x = class, fill = class)) +
geom_boxplot()+
theme_minimal()+
labs(title = "BI U Đ H P CHO MỨC TIÊU THỤ HWY THEO KI U DÁNG")

Hình 1.53: Bi u đ h p v i biến phân lo i.


Nhận xét 5: Bi u đ h p mặc dù có cung c p thông tin h u ích,nhưng có nh ng h n chế
quan trọng, ch ng có th che khu t phân ph i th c t ế dẫn đến vi c suy luận không chính
xác
• Biểu đồ violin và jitter
V i kh năng t nh toán và tr c quan hi n đ i, bi u đ h p đang d n được thay thế b ng
bi u đ violin. Bi u đ violin có th cung c p m t bức tranh d li u ch nh x c hơn bi u đ
h p. Bi u đ violin có t nh ch t đ i xứng, nó bắt đ u v kết th c ở các giá tr d li u t i
thi u v t i đa, v ph n d y nh t c a bi u đ tương ứng v i mật đ đi m cao nh t trong
tập d li u (H nh 1.53).

69
Hình 1.54: Các thông tin c a bi u đ violin.
# Bi u đ violin

ggplot(data =,

mapping =aes(y=bi n kh o sát,x =bi n nh hưởng, fill = bi n phân lo i))+

geom_violin ()+

labs(title = "")

# Bi u đ jitter

ggplot(data =,mapping =aes(y =bi n kh o sát,x=bi n nh hưởng,color=bi n nh hưởng))+

geom_jitter ()+

labs(title = " ")

Ví d 1.54: Xét file d li u về ô tô mpg ta sẽ vẽ bi u đ h p cho hi u su t hwy theo ki u


dáng.
# Bi u đ violin

ggplot(data =mpg,

mapping = aes(y = hwy, x = class, fill = class))+

geom_violin()+

theme_minimal ()+

labs(title = "BI U Đ MÔ T MỨC TIÊU THỤ NHIÊN LIỆU HWY THEO KI U DÁNG")

# Bi u đ jitter

ggplot(data =mpg, mapping = aes(y = hwy,x =class, color = class))+

geom_jitter ()+

theme_minimal ()+

labs(title = " BI U Đ MÔ T MỨC TIÊU THỤ NHIÊN LIỆU HWY THEO KI U DÁNG ")

70
Hình 1.55: Bi u Violin v i biến phân lo i.

Hình 1.56: Bi u đ jitter v i biến phân lo i.


Do bi u đ violin được vẽ từ ư c t nh mật đ nên có th t o ra s xu t hi n c a d li u
không t n t i, hoặc th hi n d li u d y đặc trong khi th c tế kh thưa th t. Do đó, ta vẽ
đ ng thời c bi u đ violin và jitter đ có cách nhìn t ng quát hơn về d li u. Hơn thế n a,
ta có th s dụng bi u đ sina (sina plots), l s kết hợp c a bi u đ violin và Jitter, khi đó
sẽ hi n th t t c c c đi m d li u trên bi u đ violin đ l m n i bật s phân b c a d
li u .
# install

71
ggplot( data =, aes(y = bi n kh o sát, x = bi n nh hưởng)) +
geom_violin ( aes(fill = bi n nh hưởng), color = "white", alpha = 0.2)+
geom_sina(size=1, aes(color = bi n nh hưởng))+
theme_minimal() +
theme(legend.position = "none") +
labs(title = "")

Ví d 1.55. Xét file d li u về ô tô mpg ta sẽ vẽ bi u đ sina cho mức tiêu thụ trên đường
cao t c hwy theo ki u dáng.
ggplot( data =mpg, aes(y = hwy, x = class)) +
geom_violin( aes(fill = class), color = "white", alpha = 0.2)+
geom_sina(size=1, aes(color = class))+
theme_minimal() +
theme(legend.position = "none") +
labs(title = "BI U Đ SINA: K T H P VIOLIN V À JITTER")

Hình 1.57: Bi u đ sina.


• Biểu đồ ridgeline (ridgeline plots)
Thay vì bi u di n c c phân ph i qua c c th ng theo trục tung như bi u đ h p hay bi u
đ violin, bi u đ ridgeline s dụng c c bi u đ mật đ xếp so le v i nhau đ bi u di n c c
phân ph i theo hư ng thẳng đứng trên trục ho nh. Mục đ ch c a bi u đ ridgel ine không
ph i đ hi n th c c gi tr mật đ cụ th m l đ d d ng so s nh c ác hình d ng mật đ v
chiều cao tương đ i gi a c c nhóm. C c bi u đ Ridgeline có th mở r ng quy mô đến s
lượng r t l n c c phân b .
ggplot(data, aes(x = bi n kh o sát, y = nhân t liên quan, fill = stat(x))) +

geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +


72
scale_fill_viridis_c(name =", option = "C") +

labs(title = ')

Ví d 1.56. Xét file d li u về nhi t đ trong năm t i file d li u lincoln_weather (tích hợp
trong thư vi n ggridge).
# library
library(ggridges)
library(ggplot2)
library(viridis)
library(hrbrthemes)
# Plot
ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`, fill = ..x..)) +
geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
scale_fill_viridis(name = "Temp. [F]", option = "C") +
labs(title = 'Temperatures in Lincoln NE in 2016') +
theme_ipsum () +
theme(
legend.position="none",
panel.spacing = unit(0.1, "lines"),
strip.text.x = element_text(size = 8)
)

Hình 1.58: Bi u đ ridgeline.


Trong Hình 1.57, cho th y s phân b nhi t đ các tháng trong năm 2016 t i Lincoln NE,
Có th th y, trong nh ng tháng mùa hè nhi t đ có phân ph i x p xỉ chuẩn, còn nh ng
tháng cu i năm và đ u năm thì mật đ có xu hư ng l ch ph i.
c) Bi u đ mật độ kết hợp phân phối biên
Bi u đ hi n th các phân ph i trên c c c nh c a bi u đ t n x v i
hàm geom_point(),v i h m ggMarginal() trong gói thư vi n package ggExtra .
. Sau đây l nh ng đ i s ch nh:
# T o đ th tán xá
scatter_plot <- ggplot(data = )+

73
geom_point(mapping = aes(y = , x =)) +
labs(title = )
# k t h p thêm bi u đ phân ph i
ggMarginal(scatter_plot,type = "",fill = "lightblue" ,
xparams = list(binwidth = 10),
yparams = list(binwidth = 5))

o type = theo m t s l a chọn sau: “histogram”, “density” “boxplot”, “violin”, hoặc


“densigram”.
o Theo mặc đ nh, c c đ th biên sẽ xu t hi n ở c hai trục. B n có th thiết
lập margins = th nh “x” hoặc “y” nếu ta chỉ mu n hi n th ở m t trong s ch ng.
o C c đ i s t y chọn kh c bao g m fill = (màu c t), color = (m u đường), size
= (k ch thương bi u đ so v i k ch thư c biên, do đó s l n hơn l m bi u đ biên
nhỏ hơn).
Ví d 1.57. Xét file d li u linelist về chim cánh cụt t i nam c c, ta xét các đ th kết hợp
v i d li u về tu i (age) và cân nặng wt_kg.
scatter_plot <- ggplot(data = linelist)+
geom_point(mapping = aes(y = wt_kg, x = age)) +
labs(title = "Scatter plot of weight and age")
# k t h p hàm phân b
ggMarginal(scatter_plot,type = "histogram", fill = "lightblue",
xparams = list(binwidth = 10),
yparams = list(binwidth = 5))
# k t h p hàm m t đ
ggMarginal(scatter_plot_color, type = "density", groupFill = TRUE)
# k t h p bi u đ h p
ggMarginal(scatter_plot, margins = "x", type = "boxplot")

Hình 1. 59: Bi u đ kết hợp: phân tán và phân b .

74
Hình 1. 60: Bi u đ kết hợp: phân tán và mật đ .

Hình 1.61: Bi u đ kết hợp: phân tán và h p.


1.3.4. Bi u đồ th hi n s tương quan c a dữ li u trong tr c quan hóa
V i b d li u có từ hai biến đ nh lượng trở lên, ta có th h nh dung m i tương quan
c a c c biến thông qua hình nh tr c quan từ c c d ng bi u đ phân tán (scatter plots),
bi u đ bong bóng (bubble chart), ma trận p hân t n (scatterplot matrix) hay bi u đ tương
quan (correlogram).
a) Bi u đ phân t n (scatter plots)
Bi u đ phân tán (scatter plots hay scatter diagram) l m t lo i bi u đ s dụng tọa đ
Descartes đ hi n th gi tr v m i quan h giữa hai biến đ nh lượng cho m t tập d li u.
D li u được hi n th dư i d ng tập hợp c c đi m, mỗi đ i m có gi tr c a m t biến x c
đ nh v tr trên trục ho nh và giá tr c a biến kh c x c đ nh v tr trên trục tung.
gplot(data =,
mapping = aes(y = , x = ))+
geom_point() +
labs(title = )

75
V d 1.58. X t d li u được thiết lập l c c trường hợp trong b mpg, v i 2 biến liên tục
là mức tiêu hao thụ li u khi di chuy n trong đô th city và dung tích đ ng cơ displ
ggplot(data = mpg, mapping = aes(x = displ, y = cty))+
geom_point(color = "darkgreen", size = 2, alpha = 1)+
theme_minimal ()

Hình 1.62: Bi u đ phân tán.


Nhận xét 6: Bi u đ phân tán có th được d ng khi 2 biến đ nh lượng đ c lập hoặc có m t
biến phụ thu c v o biến c n l i. Trong trường hợp phụ thu c, biến phụ thu c (biến được
d đoán) thường được vẽ dọc theo trục tung, biến đ c lập (biến d ng đ đ ưa ra d đo n)
được vẽ dọc theo trục ho nh. Trong trường hợp c 2 biến đ c lập v i nhau, mỗi biến được
vẽ ở m t trục. Bi u đ phân t n sẽ chỉ minh họa mức đ tương quan (không ph i quan h
nhân qu ) gi a hai biến.
V d 1.59. Ta xét bi u đ phân tán ở ví dụ 1.57 và có kết hợp thêm yếu t phân lo i
hư ng dẫn đ ng bởi màu sắc.
ggplot(data = mpg, mapping = aes(x = displ, y = cty,color=drv,size=2))+
geom_point()+
theme_minimal ()

Hình 1.63: Bi u đ phân tán kết hợp v i yếu t phân lo i qua màu sắc.
76
b) Bi u đ bong bóng (bubble chart)
Bi u đ bong bóng (bubble chart) có th xem l m t biến th c a bi u đ phân t n,
nhưng có thêm gi tr đ nh lượng thứ ba. Trong đó, 2 gi tr được bi u di n thông qua v tr
trục tung v trục ho nh, gi tr c n l i được bi u di n b ng k ch thư c c a đi m d li u.
ggplot(data = mpg, mapping = aes(x =nhân t 1, y =nhân t 2 ,color=,size=nhân t 3))+

geom_point()+

theme_minimal ()

V d 1.60. Ta xét bi u đ phân tán ở ví dụ 1.58 và có kết hợp thêm yếu t phân lo i ki u
dáng xe thông qua màu sắc color=class và kích c cylanh size=cyl
ggplot(data = mpg, mapping = aes(x = displ, y = cty,color=class,size=c yl))+

geom_point()+

theme_minimal ()

Hình 1.64: Bi u đ bong bóng.


Trong bi u đ trên, ta chỉ có th h nh dung được nh ng thôn g tin chung nh t về m i liên
h gi a dung tích và mức tiêu thụ nhiên li u khi di chuy n trong đô th theo các ki u dáng
xe v s chênh l ch về s cylanh thông qua đ l n các bong bóng.
Nhận xét 7: Qua c c v dụ trên, ta th y mặc dù sẽ là l tưởng đ bi n di n nhiều biến c ng
lúc trên m t bi u đ duy nh t, nhưng trong trường hợp lượng d li u quá l n hay s chênh
l nh c a bong bóng quá nhỏ, người phân t ch ph i m t thời gian đ gi i th ch t t c c u
trúc c a bi u đ r i m i có th đưa ra kết luận cu i c ng. Ngo i ra, r t khó đ x c đ nh
m i quan h gi a c c biến trên trục v k ch thư c bong bóng. Do đó, đ d gi i th ch kết
qu chi tiết hơn theo đ nh hư ng b i phân t ch, ta có th b sung thêm c c d ng bi u đ
kh c, hoặc phân t ch tương quan cụ th gi a c c biến đ nh lượng khi s dụng ma trận bi u
đ phân tán (scatterplot matrix).

77
c) Ma trận bi u đ phân t n (scatterplot matrix)
Ma trận bi u đ phân tán l m t tập hợp c c bi u đ phân tán cho biết c c biến đ nh
lượng trong b d li u có liên quan như thế n o v i nhau. Sau khi bi u di n t t c c c kết
hợp hai chiều c a c c biến, ma trận có th hi n th m i quan h gi a c c biến đ l m n i
bật m i quan h n o có th l quan trọng.
ggplot(data) +

geom_autopoint(aes(color=bi n phân lo i)) +

facet_matrix(vars(nhân t 1:nhân t 2), laye r.diag = 2, grid.y.diag = FALSE)

V d 1.61. Ta xét d li u mpg và lập bi u đ phân tán cho d li u theo hai nhân t : mức
tiêu hao trong đô th và lo i nhiên li u d a trên biến phân lo i ki u dáng xe
ggplot(data = mpg) +

geom_autopoint(aes(color=class)) +

facet_matrix(vars(cty:fl), layer.diag = 2, grid.y.diag = FALSE)

Hình 1.65: Bi u đ ma trận phân tán.


V d 1.62. Ta có th kết hợp thêm bi u đ phân b trên cùng bi u đ phân tán c a Ví dụ
1.60 như sau:
ggplot(data = mpg) +

geom_autopoint(col="darkgreen") +

facet_matrix(vars(cty:fl), layer.di ag = 2, grid.y.diag = FALSE)+

geom_autohistogram(aes(color=class))

78
Hình 1.66: Bi u đ phân tán kết hợp v i phân b .
V d 1.63. Hoặc kết hợp thêm bi u đ mật đ trên cùng bi u đ phân tán c a Ví dụ 1.60
như sau:
ggplot(data = mpg)+

geom_autopoint(col="darkgreen") +

facet_matrix(vars(cty:fl), layer.diag = 2, grid.y.diag = FALSE)+

geom_autodensity(aes(colo ur = drv, fill = drv)),

alpha = 0.4)

Hình 1.67: Bi u đ phân tán kết hợp bi u đ mật đ .


d) Bi u đ tương quan (Correlogram)
• Ma trận biểu đồ tương quan

79
Trong trường hợp có từ 3 đến 4 biến đ nh lượng trở lên, thay v bi u di n tr c quan t t
c d li u c a c c biến đ nh lượng lên bi u đ , ta có th t nh to n h s tương quan
Pearson gi a từng cặp biến v tr c quan s li u n y lên bi u đ .
raqMatrix <- cor(data)

corrplot(raqMatrix,

method =c("circle", "square", "ellipse", "number", "shade", "color", "pie") ,

type = c("full", "lower", "upper") ,

title = "")

V d 1.64. S dụng file d li u marketting.csv ở mục 1.2, chúng ta lập ma trận bi u đ


tương quan.
Library(corrplot)

raqMatrix <- cor(marketting)

# ma tr n tương quan s

corrplot(raqMatrix,

method ="circle",

type = full,

title = " BI U Đ TRÒN")

# ma tr n tương quan tròn

corrplot(raqMatrix,

method = "number",

type = "lower",

title = "BI U Đ S ")

# ma tr n tương quan màu s c

corrplot(raqMatrix,

method ="color",

type = "full",

title = "")

# ma tr n tương quan bánh tròn

corrplot(raqMatrix,

method ="pie",

type = "full",

title = "")

80
Hình 1.68: Bi u đ ma trận tương quan.
Theo d i m u, c c h nh vuông hoặc hình tròn đậm cho th y s tương quan cao, c c ô nh t
cho th y s tương quan th p. Tuy nhiên, c ch bi u di n n y chưa t i ưu d o c c tương quan
th p không b tri t tiêu m t cách tr c quan, vì thế chúng ta c n kết hợp v i bi u đ giá tr
s đ có kết qu chi tiết nh t.
• Biểu đồ tương quan kết h p luật phân ph i

library(psych)

pairs.panels(data)

V d 1.65. S dụng file d li u marketting.csv ở mục 1.2, chúng ta lập ma trận bi u đ


tương quan kết hợp luật phân ph i như sau:

library( psych)

pairs.panels(marketting, color=”darkgreen”)

81
Hình 1.69: Bi u đ ma trận tương quân kết hợp phân ph i.
Thông tin trên bi u đ v i ma trận tương quan có th chưa đ y đ v i đường d đoán d
li u. Bi u đ ma trân tương quan kết hợp phân ph i cho cái nhìn t ng quát và chi tiết hơn,
kết hợp v i đường d đoán tuyến tính đi qua tâm miền d li u.
1.3.5. Các bư c th c hi n tr c quan h a dữ li u
T t c c c d ng bi u đ được gi i thi u ở trên đều có nh ng ưu, nhược đi m riêng khi
s dụng bi u di n tr c quan d li u. Đ có th s dụng cho n i dung tr c quan thì không
có d ng bi u đ n o l t i ưu nh t, thay v o đó ch ng ta c n nắm r n i dung mu n di n
gi i đ p dụng đ ng d ng bi u đ , đ mang đến thông tin h u ch và d hi u nh t. Vi c
n y d a trên c c th nh ph n ch nh trong tr c quan d li u v m t s bư c c n lưu như
sau:
a) C c thành ph n ch nh
Tr c quan hóa d li u được hình thành từ 3 thành ph n chính sau đây:
• Thông đi p: Gi i thi u mục đích c a vi c tr c quan hóa s li u, người phân tích sẽ
làm vi c và quyết đ nh kết qu mong mu n đ t được sau khi phân tích d li u. Ví
dụ: D đoán doanh thu bán hàng hay đo lường hi u su t làm vi c c a công – nhân
viên.
• D li u: Sau khi xác đ nh thông đi p, các nhà phân tích tiến hành x lý d li u (
chỉnh s a đ nh d ng, làm s ch d li u, lo i bỏ thông tin không liên quan và phân
tích kỹ lư ng hơn). Sau đó, các phương thức trình bày d li u tr c quan sẽ được s
dụng giúp b phận qu n lý lên kế ho ch phù hợp.
• Phương ti n tr c quan: Phương pháp tr c quan là thành ph n tiếp theo. Các nhà
khoa học d li u t o ra các bi u đ hoặc đ th đ làm sinh đ ng d li u chính, đơn
gi n d li u phức t p nh m chia sẻ thông tin chuyên sâu nh t. Các phương thức
82
được cân nhắc s dụng đ thông tin được liền m ch và d hi u m t cách có h
th ng.
b) C c bước tr c quan hóa d li u
Quá trình th c hi n tr c quan hóa d li u bao g m các bư c.
• Bư c xác định m c tiêu: Xác đ nh các v n đề mà tập d li u b n đã t ng hợp có
th tr lời. M t s mục tiêu cụ th có th giúp doanh nghi p:
- Phân lo i d li u doanh nghi p đang sở h u.
- Phân tích d li u đó.
- Có được m t s hoặc t t c các phương thức tr c quan d li u có th s
dụng đ trình bày d li u chuyên sâu nh t.
• Bư c thu thập dữ liệu: T ng hợp d li u n i b và bên ngoài liên quan đến mục
tiêu xác đ nh. D li u này có th là các tập thông tin được bán tr c tuyến; thông tin
s n có trong kho lưu tr d li u; thông tin t đi điều tra-phỏng v n; thông tin do
khách hàng-doanh nghi p cung c p.
• Bư c chọn lọc, làm sạch dữ liệu: Lo i bỏ d li u thừa, không liên quan, th c hi n
các phép tính toán đ phân tích và chuy n đ i lo i d li u đ có th s dụng.
• Bư c lựa chọn phương tiện trực quan hóa: Có r t nhiều lo i bi u đ giúp trình
bày d li u hi u qu . Người trình bày có th d a vào m i quan h gi a các đi m
d li u và thông tin mu n th hi n đ chọn. Ví dụ: Bi u đ c t đ bi u di n doanh
thu bán hàng; bi u đ đường phù hợp khi so sánh thông tin; bi u đ tròn thích hợp
v i d li u dư i d ng t l .
c) C c loại h nh tr c quan
• Tr c quan hóa t nh: Là lo i hình chỉ cung c p m t chế đ xem duy nh t cho mỗi
lo i d li u, chẳng h n: đ họa thông tin.
• Tr c quan hóa tương tác: Là lo i hình cho phép người dùng tương tác phương thức
tr c quan hóa. Người xem có th thay đ i s li u đ tìm thông tin chuyên sâu hơn
hoặc truy cập m t lo i thông tin khác.

83

You might also like