Transcript Bài giảng 3
GiỚI THIỆU PHẦN MỀM XỬ
LÝ SỐ LIỆU STATA
TRUNG TÂM NGHIÊN CỨU CHÍNH SÁCH
VÀ PHÁT TRIỂN
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
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
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ẽ
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 đó.
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
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)
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
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 ….
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
Biểu đồ đám mây điểm (Scatterplot)
Một số options:
msymbol(symbolstylelist):
symbolstyle
synonym
(if any)
description
circle
diamond
triangle
square
plus
x
O
D
T
S
+
X
solid
solid
solid
solid
smcircle
smdiamond
smsquare
smtriangle
smplus smx
o
d
s
t
x
solid
solid
solid
solid
circle_hollow
diamond_hollow
triangle_hollow
square_hollow
Oh
Dh
Th
Sh
hollow
hollow
hollow
hollow
smcircle_hollow
smdiamond_hollow
smtriangle_hollow
smsquare_hollow
oh
dh
th
sh
hollow
hollow
hollow
hollow
point
none
p
i
a small dot
a symbol that is invisible
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
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)
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
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
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
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
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))
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]
x
x
axis(2)
v1/v2
y axis(2)
y axis(4)
v2/v1
axis(4)
v1/v3
v1/v4
v1/v5
v2/v3
v2/v4
v2/v5
v3/v4
v3/v5
v3/v1
v3/v2
v4/v1
v4/v2
v4/v3
v5/v1
v5/v2
v5/v3
x
axis(1)
x
axis(3)
y axis(1)
y axis(3)
v4/v5
y axis(5)
v5/v4
x
axis(5)
ví dụ: sử dụng auto
sysuse auto, clear
graph mat mpg price weight length, ms(Oh)
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.
The encoding and the words used to describe the encoding are
o
o
adjacent line
<- outside values
<- upper adjacent value
whiskers
<- 75th percentile (upper hinge)
box
<- median
<- 25th percentile (lower hinge)
whiskers
adjacent line
<- lower adjacent value
o
<- outside value
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
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]
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]
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 đồ
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()
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()
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
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
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.