Ado-file
Các ado-file tạo ra các lệnh của Stata. Trong Stata có hai loại lệnh. Loại thứ nhất được viết trong Stata, ví dụ như lệnh summarize. Loại thứ hai được định nghĩa bởi các tệp ado, ví dụ như lệnh ci.
Để biết được lệnh Stata thuộc loại nào, gõ lệnh which:
. which sum
built-in command: summarize
. which ci
C:\STATA\ado\base\c\ci.ado
*! version 3.3.4 04sep2000
Các ado-file chính là các chương trình được định nghĩa bằng lệnh program define, và lưu trữ với phần mở rộng là ado. Stata sẽ tìm kiếm các ado-file ở các thư mục:
. sysdir
STATA: C:\STATA\
UPDATES: C:\STATA\ado\updates\
BASE: C:\STATA\ado\base\
SITE: C:\STATA\ado\site\
STBPLUS: c:\ado\stbplus\
PERSONAL: c:\ado\personal\
OLDPLACE: c:\ado\
Ví dụ:
Chúng ta có thể lưu trữ lệnh povline dưới dạng ado và lưu trữ ở thu mục C:\STATA\ado\base\
Lệnh này sẽ được thực hiện khi ta gõ povline mà không cần chúng ta phải thực hiện câu lệnh trước ở do-file.
Bài tập: Viết lệnh povline với các lựa chọn cho các năm 1993, 1998, và 2002.
TÀI LIỆU THAM KHẢO
Hướng dẫn sử dụng trong phần mềm Stata 7.0 (on-line help). (Tuỳ chọn Contents trong thực đơn Help).
90 trang |
Chia sẻ: thucuc2301 | Lượt xem: 561 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Sử dụng chương trình stata để khai thác số liệu điều tra mức sống hộ gia đình (VLSS), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2
. tab reg7 urban98 , sum(hhsize) means
Means of Household size
| 1:urban 98; 0:rural
Code by 7 | 98
regions | Rural Urban | Total
-----------+----------------------+----------
region1 | 5.1205357 3.7326203 | 4.8183935
region2 | 4.045977 4.0459184 | 4.0459574
region3 | 4.6666667 4.6759259 | 4.6680791
region4 | 4.8027888 5.1190476 | 4.9084881
region5 | 5.7065217 . | 5.7065217
region6 | 5.0719844 4.7131631 | 4.8934506
region7 | 5.1373494 4.3971631 | 4.9496403
-----------+----------------------+----------
Total | 4.8702272 4.4612717 | 4.752292
. tab reg7 urban98 [fw=wt], sum(hhsize) means
Means and Number of Observations of Household size
| 1:urban 98; 0:rural
Code by 7 | 98
regions | Rural Urban | Total
-----------+----------------------+----------
region1 | 5.1328749 3.6698008 | 4.9063857
| 2336656 427975 | 2764631
-----------+----------------------+----------
region2 | 4.0564115 3.987975 | 4.0386415
| 2726038 956092 | 3682130
-----------+----------------------+----------
region3 | 4.6508908 4.6530097 | 4.6510738
| 2060384 194723 | 2255107
-----------+----------------------+----------
region4 | 4.8136253 5.132367 | 4.9080132
| 1167251 491074 | 1658325
-----------+----------------------+----------
region5 | 5.6609112 . | 5.6609112
| 491762 0 | 491762
-----------+----------------------+----------
region6 | 5.0486426 4.6174858 | 4.8106956
| 900302 1108764 | 2009066
-----------+----------------------+----------
region7 | 5.1494132 4.3925283 | 4.9872852
| 2567424 699868 | 3267292
-----------+----------------------+----------
Total | 4.8003065 4.3841133 | 4.7002214
| 12249817 3878496 | 16128313
.
. table reg7 urban98 , c(mean poor) col row format(%4.1f)
-------------------------------
| 1:urban 98; 0:rural
Code by 7 | 98
regions | Rural Urban Total
----------+--------------------
region1 | 61.5 8.0 49.8
region2 | 32.6 5.9 23.7
region3 | 44.8 10.2 39.5
region4 | 37.3 11.5 28.6
region5 | 47.3 47.3
region6 | 12.5 2.2 7.3
region7 | 35.8 10.3 29.3
|
Total | 38.9 6.8 29.6
-------------------------------
. table reg7 urban98 [pw=hhsizewt], c(mean poor) col row format(%4.1f)
-------------------------------
| 1:urban 98; 0:rural
Code by 7 | 98
regions | Rural Urban Total
----------+--------------------
region1 | 65.2 8.3 58.6
region2 | 36.1 7.0 28.7
region3 | 51.3 14.3 48.1
region4 | 43.6 16.6 35.2
region5 | 52.4 52.4
region6 | 13.0 2.9 7.6
region7 | 42.0 15.3 36.9
|
Total | 45.5 9.2 37.4
-------------------------------
CHƯƠNG III: KIỂM ĐỊNH GIẢ THIẾT VÀ PHÂN TÍCH HỒI QUY
1. Ước lượng và kiểm định giả thiết (Estimation and hypothesis testing)
Ước lượng giá trị trung bình bằng khoảng tin cậy
Cú pháp:
ci [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, level(#) binomial poisson exposure(tên biến) total]
Lệnh này tính sai số chuẩn và khoảng tin cậy cho giá trị trung bình của mẫu theo quy luật chuẩn, nhị thức và Poatxông.
Các tuỳ chọn:
level(#)
chỉ định mức độ tin cậy cho ước lượng khoảng tin cậy. # nhận giá trị từ 10 đên 99, giá trị ngầm định là 95.
binomial
áp dụng cho quy luật nhị thức
poisson
áp dụng cho quy luật Poatxông
exposure(tên biến)
áp dụng cho quy luật Poatxông, tên biến chỉ ra biến “thời lượng” (thông thường là thời gian hoặc diện tích) mà trong đó xảy ra các “sự kiện” được chỉ ra bởi danh sách biến
total
dùng khi ma “by prefix” được sử dung, yêu cầu ước lượng khoảng tin cậy cho toàn bộ nhóm.
Ví dụ:
. ci poor
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 5999 29.6216 .5895501 28.46587 30.77733
.
.
. sort reg7
. by reg7: ci poor, total
_______________________________________________________________________________
-> reg7 = region1
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 859 49.82538 1.706961 46.47507 53.17569
_______________________________________________________________________________
-> reg7 = region2
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 1175 23.65957 1.240357 21.22601 26.09314
_______________________________________________________________________________
-> reg7 = region3
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 708 39.54802 1.838899 35.93767 43.15838
_______________________________________________________________________________
-> reg7 = region4
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 754 28.64721 1.64759 25.4128 31.88163
_______________________________________________________________________________
-> reg7 = region5
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 368 47.28261 2.606121 42.1578 52.40741
_______________________________________________________________________________
-> reg7 = region6
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 1023 7.331378 .8153306 5.731465 8.931292
_______________________________________________________________________________
-> reg7 = region7
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 1112 29.31655 1.365709 26.63689 31.99621
_______________________________________________________________________________
-> Total
Variable | Obs Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
poor | 5999 29.6216 .5895501 28.46587 30.77733
Chó ý:
C¸c lÖnh íc lîng cã thÓ ®îc sö dông khi biÕt c¸c tham sè vÒ mÉu. §©y cã thÓ ®îc gäi lµ “c¸c lÖnh sö dông tham sè trùc tiÕp” (Commands using immediate arguments). C¸c lÖnh nµy rÊt h÷u dông khi chóng ta kh«ng cã sè liÖu gèc vÒ biÕn.
cii [, level(#) ] (ph©n phèi chuÈn)
cii [, level(#) ] (ph©n phèi nhÞ thøc)
#obs chØ ra sè quan s¸t, #succ chØ ra sè lÇn gi¸ trÞ biÕn nhËn gi¸ trÞ t¬ng øng víi phÐp thö thµnh c«ng (th«ng thêng nhËn gi¸ trÞ b»ng 1)
cii poisson [ level(#) ] (ph©n phèi Poatx«ng)
VÝ dô:
. cii 5999 1777, level (90)
-- Binomial Exact --
Variable | Obs Mean Std. Err. [90% Conf. Interval]
-------------+-------------------------------------------------------------
| 5999 .296216 .005895 .2865107 .3060676
. cii 12 27, poisson
-- Poisson Exact --
Variable | Exposure Mean Std. Err. [95% Conf. Interval]
-------------+-------------------------------------------------------------
| 12 2.25 .4330127 1.483144 3.273587
KiÓm ®Þnh gi¶ thuyÕt thèng kª
1.2.1. KiÓm ®Þnh gi¸ trÞ trung b×nh cña mÉu
Ph©n phèi kh«ng mét
Có ph¸p:
prtest = # [®iÒu kiÖn] [ph¹m vi] [, level(#)]
LÖnh nµy thùc hiÖn kiÓm ®Þnh gi¶ thuyÕt vÒ tû lÖ gi¸ trÞ cña biÕn ph©n phèi theo quy luËt kh«ng mét (Ho: p = p0).
VÝ dô:
. prtest poor=0.44 if reg7==1
One-sample test of proportion poor: Number of obs = 859
----------------------------------------------------------------------------
Variable | Mean Std. Err. z P>|z| [95% Conf. Interval]
---------+------------------------------------------------------------------
poor | .4982538 .0170597 29.2065 0.0000 .4648174 .5316901
----------------------------------------------------------------------------
Ho: proportion(poor) = .44
Ha: poor .44
z = 3.440 z = 3.440 z = 3.440
P |z| = 0.0006 P > z = 0.0003
prtest = [®iÒu kiÖn] [ph¹m vi] [, level(#)]
LÖnh nµy thùc hiÖn kiÓm ®Þnh gi¶ thuyÕt vÒ sù b»ng nhau cña tû lÖ cña hai gi¸ trÞ biÕn ®îc chØ ra bëi tªn biÕn (Ho: pX = pY).
VÝ dô: KiÓm ®Þnh xem tû lÖ nghÌo ®ãi gi÷a vïng 2 vµ vïng 4 cã khac nhau kh«ng:
. gen poor2=poor if reg7==2
(4824 missing values generated)
. gen poor4=poor if reg7==4
(5245 missing values generated)
. prtest poor2 = poor4
Two-sample test of proportion poor2: Number of obs = 1175
poor4: Number of obs = 754
------------------------------------------------------------------------------
Variable | Mean Std. Err. z P>|z| [95% Conf. Interval]
---------+--------------------------------------------------------------------
poor2 | .2365957 .0123983 19.0829 0.0000 .2122955 .2608959
poor4 | .2864721 .016465 17.3989 0.0000 .2542014 .3187429
---------+--------------------------------------------------------------------
diff | -.0498764 .020611 -.0902732 -.0094796
| under Ho: .0203666 -2.44893 0.0143
------------------------------------------------------------------------------
Ho: proportion(poor2) - proportion(poor4) = diff = 0
Ha: diff 0
z = -2.449 z = -2.449 z = -2.449
P |z| = 0.0143 P > z = 0.9928
prtest [®iÒu kiÖn] [ph¹m vi], by(biÕn ph©n nhãm) [level(#)]
LÖnh nµy thùc hiÖn kiÓm ®Þnh gi¶ thuyÕt vÒ sù b»ng nhau cña tû lÖ cña hai nhãm ®îc chØ ra bëi biÕn ph©n nhãm (Ho: pX1 = pX2).
VÝ dô:
. prtest poor, by(sex)
Two-sample test of proportion 1: Number of obs = 4375
2: Number of obs = 1624
------------------------------------------------------------------------------
Variable | Mean Std. Err. z P>|z| [95% Conf. Interval]
---------+--------------------------------------------------------------------
1 | .3248 .00708 45.8755 0.0000 .3109234 .3386766
2 | .2192118 .0102661 21.353 0.0000 .1990906 .239333
---------+--------------------------------------------------------------------
diff | .1055882 .0124708 .0811459 .1300304
| under Ho: .0132673 7.95855 0.0000
------------------------------------------------------------------------------
Ho: proportion(1) - proportion(2) = diff = 0
Ha: diff 0
z = 7.959 z = 7.959 z = 7.959
P |z| = 0.0000 P > z = 0.0000
Ph©n phèi nhÞ thøc
Có ph¸p:
bitest = #p [quyÒn sè] [®iÒu kiÖn] [ph¹m vi]
LÖnh nµy kiÓm ®Þnh gi¶ thuyÕt vÒ tham sè p trong quy luËt nhÞ thøc (x¸c suÊt thµnh c«ng cña phÐp thö) cña biÕn ®îc chØ ra bëi tªn biÕn. (Ho: p = p0)
VÝ dô:
. bitest poor=0.44 if reg7==1
Variable | N Observed k Expected k Assumed p Observed p
-------------+------------------------------------------------------------
poor | 859 428 377.96 0.44000 0.49825
Pr(k >= 428) = 0.000344 (one-sided test)
Pr(k <= 428) = 0.999732 (one-sided test)
Pr(k = 428) = 0.000660 (two-sided test)
. bitesti 859 428 0.44
N Observed k Expected k Assumed p Observed p
------------------------------------------------------------
859 428 377.96 0.44000 0.49825
Pr(k >= 428) = 0.000344 (one-sided test)
Pr(k <= 428) = 0.999732 (one-sided test)
Pr(k = 428) = 0.000660 (two-sided test)
Quy luËt ph©n phèi chuÈn
Có ph¸p:
ttest = # [®iÒu kiÖn] [ph¹m vi] [, level(#) ]
LÖnh nµy kiÓm ®Þnh gi¶ thuyÕt vÒ gi¸ trÞ cña tham sè trung b×nh cña biÕn ngÉu nhiªn tu©n theo quy luËt chuÈn ®îc chØ ra bëi tªn biÕn (Ho: m = m0)
VÝ dô:
. ttest rlpcex1=3200
One-sample t test
------------------------------------------------------------------------------
Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]
---------+--------------------------------------------------------------------
rlpcex1 | 5999 3188.667 34.76379 2692.567 3120.518 3256.817
------------------------------------------------------------------------------
Degrees of freedom: 5998
Ho: mean(rlpcex1) = 3200
Ha: mean 3200
t = -0.3260 t = -0.3260 t = -0.3260
P |t| = 0.7444 P > t = 0.6278
ttest = [®iÒu kiÖn] [ph¹m vi] [, unpaired unequal level(#) ]
LÖnh nµy thùc hiÖn kiÓm ®Þnh gi¶ thuyÕt r»ng hai biÕn cã gi¸ trÞ trung b×nh b»ng nhau. (Ho: mX = mY).
C¸c tuú chän:
unpaired Sè liÖu cña hai biÕn kh«ng cïng cÆp
unequal Phu¬ng sai cña hai biÕn kh«ng b»ng nhau
VÝ dô:
. ttest poor2=poor4, unpaired unequal
Two-sample t test with unequal variances
------------------------------------------------------------------------------
Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]
---------+--------------------------------------------------------------------
poor2 | 1175 .2365957 .0124036 .425173 .2122601 .2609314
poor4 | 754 .2864721 .0164759 .4524128 .254128 .3188163
---------+--------------------------------------------------------------------
combined | 1929 .2560912 .0099404 .436586 .2365962 .2755863
---------+--------------------------------------------------------------------
diff | -.0498764 .0206229 -.0903285 -.0094243
------------------------------------------------------------------------------
Satterthwaite's degrees of freedom: 1532.64
Ho: mean(poor2) - mean(poor4) = diff = 0
Ha: diff 0
t = -2.4185 t = -2.4185 t = -2.4185
P |t| = 0.0157 P > t = 0.9921
ttest [®iÒu kiÖn] [ph¹m vi], by(biÕn ph©n nhãm) [ unequal level(#) ]
LÖnh nµy thùc hiÖn kiÓm ®Þnh gi¶ thuyÕt vÒ sù b»ng nhau cña gi¸ trÞ trung b×nh cña hai nhãm ®îc chØ ra bëi biÕn ph©n nhãm (Ho: mX1 = mX2).
VÝ dô:
. ttest rlpcex1, by(sex)
Two-sample t test with equal variances
------------------------------------------------------------------------------
Group | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]
---------+--------------------------------------------------------------------
1 | 4375 2980.906 36.74795 2430.648 2908.862 3052.951
2 | 1624 3748.368 80.18189 3231.241 3591.097 3905.638
---------+--------------------------------------------------------------------
combined | 5999 3188.667 34.76379 2692.567 3120.518 3256.817
---------+--------------------------------------------------------------------
diff | -767.4613 77.6155 -919.6156 -615.3071
------------------------------------------------------------------------------
Degrees of freedom: 5997
Ho: mean(1) - mean(2) = diff = 0
Ha: diff 0
t = -9.8880 t = -9.8880 t = -9.8880
P |t| = 0.0000 P > t = 1.0000
1.2.2. KiÓm ®Þnh gi¸ trÞ ®é lÖch chuÈn
Có ph¸p:
sdtest = # [®iÒu kiÖn] [ph¹m vi] [, level(#) ]
sdtest = [®iÒu kiÖn] [ph¹m vi] [, level(#) ]
sdtest [®iÒu kiÖn] [ph¹m vi] , by(biÕn ph©n nhãm) [ level(#) ]
LÖnh nµy kiÓm dÞnh tham sè ®é lÖch chuÈn cña biÕn ngÉu nhiªn tu©n theo quy luËt chuÈn ®îc chØ ra bëi tªn biÕn. Có ph¸p cña lÖn nµy t¬ng tù víi có ph¸p cña lÖnh ttest
VÝ dô:
. sum rlpcex1
Variable | Obs Mean Std. Dev. Min Max
-------------+-----------------------------------------------------
rlpcex1 | 5999 3188.667 2692.567 357.318 45801.71
. sdtest rlpcex1=2700
One-sample test of variance
------------------------------------------------------------------------------
Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]
---------+--------------------------------------------------------------------
rlpcex1 | 5999 3188.667 34.76379 2692.567 3120.518 3256.817
------------------------------------------------------------------------------
Ho: sd(rlpcex1) = 2700
chi2(5998) = 5965.022
Ha: sd(rlpcex1) 2700
P chi2 = 0.6162
2. Ph©n tÝch t¬ng quan vµ håi quy (Correlation and regression)
2.1. Ph©n tÝch t¬ng quan
Có ph¸p:
correlate [danh s¸ch biÕn] [quyÒn sè] [®iÒu kiÖn] [ph¹m vi] [, means covariance _coef wrap]
LÖnh nµy tÝnh ma trËn hÖ sè tong quan (correlation coefficient), hoÆc hiÖp ph¬ng sai (covariance) cho c¸c biÕn ®îc liÖt kª trong danh s¸ch biÕn. Sè quan s¸t ®îc dïng lµ sè quan s¸t cña biÕn cã Ýt quan s¸t nhÊt.
C¸c tuú chän:
means
HiÓn thÞ c¸c thèng kª kh¸c nh gi¸ trÞ trung b×nh, ®é lÖch chuÈn, gi¸ trÞ lín nhÊt, nhá nhÊt
covariance
§a ra ma trËn hiÖp ph¬ng sai thay v× hÖ sè t¬ng quan
_coef
TÝnh ma trËn tu¬ng quan cña c¸c hÖ sè cña íc lîng gÇn nhÊt
wrap
HiÓn thÞ c¸c dßng cña ma trËn liÒn nhau nÕu cã qua nhiÒu c¸c biÕn ®îc liÖt kª
VÝ dô:
. corr hhsize poor rlpcex1 sex
(obs=5999)
| hhsize poor rlpcex1 sex
-------------+------------------------------------
hhsize | 1.0000
poor | 0.2425 1.0000
rlpcex1 | -0.2172 -0.4452 1.0000
sex | -0.2570 -0.1028 0.1267 1.0000
. corr hhsize poor rlpcex1 sex, means cov
(obs=5999)
Variable | Mean Std. Dev. Min Max
-------------+----------------------------------------------------
hhsize | 4.752292 1.954292 1 19
poor | .296216 .4566255 0 1
rlpcex1 | 3188.667 2692.567 357.318 45801.71
sex | 1.270712 .4443645 1 2
| hhsize poor rlpcex1 sex
-------------+------------------------------------
hhsize | 3.81926
poor | .216435 .208507
rlpcex1 | -1142.93 -547.335 7.2e+06
sex | -.223195 -.020849 151.543 .19746
pwcorr [danh s¸ch biÕn] [quyÒn sè] [®iÒu kiÖn] [ph¹m vi] [, obs sig print(#) star(#)]
LÖnh nµy tÝnh hÖ sè t¬ng quan cho tõng cÆp biÕn ®îc chØ ra bëi danh s¸ch biÕn.
C¸c tuú chän:
obs
HiÓn thÞ sè quan s¸t dïng ®Ó tÝnh hÖ sè t¬ng quan
sig
HiÓn thÞ møc ý nghÜa cña c¸c hÖ sè t¬ng quan
print(#)
ChØ ra møc ý nghÜa theo ®ã chØ c¸c hÖ sè t¬ng quan cã møc ý nghÜa nhá h¬n møc nµy míi ®îc hiÓn thÞ
star(#)
§¸nh dÊu sao ®èi víi c¸c hÖ sè t¬ng quan cã møc ý nghÜ nhá h¬n møc ®îc chØ ra bëi star
VÝ dô:
. pwcorr hhsize poor rlpcex1 sex, obs sig star(5)
| hhsize poor rlpcex1 sex
-------------+------------------------------------
hhsize | 1.0000
|
| 5999
|
poor | 0.2425* 1.0000
| 0.0000
| 5999 5999
|
rlpcex1 | -0.2172* -0.4452* 1.0000
| 0.0000 0.0000
| 5999 5999 5999
|
sex | -0.2570* -0.1028* 0.1267* 1.0000
| 0.0000 0.0000 0.0000
| 5999 5999 5999 5999
|
pcorr [quyền số] [điều kiện] [phạm vi]
Lệnh này tính hệ số tương quan của biến được chỉ ra bởi tên biến với các biến được trong danh sách biến
Ví dụ:
. pwcorr poor hhsize rlpcex1 sex
| poor hhsize rlpcex1 sex
-------------+------------------------------------
poor | 1.0000
hhsize | 0.2425 1.0000
rlpcex1 | -0.4452 -0.2172 1.0000
sex | -0.1028 -0.2570 0.1267 1.0000
2.2. Phân tích hồi quy
Phương pháp bình phương nhỏ nhất (Ordinary-Least Square)
Cú pháp:
regress [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, option]
Lệnh này ước lượng các hệ số của hàm biến phụ thuộc (dependent variable) theo các biến độc lập (danh sách biến) theo phương pháp bình phương nhỏ nhất.
Ví dụ:
. reg rlpcex1 reg7 sex hhsize
Source | SS df MS Number of obs = 5999
-------------+------------------------------ F( 3, 5995) = 194.88
Model | 3.8639e+09 3 1.2880e+09 Prob > F = 0.0000
Residual | 3.9621e+10 5995 6609032.15 R-squared = 0.0889
-------------+------------------------------ Adj R-squared = 0.0884
Total | 4.3485e+10 5998 7249918.40 Root MSE = 2570.8
------------------------------------------------------------------------------
rlpcex1 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
reg7 | 240.9633 15.5905 15.46 0.000 210.4003 271.5263
sex | 403.2984 77.38324 5.21 0.000 251.5994 554.9974
hhsize | -305.6382 17.70692 -17.26 0.000 -340.3501 -270.9263
_cons | 3160.201 155.6576 20.30 0.000 2855.056 3465.346
------------------------------------------------------------------------------
Các tuỳ chọn:
level(#) Chỉ ra mức tin cậy cho ước lượng khoảng tin cậy của hệ số
noconstant Không có hệ số (intercept) trong hàm hồi quy
noheader Chỉ hiển thị kết quả phân tích về các hệ số
beta Hiển thị hệ số được chuẩn hoá, dùng để so sánh mức độ ảnh hưởng của các hệ số với nhau
Phương pháp khả năng lớn nhất (Maximum-Likelihood)
Cú pháp:
probit [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, tuỳ chọn]
Lệnh này thực hiện hồi quy biến phụ thuộc theo các biến được chỉ ra trong danh sách biến theo phương pháp khả năng lớn nhất. Biến phụ thuộc thường là biến giả với hai giá trị 0 và 1.
Ví dụ:
. probit poor reg7 sex hhsize
Iteration 0: log likelihood = -3645.1363
Iteration 1: log likelihood = -3367.2185
Iteration 2: log likelihood = -3364.8032
Iteration 3: log likelihood = -3364.8025
Probit estimates Number of obs = 5999
LR chi2(3) = 560.67
Prob > chi2 = 0.0000
Log likelihood = -3364.8025 Pseudo R2 = 0.0769
------------------------------------------------------------------------------
poor | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
reg7 | -.116342 .0084551 -13.76 0.000 -.1329136 -.0997703
sex | -.1284525 .0422247 -3.04 0.002 -.2112113 -.0456937
hhsize | .1808115 .0095806 18.87 0.000 .1620338 .1995892
_cons | -.8088731 .0824798 -9.81 0.000 -.9705306 -.6472157
------------------------------------------------------------------------------
Ước lượng giá trị biến phụ thuộc và phần dư
Cú pháp:
predict [điều kiện] [phạm vi] [, xb stdp resid]
Lệnh này được thực hiện sau lệnh regress (hoặc probit) để tạo ra 1 biến mới có giá trị được tính tuỳ theo tuỳ chọn được chỉ ra.
Các tuỳ chọn:
xb cho phép ước lượng giá trị của biến phụ thuộc thu được từ hàm hồi quy:
stdp ước lượng sai số chuẩn của gia trị ước lượng:
redid ước lượng giá trị phần dư:
Ví dụ:
predict exphat, xb
Tạo ra biến mới exphat có giá trị ước lượng của biến phụ thuộc (fitted value) theo hệ số thu được từ hàm hồi quy.
predict expres, resid
Tạo ra biến expres có giá trị của phần dư.
Kiểm định về hệ số của hàm hồi quy
Cú pháp:
test [giá trị biểu thức]
test [danh sách biến]
testparm [, equal ]
Lệnh test kiểm định các giả thiết về hệ số của hàm hồi quy vừa mới được ước lượng
Ví dụ:
test urban98 =2000
Kiểm định giả thiết hệ số của biến urban98 = 0
test region1 = region2
Kiểm định giả thiết hệ số của biến region1 bằng hệ số của biến region2
test region1 = (region2+region3)/2
Kiểm định giả thiết về quan hệ giữa các hệ số của biến region1, region2, va region3
test region1 region2 region3
Kiểm định giả thiết hệ số của biến region1, region2, va region3 đều bằng 0
testparm region*
Kiểm định giả thiết về của hệ số của biến region1 đến region7 đều bằng 0
. tab reg7, gen(region)
Code by 7 |
regions | Freq. Percent Cum.
------------+-----------------------------------
region1 | 859 14.32 14.32
region2 | 1175 19.59 33.91
region3 | 708 11.80 45.71
region4 | 754 12.57 58.28
region5 | 368 6.13 64.41
region6 | 1023 17.05 81.46
region7 | 1112 18.54 100.00
------------+-----------------------------------
Total | 5999 100.00
. reg rlpcex1 urban98 region* sex educyr98 hhsize
Source | SS df MS Number of obs = 5999
-------------+------------------------------ F( 10, 5988) = 382.87
Model | 1.6960e+10 10 1.6960e+09 Prob > F = 0.0000
Residual | 2.6525e+10 5988 4429712.49 R-squared = 0.3900
-------------+------------------------------ Adj R-squared = 0.3890
Total | 4.3485e+10 5998 7249918.40 Root MSE = 2104.7
------------------------------------------------------------------------------
rlpcex1 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
urban98 | 1995.163 66.46943 30.02 0.000 1864.859 2125.467
region1 | -923.7066 132.8334 -6.95 0.000 -1184.108 -663.3052
region2 | -362.6047 130.2254 -2.78 0.005 -617.8934 -107.316
region3 | -558.0354 137.1551 -4.07 0.000 -826.9089 -289.1619
region4 | -100.7586 135.8372 -0.74 0.458 -367.0486 165.5313
region5 | (dropped)
region6 | 1742.688 131.9928 13.20 0.000 1483.934 2001.441
region7 | 151.9854 128.0272 1.19 0.235 -98.99396 402.9648
sex | 270.9142 66.61031 4.07 0.000 140.3339 401.4944
educyr98 | 153.3281 6.836934 22.43 0.000 139.9253 166.731
hhsize | -257.691 14.73741 -17.49 0.000 -286.5816 -228.8004
_cons | 2362.355 178.3197 13.25 0.000 2012.784 2711.926
------------------------------------------------------------------------------
. test urban98 =2000
( 1) urban98 = 2000.0
F( 1, 5988) = 0.01
Prob > F = 0.9420
. test region1 = region2
( 1) region1 - region2 = 0.0
F( 1, 5988) = 34.57
Prob > F = 0.0000
. test region1 = (region2+region3)/2
( 1) region1 - .5 region2 - .5 region3 = 0.0
F( 1, 5988) = 27.80
Prob > F = 0.0000
. test region1 region2 region3
( 1) region1 = 0.0
( 2) region2 = 0.0
( 3) region3 = 0.0
F( 3, 5988) = 20.22
Prob > F = 0.0000
. testparm region*
( 1) region1 = 0.0
( 2) region2 = 0.0
( 3) region3 = 0.0
( 4) region4 = 0.0
( 5) region5 = 0.0
( 6) region6 = 0.0
( 7) region7 = 0.0
Constraint 5 dropped
F( 6, 5988) = 148.55
Prob > F = 0.0000
CHƯƠNG IV: VẼ ĐỒ THỊ
1. Vẽ đồ thị (graph)
Cú pháp:
graph [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, loại_đồ_thị tuỳ_chọn_riêng tuỳ_chọn_chung]
Trong đó:
loại_đồ_thị (graph_type) Chỉ ra loại đồ thị cần vẽ
tuỳ_chọn_riêng (specific_options) Các tuỳ chọn liên quan đến từng loại đồ thị
tuỳ_chọn_chung (common_options) Các tuỳ chọn có thể sử dụng chung cho các loại đồ thị như tuỳ chọn về đánh nhãn trên các trục của đồ thị
Stata cho phép vẽ 8 loại đồ thị như sau (graph_type):
(1) Đồ thị 2 chiều (two-way scatterplots)
. graph rlpcex1 age
(2) Ma trận đồ thị 2 chiều (two-way scatterplot matrices)
. gr rlpcex1 age educyr98 hhsize, matrix
(3) Đồ thị tần suất (histograms)
. gr rlpcex1, bin(50) normal
(4) Đồ thị rải một chiều (one-way scatterplots)
. gr rlpcex1, oneway
(5) Đồ thị hình hộp (box-and-whisker plots)
(6) Đồ thị cột (bar chart)
. sort reg7
. gr poor, bar means by(reg7)
(7) Đồ thị hình tròn (pie charts)
. for num 1/7: gen poorX=poor if reg7==X
-> gen poor1=poor if reg7==1
(5140 missing values generated)
-> gen poor2=poor if reg7==2
(4824 missing values generated)
-> gen poor3=poor if reg7==3
(5291 missing values generated)
-> gen poor4=poor if reg7==4
(5245 missing values generated)
-> gen poor5=poor if reg7==5
(5631 missing values generated)
-> gen poor6=poor if reg7==6
(4976 missing values generated)
-> gen poor7=poor if reg7==7
(4887 missing values generated)
. graph poor1-poor7, pie
(8) Đồ thị hình sao (star charts)
chart_type là star
Các lựa chọn chung (common_options)
* Tạo tệp số liệu
. tabulate hhsize, sum (rlpcex1)
| Summary of comp.M&Reg price adj.pc
Household | tot exp
size | Mean Std. Dev. Freq.
------------+------------------------------------
1 | 4696.0254 4619.5012 214
2 | 4131.4892 3677.2297 497
3 | 3834.8615 2913.8177 731
4 | 3428.8011 2599.7301 1404
5 | 2930.5486 2168.0644 1318
6 | 2626.6848 2277.1893 867
7 | 2501.0912 2186.1605 480
8 | 2329.7009 1803.7873 255
9 | 2207.0166 1380.5607 126
10 | 2252.3772 1423.7576 58
11 | 2370.7034 1404.7148 29
12 | 1747.3691 924.72977 9
13 | 2114.1337 2109.0077 4
14 | 1579.78 990.81152 4
16 | 2994.5771 2061.6804 2
19 | 4833.936 0 1
------------+------------------------------------
Total | 3188.6671 2692.5673 5999
. tab hhsize, sum(educyr98)
| Summary of schooling year of
Household | HH.head
size | Mean Std. Dev. Freq.
------------+------------------------------------
1 | 3.7897196 4.3956537 214
2 | 5.7545272 4.7225549 497
3 | 7.3023256 4.6396425 731
4 | 8.2578348 4.2659841 1404
5 | 7.7243298 4.2998488 1318
6 | 6.8788927 4.0778062 867
7 | 6.3348958 4.1241759 480
8 | 5.7333333 3.9623557 255
9 | 5.7936508 3.4878474 126
10 | 6.1724138 3.1851516 58
11 | 4.7931034 3.1665586 29
12 | 4.4444444 3.6438685 9
13 | 5 5.0990195 4
14 | 3 2.1602469 4
16 | 4 1.4142136 2
19 | 2 0 1
------------+------------------------------------
Total | 7.0944185 4.4160917 5999
. replace meanexp= meanexp/1000
(16 real changes made)
. replace meanexp= meanexp/1000
. rename var71 ahhsize
. rename var72 meanexp
. rename var73 meanedu
. replace meanexp= meanexp/1000
. label var meanexp “Chi tieu binh quan”
. label var meanedu “So nam hoc”
. label var ahhsize “Quy mo ho”
* C¸c tuú chän vÒ tiªu ®Ò vµ trôc to¹ ®é
LÊy vÝ dô ®å thÞ 2 chiÒu, trôc tung thÓ hiÖn chi tiªu b×nh qu©n vµ sè n¨m häc b×nh qu©n cña chñ hé, trôc hoµnh thÓ hiÖn quy m« hé gia ®×nh.
. gr meanexp meanedu ahhsize
* Lùa chän vÒ tiªu ®Ò:
title("chuçi ký tù") t1title("chuçi ký tù") t2title("chuçi ký tù") b1title("chuçi ký tù") b2title("chuçi ký tù") l1title("chuçi ký tù") l2title("chuçi ký tù") r1title("chuçi ký tù") r2title("chuçi ký tù")
LÖnh nµy ghi c¸c tiªu ®Ò trªn phÝa trªn (top), phÝa díi (bottom), bªn tr¸i (left) vµ bªn ph¶i (right) ®å thÞ.
VÝ dô:
gr meanexp meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho) l1title(Chi tieu binh quan (tr dong)) l2title(So nam hoc cua chu ho) b2title (Quy mo ho gia dinh)
* HiÓn thÞ gi¸ trÞ trôc ®å thÞ
xlabel[(gi¸ trÞ sè)] ylabel[(gi¸ trÞ sè)] rlabel[(gi¸ trÞ sè)] tlabel[(gi¸ trÞ sè)]
VÝ dô:
gr meanexp meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho) l1title(Chi tieu binh quan (tr dong)) l2title(So nam hoc cua chu ho) b2title (Quy mo ho gia dinh) xlabel ylabel
Chó ý: C¸c lùa chän kh¸c cã thÓ xem ë phÇn help b»ng lÖnh: help graxes
C¸c tuú chän vÒ ®êng nèi
xline[(gi¸ trÞ sè)] yline[(gi¸ trÞ sè)] rline[(gi¸ trÞ sè)] tline[(gi¸ trÞ sè)]
connect(c[[p]] ... c[[p]])
VÝ dô:
. gr meanexp meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho) l1title(Chi tieu binh quan (tr dong)) l2title(So nam hoc cua chu ho) b2title (Quy mo ho gia dinh) xlabel ylabel xline (5 10 to 20) yline(2 4 to 8) connect(ll)
2. Mét sè lo¹i ®å thÞ thêng dïng
2.1. §å thÞ 2 chiÒu
Có ph¸p:
graph [danh s¸ch biÕn] [quyÒn sè] [®iÒu kiÖn] [ph¹m vi], twoway [tuú_chän_chung rescale]
Tuú chän rescale cho phÐp hiÖn thÞ hai trôc tung víi gi¸ trÞ kh¸c nhau
. gen meanexp1=meanexp*1000
. label var meanexp1 "Chi tieu binh quan"
. gr meanexp1 meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho) l1title(Chi tieu binh quan (nghin dong)) b2title (Quy mo ho gia dinh) xlabel ylabel rlabel(2 4 to 8) connect(ll) rescale
2.2. §å thÞ tÇn suÊt
Có ph¸p:
graph [biÕn] [quyÒn sè] [®iÒu kiÖn] [ph¹m vi], histogram [tuú_chän_chung bin(#) freq normal[(#,#)] density(#)]
C¸c tuú chän:
bin(#)
ChØ ra sè lîng kho¶ng cho ®å thÞ, gi¸ trÞ ngÇm ®Þnh lµ bin(5)
Freq
Gi¸ trÞ tÇn suÊt sÏ ®îc hiÓn thÞ trªn trôc tung
normal[(#,#)]
VÏ hµm ph©n phèi chuÈn
density(#)]
§îc dïng víi lùa chän normal, chØ ra sè lîng ®iÓm ®Ó íc lîng hµm mËt ®é theo ph©n phèi chuÈn
VÝ dô:
§å thÞ tÇn suÊt cña chi tiªu binh qu©n ®Çu ngêi
. gr rlpcex1, hist bin(20) normal
. gr rlpcex1, hist bin(50) normal freq
. gr rlpcex1, hist bin(50) normal freq by(reg7)
2.3. §å thÞ h×nh cét
Có ph¸p:
graph [danh s¸ch biÕn] [quyÒn sè] [®iÒu kiÖn] [ph¹m vi], bar [tuú_chän_chung [no]alt means stack]
VÝ dô:
§å thÞ gi¸ trÞ trung b×nh häc vÊn cña chñ hé vµ quy m« hé gia ®×nh theo 7 vïng
. gr educyr98 hhsize, bar means by(reg7)
. label define region 1 "region1" 2 "region2" 3 "region3" 4 "region4" 5 "region5" 6 "region6" 7 "region7"
. label values reg7 region
. tab reg7
Code by 7 |
regions | Freq. Percent Cum.
------------+-----------------------------------
region1 | 859 14.32 14.32
region2 | 1175 19.59 33.91
region3 | 708 11.80 45.71
region4 | 754 12.57 58.28
region5 | 368 6.13 64.41
region6 | 1023 17.05 81.46
region7 | 1112 18.54 100.00
------------+-----------------------------------
Total | 5999 100.00
. gr educyr98 hhsize, bar means by(reg7) ylabel( 2 4 to 10) alt
Lùa chän stack
. gen persons=1
. gr persons urban98, bar ylabel by(reg7) stack alt
VÝ dô:
H·y vÔ ®å thÞ sau:
2.4. §å thÞ h×nh trßn
Có ph¸p:
graph [danh s¸ch biÕn] [quyÒn sè] [®iÒu kiÖn] [ph¹m vi], pie [tuú_chän_chung]
LÖnh nµy vÏ ®å thÞ h×nh trßn Mèi biÕn sÏ chiÕm 1 phÇn cña h×nh trßn vµ tû lÖ cña phÇn nµy do tæng gi¸ trÞ cña c¸c quan s¸t cu¶ biÕn ®ã quyÕt ®Þnh.
VÝ dô:
VÏ ®å thÞ tû lÖ phÇn tr¨m sè ngêi nghÌo cña mçi vïng trªn tæng sè ngêi nghÌo cña c¶ níc.
. gr poor1-poor7, pie
. gen nonfpood=poor- foodpoor
. label var nonfpood "poor but still above food poverty line"
. gen nonpoor=( rlpcex1>=1790)
. gr foodpoor nonfpood nonpoor, pie
. set textsize 90
. set textsize 100
. gr foodpoor nonfpood nonpoor, pie by(reg7) total
3. Lu tr÷ vµ hiÓn thÞ ®å thÞ (Saving and graph using)
§Ó lu tr÷ ®å thÞ th× t¹i cöa sæ graph, vµo thùc ®¬n File, chän Save graph, sau ®ã lùa chän ®êng dÉn vµ tªn file cho ®å thÞ, phÇn më réng ngÇm ®Þnh lµ gph.
§å thÞ còng cã thÓ ®îc lu tr÷ b»ng tuú chän saving(tªn tÖp [,replace]) viÕt sau lÖnh graph
VÝ dô:
. gr educyr98 hhsize, bar means by(reg7) ylabel( 2 4 to 10) alt saving ("c:\ do thi 1")
. gr persons urban98, bar ylabel by(reg7) stack alt saving("c:\do thi 2")
§Ó kh«ng hiÓn thÞ ®å thÞ th× cã thÓ dïng lÖnh t¾t chÕ ®é hiÓn thÞ ®å thÞ b»ng lÖnh
set graphics { on | off }
. set graphics off
. gr poor1-poor7, pie saving ("c:\do thi 3", replace)
(note: file c:\do thi 3.gph not found)
Stata cho phÐp hiÓn thÞ c¸c ®å thÞ ®· lu tr÷ b»ng lÖnh:
graph using [tÖp tÖp ®å thÞ 2 ...] [, margin(#)]
margin(#) chØ ra kho¶ng c¸ch lÒ bao quanh ®å thÞ theo gi¸ trÞ phÇn tr¨m cña diÖn tÝch ®å thÞ. Gi¸ trÞ ngÇm ®Þnh lµ 0.
VÝ dô:
. set graphics on
. graph using "c:\do thi 1" "c:\do thi 2" "c:\do thi 3", margin(10) title("Mot so dac diem cua ho gia dinh")
Chó ý:
Chóng ta co thÓ kÕt hîp lÖnh saving víi using ®Ó lu tr÷ ra ®å thÞ míi. VÝ dô:
. graph using "c:\do thi 1" "c:\do thi 2" "c:\do thi 3", margin(10) title("Mot so dac die m cua ho gia dinh") saving("c:\do thi tong hop")
. graph using "c:\do thi tong hop"
CHƯƠNG V: LẬP TRÌNH TRONG STATA
1. Giới thiệu chung về chương trình do-file
1.1. Mở và lưu trữ do-file
Stata cho phép viết các tệp được gọi là do-file bao gồm các lệnh của Stata. Thay vì thực hiện từng lệnh một từ cửa sổ lệnh command, các tệp do-file sẽ lần lượt thực hiện các lệnh đó.
Chương trình Stata được soạn thảo trong cửa sổ do-file editor. Cửa sổ này được mở bằng cách kích vào thực đơn Windows và chọn tuỳ chọn do-file editor. Một cách khác để mở cửa sổ này là gõ lệnh doedit tại cửa sổ lệnh command.
Ví dụ:
Một chương trình có thể được soạn thảo trong cửa sổ do-file editor như sau:
----------------
clear
set mem 32m
use "C:\VLSS98\Hhexp98n.dta", clear
tab urban98
sum hhsize
gen new=hhsizet
gen new=hhsize
----------------
Sau khi soạn thảo, do-file sẽ được lưu trữ bằng tuỳ chọn Save as trong thực đơn File của cửa sổ do-file editor. Tên của do-file có thể được chỉ ra ngay tại lệnh doedit như sau:
doedit (tên do-file)
Tệp do-file có phần mở rộng là do.
Ở ví dụ trên chúng ta có thể lưu trữ đoạn chương trình dưới tên là “chương trình 1” tại thư mục Vlss98 trên ổ đĩa C.
1.2. Thực hiện các tệp do-file
Để chạy do-file thì tại cửa sổ lệnh chúng ta gõ một trong hai lệnh sau:
do filename [, nostop]
run filename [, nostop]
Lệnh run thực hiện các lệnh trong do-file nhưng không hiển thị kết quả ra màn hình.
Trong quá trình thực hiện do-file, nếu có câu lệnh sai thì Stata sẽ báo lỗi và ngừng việc thực hiện các câu lệnh sau đó. Tuy nhiên nếu tuỳ chọn nostop được chỉ ra thì Stata sẽ bỏ qua câu lệnh bị lỗi và tiếp tục thực hiện các lệnh sau câu lệnh lỗi đó.
Ví dụ:
. do "c:\vlss98\chuong trinh 1"
. clear
. set mem 32m
(32768k)
. use "C:\VLSS98\Hhexp98n.dta", clear
. tab urban98
1:urban 98; |
0:rural 98 | Freq. Percent Cum.
------------+-----------------------------------
Rural | 4269 71.16 71.16
Urban | 1730 28.84 100.00
------------+-----------------------------------
Total | 5999 100.00
. sum hhsize
Variable | Obs Mean Std. Dev. Min Max
-------------+-----------------------------------------------------
hhsize | 5999 4.752292 1.954292 1 19
. gen new=hhsizet
hhsizet not found
r(111);
end of do-file
r(111);
Với tuỳ chọn nostop
. do "c:\vlss98\chuong trinh 1", nostop
. clear
. set mem 32m
(32768k)
. use "C:\VLSS98\Hhexp98n.dta", clear
. tab urban98
1:urban 98; |
0:rural 98 | Freq. Percent Cum.
------------+-----------------------------------
Rural | 4269 71.16 71.16
Urban | 1730 28.84 100.00
------------+-----------------------------------
Total | 5999 100.00
. sum hhsize
Variable | Obs Mean Std. Dev. Min Max
-------------+-----------------------------------------------------
hhsize | 5999 4.752292 1.954292 1 19
. gen new=hhsizet
hhsizet not found
r(111);
. gen new=hhsize
. end of do-file
Thực hiện (chạy) bằng lệnh run
. run "c:\vlss98\chuong trinh 1", nostop
hhsizet not found
Các do-file có thể thực hiện bằng tuỳ chọn Do trong thực đơn File, hoặc thực hiện trực tiếp trong cửa sổ Do-file editor bằng tuỳ chọn Do hoặc Run trong thực đơn Tool.
1.3. Một số lưu ý khi soạn thảo do-file
version #
Khi soạn thảo các tệp do-file chúng ta nên đưa dòng lệnh này vào đầu chương trình để thông báo phiên bản Stata được dùng để soạn thảo do-file. Ví dụ nếu như chúng ta dùng Stata 7.0 để soạn thảo do-file thì câu lệnh này sẽ được đưa vào đầu chương trình như sau:
version 7.0
clear
use Hhexp98n.dta
tab reg7
.
Các phiên bản Stata khác nhau sẽ có thể có sự khác nhau về cú pháp hoặc ý nghĩa của các câu lệnh. Lệnh version cho phép chương trình Stata chạy có thể hiểu đúng được nội dung của tệp do-file được viết bởi các phiên bản khác.
set memory #[k|m]
Nếu như file số liệu đòi hỏi bộ nhớ lớn hơn bộ nhớ mà Stata đang sử dụng thì chúng ta phải thiết lập bộ nhớ lớn hơn cho Stata bằng lệnh trên. Chú ý là không nên thiết lập bộ nhớ lớn hơn bộ nhớ của RAM máy tính.
Ví dụ:
. use "C:\Hhexp98n.dta", clear
no room to add more observations
r(901);
. set mem 32m
(32768k)
. use "C:\Hhexp98n.dta", clear
set more off/on
Theo chế độ ngầm định, khi thực hiện một lệnh nếu như kết quả của việc xử lý lệnh đó dài hơn cửa sổ kết quả (Stata Results), màn hình sẽ dừng lại và chúng ta sẽ phải ấn phím (chẳng hạn Enter hoặc Space bar) để kết quả tiếp tục được hiển thị. Lệnh set more off cho phép kết quả không bị dừng lại mà được hiển thị liên tục cho đến khi thực hiện xong câu lệnh hoặc do-file. Lệnh set more on khôi phục lại chế độ ngầm định.
Ký tự * và /* */
Stata sẽ không thực hiện các câu lệnh được bắt đầu bằng ký tự * hoặc nằm ở giữa hai nhóm ký tự /* */. Các ký tự này dùng để viết chú thích trong do-file.
Ví dụ:
--------------------
version 7.0
set mem 32m
use "C:\Hhexp98n.dta", clear
* Tao bien thu nhap cua ho gia dinh
/* Bien nay bang Thu nhap binh quan
nhan voi Quy mo ho*/
gen hhexp = rlpcex1 * hhsize
#delimit ;
Khi câu lệnh trong do-file editor quá dài thì chúng ta có thể dùng lệnh này để thông báo rằng 1 câu lệnh được kết thúc bằng ký tự (;). Theo chế độ ngầm định thì câu lệnh được kết thúc khi xuống dòng bằng việc gõ phím Enter. Để khôi phục lại chế độ ngầm định thì dùng lệnh #delimit cr
Ví dụ: ở lệnh vẽ đồ thị ở chương trước:
graph meanexp meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho) l1title(Chi tieu binh quan (tr dong)) l2title(So nam hoc cua chu ho) b2title (Quy mo ho gia dinh) xlabel ylabel xline (5 10 to 20) yline(2 4 to 8) connect(ll)
tuơng đương với:
#delimit ;
graph meanexp meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho)
l1title(Chi tieu binh quan (tr dong)) l2title(So nam hoc cua chu ho)
b2title (Quy mo ho gia dinh) xlabel ylabel xline (5 10 to 20)
yline(2 4 to 8) connect(ll) ;
gen hhexp = rlpcex1 * hhsize ;
..
Sau đó chúng ta nên khôi phục lại chế độ ngầm định nếu như các câu lệnh sau đó có thể viết trên 1 dòng bằng lệnh:
#delimit cr
Chú ý:
Chúng ta có thể dùng ký tự /* */ để viết câu lệnh dài như sau:
graph meanexp meanedu ahhsize, title (Do thi chi tieu va hoc van chu ho) /*
*/ l1title(Chi tieu binh quan (tr dong)) l2title(So nam hoc cua chu ho) /*
*/ b2title (Quy mo ho gia dinh) xlabel ylabel xline (5 10 to 20)
yline(2 4 to 8) connect(ll);
Các lệnh # delimit và cách viết câu lệnh dài sử dụng ký tự /* */ chỉ dùng được trong do-file chứ không dùng được tại cửa sổ lệnh command.
2. Local và global macros
Macros là các biến được dùng trong các chương trình Stata. Biến macros được xem như 1 đoạn ký tự - gọi là macroname (tên của macros) - tương ứng với 1 dãy ký tự khác - được gọi là macro contents (nội dung của macro).
Có hai loại macros là local macros (macros nội bộ) và global macros (macros toàn bộ).
2.1. Local macros
Nếu chúng ta gõ:
. local hogd “age hhsize rlpcex1”
(Dấu nháy kép co thể bỏ qua, tức là có thể gõ: local hogd age hhsize rlpcex1)
Khi đó thì `hogd’ sẽ được hiểu tương đương với: age hhsize rlpcex1. hogd được gọi là tên của macros, còn age hhsize rlpcex1 là nội dung của macros. Để sử dụng nội dung của macros, chúng ta gõ tên của macros ở giữa dấu trích dẫn bên trái ( ‘ ) – nằm ở phía trên bên trái bàn phím - và dấu trích dẫn bên phải ( ‘ ) – nằm ở phía phải bên dưới của bàn phím.
Như vậy nếu chúng ta gõ:
. summarize `hogd’
thì tương đương với gõ:
. summarize age hhsize rlpcex1
Nếu chúng ta gõ:
. local tb “summarize”
thì chúng ta có thể thực hiện lệnh summarize age hhsize rlpcex1 bằng cách gõ:
. `tb' `hogd'
Variable | Obs Mean Std. Dev. Min Max
-------------+------------------------------------------------------------
age | 5999 48.01284 13.7702 16 95
hhsize | 5999 4.752292 1.954292 1 19
rlpcex1 | 5999 3188.667 2692.567 357.318 45801.71
Để hiển thị nội dung của local macros thì chúng ta gõ lệnh
macros list _(tên local macros)
Ví dụ:
. macro list _hogd
_hogd: age hhsize rlpcex1
Để xoá local macros thì chúng ta có thể dung lênh
macros drop _(tên local macros)
Ví dụ:
. macro drop _hogd
. macro list _hogd
local macro `hogd' not found
r(111);
2.2. Global macros
Nếu chúng ta gõ:
. global diaban “reg7 province commune”
(hoặc có thể bỏ qua dấu ngoặc kép: global diaban reg7 province commune)
Khi đó thì $diaban tương đương với: reg7 province commune. diaban được gọi là tên của macros, còn reg7 province commune là nội dung của macros. Để sử dụng được nội dung của global macros chúng ta gõ ký hiệu $ liền trước tên của macros.
Như vậy nếu chúng ta gõ:
. describe $diaban
thì tương đương với gõ:
. describe : reg7 province commune
. describe $diaban
storage display value
variable name type format label variable label
-------------------------------------------------------------------------------
reg7 int %8.0g Code by 7 regions
province float %9.0g Province code
commune float %9.0g commune code PSU-SVY commands
. global mota "describe"
. $mota $diaban
storage display value
variable name type format label variable label
-------------------------------------------------------------------------------
reg7 int %8.0g Code by 7 regions
province float %9.0g Province code
commune float %9.0g commune code PSU-SVY commands
Để hiển thị nội dung của global macros thì chúng ta gõ lệnh
macros list (tên global macros)
Ví dụ:
. global diaban "reg7 province commune"
. macro list diaban
diaban: reg7 province commune
Để xoá global macros thì chúng ta có thể dùng lệnh
macros drop (tên local macros)
Ví dụ:
. macro drop diaban
. macro list diaban
global macro $diaban not found
r(111);
2.3. Sự khác nhau giữa local macros và global macros
Local macros chỉ tồn tại trong 1 chương trình. Một chương trình sẽ không hiểu được các local macros được sử dụng ở các chương trình khác. Trong khi đó, một khi đã được khai báo, global macros được hiểu bởi tất cả các chương trình và tồn tại trong bộ nhớ của Stata trong suốt quá trình hoạt động.
Ví dụ:
Thực hiện đoạn chương trình khai báo local macros a. Sau đó thực hiện lệnh hiển thị nội dung local macros này, nhưng macros này không tồn tại ở đoạn chương trinh khác hay ở bộ nhớ của Stata.
. do "C:\WINDOWS\TEMP\STD010000.tmp"
. local a "chuong trinh thong ke Stata"
. end of do-file
. macro list _a
local macro `a' not found
r(111);
Trong khi đó đối với global macros
. do "C:\WINDOWS\TEMP\STD010000.tmp"
. global b "chuong trinh thong ke Stata"
. end of do-file
. macro list b
b: chuong trinh thong ke Stata
3. Tích vô hướng và ma trận (scalar and matrix)
3.1. Ma trận (matrix)
Stata định nghĩa ma trận A[r, c] là một mảng hình chữ nhật gồm r hàng (row) và c cột (column).
Ví dụ:
Nếu ma trận A đã được tạo ra thì chúng ta có thể xem nội dung của ma trận đó như sau:
. matrix list A
A[3,3]
c1 c2 c3
r1 1 2 4
r2 3 4 7
r3 10 11 14
Ở đây ma trận A bao gồm 9 phần tử (element): 1, 2, 4, 3, 4, 7, 10, 11, 14. Các cột được đặt tên là c1, c2, và c3, và các hàng là r1, r2, và r3. Phần tử là giao điểm của dòng 1 và cột 2 được ký hiệu là A[1, 2]. Trong ví dụ này A[1, 2] chứa giá trị bằng 2.
3.2. Tích vô hướng (scalar)
Tích vô hướng chứa 1 phần tử là số. Tích vô hướng được định nghĩa bằng lệnh sau:
scalar scalar_name = expression
Ví dụ:
. scalar a = 10
. scalar list a
a = 10
. scalar b = a* 2
. scalar list b
b = 20
Trong chừng mực nào đó, tích vô hướng có thể xem như một trường hợp đặc biệt của ma trận chỉ có 1 phân tử (một hàng và một cột).
3.3. Một số lệnh làm việc với ma trận
Thiểt lập kích thước ma trận
Gia trị ngầm định của kích thước ma trận là tối đa 40 hàng và 40 cột. Chúng ta có thể thay đổi kích thước tối đa này bằng lệnh:
. set matsize 500
Lệnh này cho phép các ma trận được tạo ra có thể bao gồm 500 hàng và 500 cột.
Tạo ma trận
Ma trận có thể tạo ra bằng các câu lệnh trực tiếp.
Ví dụ:
matrix mymat = (1,2\3,4)
Các phần tử được phân biệt bởi dấu phẩy, còn các hàng được phân biệt bởi dấu gạch chéo
matrix myvec = (1 5 3 1 3)
Tạo ra véctơ hàng
matrix mycol = (1/5/3/1/3)
Tạo ra véctơ cột
Ma trận cũng có thể được tạo ra từ số liệu bằng lệnh:
mkmat [điều kiện] [phạm vi] [, matrix(tên ma trận) ]
Ví dụ:
. input maho quymo thunhap
maho quymo thunhap
1. 101 6 1200
2. 103 5 1400
3. 105 5 3200
4. 107 9 1000
5. 109 4 2500
6. end
. mkmat maho quymo thunhap, matrix(A)
. matrix list A
A[5,3]
maho quymo thunhap
r1 101 6 1200
r2 103 5 1400
r3 105 5 3200
r4 107 9 1000
r5 109 4 2500
Tính toán ma trận
matrix D = B
Tạo ra ma trận D bằng ma trận B
matrix C = (C+C)/2
Tính lại ma trận C dựa trên giá trị của của nó
matrix D = A*A’
Tạo ra ma trận D bằng tích ma trận A và ma trận chuyển vị A’
Xoá ma trận
Ma trận và tích vô hướng có thể xoá khỏi bộ nhớ bằng lệnh:
matrix drop
scalar drop
Ví dụ:
. matrix drop A
. scalar drop B
4. Lệnh điều kiện và vòng lặp
4.1. Lệnh ifelse
Cú pháp:
điều kiện (điểu kiện logic) {
Nhóm câu lệnh 1
}
else Câu lệnh
Stata sẽ kiểm tra điều kiện logic (expression), nếu điều kiện này đúng thì các lệnh ở Nhóm câu lệnh 1 sẽ được thực hiện, nếu điều kiện sai thì lệnh ở đằng sau else sẽ được thực hiện, trong trường hợp else không được chỉ ra thì Stata sẽ thực hiện các lệnh sau lệnh if {}.
Ví dụ:
-----------------
local a=invnorm(uniform())
if `a'>=0 {
display "So ngau nhien tao ra lon hon hoac bang 0"
}
else di "So ngau nhien tao ra nho hon 0"
macro list _a
Chú ý:
Sử ký hiệu { } cho phép viết nhiều câu lệnh sau else
điều kiện (điểu kiện) {
commands 1
}
else {
comands 2
}
Các lệnh ifelse có thể được sử dụng lồng với nhau
điều kiện (điểu kiện) {
Nhóm câu lệnh 1
}
else điều kiện (điều kiện) {
.
4.2. Lệnh while
Cú pháp:
while {
Nhóm câu lệnh
}
Stata sẽ kiểm tra điều kiện logic (expression), nếu điều kiện này đúng thì các lệnh ở “Nhóm câu lệnh” sẽ được thực hiện, nếu điều kiện sai thì các lệnh này sẽ không được thực hiện.
Ví dụ:
local i=1
while `i’<= 10 {
if mod(`i',2) {
display "`i' is odd"
}
else {
display "`i' is even"
}
local i=`i’+1
}
Chú ý:
Vòng lặp có thể được dừng lại nếu sử dụng tuỳ chọn sau đây ở giữa vòng lặp:
continue [, break]
Nếu gặp lệnh continue, Stata sẽ bỏ qua các lệnh ở sau đó và quay lại lệnh đầu tiên của vòng lặp. Nếu cả tuỳ chọn break được chỉ ra thì Stata sẽ thoát khỏi vòng lặp.
Ví dụ: Tìm tích số chung nhỏ nhất của 2, 3 và 5
local i=1
while `i’<= 1000 {
if mod(`i',2)==0 & mod(`i',3)==0 & mod(`i',5)==0 {
di "The least common multiple of 2, 3, and 5 is `i'"
continue, break
}
}
5. Giới thiệu về file ado
Tạo chương trình
Một đoạn chương trình trong Stata có thể được định nghĩa bằng lệnh:
Program define
Các câu lệnh
end
Đoạn chương trình này được viết trong cửa sổ Do-file editor. Một khi nó được chạy thì đoạn chương trình này sẽ lưu trữ trong bộ nhớ của Stata, và chỉ cần gọi ra bằng cách gõ tên chương trình (progname)
Ví dụ:
quietly program define povline
display as text _col(3) "Poverty line" _col(16) "{c |}" _col(20) "Food" _col(30) "Overall"
di as text _col(2) "{hline 14}{c +}{hline 26}"
di as text _col(8) "Value" _col(16) "{c |}" as result _col(20) "1380" _col(33) "1920"
end
Sau khi chúng ta chạy lệnh này bằng run hoặc do, thì tại cửa sổ command, chúng ta gõ:
. povline
Poverty line | Food Overall
---------------+--------------------------
Value | 1380 1920
Chú ý:
Nếu chúng ta chạy lại lệnh program define povline, và nhận được thông báo:
povline already defined
r(110);
Tức là chương trình povline đã được tạo ra rồi, để xoá chương này đi thì chúng ta dùng lệnh:
program drop poveline
hoặc xoá tất cả các chương trình
program drop _all
Ado-file
Các ado-file tạo ra các lệnh của Stata. Trong Stata có hai loại lệnh. Loại thứ nhất được viết trong Stata, ví dụ như lệnh summarize. Loại thứ hai được định nghĩa bởi các tệp ado, ví dụ như lệnh ci.
Để biết được lệnh Stata thuộc loại nào, gõ lệnh which:
. which sum
built-in command: summarize
. which ci
C:\STATA\ado\base\c\ci.ado
*! version 3.3.4 04sep2000
Các ado-file chính là các chương trình được định nghĩa bằng lệnh program define, và lưu trữ với phần mở rộng là ado. Stata sẽ tìm kiếm các ado-file ở các thư mục:
. sysdir
STATA: C:\STATA\
UPDATES: C:\STATA\ado\updates\
BASE: C:\STATA\ado\base\
SITE: C:\STATA\ado\site\
STBPLUS: c:\ado\stbplus\
PERSONAL: c:\ado\personal\
OLDPLACE: c:\ado\
Ví dụ:
Chúng ta có thể lưu trữ lệnh povline dưới dạng ado và lưu trữ ở thu mục C:\STATA\ado\base\
Lệnh này sẽ được thực hiện khi ta gõ povline mà không cần chúng ta phải thực hiện câu lệnh trước ở do-file.
Bài tập: Viết lệnh povline với các lựa chọn cho các năm 1993, 1998, và 2002.
TÀI LIỆU THAM KHẢO
Hướng dẫn sử dụng trong phần mềm Stata 7.0 (on-line help). (Tuỳ chọn Contents trong thực đơn Help).
PHỤ LỤC
Các thống kê cơ bản của mẫu tuân theo quy luật chuẩn
Trung bình:
Phương sai:
Độ lệch chuẩn:
Độ lệch trung bình tuyệt đối:
Độ lệch:
Độ nhọn:
Các file đính kèm theo tài liệu này:
- huong_dan_su_dung_stata_0815_1773426.doc