STATA-phan 3 - WordPress.com
Download
Report
Transcript STATA-phan 3 - WordPress.com
Phần 3
Quick review
Thư mục hiện tại
. pwd
D:\Stata12_WinX86_x64\Stata12_WinX86_x64
Thay đổi thư mục làm việc
Đường
dẫn có dấu cách, thêm “ “
. cd "E:\TAI LIEU\Stata"
E:\TAI LIEU\Stata
Đường
. cd E:\
E:\
dẫn không có dấu cách, không cần thêm “ “
log file
Lưu tất cả kết quả trên màn hình
log using filename [, append replace [text|smcl]
Chỉ lưu các câu lệnh trên màn hình
cmdlog using filename [, append replace]
. cd "E:\TAI LIEU\Stata\Buoi 3"
E:\TAI LIEU\Stata\Buoi 3
. log using test.doc, text
Đóng (mở) log (cmdlog) file tạm thời:
log (cmdlog) on (off)
Đóng log (cmdlog) file:
log (cmdlog) close
do file
File dữ liệu gốc: zipped lại hoặc để chế độ Readonly
Dofile nên tách riêng phần phân tích và phần làm
sạch số liệu. Ví dụ: ADB-cleandata.do; ADBanalysis.do
do file
Mỗi dofile có 1 log file riêng, nên để tên giống nhau
Hoặc một log file chung
.
.
.
.
.
.
clear
log using ADB.doc, text
do ADB-clean
do ADB-merge
do ADB-regressions
log close
Tạo dofile
Copy
các lệnh vào dofile editor
Dùng cmdlog
If/in
Lệnh if đứng ở cuối câu lệnh, trước dấu “,”
Lệnh in đứng ở cuối câu lệnh, trước dấu “,”
in 4/5: quan sát từ 4 đến 5
in f/4: 4 quan sát đầu tiên
in -4/l: 4 quan sát cuối cùng
STATA color-coded
var1: biến numeric được dán nhãn (màu xanh)
var2: biến string (màu đỏ)
var3: biến numeric (màu đen)
var4: biến string (màu đỏ)
Tạo biến mới
. gen [newvar]= [expression]
Tạo biến mới
. gen newvar = (var1==1 & var2==1)
. gen newvar = (var1==1 & var2<26)
Tạo biến mới
. tab var1, gen (var2)
recode
recode
. recode rep77 rep78 (1 2 = 1 "Below average") ///
(3 = 2 Average) ///
(4 5 = 3 "Above average") ///
(else=9
“No”)
(nonmissing= 9 “No”) ///
(missing=99 “Missing”), ///
pre(new) label(newrep)
Nhãn giá trị mới
Tạo biến mới: newrep77,
newrep78. Tương đương với
gen (newrep77 newrep78)
replace
. replace oldvar =exp [if] [in]
Nhãn data, chú thích
label data “Text”
notes: text
notes tenbien: text
Đổi tên biến, nhãn biến
Đổi tên biến
rename old new, [options]
rename (old1 old2 ...) (new1 new2 ...), [options]
rename old1 old2 ..., {UPPER|lower|Proper}[options]
options: renumber, renumber (#)
addnumber, addnumber (#)
Đổi tên biến
jana1 jana2 jana3
rename jan* *1
jana11 jana21 jana31
jana1 jana2 jana3
rename jan* *
a1 a2 a3
jana1 jana2 jana3
rename * *jan
jana1jan jana2jan jana3jan
Nhãn biến
label variable [varname] “Text”
Nhãn giá trị của biến
Bước 1: Tạo nhãn cho các giá trị
label define label1 1 “Dong y” ///
2 “Khong dong y” ///
3 “Khong biet”
Bước 2: Dán nhãn giá trị cho các biến
label values var1 label1
label values var2 label1
hoặc
label values var1 var2 label1
Bước 3: Thay đổi nhãn giá trị
label define label1 4 “Tu choi tra loi”, add
label define label1 4 “Khong tra loi”, modify
Biến hệ thống
_N: tổng số quan sát
_n: số thứ tự của quan sát
Tạo biến hệ thống theo nhóm
by major: gen idmajor=_n
Tạo biến lagged, forward
gen lag1_year=year[_n-1]
gen for1_year=year[_n+1]
gen lag2_year=year[_n-2]
gen for2_year=year[_n+2]
Giá trị missing
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 ở đằng trước(.a,
.b, .c,…..).
Các giá trị missing trong Stata được coi như các số
vô cùng lớn.
Giá trị missing
Ví dụ: chúng ta muốn tính tính summarize (mô tả
thống kê) với dữ liệu auto, ta tính mean của biến
price, theo rep78.
sum price if
rep78>3 Kết quả bảng 1
sum price if
rep78>3 &
rep78 <. Kết quả bảng 2
Variable
price
Obs
34
Mean
6073
Std. Dev.
2315.435
Min
3748
Max
12990
Variable
price
Obs
29
Mean
6011.38
Std. Dev.
2055.312
Min
3748
Max
11995
sum price if
rep78>3 & !missing(rep78)
sum price if
rep78>3 & missing(rep78)==0
Giá trị missing
Chuyển missing sang dạng số và ngược lại
. mvencode varlist [if] [in], mv(#|mvc=# [\
mvc=#...] [\ else=#])
. mvdecode varlist [if] [in], mv(numlist |
numlist=mvc [\ numlist=mvc...])
valid_numbers< . < .a < ... < .z.
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).
Bạn cũng có thể dùng các kí tự ?, * để thay thế cho
các kí tự; ví dụ: var* - sẽ tìm tất cả các biến bắt đầu
bằng var.
Hàm định dạng - format
Cú pháp: format varlist %fmt
Với %fmt:
%w.df: w là chiều dài của số đó, d là số chữ số sau phần thập phân
ví dụ: 1.5235 nếu định dạng %8.2f 1.52
%w.0g: w chiều dài của số đó
int
%8.0g
byte
%8.0g
long
%12.0g
float
%9.0g
double %10.0g
str# %#s
Mô tả thống kê
Các lệnh: summarize, tabulate, tabstat,tab1, tab2.
Mô tả thống kê với các biến liên tục.
Bảng tần suất và bảng tương quan quan 2
chiều(cross-tabulation).
Export dữ liệu
Frequencies
tabulate varname [if] [in] [,options]
options:
missing: tính missing như các giá trị khác
nofreq: không hiển thị tần số
nolabel: không hiển thị nhãn giá trị
sort: sắp xếp bảng theo tần số giảm dần
Frequencies and descriptive statistics
table rowvar [colvar [supercolvar]] [if] [in] ,
options]
options:
contents (freq mean sd min max median)
format (help table)
Frequencies and crosstabulations
tab var1 var2, sum (var3)
Crosstabs
tabulate varname1 varname2 [if] [in] [, options]
tab2 varlist [if] [in] [weight] [, options]
Options:
col
row
cell
nofreq
missing
nolabel
Descriptive statistics
tabstat varlist [if] [in] [, options]
Options:
by (varname)
stat (mean min max median sd)
col (var): biến ở các cột (default)
col (stat): thống kê ở các cột
nototal
missing
Descriptive statistics
tabstat varlist [if] [in] [, options]
Three way crosstabs
bysort var3: tab var1 var2, col row
Three way crosstabs
bysort var3: tab var1 var2, sum (var4)
Collapse
collapse (stat1) var1 (stat2) var2 (stat3)
newvar1=var1 newvar2=var2, by(varlist)
Quick review
Command
summarize y1 y2 y3
summarize y1 y2 y3, detail
summarize y1if x1> 3 & !missing(x2)
tabstat y1, stats(mean sd n)
tabstat y1, stats(min p50 max) by(x1)
tabulate x1
tabulate x1, sort miss
tab1 x1 x2 x3 x4
tabulate x1 x2
Quick review
Command
tabulate x1 x2, column
tabulate x1 x2, missing row all
tab2 x1 x2 x3 x4
tabulate x1, sum(y)
tabulate x1 x2, sum(y) means
by x3, sort: tabulate x1 x2
table y x2 x3, by(x4 x5) contents(freq)
table x1 x2, contents(mean y1 median y2)