Tại sao phải học STATA - Cần thiết biết cách dùng STATA cho i Thống kê ii Kinh tế lượng iii Quản lý cơ sở dữ liệu iv Hệ thống thông tin - Xử lý các tệp dữ liệu lớn - Chạy các mô hình p
Trang 1STATA ỨNG DỤNG TRONG KINH TẾ
Lecturer: Le Khac Bo (lkbo@vnua.edu.vn)
Department of Quantitative AnalysisFaculty of Economics and Rural DevelopmentVietnam National University of Agriculture
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 2Tại sao phải học STATA
- Cần thiết biết cách dùng STATA cho
(i) Thống kê
(ii) Kinh tế lượng
(iii) Quản lý cơ sở dữ liệu
(iv) Hệ thống thông tin
- Xử lý các tệp dữ liệu lớn
- Chạy các mô hình phi tuyến phức tạp như LIMDEP
- Các phương pháp đánh giá tham số và phi tham số
- Cho bạn muốn tiếp tục nghiên cứu KT, trở thành chuyên gia KT, cập nhật kiến thức mới
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 3Một số websites thường SD
• Nguồn tài liệu cho chúng ta học STATA
– Stata website, Stata journal, Stata library , Statalist
archive
– http://www.stata.com/links/resources1.html
• Michigan’s web-based guide to STATA (for SA)
• UCLA resources to help you learn and use
STATA:
– http://www ats.ucla.edu/stat/stata
– Bao gồm cả phim ảnh và sách điện tử
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 4Giới thiệu Stata
• Các phiên bản của Stata: từ version 8 trở đi (hiện tại là
version 10) có thêm cả giao diện kéo thả menu.
• Menu: giao diện kéo thả menu
• Stata Command (ctrl + 4): giao diện dòng lệnh (hầu hết thao tác của chúng ta với dữ liệu đều qua giao diện dòng lệnh).
• Stata Result (ctrl + 1): Cửa sổ hiện thị tất cả các kết quả bao gồm cả đúng và sai.
• Review (ctrl + 5): xem lại tất cả các lệnh mà bạn đã thực
Trang 5Có sẵn từ ứng dụng trên Laptop của bạn
Nháy đúp vào biểu tượng trên!Wstata.exe
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 6Các nút/Menu
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 7Gõ câu lệnh vào đây
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 8hoặc sử dụng làm trình soạn thảo để tạo ra một tập tin do
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 9cửa sổ kết quả
Tốt hơn để tiết kiệm đầu ra nhiều hơn sau này
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 10Bấm để được trợ giúp rộng rãi hoặc gõ
giúp đỡ (help) trong dòng lệnh
help
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 12Exit, clear
03/19/2024 KT02043 - UDTHTKT - LÊ KHẮC BỘ - VNUA
Gõ Exit, clear trong dòng lệnh
Trang 14Các tính năng quan trọng
• Chú ý
– Luôn luôn sử dụng chữ thường trong STATA
– Nếu không bạn có thể nhận được rất bối rối
• More
more trong cửa sổ đầu ra của bạn kết quả sẽ hiện thêm
[nhấn phím cách (spacebar) và trang tiếp theo sẽ xuất
hiện]
– Lệnh set more off sẽ tắt lệnh trên
• Không đủ bộ nhớ [để đặt lại!]
– set mem XXXm (allocate XXX mb of data)
– set matsize XXX (max matrix size XXX square)
Trang 15Giao diện menu
• File: Trong menu này gồm: lưu dữ liệu, log, các ví
dụ trong Stata
• Edit: Các thao tác copy, past
• Data: Làm việc với biến (mô tả, tạo…), liên kết dữ liệu
• Graphics: Làm việc với đồ thị
• Statistics: Làm việc với thống kê như tính tần
suất, trung bình, hồi quy, time – series
• Window: Dùng để hiển thị các cửa sổ như
comand, Review… và do file
Trang 16Giao diện menu
• Câu lệnh phân biệt chữ hoa chữ thường (khuyên dùng chữ thường).
• Cấu trúc câu lệnh trong Stata
[by varlist:] command [varlist] [= exp] [if exp] [in
range] [weight] [using filename] [, options]
• Khi gõ bạn có thể không cần gõ tất cả câu lệnh Ví dụ: thay vì gõ generate (tạo một biến) bạn có thể gõ gen là được.
• Có thể dùng tiếng việt trong Stata 10 (font: vntime).
16
KT02043 - UDTHTKT - LÊ KHẮC BỘ -
VNUA
LÊ KHẮC BỘ - VNUA 03/19/2024
Trang 17Giao diện menu
• Ví dụ về cấu trúc lệnh generate:
generate [type] newvar[:lblname] =exp [if] [in]
Trong đó:
type:kiểu biến, trong Stata có kiểu như byte, int, long, float, double, str
newvar: tên biến
lblname: Nhãn của biến
exp: có thể là một biến, một biểu thức toán học
Change variables Create new variable
Trang 18Các kiểu dữ liệu trong Stata
Kiểu biến Giá trị nhỏ nhất Giá trị lớn nhất
Trang 19• Thiết lập thư mục làm việc
sysdir set PLUS “D:\Stata\Stata10\ado\plus” Bình thường sẽ tạo một thư mục ado ở ổ C,
nếu khi bạn update các câu lệnh mới thì nó sẽ
tự động vào thu mục plus ado
• Sử dụng help: help câu_lệnh; findit từ_khóa
Trang 20Quản lý số liệu trong Stata: Log file
log using filename [, append replace [text|smcl]]
• Đuôi mở rộng của log file: log; smcl; doc
Trang 21Quản lý số liệu trong Stata
– Mở một data hệ thống: sysuse Ten_data_hethong
– File đã có sẵn (File Open) hoặc dùng lệnh (use, clear)
– Sử dụng dataset trên mạng: webuse
• Lưu dataset với save và saveold (dùng cho các version 8,9)
save [filename] [, save_options]
• Xem dữ liệu (browser)
browse [varlist] [if] [in] [, nolabel]
Trang 22Quản lý số liệu trong Stata
Trang 23Quản lý số liệu trong Stata
Trang 24Quản lý số liệu trong Stata
Trang 25Quản lý số liệu trong Stata
StatTransfer
25
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 26Quản lý số liệu trong Stata
– tab: Các giá trị trong số liệu cách nhau bởi tab
– comma: Các giá trị cách nhau bởi dấu phẩy
– delimiter( “char”): Chúng ta có thể xác định kí tự trong số liệu
– clear: xóa số liệu trong bộ nhớ
– [no] names: mặc định tên biến là dòng đầu tiên Nếu bạn xác định no thì ngược lại
26
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 27Quản lý số liệu trong Stata
insheet (tiếp)
• Để biết được loại file dữ liệu định dạng theo cách nào gõ type “tên_file”
Ví dụ:
type “đường_dẫn_fem.dat” Xem dữ liệu theo định dạng loại gì
insheet using "E:\ebook\stata\Lecture\Data example\Handbook of
Trang 28Quản lý số liệu trong Stata
odbc
• Các bạn sử dụng câu lệnh odbc cho excel odbc load, dsn("Excel Files;DBQ=d:\
Book1.xls") table("Sheet1$")
• File Import ODBC data source chọn
MS excel (chọn đường dẫn đến file excel)
28
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 29Quản lý số liệu trong Stata (tiếp)
Biến
• Một số quy ước: độ dài tối đa của biến là 32 kí
tự, nhãn để mô tả biến có độ dài tối đa là 224 kí tự
• Tạo biến (generate)
• Gán label và value label cho biến?
29
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 30Quản lý số liệu trong Stata (tiếp)
Trang 31Quản lý số liệu trong Stata (tiếp)
Biến (dùng menu)
• generate q1= (Tạo ra biến q1 và gán cho
biến q1 giá trị missing )
• Gán nhãn cho biến: Data Labels Label variable
31
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 32Quản lý số liệu trong Stata (tiếp)
Biến (dùng menu)
• Định nghĩa một nhãn giá trị: Data
Labels Label values Define or modify value labels
32
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 33Quản lý số liệu trong Stata (tiếp)
Biến(dùng menu)
• Bây giờ, khi đã định nghĩa một tên nhãn giá trị
(yesno), chúng ta phải gán cho một biến nào
đó? (q1)
• Vào Data Labels Label Values Assign
value label to variable
33
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 34Quản lý số liệu trong Stata (tiếp)
Biến( giao diện dòng lệnh)
• Thao tác với tại dòng lệnh
label variable q1 “Bạn đã lập gia đình chưa?”
label define yesno 1 “yes” 2 “no”
label values q1 yesno
• Nếu chúng ta muốn thêm nhãn giá trị cho biến q1, ta làm như sau:
label define yesno 8 “don’t know”,add
• Nếu chúng ta chỉnh sửa nhãn giá trị cho biến q1, ta làm như sau:
label define yesno 8 “No Responding", modify
34
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 35Quản lý số liệu trong Stata (tiếp)
Một số thao tác trên biến
• Mô tả cấu trúc dữ liệu hoặc biến ? (describe)
des varlist
• Để đổi tên biến: rename old_var new_var
• Muốn xóa một biến trong Stata? (drop hoặc
keep) Ngược lại với drop là keep
drop var1 [var2….]
drop if var1 >=15
35
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 36Quản lý số liệu trong Stata (tiếp)
Cấu trúc của file dữ liệu
• Một ai đó đưa cho chúng ta một dữ liệu mà không có
bảng hỏi, chúng ta muốn kiểm tra cấu trúc dữ liệu, các khoảng giá trị của biến, các nhãn của biến, các nhãn của giá trị
Trang 37Quản lý số liệu trong Stata (tiếp)
Chuyển biến kiểu số sang chuỗi và ngược lại
• destring: chuyển biến kiểu chuỗi (kí tự) sang biến kiểu số
destring [varlist] , {generate(newvarlist)|replace} [destring_options]
• tostring: chuyển biến kiểu số sang kiểu chuỗi
tostring varlist , {generate(newvarlist)|replace} [tostring_options]
• Ví dụ: sử dụng số liệu destring1.dta, tostring.dta
• Chúng ta có thể cộng 2 hay nhiều biến string được với nhau.
37
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 38Quản lý số liệu trong Stata (tiếp)
Ví dụ: sử dụng số liệu auto
sysuse auto format length %9.0g
38
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 39Quản lý số liệu trong Stata (tiếp)
• Ví dụ: Muốn lấy phần dư của 5 chia cho 2
display mod(5,2) kết quả bằng 1
• Kết hợp lệnh gen với các hàm toán học
ví dụ: gen phandu = mod(5,2)
39
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 40Quản lý số liệu trong Stata (tiếp)
Hàm toán học và Toán tử
• Trước tiên, chúng phải biết các toán tử so sánh
và toán tử logic và các phép cộng, trừ, nhân…
Trang 41Quản lý số liệu trong Stata (tiếp)
Trang 42Quản lý số liệu trong Stata (tiếp)
Trang 43Quản lý số liệu trong Stata (tiếp)
egen
• Là hàm mở rộng của generate
• Cú pháp
egen [type] newvar = fcn(arguments) [if] [in] [, options]
• Ví dụ: Tính tổng thu nhập ngoài tiền công, lương từ câu 12a đến câu 12e (muc4a.dta)
Bạn dùng help egen tại dòng lệnh để tìm hiểu thêm các option của lệnh egen
43
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 44Quản lý số liệu trong Stata (tiếp)
Mã hóa lại biến
• Chúng ta cần mã hóa lại biến Ví dụ biến q1 được gán với nhãn giá trị là yesno (recode).
Trang 45Quản lý số liệu trong Stata (tiếp)
Mã hóa lại biến
• Một câu hỏi đặt ra là chúng ta muốn
recode biến theo khoảng giá trị của biến
đó? ta làm như thế nào?
• Ví dụ biến tuổi (age): 0 – 17: 1 Dưới độ tuổi
lao động; 18-65:2 Độ tuổi lao động; 67 trở đi: 3
Ngoài độ tuổi lao động; và tạo ra một biến mới
là newage và nhãn giá trị new_age
recode age (0/17 = 1 “Dưới độ tuổi lao động”)
(18/65=2 “Độ tuổi lao động”) (65/105 = 3 “Ngoài độ tuổi lao động”), pre(newage) label(new_age)
45
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 46Quản lý số liệu trong Stata (tiếp)
Mã hóa lại biến (Bài tập)
• Dùng số liệu VHLSS06 (phần thông tin
chung) muc1a.dta
• Câu hỏi:
– Tính tuổi thành viên(indage) từ năm sinh
– Giới tính của chủ hộ (hhsex)
– Tổng số con (hhchild) của chủ hộ
46
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 47Quản lý số liệu trong Stata (tiếp)
Quản lý bộ nhớ
• Mặc định Stata thiết lập bộ nhớ là 10MB, nhưng nếu dữ liệu của bạn lớn hơn 10MB thì sao? (set mem kich_cỡ) – set mem 120m
• Muốn màn hình kết quả hiển thị tất cả kết quả
mà không có more? set more off Câu lệnh này rất được hay dùng trong dofile
47
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 48Quản lý số liệu trong Stata (tiếp)
Một số ép kiểu dữ liệu
• Hàm int(), float(), string(). chúng ta muốn ép từ kiểu
dữ liệu này sang kiểu dữ liệu khác Vậy nó khác gì với các hàm chuyển kiểu như destring() và tostring()?
Ví dụ: display int(3.45) kết quả sẽ là 3
• Khoảng biến: var1-var5 (var1 var2 var3 var4 var5).
Trang 49Quản lý số liệu trong Stata (tiếp)
49
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 50Quản lý số liệu trong Stata (tiếp)
Nối số liệu (append)
• Sử dụng 2 số liệu even.dta và odd.dta
use Đường_dẫn_đến số liệu odd.dta
append using Đường_dẫn_đến_số_liệu even.dta
list Hiển thị kết quả sau khi nối.
50
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 51Quản lý số liệu trong Stata (tiếp)
Nối số liệu
• Trong lệnh merge số liệu master là trong bộ nhớ, còn số liệu using là dữ liệu để merge vào.
merge [varlist] using filename [filename ] [, options]
• Mặc định tạo ra biến _merge nhận 3 giá trị
– 1 Quan sát chỉ có trong số liệu master
– 2 Quan sát chỉ có trong số liệu using
– 3 Quan sát có cả trong master và using
• Merge bạn có thể quan hệ 1-1, 1-nhiều, nhiều
nhiều
51
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 52Quản lý số liệu trong Stata (tiếp)
merge using “Đường_dẫn_chứa_file_odd.dta”
Ở đây, file even.dta là master file, còn file odd.dta là using file
• Ví dụ 2: sử dụng biến để nối ( thường là biến id) use “Đường_dẫn_chứa_file_even.dta”,clear
sort number // sắp số liệu theo chiều tăng dần của biến number
save, replace // lưu và thay số liệu trong file
use “Đường_dẫn_chứa_file_odd2.dta”,clear là số liệu master.
sort number // sắp số liệu theo chiều tăng dần của biến number
merge number using “Đường_dẫn_chứa_file_even.dta”
52
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 53Quản lý số liệu trong Stata (tiếp)
Nối số liệu
• Ví dụ 3: merge 2 số liệu province và merge province (master) chúng ta sẽ nối theo biến procode
53
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 54Quản lý số liệu trong Stata (tiếp)
Tạo số ngẫu nhiên
• Tạo dữ liệu ngẫu nhiên và mẫu ngẫu nhiên
• Một số hàm:
– uniform() tạo số ngẫu nhiên trong khoảng (0,1).
– set obs rownum: thiết lập số observation cho một dữ liệu
– set seed số_bất_kỳ: có tác dụng biết số ngẫu nhiên
đó lần sau.
– sample: lấy số liệu ngẫu nhiên từ dữ liệu sẵn có
sample có 2 dạng là chọn theo %; sample n(phần
trăm) và chọn theo số lượng; sample n, count
54
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 55Quản lý số liệu trong Stata (tiếp)
Sử dụng biến hệ thống
• Khi số liệu đã có trong bộ nhớ thì _N đại
diện cho tổng số quan sát
• _n đại diện cho quan sát số: _n=1 quan sát thứ nhất, _n=2 cho quan sát thứ hai, đến _n=_N cho quan sát cuối cùng
Trang 56Quản lý số liệu trong Stata (tiếp)
Trang 57Bài tập
• Lưu lại nhật kí làm việc của mình
• Thêm nhãn, nhãn giá trị trong bảng hỏi VHLSS2006
phần số liệu muc4a (thu nhập) cho các câu m4ac1a,
m4ac1b, m4ac1c, m4ac2, m4ac3, m4ac10b Từ đó
tính tổng thu nhập (câu 11 + câu 12f + câu 21 + câu 22f + câu 25 trong bảng hỏi)
• Sử dụng số liệu muc1a, tạo một biến reg8 (phân thành 8 vùng) từ tỉnh; 1 "Red River Delta" 2 "North East" 3 "North West" 4 "North Central Coast“ 5 "South Central Coast" 6
"Central Highlands" 7 "South East" 8 "Mekong River
Delta"
57
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 59Mô tả thống kê với các biến liên
• bysort kết hợp với summarize Để tính
summarize và tách theo biến rời rạc
• summarize kết hợp với if
59
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 60Mô tả thống kê với các biến liên tục (tiếp)
• Ví dụ: muc4a.dta, tính tổng thu nhập trung bình, theo ngành nghề làm việc (câu 10a)Kết hợp bysort với sum
bysort m4ac10a: sum tongTN Chia theo ngành nghề
Kết hợp if với sum
sum tongTN if m4ac10a ==4 & m4ac10b==1 Mô tả
tongTN theo kinh tế NN và là cán bộ công chức
sum tongTN if m4ac10a ==6 Mô tả tongTN theo kinh
tế tư nhân
60
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 61Mô tả thống kê với các biến liên
Trang 62Mô tả thống kê với các biến liên tục (tiếp)
• tabstat kết hợp với by
tabstat m4ac11, sta(mean sd median variance n) by ( m4ac10b)
m4ac10b mean sd p50 variance N
có 16785.07 10389.17 15600 1.08e+08 716
không 11715.51 9470.253 9550 8.97e+07 384
Total 15015.33 10359.63 14000 1.07e+08 1100
Nếu bạn muốn tính thống kê với giá trị missing của biến điều kiện (q34) thì ta
chỉ cần gõ thêm lựa chọn missing như sau tabstat m4ac11, sta(mean sd median variance n) by ( m4ac10b) missing
Chúng ta có thể định dạng lại số liệu bằng lựa chọn format
tabstat m4ac11, sta(mean sd median variance n) by ( m4ac10b)
format(%9.1f)
62
03/19/2024 KT02043 – UDTHTKT - LÊ KHẮC BỘ - VNUA
Trang 63Xử lý các giá trị missing và ví dụ
• Có 27 giá trị missing có thể có trong Stata, mặc định giá trị missing là dấu chấm(.)
• Còn lại là 26 giá trị missing trùng với 26 kí
tự trong bảng chữ cái nhưng có dấu chấm