Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
793,7 KB
Nội dung
8 Phân tích s liu bng biu đ Yu t th giác rt quan trng. Ngi Trung Quc có câu “mt biu đ có giá tr bng c vn ch vit”. Qu tht, biu đ tt có kh nng gây n tng cho ngi đc báo khoa hc rt ln, và thng có giá tr đi din cho c công trình nghiên cu. Vì th biu đ là mt phng tin hu hiu nht đ nhn mnh thông đip ca bài báo. Biu đ thng đc s dng đ th hin xu hng và kt qu cho tng nhóm, nhng cng có th dùng đ trình bày d kin mt cách gn gàng. Các biu đ d hiu, ni dung phong phú là nhng phng tin vô giá. Do đó, nhà nghiên cu cn phi suy ngh mt cách sáng to cách th hin s liu quan trng bng biu đ. Vì th, phân tích biu đ đóng mt vai trò cc kì quan trng trong phân tích thng kê. Có th nói, không có đ th là phân tích thng kê không có ngha. Trong ngôn ng R có rt nhiu cách đ thit k mt biu đ gn và đp. Phn ln nhng hàm đ thit k biu đ có sn trong R, nhng mt s loi biu đ tinh vi và phc tp khác có th thit k bng các package chuyên dng nh lattice hay trellis có th ti t website ca R. Trong chng này tôi s ch cách v các biu đ thông dng bng cách s dng các hàm ph bin trong R. 8.1 Môi trng và thit k biu đ 8.1.1 Nhiu biu đ cho mt ca s (windows) Thông thng, R v mt biu đ cho mt ca s. Nhng chúng ta có th v nhiu biu đ trong mt ca s bng cách s dng hàm par. Chng hn nh par(mfrow=c(1,2))có hiu nng chia ca s ra thành 1 dòng và hai ct, tc là chúng ta có th trình bày hai biu đ k cnh bên nhau. Còn par(mfrow=c(2,3)) chia ca s ra thành 2 dòng và 3 ct, tc chúng ta có th trình bày 6 biu đ trong m ca s. Sau khi đã v xong, chúng ta có th quay v vi “ch đ” 1 ca s bng lnh par(mfrow=c(1,1). Ví d sau đây to ra mt d liu gm hai bin x và y bng phng pháp mô phng (tc s liu hoàn toàn đc to ra bng R). Sau đó, chúng ta chia ca s thành 2 dòng và 2 ct, và trình bày bn loi biu đ t d liu đc mô phng: > 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)) -4 -2 0 2 4 -2 -1 0 1 2 Scatter plot of y and x x y Histogram of x x Frequency -4 -2 0 2 4 0 5 10 15 20 25 30 -2 -1 0 1 2 Box plot of y Bar chart of x -2 0 2 Biu đ 1. Cách chia ca s thành 2 dòng và 2 ct và trình bày 4 biu đ trong cùng mt ca s. 8.1.2 t tên cho trc tung và trc hoành Biu đ thng có trc tung (y-axis) và trc hoành. Vì d liu thng đc gi bng các ch vit tt, cho nên biu đ cn phi có tên cho tng bin đ d theo dõi. Trong ví d sau đây, biu đ bên trái không có tên mà ch dùng tên ca bin gc (tc x và y), còn bên phi có tên d hiu hn. > 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 lnh trên, xlab (vit tt t x label)và ylab (vit tt t y label) dùng đ đt tên cho trc hoành và trc tung. Còn main đc dùng đ đt tên cho biu đ. Chú ý rng trong main có kí hiu \n dùng đ vit dòng th hai (nu tên gi biu đ quá dài). -4 -2 0 2 4 -2 -1 0 1 2 x y -4 -2 0 2 4 -2 -1 0 1 2 Production and x factor Second line of title here X factor Production Biu đ 2. Biu đ bên trái không có tên gi, biu đ bên phi có tên gi cho trc tung, trc hoành và tên ca biu đ. Ngoài ra, chúng ta còn có th s dng 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”) -4 -2 0 2 4 -2 -1 0 1 2 X factor Production Plot of production and x factor Fi g ure 1 8.1.3 Cho gii hn ca trc tung và trc hoành Nu không cung cp gii hn ca trc tung và trc hoành, R s t đng tìm điu chnh và cho các s liu này. Tuy nhiên, chúng ta cng có th kim soát biu đ bng cách s dng xlim và ylim đ cho R bit c th gii hn ca hai trc 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 loi và đng biu din Trong mt dãy biu đ, chúng ta có th yêu cu R v nhiu kiu và đng biu din khác nhau. > par(mfrow=c(2,2)) > plot(y, type="l"); title("lines") > plot(y, type="b"); title("both") > plot(y, type="o"); title("overstruck") > plot(y, type="h"); title("high density") 0 50 100 150 200 -2 -1 0 1 2 Index y lines 0 50 100 150 200 -2 -1 0 1 2 Index y both 0 50 100 150 200 -2 -1 0 1 2 Index y overstruck 0 50 100 150 200 -2 -1 0 1 2 Index y high density Biu đ 3. Kiu biu đ và đng biu din. Ngoài ra, chúng ta cng có th nhiu đng biu din bng lty nh sau: > par(mfrow=c(2,2)) > plot(y, type="l", lty=1); title(main="Production data", sub="lty=1") > plot(y, type="l", lty=2); title(main="Production data", sub="lty=2") > plot(y, type="l", lty=3); title(main="Production data", sub="lty=3") > plot(y, type="l", lty=4); title(main="Production data", sub="lty=4") 0 50 100 150 200 -2 -1 0 1 2 Index y Production data lty=1 0 50 100 150 200 -2 -1 0 1 2 Index y Production data lty=2 0 50 100 150 200 -2 -1 0 1 2 Index y Production data lt y =3 0 50 100 150 200 -2 -1 0 1 2 Index y Production data lt y =4 Biu đ 4. nh hng ca lty. 8.1.5 Màu sc, khung, và kí hiu Chúng ta có th kim soát màu sc ca mt biu đ bng lnh col. Giá tr mc đnh ca col là 1. Tuy nhiên, chúng ta có th thay đi các màu theo ý mun hoc bng cách cho s hoc bng cách vit ra tên màu nh “red”, “blue”, “green”, “orange”, “yellow”, “cyan”, v.v… Ví d sau đây dùng mt hàm đ v ba đng biu din vi ba màu đ, xanh nc bin, và xanh lá cây: > 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") 246810 0.0 0.2 0.4 0.6 0.8 1.0 Ind e x runif(10) Lines in various colours Ngoài ra, chúng ta còn có th v đng biu din bng cách tng b dày ca mi đng: > 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") 12345 0.0 0.2 0.4 0.6 0.8 1.0 Ind ex runif(5) Varying the line thickness Hình dng ca biu đ cng có th thay đi bng type nh sau: > op <- par(mfrow=c(3,2)) > plot(runif(5), type = 'p', main = "plot type 'p' (points)") > plot(runif(5), type = 'l', main = "plot type 'l' (lines)") > plot(runif(5), type = 'b', main = "plot type 'b' (both points and lines)") > plot(runif(5), type = 's', main = "plot type 's' (stair steps)") > plot(runif(5), type = 'h', main = "plot type 'h' (histogram)") > plot(runif(5), type = 'n', main = "plot type 'n' (no plot)") > par(op) 12345 0.3 0.5 0.7 0.9 plot type 'p' (points) Index runif(5) 12345 0.3 0.5 0.7 0.9 plot type 'l' (lines) Index runif(5) 12345 0.2 0.4 0.6 0.8 plot type 'b' (both points and lines) Index runif(5) 12345 0.4 0.6 0.8 plot type 's' (stair steps) Index runif(5) 12345 0.1 0.2 0.3 0.4 plot type 'h' (histogram) Index runif(5) 12345 0.2 0.4 0.6 plot type 'n' (no plot) Index runif(5) Khung biu đ có th kim soát bng lnh bty vi các thông s nh sau: bty=”n” Không có vòng khung chung quanh biu đ bty=”o” Có 4 khung chung quanh biu đ bty=”c” V mt hp gm 3 cnh chung quanh biu đ theo hình ch C bty=”l” V hp 2 cnh chung quanh biu đ theo hình ch L bty=”7” V hp 2 cnh chung quanh biu đ theo hình s 7 Cách hay nht đ bn đc làm quen vi các cách v biu đ này là bng cách th trên R đ bit rõ hn. Kí hiu ca mt biu đ cng có th thay th bng cách cung cp s cho pch (plotting character) trong R. Các kí hiu thông dng là: Available symbols 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 > plot(x, y, col=”red”, pch=16, bty=”l”) -4 -2 0 2 4 -2 -1 0 1 2 x y Biu đ 4. nh hng ca pch=16 và col=”red”, bty=”l”. 8.1.6 Ghi chú (legend) Hàm legend rt có ích cho vic ghi chú mt biu đ và giúp ngi đc hiu đc ý ngha ca biu đ tt hn. Cách s dng legend có th minh jo bng 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ó ngha là đt phn ghi chú vào trc hoành (x-axis) bng 2 và trc tung (y-axis) bng -2. -4 -2 0 2 4 -4 -2 0 2 4 Scatter plot of y and x x y * Production Regression line Production Regression line Biu đ 5. nh hng ca legend 8.1.7 Vit ch trong biu đ Phn ln các biu đ không cung cp phng tin đ vit ch hay ghi chú trong biu đ, hay có cung cp nhng rt hn ch. Trong R có hàn mtext() cho phép chúng ta đt ch vit hay gii thích bên cnh hay trong biu đ. Bt đu t phía di ca biu đ (side=1), chúng ta chuyn theo hng kim đng h đn cnh s 4. Lnh plot trong ví d sau đây không in tên ca trc và tên ca biu đ, nhng ch cung cp mt cái khung. Trong ví d này, chúng ta s dng cex (character expansion) đ kim soát kích thc ca ch vit. Theo mc đnh thì cex=1, nhng vi cex=2, ch vit s có kích thc gp hai ln kích thc mc đnh. Lnh text() cho phép chúng ta đt ch vit vào mt v trí c th. Lnh th nht đt ch vit trong ngoc kép và trung tâm ti x=15, y=4.3. Qua s dng adj, chúng ta còn có th sp xp v phía trái (adj=0) sao cho ta đ là đim xut phát ca ch vit. > 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") 0 50 100 150 200 -4 -2 0 2 4 Text on side 1, cex=1 Text on side 2, cex=1.2 Text on side 3, cex=1.5 Text on side 4, cex=2 text(15, 4.3) text(35, 3.5), left aligned 4 0, 5), right aligned 8.1.8 t kí hiu vào biu đ. abline() có th s dng đ v mt đng thng, vi nhng thông s nh sau: abline(a,b): đng hi qui tuyn tính a=intercept và b=slope. abline(h=30) v mt đng ngang ti y=30. abline(v=12) v mt đng thng đng ti đim x=12. Ngoài ra, chúng ta còn có th cho vào biu đ mt mi tên đ ghi chú mt đim s liu nào đó. > N <- 200 [...]... 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 v bi u h p (boxplot)... 80 -2 sort(age) Bi u 11 Xác su t phân ph i m t bi n age ( tu i) -1 0 1 2 Theoretical Quantiles cho Bi u 12 Ki m tra bi n age có theo lu t phân ph i chu n hay không Trong th trên, tr c tung là xác su t tích l y và tr c hoành là tu i t th p n cao Ch ng h n nh nhìn qua bi u , chúng ta có th th y kho ng 50% i t ng có tu i th p h n 60 bi t xem phân ph i c a age có theo lu t phân ph i chu n (normal distribution)... 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 80 N = 50 Bandwidth = 3.806 Bi u 10a Xác su t phân ph i m t bi n age ( tu i) 90 40 50 60 70 80 age cho Bi u 10b Xác su t phân ph i m t cho bi n age... 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 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... 1.5, 3.9, 2.5, 2.4, 3.3, 5.4, 3.0, 6.2, 1.4, 4.0, 2.0, 4.0, 4.2, 4.0, 4.0) 1.9, 3.1, 1.3, 2.7, 2.5) cong dotchart(bmi, xlab="Body mass index (kg/m^2)", main="Distribution of BMI") Distribution of BM I 18 20 22 24 Body mass index (kg/m^2) Bi u 16 Bi u i m bi n bmi 8.7 Phân tích bi u 8.7.1 Bi u cho hai bi n liên t c tán x (scatter plot) tìm hi u m i liên h gi a hai bi n, chúng ta dùng bi u tán x v bi u tán x v m i liên h gi a bi n s tc và hdl, chúng ta s d ng hàm plot... vào i t ng reg L nh th hai abline(reg) yêu c u R v ng th ng t ph ng trình trong reg B n c có th thí nghi m v i nhi u thông s f=1/2, f=2/5, hay th m chí f=1/10 s th y th bi n i m t cách “thú v ” 8.8 Phân tích Bi u cho nhi u bi n: pairs Chúng ta có th tìm hi u m i liên h gi a các bi n s nh age, bmi, hdl, ldl và tc b ng cách dùng l nh pairs Nh ng tr c h t, chúng ta ph i a các bi n s này vào m t data.frame... u tán x giúp cho chúng ta hình dung ra m i liên h gi a hai bi n s liên t c nh tu i age và hdl ch ng h n Và làm vi c này, chúng ta dùng hàm plot tìm hi u phân ph i cho t ng bi n age hay hdl chúng ta có th dùng hàm boxplot Nh ng n u chúng ta mu n xem phân ph i c a hai bi n và ng th i m i liên h gi a hai bi n, thì chúng ta c n ph i vi t m t vài l nh th c hi n vi c này Các l nh sau ây v bi u tán x v m i... main="Bubble plot") > points(age, hdl, cex=tg) 2 4 HDL 6 8 Bubble plot 50 60 70 80 Age 8.9.3 Bi u thanh và xác su t tích l y v bi u t n s c a m t bi n liên t c chúng ta ch y u s d ng hàm hist Hàm này cho ra k t qu t n s cho t ng nhóm (nh nhóm tu i ch ng h n) Nh ng ôi khi chúng ta c n bi t c xác su t tích l y cho t ng nhóm, và mu n v c hai k t qu trong m t bi u làm vi c này chúng ta c n ph i vi t m t hàm b . liu quan trng bng biu đ. Vì th, phân tích biu đ đóng mt vai trò cc kì quan trng trong phân tích thng kê. Có th nói, không có đ th là phân tích thng kê không có ngha. Trong. đ 11. Xác sut phân phi mt đ cho bin age (đ tui). Biu đ 12. Kim tra bin age có theo lut phân phi chun hay không. Trong đ th trên, trc tung là xác sut tích ly và trc. đ trên là đnh lng theo lut phân phi chun (theoretical quantile) và trc hoành đnh lng ca s liu (sample quantiles). Nu phân phi ca age theo lut phân phi chun, thì đng biu