Bài giảng 3

Download Report

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.