Professional Documents
Culture Documents
BÀI 2 PHẦN 1.3n
BÀI 2 PHẦN 1.3n
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
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
-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
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
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
43
1 youtube facebook newspaper sales
( x − x)( y
n
i i − y)
r= i =1
.
( x − x) ( y
n n
i
2
i − y) 2
i =1 i =1
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:
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
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
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”)
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")
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")
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
# Bi u đ thanh d c
ggplot(data)+
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")
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
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.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 =)
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 =)
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")
# Câu l nh
subgroup =)) +
geom_treemap() +
geom_treemap_subgroup_border() +
subgroup = region)) +
geom_treemap() +
geom_treemap_subgroup_border() +
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")
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 đ ")
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).
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 = "")
69
Hình 1.54: Các thông tin c a bi u đ violin.
# Bi u đ violin
ggplot(data =,
geom_violin ()+
labs(title = "")
# Bi u đ jitter
geom_jitter ()+
ggplot(data =mpg,
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
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.
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")
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)
)
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))
74
Hình 1. 60: Bi u đ kết hợp: phân tán và mật đ .
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.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 ()
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) +
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)) +
geom_autopoint(col="darkgreen") +
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") +
alpha = 0.4)
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,
title = "")
# ma tr n tương quan s
corrplot(raqMatrix,
method ="circle",
type = full,
corrplot(raqMatrix,
method = "number",
type = "lower",
corrplot(raqMatrix,
method ="color",
type = "full",
title = "")
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)
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