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)