Bài giảng 4: Giới thiệu về đồ thị và lập trình trong STATA
Các loại hình biểu đồ/đồ thị như đồ thị hai chiều, đồ thị ma trận, đồ thị dạng hộp/tròn sẽ được giới thiệu trong phần này. Ngoài ra, người học còn được hướng dẫn những bước cơ bản về lập trình các phép xử liệu số liệu thống kê trong STATA trong bài giảng 4 này:
Biểu đồ
Sử dụng đồ thị hai chiều (biểu đồ phân tán, biểu đồ đường thẳng, biểu đồ cột) và đồ thị kết hợp
Đồ thị ma trận
Đồ thị hộp
Đồ thị tròn
Tổng quan về lập trình (dofile, macro, các vòng lặp)
*Tài liệu tham khảo: Các bạn có thể tham khảo các tài liệu sau đây để tìm hiểu thêm về nội dung bài học:
Hướng dẫn sử dụng STATA 9, STATA, 2005
Thống kê với STATA, Lawrence C. Hamilton, Curt Hinrichs Nhà xuất bản, 2006
Bắt đầu với STATA, STATA, 2005
*Để biết thêm chi tiết về các hoạt động và nghiên cứu của DEPOCEN truy cập
Website: http://depocen.org/vn/
LinkedIn: http://linkd.in/1GnHrHB
Facebook: https://www.facebook.com/newdepocen?fref=ts
Phân tích số liệu định lượng với phần mềm STATA. Bài giảng 4: Giới thiệu về đồ thị và lập trình trong STATA
1. TRUNG TÂM NGHIÊN CỨU CHÍNH SÁCH VÀ PHÁT
TRIỂN
GiỚI THIỆU PHẦN MỀM XỬ
LÝ SỐ LIỆU STATA
2. Bi u đ trong Stataể ồ
• Gi i thi u bi u đ trong Stataớ ệ ể ồ
• Biểu đồ Histogram
• Biểu đồ 2 chi u ( K t h p 2 bi n) – graph twowayề ế ợ ế
• Biểu đồ d ng ma tr n – graph matrixạ ậ
• Biểu đồ hình h p – graph boxộ
• Biểu đồ hình pie – graph pie
• Biểu đồ c t – graph barộ
3. Gi i thi u v đ h a trong Stataớ ệ ề ồ ọ
Đ h a luôn là ph n m nh trong Stataồ ọ ầ ạ
Stata có r t nhi u ki u đ h a khác nhau cho b nấ ề ể ồ ọ ạ
l ng ch n.ượ ọ
Trong m i ki u đ h a có r t nhi u option cho b nỗ ể ồ ọ ấ ề ạ
l a ch n.ự ọ
B n có th dùng giao di n menu (Graphics)ạ ể ệ
đây, mình s h ng d n giao di n t i dòng l nhỞ ẽ ướ ẫ ệ ạ ệ
4. Bi u đ Histogramể ồ
• Histogram dùng đ bi u di n phân b các giá tr c aể ể ễ ố ị ủ
bi n đó trong đ thế ồ ị
• Cú pháp:
histogram varname [if] [in] [weight] [, [continuous_opts |
discrete_opts] options]
continuous_opts: bin(#), width(#), start(#) V i các bi n là liênớ ế
t cụ
bin(#): # là s l ng c t hi n th trên đ h a, n u không xác đ nhố ượ ộ ể ị ồ ọ ế ị
bin(#) thì m c đ nh s l ng bin đ c tính theo công th c sau:ặ ị ố ượ ượ ứ
# = min{sqrt(N), 10 ln(N)/ln(10)} v i N là s quan sátớ ố .
width(#): # đ r ng c a t ng c t cái này ph thu c vào s l ngộ ộ ủ ừ ộ ụ ộ ố ượ
c tộ
start(#): M c đ nh # là giá tr nh nh t c a bi n c n vặ ị ị ỏ ấ ủ ế ầ ẽ
5. Bi u đ Histogram (ti p)ể ồ ế
discrete_opts: v i các bi n là r i r cớ ế ờ ạ
discrete: bi n s li u là bi n r i r cế ố ệ ế ờ ạ
width(#) và start(#): cũng t ng t nh l a ch n liên t cươ ự ư ự ọ ụ
options:
• density: chi u cao c a bin (tr c đ ng) đ n v trên thang đo là m tề ủ ụ ứ ơ ị ậ
đ (t ng di n tích các c t c ng đ th b ng 1)ộ ổ ệ ộ ộ ồ ị ằ N u chúng taế
không ch n m t l a ch n nào thì desity là m c đ nh đ c ch n.ọ ộ ự ọ ặ ị ượ ọ
• fraction: đ n v thang đo là phân s t ng chi u cao c a các c t c ngơ ị ố ổ ề ủ ộ ộ
l i b ng 1.ạ ằ
• frequency: đ n v trên thang đo là t n su t, t ng s chi u cao c aơ ị ầ ấ ổ ố ề ủ
các c t b ng v i t ng s quan sát (observations) c a bi n đó.ộ ằ ớ ổ ố ủ ế
6. Bi u đ Histogram (ti p)ể ồ ế
options:
percent: đ n v trên thang đo là ph n trăm, t ng s chi u cao c aơ ị ầ ổ ố ề ủ
các c t b ng 100.ộ ằ
gap(#): Kho ng cách gi a các c t, 0 <= # <100ả ữ ộ
axis_options: xlables(), ylabels(), ytitle(), xtitle().
normal: thêm đ ng cong m t đ chu n vào đ th .ườ ậ ộ ẩ ồ ị
caption(): Trích d n ngu n thông tinẫ ồ
title(), subtitle: các tiêu đề
note(): chú thích
7. Bi u đ Histogram(ti p)ể ồ ế
• K t h p v i by(): Chúng ta có th v đ th theo bi nế ợ ớ ể ẽ ồ ị ế
r i r c nào đó b ng cách s d ng by()ờ ạ ằ ử ụ
• Ví d : trong s li u stock 2 final.dta, q33 – Nămụ ố ệ
sinh, q34 – Gi i tínhớ
– histogram q33
– histogram q33, percent ylabels(0 (1) 10),grid) addlabels
normal by(q34)
– histogram q1, discrete percent addlabels xlabels(1 (1) 3,
valuelabel)
8. Biểu đồ 2 chi u ( K t h p 2 bi n) –ề ế ợ ế
graph twoway
Bi u đ đám mây đi m (scatterplots)ể ồ ể
Bi u đ đ ng th ng (Line Plots)ể ồ ườ ẳ
Bi u đ c t (bar plots)ể ồ ộ
Liên k t nhi u bi u đ trên m t tr cế ề ể ồ ộ ụ
9. Bi u đ đám mây đi m (Scatterplot)ể ồ ể
Cú pháp:
[twoway] scatter varlist [if] [in] [weight] [, options]
Bi u đ đám mây (phân tán) scatter có th cóể ồ ể
nhi u cách g i t i dòng l nh nhề ọ ạ ệ ư
graph two scatter ….
twoway scatter ….
scatter ….
10. Bi u đ đám mây đi m (Scatterplot)ể ồ ể
Bên c nh đó bi u đ scatter có th k t h p cùng v iạ ể ồ ể ế ợ ớ
m t s bi u đ khác trong twoway nh line, lfit… v iộ ố ể ồ ư ớ
cú pháp sau:
twoway (scatter …) (line …) (lfit ….) … ho c cách 2 ngăn g nặ ọ
h n.ơ
scatter …. || line …. || lfit…. || …
varlist là có d ng: y1 [y2[…]] xạ
11. Bi u đ đám mây đi m (Scatterplot)ể ồ ể
M t s options:ộ ố
msymbol(symbolstylelist):
none i a symbol that is invisible
point p a small dot
smsquare_hollow sh hollow
smtriangle_hollow th hollow
smdiamond_hollow dh hollow
smcircle_hollow oh hollow
square_hollow Sh hollow
triangle_hollow Th hollow
diamond_hollow Dh hollow
circle_hollow Oh hollow
smplus smx x
smtriangle t solid
smsquare s solid
smdiamond d solid
smcircle o solid
x X
plus +
square S solid
triangle T solid
diamond D solid
circle O solid
symbolstyle (if any) description
synonym
12. Bi u đ đám mây đi m (Scatterplot)ể ồ ể
mlabel(varlist): xác đ nh giá tr c a bi n c n hi n thị ị ủ ế ầ ể ị
chúng ta cũng có th k t h p v i by().ể ế ợ ớ
xscale () và yscale() : nh n các giá tr : nolog – m cậ ị ặ
đ nh, log – đi u ch nh theo m t đ xu t hi n các giáị ề ỉ ậ ộ ấ ệ
tr c a bi n trong 1 kho ng nh t đ nh , cu i cùng làị ủ ế ả ấ ị ố
l a ch n reverse – giá tr trên tr c s hi n th t maxự ọ ị ụ ẽ ể ị ừ
– min.
Ví d : chúng ta xem 2 ví d sauụ ụ
13. Bi u đ đá mây đi m (Scatterplot)ể ồ ể
Ví d 1: V bi u đ scatter đ n gi n dùng s li uụ ẽ ể ồ ơ ả ố ệ
auto
scatter mpg weight // v đ th đ n gi nẽ ồ ị ơ ả
Ví d 2: Thêm l a ch n msymbol()ụ ự ọ
scatter mpg weight msymbol(plus)
Ví d 3: Thêm l a ch n mlabel()ụ ự ọ
scatter mpg weight msymbol(plus) mlabel(mpg)
Ví d 4: thêm l a ch n xscale đ đi u ch nhụ ự ọ ể ề ỉ
kho ng cách trên tr c t a đả ụ ọ ộ
scatter mpg weight, xscale(log)
14. Bi u đ đ ng th ng(Line plot)ể ồ ườ ẳ
Cú pháp :
[twoway] line varlist [if] [in] [, options]
varlist: y1 [y2[..]] x
Chúng ta s d ng s li u trong h th ngử ụ ố ệ ệ ố
sysuse uslifeexp
line le year ( đây, chúng ta có th gõ line ho c twoway line, graphở ể ặ
twoway line đ u đ c)ề ượ
Chú ý: Nhi u tr ng h p, b n ph i s p x p bi n tr c xề ườ ợ ạ ả ắ ế ế ở ụ
ho c b n ph i có l a ch n sort trong bi u đ line.ặ ạ ả ự ọ ể ồ
sysuse auto, clear
line mpg weight
15. Bi u đ đ ng th ng (ti p)ể ồ ườ ẳ ế
Chúng ta có th k t h p các lo i bi u đ d ngể ế ợ ạ ể ồ ạ
twoway vào trong m t bi u đ (uslifeexp)ộ ể ồ
gen diff = le_wm - le_bm
label var diff "Difference“
line le_wm year|| line le_bm year || line diff year || lfit diff year
16. Bi u đ c t (bar plot)ể ồ ộ
Cú pháp:
twoway bar yvar xvar [if] [in] [, options]
Options:
vertical: Đ th hi n th hình c t theo chi u th ng đ ng.ồ ị ể ị ộ ề ẳ ứ
M c đ nhặ ị
horizontal: Đ th hi n th hình c t theo chi u ngangồ ị ể ị ộ ề
Các l a ch n khác c a t ng t nh histogramự ọ ủ ươ ự ư
17. Bi u đ c t (bar plot) – ti pể ồ ộ ế
Ví d : s d ng s li u sp500 đ v bi u đ bar giáụ ử ụ ố ệ ể ẽ ể ồ
thay đ i (bi n change) theo ngày (bi n date)ổ ế ế
twoway bar change date in 1/52
18. Liên k t đ thế ồ ị
Chúng ta có th liên 2 hay nhi u đ th vào trongể ề ồ ị
cùng m t tr c t o độ ụ ạ ộ
Cú pháp: có 2 cách
twoway (scatter …) (line …) (lfit ….) … ho cặ
scatter …. || line …. || lfit…. || …
Ví d :ụ
twoway line close date
twoway line close date, yaxis(1) || bar change date, yaxis(2) || in 1/52,
yscale(axis(1) r(1000 1400)) ylabel(1200(50)1400, axis(1))
yscale(axis(2) r(-50 300)) ylable(-50 0 50, axis(2)) ytick(-50(25)50,
axis(2) grid) yline(1150, axis(1))
19. Bi u đ matrixể ồ
Ma tr nậ
Cú pháp: đây là đ th m r ng c a scatter 2 chi uồ ị ở ộ ủ ề
graph matrix varlist [if] [in] [weight] [, options]
axis(1) axis(3) axis(5)
x x x
v5/v1 v5/v2 v5/v3 v5/v4 y axis(5)
y axis(4) v4/v1 v4/v2 v4/v3 v4/v5
v3/v1 v3/v2 v3/v4 v3/v5 y axis(3)
y axis(2) v2/v1 v2/v3 v2/v4 v2/v5
v1/v2 v1/v3 v1/v4 v1/v5 y axis(1)
axis(2) axis(4)
x x
ví d : s d ng autoụ ử ụ
sysuse auto, clear
graph mat mpg price weight length, ms(Oh)
20. Bi u đ hình h p (Box Plot)ể ồ ộ
Có 2 ki u bi u đ hình h p:ể ể ồ ộ
graph box yvars [if] [in] [weight] [, options]
graph hbox yvars [if] [in] [weight] [, options]
ng d ng: ch y u đ so sánh phân ph i c a bi nỨ ụ ủ ế ể ố ủ ế
này so v i bi n kia.ớ ế
o <- outside value
adjacent line <- lower adjacent value
whiskers
<- 25th percentile (lower hinge)
box <- median
<- 75th percentile (upper hinge)
whiskers
adjacent line <- upper adjacent value
o
o <- outside values
The encoding and the words used to describe the encoding are
21. Bi u đ hình h p (Box Plot)ể ồ ộ
• over(varname) – v i varname là bi n r i r c, ví dớ ế ờ ạ ụ
bi n gi i tính s chia đ th thành nhóm đ th làế ớ ẽ ồ ị ồ ị
nam và nữ
Ví d : dãy s sau “1,4,6,12,16,23,24”ụ ố
graph box var
22. Bi u đ hình tròn (Pie Chart)ể ồ
Hi n th các ph n c a hình tròn theo đ n v ph nể ị ầ ủ ơ ị ầ
trăm ho c giá tr c a t ng bi n đó (trong t ng giáặ ị ủ ừ ế ổ
tr c a các bi n) c a m i bi n.ị ủ ế ủ ỗ ế
Chú ý: theo cú pháp này thì các bi n trong varlistế
ph i cùng đ n vả ơ ị
graph pie varlist [if] [in] [weight] [, options]
23. Bi u đ hình tròn (Pie Chart)ể ồ
Hi n th các ph n c a hình tròn theo ph n trămể ị ầ ủ ầ
ho c giá tr c a bi n theo bi n r i r c trong over()ặ ị ủ ế ế ờ ạ
graph pie varname [if] [in] [weight], over(varname)
[options]
Hi n th các ph n c a hình tròn theo t n su t c aể ị ầ ủ ầ ấ ủ
bi n r i r c bên trong overế ờ ạ
graph pie [if] [in] [weight], over(varname) [options]
24. Bi u đ hình tròn (Pie Chart)ể ồ
M t s option chínhộ ố
over(varname): bi n r i r cế ờ ạ
angle0(#): # là đ nghiêng c a slice đ u tiên, m c đ nh là 90ộ ủ ầ ặ ị
độ
missing: b n mu n hi n th giá tr missing trên bi u đạ ố ể ị ị ể ồ
25. Bi u đ hình tròn (Pie Chart)ể ồ
plabel({#|_all} {sum|percent|name|"text"} [,
plabel_subopts]):
1<= # <= s l ng slice xác đ nh slice đ c hi n th label. n u chúngố ượ ị ượ ể ị ế
ta mu n hi n th slice 1 slice 2 và slice 4 thì chúng ta làm nh sauố ể ị ư
plabel (1 percent) plabel (2 percent) plabel(4 percent) còn n u b nế ạ
mu n hi n th toàn b label thì b n s d ng plabel(_all percent).ố ể ị ộ ạ ử ụ
plabel_subopts:
format(%fmt): fmt là các đ nh d ng mà chúng ta đã đ c gi i thi u trongị ạ ượ ớ ệ
câu l nh format và ch đ c dùng khi sum ho c percent đ c ch n.ệ ỉ ượ ặ ượ ọ
gap(#): dùng đ hi n th v trí c a các label trên đ th m c đ nh #=0. N uể ể ị ị ủ ồ ị ặ ị ế
# < 0 thì label s ti n g n v tâm đ ng tròn, còn # > 0 ti n ra xa tâmẽ ế ầ ề ườ ế
đ ng tròn.ườ
K t h p v i by(): cũng nh h u h t các đ th khác đ u cóế ợ ớ ư ầ ế ồ ị ề
th k t h p đ c v i by()ể ế ợ ượ ớ
26. Bi u đ hình tròn (Pie Chart)ể ồ
sysuse auto
gen price1 = price if price < 5000
gen price2 = price if price <8000 & price >=5000
gen price3 = price if price >=8000
graph pie price1 price2 price3 // đ th đ n gi n lo i 1ồ ị ơ ả ạ
graph pie price1 price2 price3, plabel(_all percent)// thêm
các nhãn cho đ thồ ị
graph pie price1 price2 price3, plabel(_all percent)
by( foreign, total)// K t h p v i by()ế ợ ớ
27. Bi u đ hình c t (Bar Chart)ể ồ ộ
Cú pháp:
graph bar yvars [if] [in] [weight] [, options]
graph hbar yvars [if] [in] [weight] [, options]
yvars:
(stat): v i stat là: mean median p1 p2 ... p99 sumớ
count min max
Options:
over( varname): varname là bi n r i r c, và b n có th k t h p đ cế ờ ạ ạ ể ế ợ ượ
nhi u over()ề
by(varname): cũng t ng t nh over(varname)ươ ự ư
blabel():M c đ nh là none, bar và totalặ ị
28. Bi u đ hình c t (Bar Chart)ể ồ ộ
sysuse auto
graph bar (mean) price weight, over(foreign)
graph bar (mean) price weight (median) price weight,
over(foreign)// K t h p v c đ th trung bình và ph ngế ợ ẽ ả ồ ị ươ
sai
graph bar (mean) price weight, over(foreign) blabel (bar) //
Thêm ph n trăm trên các c tầ ộ
29. L u l i đ thư ạ ồ ị
Vẽ đồ thị
graph pie price1 price2 price3, plabel(_all percent) by(foreign, total)
Lưu lại đồ thị
graph save "E:graph1.gph“, replace
Sử dụng đồ thị
graph use "E:graph1.gph“
hoặc cách rất đơn giản là khi vẽ đồ thị xong bạn vào menu của đồ thị chọn save là ok.