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)

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).

doc90 trang | Chia sẻ: thucuc2301 | Ngày: 01/12/2020 | Lượt xem: 155 | Lượt tải: 0download
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è t­ong 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. L­u tr÷ vµ hiÓn thÞ ®å thÞ (Saving and graph using) §Ó l­u 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 l­u 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Þ ®· l­u 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 ®Ó l­u 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:

  • dochuong_dan_su_dung_stata_0815_1773426.doc
Tài liệu liên quan