Sử dụng chương trình STATA để khai thác số liệu điều tra mức sống hộ gia đình

Chương I: Giới thiệu chung về chương trình Stata. 2

1. Tổ chức lưu trữ dữ liệu trong Stata (Dataset in Stata) 2

2. Khởi động và thoát khỏi Stata (Open and exit) 3

3. Giao diện Stata 7 (Stata interface) 3

4. Biên bản làm việc (log file) 6

5. Nhập và lưu dữ liệu (Use, input and and save) 7

Chương II: Khai thác dữ liệu. 10

1. Cấu trúc lệnh trong Stata (Stata command syntax) 10

2.Toán tử và hàm số (Operators and functions) 13

3. Mô tả dữ liệu (Data reporting) 14

4. Biên tập và sửa chữa dữ liệu (Data manipulation) 26

5. Quyền số trong VHLSS (Weight) 39

Chương III: Kiểm định giả thiết và phân tích hồi quy. 44

1. Ước lượng và kiểm định giả thiết (Estimation and hypothesis testing) 44

2. Phân tích tương quan và hồi quy (Correlation and regression) 50

Chương IV: Vẽ đồ thị 57

1. Vẽ đồ thị (graph) 57

2. Một số loại đồ thị thường dùng. 65

3. Lưu trữ và hiển thị đồ thị (Saving and graph using) 72

Chương V: Lập trình trong Stata. 74

1. Giới thiệu chung về chương trình do-file. 74

2. Local và global macros. 78

3. Tích vô hướng và ma trận (scalar and matrix) 81

4. Lệnh điều kiện và vòng lặp. 83

5. Giới thiệu về file ado. 85

Tài liệu tham khảo. 87

Phụ lục. 87


CHƯƠNG I: GIỚI THIỆU CHUNG VỀ CHƯƠNG TRÌNH STATA

1. Tổ chức lưu trữ dữ liệu trong Stata (Dataset in Stata)

Stata là phần mềm thống kê sử dụng để quản lý, phân tích số liệu và vẽ đồ thị. Stata cho phép lưu trữ thông tin về các đặc điểm của các đối tượng nghiên cứu. Số liệu lưu trữ trong Stata có thể được hiển thị dưới dạng bảng như ví dụ sau:

hhcode

headname

hhsize

incomepc

101

Nguyen Van A

6

2100

102

Le Thi B

5

3210

103

Tran Van C

10

1200

Quan sát (bản ghi)

Mỗi một hàng ngang của bảng số liệu được gọi là một quan sát (observation), hay một bản ghi (record) lưu trữ số liệu về một đối tượng nghiên cứu. Ở ví dụ trên có 3 quan sát lưu trữ số liệu về Mã hộ (hhcode); Tên chủ hộ (headname); Quy mô hộ (hhsize); Thu nhập bình quân (incomepc) của 3 hộ gia đình.

Biến (trường; thuộc tính)

Thông tin về đối tượng nghiên cứu được thu thập và lưu trữ theo các đặc điểm của chúng. Các đặc điểm này được gọi là biến (variable), hay trường (field). Biến được xem là các cột của bảng số liệu. Ở ví dụ trên có 4 biến, với tên là hhcoed, hedname, hhsize, và incomepc. Tên biến dài từ 1 đến 32 ký tự, được bắt đầu chữ hoặc dấu gạch dưới (_). Tên biến chỉ bao gồm chữ, sỗ và dấu gạch dưới. Các ký tự đặc biệt khác không thể dùng để đặt tên cho biến.

Biến xác định (identifying variables)

Thông thường trong các biến sẽ có các biến dùng để nhận dạng quan sát, được gọi là biến xác định. Nhờ có các biến xác định này mà các quan sát có thể phân biệt được với nhau. Mỗi một quan sát có một giá trị của các biến này. Ở ví dụ trên, biến xác định là hhcode, đối với mỗi một quan sát biến hhcode nhận một giá trị.

Các đặc điểm của biến

Các biến có thể được gán nhãn (chú thích). Ví dụ biến hhcode có thể được gán nhãn là “Mã hộ”.

Biến có thể được định dạng (format) là biến số và biến ký tự với các loại lưu trữ khác nhau. Biến số có thể lưu trữ dưới loại byte; int; long; float; double. Còn biến ký tự thì có thể lưu trữ dưới dạng str1 đến str80 cho các độ dài khác nhau.

Kiểu lưu trữ dạng số

Dung lượng (Byte)

Giá trị nhỏ nhất

Giá trị lớn nhất

Kiểu

byte

1

-127

126

Số nguyên

int

2

-32,767

32,766

Số nguyên

long

4

-2,147,483,647

2,147,483,646

Số nguyên

float

4

-10^36

10^36

Số thực

double

8

-10^308

10^308

Số thực

Các biến số có thể bao gồm các biến rời rạc và liên tục. Các biến như là quy mô hộ gia đình, giới tính chủ hộ, vùng địa lý, trình độ giáo dục là các biến rời rạc (discrete) (hay còn gọi là biến phân loại (categorical)). Các biến này có thể được lưu trữ dưới dạng byte, int, và long. Các biến liên tục (continuous) như thu nhập, chi tiêu của hộ thì lưu trữ dưới dạng float hoặc double.

Biến ký tự (string) dùng để lưu trữ các loại ký tự. Ví dụ biến headname là biến kiểu ký tự dùng để lưu trữ tên của chủ hộ.

Kiểu lưu trữ dạng chữ

Byte

Độ dài lớn nhất

str1

1

1

str2

2

2

   

str80

80

80

2. Khởi động và thoát khỏi Stata (Open and exit)

Stata được khởi động tương tự như các chương trình tin học ứng dụng khác, bằng cách kích vào biểu tượng của tệp wstata.exe trong Windows explorer, hoặc chọn bằng cách chọn Start -> Program -> Stata. Chương trình được thoát ra bằng lệnh exit từ cửa sổ lệnh Stata Command, hoặc tuỳ chọn exit trong thực đơn (menu) File.

3. Giao diện Stata 7 (Stata interface)[1]

Sau khi Stata được khởi động, giao diện của Stata sẽ được hiện lên, bao gồm thanh thực đơn (menu bar) ở trên cùng, dưới đó là thanh công cụ (tool bar) và các cửa sổ (windows).

clip_image002

Các cửa sổ của Stata

Các cửa sổ của Stata được mở ra bằng việc lựa chọn các tuỳ chọn ở thanh thực đơn Windows (menu bar). Các cửa sổ này bao gồm:

Results

Hiển thị các lệnh và kết quả

Graph

Hiển thị đồ thị

Viewer

Hiển thị cửa sổ trợ giúp (help) và hiển thị nội dung các file văn bản (text)

Command

Dùng để gõ các câu lệnh

Review

Hiển thị các lệnh đã thực hiện

Variables

Hiển thị danh sách các biến của tệp số liệu

Data editor

Hiển thị và sửa chữa số liệu dưới dạng bảng

Do-file editor

Hiển thị cửa sổ để soạn thảo chương trình

Thanh thực đơn (Menu bar)

Bằng cách kích vào thanh thực đơn và các tuỳ chọn trong đó, Stata sẽ thực hiện các lệnh khác nhau. Thanh thực đơn bao gồm các nhóm lệnh sau đây:

File

Open

Mở file số liệu

View

Xem các file của Stata trong cửa sổ Viewer

Save

Lưu file số liệu

Save as

Lưu file số liệu dưới tên mới

File name

Chọn tên file để đưa vào cửa sổ lệnh

Log

Đóng, mở, xem lại log file

Save graph

Lưu giữ file đồ thị

Print graph

In đồ thị

Print results

In kết quả

Exit

Thoát khỏi Stata

Edit

Copy text

Sao chép văn bản (text)

Copy tables

Sao chép bảng biểu

Paste

Dán

Table copy options

Lựa chọn sao chép bảng số liệu

Graph copy options

Lựa chọn sao chép đồ thị (không có trong Stata 7)

Prefs Các tuỳ chọn về màu sắc, phông chữ, và kích cỡ

Windows

Results

Mở cửa sổ kết quả

Graph

Mở cửa sổ đồ thị

Log

Mở cửa sổ log file

Viewer

Mở cửa sổ trợ giúp (help) và xem nội dung file

Command

Mở cửa sổ câu lệnh

Review

Mở cửa sổ các lệnh đã thực hiện

Variables

Mở cửa sổ danh sách các biến của tệp số liệu

Help/Search

Mở cửa sổ trợ giúp (help)

Data editor

Mở cửa để xem số liệu lưu trữ dưới dạng bảng

Do-file editor

Mở cửa sổ viết chương trình

Help Các trợ giúp liên quan đến việc sử dụng Stata

Thanh công cụ (tool bar)

Các tuỳ chọn trên thanh công cụ được thiết kế để thực hiện các lệnh thông dụng của Stata. Nếu chúng ta di chuyển con trỏ đến các nút này thì sẽ hiện lên các câu huớng dẫn, bao gồm:

Open (use)

Mở file số liệu Stata

Save

Lưu trữ file số liệu ra đĩa

Print results

In nội dung của cửa sổ kết quả

Begin log

Mở, đóng và xem nội dung của file log

Start viewer

Mở cửa sổ trợ trợ (help)

Bring Dialog Window to font

Đưa cửa sổ hộp thoại ra phía trước

Bring Result Window to font

Đưa cửa sổ kết quả ra phía trước

Bring Graph Window to font

Đưa cửa sổ vẽ đồ thị ra phía trước

Do-file editor

Mở cửa sổ soạn thảo chương trình

Data editor

Mở cửa sổ sửa chữa số liệu

Data browser

Mở cửa sổ xem số liệu

Clear –more- condition

Tắt lệnh more

Break

Dừng việc thực hiện lệnh hoặc chương trình

4. Biên bản làm việc (log file)

Thông thường khi làm việc với Stata, người sử dụng muốn ghi lại biên bản làm việc bao gồm các lệnh, các thông báo và các kết quả phân tích thu được. Stata cho phép ghi lại các biên bản làm việc bằng lệnh log using.

Cú pháp:

log using (đường dẫn\tên tệp) [, append replace [ text | smcl ] ]

Các tuỳ chọn:

append

Ghi biên bản làm việc tiếp vào 1 file đã có sẵn

replace

Ghi lại biên bản làm việc đè lên 1 file đã có sẵn

text

Tạo biên bản làm việc dưới dạng văn bản (text) (phần mở rộng là log)

smcl

Tạo biên bản làm việc dưới dạng smcl (phần mở rộng là smcl), đây cũng là tuỳ chọn ngầm định

Ví dụ:

log using baitap1

Tạo tệp baitap1 ghi lại biên bản làm việc tại thư mục hiện thời, phần mở rộng mặc định là smcl

. log using baitap1

——————————————————————————-

log: C:\baitap1.smcl

log type: smcl

opened on: 17 Feb 2004, 15:32:03

log using baitap1, replace

Tạo tệp baitap1 ghi đè lên tệp baitap1 đã có sẵn

log using “d:\baitap2”, text

Tạo tệp baitap2 tại ổ đĩa D, dưới dạng văn bản (text) (phần mở rộng là log)

log using “d:\baitap2”, append

Ghi tiếp tục biên bản làm việc ở tệp baitap2 tại ổ đĩa D

Các tệp với phần mở rộng smcl có thể chuyển thành các tệp text bằng lệnh translate.

Ví dụ:

translate baitap1.smcl exercise1.log

log off

Lệnh này tạm thời dừng việc ghi lại biên bản làm việc vào tệp log/smcl đang mở

log on

Lệnh này tiếp tục ghi biên bản làm việc vào tệp log đang mở. Lênh này được dùng sau lện log using hoặc log off.

log close

Lệnh này đóng và lưu trữ tệp log đang mở.

Chú ý:

- Stata cho phép chỉ ghi lại những gì mà người sử dụng đã gõ trong cửa sổ command, việc này giúp cho việc sau này viết các chương trình dựa trên những biên bản đã làm việc. Cú pháp:

cmdlog using (đường dẫn\tên tệp) [, append replace]

cmdlog {off | on | close}

- Để xem các file log/smcl vào thanh thực đơn: file/log/view (hoặc ở cửa sổ lệnh command gõ: view (tên tệp)); hoặc có thể mở bằng các chương trình soạn thao văn bản khác như MS-Word; Notepad

5. Nhập và lưu dữ liệu (Use, input and and save)

Mở tệp số liệu đang có:

Cú pháp:

use (đường dẫn\tên tệp)

Lệnh này mở tệp Stata, với phần rộng là .dta, được chỉ ra ở tên tệp.

Ví dụ:

use ho1.dta

mở tệp ho1.dta ở thư mục hiện thời

use "D:\VHLSS 2004\ho1.dta", clear

mở tệp ho1.ta ở thư mục VHLSS 2004 trên ổ D

Tệp số liệu Stata có thể được mở bằng lựa chọn Open trên thực đơn File; hoặc nút Open (use) trên thanh công cụ tool bar.

Nếu file số liệu có dung lượng lớn thì chúng ta phải thiết lập bộ nhớ cần dùng cho Stata bằng lệnh:

set memory #[k|m]

Ví dụ:

set mem 32m

set mem 32000k

Nhập số liệu

Có một số cách để nhập số liệu từ bàn phím vào bộ nhớ của Stata.

- Sử dụng cửa sổ Stata editor để nhập số liệu. Hoặc từ cửa sổ command, gõ lệnh edit. Sau đó nhập số liệu theo kiểu biểu bảng trong cửa sổ này.

- Sử dụng lệnh: input [danh sách biến + định dạng nếu cần]

Sau đó sử dụng bàn phím để nhập số liệu lần lượt cho các biến của từng quan sát. Giá trị được nhập cách nhau 1 ký tự trống. Kết thúc nhập số liệu bằng lệnh end.

Ví dụ:

. input hhcode str15 name income

hhcode name income

1. 101 "Nguyen Van A" 1200

2. 102 "Nguyen Van B" 1350

3. 103 "Tran Thi C" 2310

4. end

Stata cho phép nhập số liệu từ các file cơ sở dữ liệu khác. Trước hết các file số liệu này cần được lưu trữ dưới dạng text (có thể bằng chương trình Excel), các quan sát được các nhau 1 dòng và các giá trị cách nhau 1 dẫu phẩy (commas) hoặc dấu cách (tab). Sau đó dùng lệnh insheet để nhập số liệu này vào Stata.

Cú pháp:

insheet [danh sách biến] using (tên tệp text) [, [no]names comma tab clear]

Lệnh này sẽ đọc vào bộ nhớ của Stata các quan sát của tệp text, và chỉ ra tên các biến sẽ được tạo ra.

Các tuỳ chọn:

[no]names

Cho phép nhập tên biến được chỉ ra ở dòng thứ nhất của file text

comma

Thông báo là các giá trị của file text được phân cách bằng dấu phẩy

tab

Thông báo là các giá trị của file text được phân cách bằng dấu tab

clear

Số liệu được đọc vào sẽ thay thế số liệu đang được thường trú trong bộ nhớ của Stata

Ví dụ:

. insheet using c:\income.txt

(3 vars, 4 obs)

. insheet maho hoten thunhap using c:\income.txt

(note: variable names in file ignored)

(3 vars, 4 obs)

Lưu trữ số liệu

Cú pháp:

save (đường dẫn\tên tệp) [,replace]

Lệnh này lưu trữ số liệu đang ở trong bộ nhớ của Stata thành tệp chỉ định dưới tên tệp. Nếu tuỳ chọn replace được chỉ ra thì tệp số liệu này sẽ ghi đè lên tệp hiện thời (tất nhiên tên tệp số liệu là giống nhau).

Việc lưu trữ số liệu có thể thực hiện bằng các tùy chọn Save và Save as ở trong thanh thực đơn (menu bar); hoặc nút Save trên thanh công cụ (tool bar).

Chú ý: Xem thêm lệnh infile và outfile

CHƯƠNG II: KHAI THÁC DỮ LIỆU

1. Cấu trúc lệnh trong Stata (Stata command syntax)

Cấu trúc cơ bản của một lệnh trong Stata như sau:

[by danh sách biến:] Cú pháp lệnh [danh sách biến] [biểu thức] [điều kiện] [phạm vi] [quyền số] [, tuỳ chọn]

Trong phần Hướng dẫn sư dụng (Help) của Stata, cú pháp lệnh trình bày bằng tiếng Anh như sau:

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

Trong đó dấu ngoặc vuông ký hiệu các tuỳ chọn.

Chú ý:

- Các câu lệnh Stata được viết bằng chữ thường.

- Đối với tên biến, Stata phân biệt chữ viết thường với chữ viết hoa. Ví dụ, trong cùng một tệp số liệu, biến “Ho_ten” và biến “ho_ten” là 2 biến khác nhau.

- Các tuỳ chọn được ký hiệu trong dấu ngoặc vuông [ ]. Các tuỳ chọn này có thể có hoặc không trong câu lệnh. Các tham số bắt buộc (tên biến) được đặt trong dấu ngoặc < >. Các câu lệnh sẽ không thực hiện được nếu các tham số bắt buộc này không được khai báo.

- Một số lệnh Stata cho phép viết tắt. Ví dụ lệnh summarize có thể viết tắt là sum. Trong cuốn tài liệu này phần gạch chân dưới cú pháp của câu lệnh là cú pháp “viết tắt” của câu lệnh đó.

- Các ví dụ trong cuốn tài liệu này sử dụng số liệu Điều tra Mức sống dân cư năm 1998 do Tổng cục Thống kê tiến hành. Trong đó Tệp chi tiêu tổng hợp Hhexp98n.dta thường xuyên được sử dụng.

by danh sách biến (by varlist): Stata sẽ thực hiện câu lệnh với theo từng giá trị được chỉ ra bởi danh sách biến. Biến được chỉ ra bởi danh sách biến được yêu cầu sẵp xếp trước khi thực hiện lệnh.

Ví dụ:

. sort sex

. by sex: sum rlpcex1

-> sex = 1

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 4375 2980.906 2430.648 357.318 45801.71

-> sex = 2

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 1624 3748.368 3231.241 376.9805 30624.77

. sort sex urban98

. by sex urban98: sum rlpcex1

-> sex = 1, urban98 = Rural

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 3344 2308.134 1345.671 357.318 24386.43

-> sex = 1, urban98 = Urban

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 1031 5163.01 3602.245 682.9575 45801.71

-> sex = 2, urban98 = Rural

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 925 2553.448 1776.178 376.9805 25527.95

-> sex = 2, urban98 = Urban

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 699 5329.628 3962.946 1057.797 30624.77

Danh sách biến (varlist)

Chỉ ra danh sách các biến chịu tác động của câu lệnh. Nếu như không có biến nào được chỉ ra thì lệnh Stata sẽ có tác dụng lên tất cả các biến (all variables)

Ví dụ:

. sum hhsize sex reg7

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

hhsize | 5999 4.752292 1.954292 1 19

sex | 5999 1.270712 .4443645 1 2

reg7 | 5999 4.01917 2.145305 1 7

. sum

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

househol | 5999 19617.86 11201.92 101 38820

year | 5999 97.94666 .2247337 97 98

month | 5999 6.340723 3.011082 1 12

–Break–

r(1);

Lệnh sum này hiển thị thống kê cơ bản của tất cả các biến trong tệp số liệu.

Điều kiện (if exp)

Stata chỉ thực hiện câu lệnh đối với các quan sát mà giá trị của nó cho kết quả của biểu thức là đúng.

Ví dụ:

. sum poor if reg7==1

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

poor | 859 .4982538 .5002882 0 1

Lệnh này chỉ có tác dụng đối với các quan sát mà biến reg7 có giá trị bằng 1.

Phạm vi (in range)

Chỉ ra phạm vi các quan sát chịu tác động của câu lệnh. Range (phạm vi) có thể có các dạng sau:

sum poor in 10

Tính giá trị trung bình của biến poor cho quan sát 10 (chính bằng giá trị của biến poor tại quan sát thứ 10)

sum poor in 10/100

Tính giá trị trung bình của biến poor cho quan sát từ 10 đến 100

sum poor in f/100

Tính giá trị trung bình của biến poor cho quan sát từ đầu tiên đến 100

sum poor in 100/l

Tính giá trị trung bình của biến poor cho quan sát từ thứ 100 đến quan sát cuối cùng

Quyền số (weight)

Cho phép tính toán sủ dụng quyền số. Tuỳ chọn về quyền số sẽ được trình bày kỹ ở mục 5 của chương này.

Các tuỳ chọn (Options)

Nhiều câu lệnh Stata cho phép các tuỳ chọn riêng. Các tuỳ chọn này được chỉ ra sau dấu phẩy.

Ví dụ:

Lệnh sum có tuỳ chọn là detail, cho phép tính toán thêm một số thống kê khác ngoài giá trị trung bình và độ lệnh chuẩn.

. sum rlpcex1, detail

comp.M&Reg price adj.pc tot exp

————————————————————-

Percentiles Smallest

1% 682.9575 357.318

5% 1012.433 366.2792

10% 1238.088 376.9805 Obs 5999

25% 1671.054 381.3502 Sum of Wgt. 5999

50% 2397.042 Mean 3188.667

Largest Std. Dev. 2692.567

75% 3711.917 26944.64

90% 5940.803 30624.77 Variance 7249918

95% 8045.32 31066.5 Skewness 3.791027

99% 14163.04 45801.71 Kurtosis 29.21398

Chú ý:

- Stata cho phép viết tắt các lệnh và tùy chọn. Trong tài liệu này, phần gạch chân dưới các lệnh có nghĩa là lệnh đó có thể viết tắt bằng ký tự trong phần gạch chân này. Ví dụ như lệnh use có nghĩa là có thể được viết tắt bởi u.

- Cú pháp của các câu lệnh trong tài liệu này được viết bằng tiếng Anh, cho phép người đọc có thể đối chiếu với phần hướng dẫn sử dụng trong Stata.

2.Toán tử và hàm số (Operators and functions)

Các toán tử (operators)

Các toán tử trong Stata được ký hiệu như sau:

Ký hiệu

ý nghĩa

Số học

 

+

Cộng

-

Trừ

*

Nhân

/

Chia

^

Luỹ thừa

Quan hệ

 

>

Lớn hơn

<

Nhỏ hơn

>=

Lớn hơn hoặc bằng

<=

Nhỏ hơn hoặc bằng

==

Bằng

~=

Không bằng (khác)

!=

Không bằng (khác)

Lôgíc

 

~

Không

|

Hoặc

&

Chú ý:

Trong biểu thức dấu == được dùng cho việc kiểm định biểu thức, ví dụ như được dùng sau lệnh if. Còn dấu = được dùng cho lệnh tạo biến.

Ví dụ:

gen RRD=0

replace RRD=1 if reg8==1

Các hàm số (function)

Hàm số thường được dùng trong biểu thức (exp) của câu lệnh Stata. Nếu coi Y là một hàm số của f(X1, X2,…, Xn) thì lệnh về hàm số trong Stata sẽ tính giá trị của Y nếu cho các giá trị của Xi. Stata có 8 loại hàm số:

Mathematical functions

Statistical functions

Random numbers

String functions

Special functions

Date functions

Time-series functions

Matrix functions

Các hàm toán học

Hàm thống kê

Hàm cho số ngẫu nhiên

Hàm liên quan đến dẫy ký tự

Hàm đặc biệt

Hàm ngày tháng

Hàm chuỗi thời gian

Hàm ma trận

Ví dụ:

gen absx=abs(x)

gen log_exp=log(rlpcex1)

Các ký hiệu cụ thể về các hàm số này có thể xem ở mục help functions.

3. Mô tả dữ liệu (Data reporting)

3.1. Xoá bộ nhớ của Stata

Cú pháp:

clear

Lệnh này xoá các dữ liệu trong bộ nhớ của Stata, bắt đầu cho một file làm việc mới.

3.2. Hướng dẫn sử dụng lệnh Stata

Cú pháp:

help <Câu lệnh Stata>

Lệnh này hiển thị hướng dẫn sử dụng các lệnh Stata, lệnh Stata cần phải được gõ đầy đủ và chính xác.

Ví dụ:

. help sum

help for sum not found

try help contents or search sum

. help summarize

—————————————————————————————–

help for summarize (manual: [R] summarize)

—————————————————————————————–

Summary statistics

….

Chú ý:

Chúng ta có thể tìm hướng dẫn sử dụng theo từ khoá bằng lệnh search. Lệnh search có thể được thực hiện bằng tuỳ chọn Search ở thực đơn help.

3.3. Mô tả dữ liệu

Cú pháp:

describe [danh sách biến]

Lệnh này hiển thị thông tin chung như tên biến, định dạng, nhãn biến của các biến được liệt kê bởi danh sách biến của file số liệu đang mở. Nếu như không có biến nào được chỉ ra thì lệnh describe sẽ hiện thị thông tin của tất cả các biến.

Ví dụ:

. des househol year month vlssmphs

storage display value

variable name type format label variable label

——————————————————————————-

househol long %12.0g household code

year float %9.0g Year of interview

month float %9.0g Month of interview

vlssmphs byte %8.0g 1 if vlss, 2 if mphs source

3.4. Hiển thị giá trị của các biến

Cú pháp:

list [danh sách biến] [điều kiện] [phạm vi] [, nolabel]

Lệnh này hiển thị giá trị của các biến được chỉ ra bởi danh sách biến. Tuỳ chọn nolable cho phép hiển thị giá trị số chứ không phải là giá trị gán nhãn.

Ví dụ:

. list househol farm in 1/5

househol farm

1. 36307 farm

2. 28002 farm

3. 36017 farm

4. 32418 non farm

5. 15215 non farm

. list househol farm in 1/5, nolabel

househol farm

1. 36307 1

2. 28002 1

3. 36017 1

4. 32418 0

5. 15215 0

3.5. Hiển thị dẫy ký tự và biểu thức

Cú pháp:

display ["Dẫy (chuỗi) ký tự"] [biểu thức]

Lệnh này hiển thị dẫy ký tự hoặc giá trị của biểu thức.

Ví dụ:

. dis "So lieu VLSS 1998"

So lieu VLSS 1998

. dis 120*100/30

400

3.6. Sửa chữa, xem số liệu

Cú pháp:

edit [danh sách biến] [điều kiện] [phạm vi] [, nolabel]

browse [danh sách biến] [điều kiện] [phạm vi] [, nolabel]

Lệnh edit này mở cửa sổ Data editor để người sử dụng sửa chữa, nhập số liệu. Tuỳ chọn nolable cho phép hiển thị giá trị số chứ không phải là giá trị gán nhãn. Lệnh này có thể được chọn từ tuỳ chọn Data editor trong thanh thực đơn Windows.

Lệnh browse giống lệnh edit nhưng không cho phép sửa chữa số liệu.

3.7. Đếm quan sát

Cú pháp:

count [điều kiện] [phạm vi]

Lệnh này đếm số quan sát được chỉ ra bởi điều kiện (exp) và phạm vi (range). Nếu điều kiện (exp) và phạm vi (range) không được chỉ ra thì sẽ hiện thị số quan sát của tệp số liệu.

Ví dụ:

. count

5999

. count if reg7==1

859

. count if reg7==1 & urban98==1

187

. count if reg7==1 & urban98==0

672

3.8. Thống kê cơ bản

Cú pháp:

summarize [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, detail]

Lệnh này tính toán và hiển thị những thống kê cơ bản của các biến được chỉ ra bởi danh sách biến. Tuỳ chọn detail cho phép hiển thị thêm một số thống kê như độ nhọn, độ lệnh và các giá trị của thập vị phân.

Ví dụ:

. sum rlpcex1

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

rlpcex1 | 5999 3188.667 2692.567 357.318 45801.71

. sum rlpcex1, detail

comp.M&Reg price adj.pc tot exp

————————————————————-

Percentiles Smallest

1% 682.9575 357.318

5% 1012.433 366.2792

10% 1238.088 376.9805 Obs 5999

25% 1671.054 381.3502 Sum of Wgt. 5999

50% 2397.042 Mean 3188.667

Largest Std. Dev. 2692.567

75% 3711.917 26944.64

90% 5940.803 30624.77 Variance 7249918

95% 8045.32 31066.5 Skewness 3.791027

99% 14163.04 45801.71 Kurtosis 29.21398

3.9. Hiển thị thông tin chung về biến

Cú pháp:

inspect [danh sách biến] [điều kiện] [phạm vi]

Lệnh này mô tả về số liệu của các biến kiểu số. Nó đưa ra thông tin về số âm, dương, số nguyên, giá trị thiếu (missing) của giá trị của biến.

Ví dụ:

. gen x=invnorm(uniform())

. inspect x

x: Number of Observations

—- Non-

Total Integers Integers

| # Negative 2964 – 2964

| # Zero – – -

| # Positive 3035 – 3035

| # —– —– —–

| # # # Total 5999 – 5999

| . # # # . Missing -

+———————- —–

-3.918931 3.641588 5999

(More than 99 unique values)

Chú ý: có thể xem thêm lệnh codebook

3.10. Tạo bảng tần suất

Tạo bảng tần suất 1 chiều

Cú pháp:

tabulate <tên biến> [quyền số] [điều kiện] [phạm vi] [, missing nolabel]

tab1 <danh sách biến> [quyền số] [điều kiện] [phạm vi] [, missing nolabel]

Lệnh này tạo bảng tần suất 1 chiều của biến được chỉ ra. Lệnh tabulate chỉ cho phép có 1 biến được chỉ ra, nếu có hơn 1 biến được chỉ ra thì Stata sẽ hiểu là tạo bảng tần suất 2 chiều.

Các tuỳ chọn:

missing Cho phép các quan sát không có giá trị (missing) được xếp vào 1 loại.

nolabel Cho phép hiển thị giá trị số của biến, chứ không phải nhãn biến

Ví dụ:

. tab sex

Gender of |

HH.head |

(1:M;2:F) | Freq. Percent Cum.

————+———————————–

1 | 4375 72.93 72.93

2 | 1624 27.07 100.00

————+———————————–

Total | 5999 100.00

. tab1 urban98 reg7

-> tabulation of 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

-> tabulation of 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

Tạo bảng tần suất 2 chiều

Cú pháp:

tabulate <tên biến 1> <tên biến 2> [quyền số] [điều kiện] [phạm vi] [, chi2 missing nofreq cell column row]

tab2 <danh sách biến> [quyền số] [điều kiện] [phạm vi] [, chi2 missing nofreq cell column row]

Lệnh tablulate này tính và hiển thị bảng tần suất 2 chiều của 2 biến được chỉ ra. Lệnh tab2 tạo bảng tần suất 2 chiều của từng cặp biến được chỉ ra trong danh sách biến.

Ví dụ:

. tab urban98 farm

1:urban | Type of HH (1:farm;

98; | 0:nonfarm)

0:rural 98 | non farm farm | Total

———–+———————-+———-

Rural | 1021 3248 | 4269

Urban | 1540 190 | 1730

———–+———————-+———-

Total | 2561 3438 | 5999

Các tuỳ chọn:

chi2

Thực hiện kiểm định giả thiết là hai biến độc lập

missing

Cho phép các quan sát không có giá trị được xếp vào 1 loại

nofreq

Không hiển thị tần suất

cell

Hiển thị tần suất tương đối (tỷ lệ %) của các ô

column

Hiển thị tần suất tương đối (tỷ lệ %) của các ô theo cột

row

Hiển thị tần suất tương đối (tỷ lệ %) của các ô theo hàng

Ví dụ:

. tab reg7 urban98, cell nof

| 1:urban 98; 0:rural

Code by 7 | 98

regions | Rural Urban | Total

———–+———————-+———-

region1 | 11.20 3.12 | 14.32

region2 | 13.05 6.53 | 19.59

region3 | 10.00 1.80 | 11.80

region4 | 8.37 4.20 | 12.57

region5 | 6.13 0.00 | 6.13

region6 | 8.57 8.48 | 17.05

region7 | 13.84 4.70 | 18.54

———–+———————-+———-

Total | 71.16 28.84 | 100.00

. tab farm urban98, column row

Type of HH | 1:urban 98; 0:rural

(1:farm; | 98

0:nonfarm) | Rural Urban | Total

———–+———————-+———-

non farm | 1021 1540 | 2561

| 39.87 60.13 | 100.00

| 23.92 89.02 | 42.69

———–+———————-+———-

farm | 3248 190 | 3438

| 94.47 5.53 | 100.00

| 76.08 10.98 | 57.31

———–+———————-+———-

Total | 4269 1730 | 5999

| 71.16 28.84 | 100.00

| 100.00 100.00 | 100.00

3.11. Tạo bảng thống kê tổng hợp bằng lệnh tabulate…summarize

Cú pháp:

tabulate <tên biến 1> <tên biến 2> [quyền số] [điều kiện] [phạm vi] , summarize(tên biến 3) [means standard freq missing ]

Lệnh này tạo bảng một hoặc hai chiều định nghĩa bởi biến 1 hoặc biến 2 và mỗi ô cho giá trị thống kê trung bình, độ lệch chuẩn và tần suất của biến 3.

Ví dụ:

. tab farm urban98, sum(poor)

Means, Standard Deviations and Frequencies of poor

Type of HH | 1:urban 98; 0:rural

(1:farm; | 98

0:nonfarm) | Rural Urban | Total

———–+———————-+———-

non farm | .2791381 .06168831 | .14837954

| .44879538 .24066673 | .35554523

| 1021 1540 | 2561

———–+———————-+———-

farm | .42302956 .12105263 | .4063409

| .4941161 .32705022 | .49122109

| 3248 190 | 3438

———–+———————-+———-

Total | .3886156 .06820809 | .29621604

| .48749275 .25217555 | .45662551

| 4269 1730 | 5999

Các tuỳ chọn:

means

Hiển thị mỗi giá trị trung bình

standard

Hiển thị mỗi giá trị độ lệch chuẩn

freq

Hiển thị mỗi giá trị tần suất

missing

Cho phép các quan sát không có giá trị được xếp vào 1 loại

Ví dụ:

. replace poor=poor*100

(1777 real changes made)

. format poor %4.2f

. tab reg7 urban98, sum(poor) means

Means of poor

| 1:urban 98; 0:rural

Code by 7 | 98

regions | Rural Urban | Total

———–+———————-+———-

region1 | 61.46 8.02 | 49.83

region2 | 32.57 5.87 | 23.66

region3 | 44.83 10.19 | 39.55

region4 | 37.25 11.51 | 28.65

region5 | 47.28 . | 47.28

region6 | 12.45 2.16 | 7.33

region7 | 35.78 10.28 | 29.32

———–+———————-+———-

Total | 38.86 6.82 | 29.62

3.12. Tạo bảng thống kê tổng hợp bằng lệnh tabstat

Cú pháp:

tabstat <danh sách biến> [quyền số] [điều kiện] [phạm vi] [, statistics(cú pháp tkê [...]) by(tên biến) missing format[(%fmt)]]

Lệnh này tính toán các thống kê của các biến được chỉ ra bởi danh sách biến cho từng giá trị của biến phân loại (categorical) được chỉ ra bởi by(tên biến).

Ví dụ:

. tabstat rlfood rlhhex1, stats(mean median) by(reg7)

Summary statistics: mean, p50

by categories of: reg7 (Code by 7 regions)

reg7 | rlfood rlhhex1

——–+——————–

region1 | 5595.556 9560.349

| 5350.916 8536.373

—————————–

region2 | 6419.427 12951.14

| 5664.145 9997.146

—————————–

region3 | 5692.201 10885.38

| 5369.411 9022.334

—————————–

region4 | 6512.576 13525.41

| 5790.046 11077.51

—————————–

region5 | 5894.983 11217.05

| 5380.505 9421.447

—————————–

region6 | 9746.158 23515.01

| 8428.743 18514.39

—————————–

region7 | 6556.616 13068.11

| 6066.128 11043.99

—————————–

Total | 6787.898 14010.74

| 5951.567 10733.19

—————————–

Các tuỳ chọn:

statistics(statname [...])

Chỉ ra thống kê cần tính cho danh sách biến

by(tên biến)

Chỉ ra biến phân loại (categorical)

Missing

Giá trị thiếu (mising) của biến loại được xem như 1 loại

format[(%fmt)]

Chỉ ra định dạng của số liệu hiển thị

Stata cho phép các loại thống kê được chỉ ra bởi statistics(cú pháp thống kê [...]) như sau:

Cú pháp thống kê Ý nghĩa

mean Trung bình mean

count Đếm số quan sát

n Giống như lệnh count (Đếm số quan sát)

sum Tổng cộng

max Giá trị lớn nhất

min Giá trị nhỏ nhất

range Biên độ = Giá trị lớn nhất – Giá trị nhỏ nhất

sd Độ lệch chuẩn

sdmean Độ lệch chuẩn của trung bình = Độ lệch chuẩn / {(Số quan sát)^0.5}

skewness Độ lệch của phân phối

kurtosis Độ nhọn

median Trung vị (Giống như p50)

p1 1% phân vị

p5 5% phân vị

p10 10% phân vị

p25 25% phân vị

p50 50% phân vị (trung vị)

p75 75% phân vị

p90 90% phân vị

p95 95% phân vị

p99 99% phân vị

iqr p75 – p25

q tương đương với "p25 p50 p75"

Ví dụ:

. tabstat rlpcex1, stats(mean sd q) by(reg7) format(%5.1f)

Summary for variables: rlpcex1

by categories of: reg7 (Code by 7 regions)

reg7 | mean sd p25 p50 p75

——–+————————————————–

region1 | 2174.8 1265.1 1328.0 1792.1 2710.8

region2 | 3294.0 2511.9 1816.7 2532.5 3822.0

region3 | 2503.3 1918.0 1489.7 2001.2 2808.1

region4 | 2933.7 2260.5 1697.9 2362.2 3471.4

region5 | 2087.3 1285.4 1217.3 1850.8 2700.5

region6 | 5257.5 4005.7 2676.7 4154.1 6431.8

region7 | 2931.1 2137.2 1680.1 2321.9 3414.7

———————————————————–

Total | 3188.7 2692.6 1671.1 2397.0 3711.9

———————————————————–

3.13. Tạo bảng thống kê tổng hợp bằng lệnh table

Cú pháp:

table <biến dòng> [biến cột [biến cột trên cùng]] [điều kiện] [phạm vi] [quyền số] [, contents(nội dung) row col format(%fmt) missing]

Lệnh này cho phép tính các thống kê của các biến được chỉ ra trong contents theo dạng bảng, trong đó các hàng được định nghĩa bởi biến dòng, còn các cột được định nghĩa bởi biến cột (và biến cột trên cùng). Các biến hàng và cột này là các biến phân loại (categorical).

Ví dụ:

. table reg7 urban98 farm, contents(mean poor)

—————————————————-

| Type of HH (1:farm; 0:nonfarm) and

| 1:urban 98; 0:rural 98

Code by 7 | —- non farm —- —— farm ——

regions | Rural Urban Rural Urban

———-+—————————————–

region1 | 19.35484 6.015038 65.7377 12.96296

region2 | 26.66667 4.624278 33.96524 15.21739

region3 | 40.98361 10.11236 45.8159 10.52632

region4 | 21.6 11.63793 42.44032 10

region5 | 30.76923 49.24012

region6 | 15.04065 2.195609 10.07463 0

region7 | 38.62816 10.04184 34.35805 11.62791

—————————————————-

Các tuỳ chọn:

Contents(nội dung) Liệt kê danh sách các biến và các thống kê. Các ký hiệu thống kê tương tự như ở lệnh tabstat

row Hiển thị thống kê tổng của các dòng

col Hiển thị thống kê tổng của các cột

format(%fmt) Chỉ ra định dạng của số liệu hiển thị

missing Giá trị thiếu (mising) của biến loại được xem như 1 loại

Ví dụ:

. table reg7 urban98 farm, contents(mean poor) row col format(%4.2f)

——————————————————

| Type of HH (1:farm; 0:nonfarm) and 1:urban

| 98; 0:rural 98

Code by 7 | —– non farm —- ——- farm ——

regions | Rural Urban Total Rural Urban Total

———-+——————————————-

region1 | 19.35 6.02 10.26 65.74 12.96 61.45

region2 | 26.67 4.62 11.29 33.97 15.22 32.70

region3 | 40.98 10.11 27.96 45.82 10.53 44.47

region4 | 21.60 11.64 15.13 42.44 10.00 40.81

region5 | 30.77 30.77 49.24 49.24

region6 | 15.04 2.20 6.43 10.07 0.00 9.78

region7 | 38.63 10.04 25.39 34.36 11.63 32.72

|

Total | 27.91 6.17 14.84 42.30 12.11 40.63

——————————————————

. table urban98 farm, contents(mean poor sd poor) row col format(%4.2f)

—————————————-

1:urban |

98; | Type of HH (1:farm;

0:rural | 0:nonfarm)

98 | non farm farm Total

———-+—————————–

Rural | 27.91 42.30 38.86

| 44.88 49.41 48.75

|

Urban | 6.17 12.11 6.82

| 24.07 32.71 25.22

|

Total | 14.84 40.63 29.62

| 35.55 49.12 45.66

—————————————-

. table urban98 farm, contents(mean rlpcex1 mean rlhhex1) row col format(%4.2f)

—————————————-

1:urban |

98; | Type of HH (1:farm;

0:rural | 0:nonfarm)

98 | non farm farm Total

———-+—————————–

Rural | 2835.83 2212.12 2361.29

| 13242.03 10120.89 10867.36

|

Urban | 5476.86 3232.17 5230.33

| 22984.44 11903.19 21767.43

|

Total | 4423.95 2268.49 3188.67

| 19100.41 10219.39 14010.74

—————————————-

4. Biên tập và sửa chữa dữ liệu (Data manipulation)

4.1.Tạo biến mới

Tạo biến bằng lệnh generate

Cú pháp:

generate <biến mới> = biểu thức [điều kiện] [phạm vi]

Lệnh này cho phép tạo biến mới có giá trị bằng giá trị của biểu thức được chỉ ra.

Ví dụ:

. gen poor = 1 if rlpcex1 < 1790

(4222 missing values generated)

. gen nonpoor=1 if rlpcex1 >= 1790

(1777 missing values generated)

Lệnh tạo biến giả tabulate…generate

Cú pháp:

tabulate <biến phân loại>, generate(biến mới)

Lệnh generate có thể kết hợp với tab để tạo các biến giả . Biến mới tạo ra sẽ có dạng là “biến mới 1”, “biến mới 2”, “biến mới 3”, v..v. Biến này chính là các biến giả được tạo ra trên cơ sở của biến phân loại.

Ví dụ:

. 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

. tab1 region1 region2

-> tabulation of region1

reg7==regio |

n1 | Freq. Percent Cum.

————+———————————–

0 | 5140 85.68 85.68

1 | 859 14.32 100.00

————+———————————–

Total | 5999 100.00

-> tabulation of region2

reg7==regio |

n2 | Freq. Percent Cum.

————+———————————–

0 | 4824 80.41 80.41

1 | 1175 19.59 100.00

————+———————————–

Total | 5999 100.00

Ở đây biến reg7 có 7 giá trị từ 1 đến 7 tương ứng với 7 biến giả từ region1 đến region7 sẽ được tạo ra. Biến region1 nhận giá trị bằng 1 nếu như biến reg7 nhận giá trị 1, nếu không thì bằng 0. Tương tự biến region7 nhận giá trị 1 nếu như biến reg7 bằng 7.

Ở ví dụ trên lệnh tabulate…generate tương đương với 7 lệnh sau:

gen region1=(reg7==1)

gen region2=(reg7==2)

gen region7=(reg7==7)

Tạo biến bằng lệnh egen

Cú pháp:

egen <biến mới> = fcn(tham số) [điều kiện] [phạm vi] [, by(biến)]

Lệnh này cho phép tạo biến mới theo giá trị của hàm số được chỉ ra bởi fcn. Biến mới này sẽ nhận giá trị cố định cho mọi quan sát. Hàm số ở đây có thể là:

count(exp)

Đếm số quan sát của biểu thức

mean(exp)

Cho giá trị trung bình của biểu thức

median(exp)

Cho giá trị trung vị của biểu thức

sd(exp)

Cho giá trị độ lệch chuẩn của biểu thức

Các hàm số khác có thể xem ở phần help egen.

Ví dụ:

. egen sumexp=sum(rlpcex1)

. sum sumexp

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

sumexp | 5999 1.91e+07 0 1.91e+07 1.91e+07

. egen g=median( food+ nonfood1)

. sum g

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

g | 5999 11063.6 0 11063.6 11063.6

Thay thế giá trị của biến

Cú pháp:

replace <biến> = biểu thức [điều kiện] [phạm vi]

Lệnh này thay thế giá trị của biến hiện có bằng giá trị mới xác định bởi biểu thức exp.

Ví dụ:

replace poor=poor*100

replace pcexp = hhexp/hhsize

Tạo biến phân loại bằng lệnh encode

Cú pháp:

encode <biến> [điều kiện] [phạm vi], generate(biến mới)

Lệnh này cho phép tạo biến phân loại mới (categorical) kiểu số tương ứng với các giá trị của biến kiểu chữ chỉ ra bởi tên biến (được xếp theo vần chữ cái).

Ví dụ:

. gen str15(mucsong) = "Kha"

. drop mucsong

. gen mucsong="Rat ngheo"

type mismatch

r(109);

. gen str15(mucsong)="Rat ngheo"

. replace mucsong="Ngheo" if rlpcex1<1790 & rlpcex1>1290

(1087 real changes made)

. replace mucsong="Khong ngheo" if rlpcex1>=1790

(4222 real changes made)

. tab mucsong

mucsong | Freq. Percent Cum.

—————-+———————————–

Khong ngheo | 4222 70.38 70.38

Ngheo | 1087 18.12 88.50

Rat ngheo | 690 11.50 100.00

—————-+———————————–

Total | 5999 100.00

. sum mucsong

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

mucsong | 0

. encode mucsong, gen(ma_ms)

. tab ma_ms

ma_ms | Freq. Percent Cum.

————+———————————–

Khong ngheo | 4222 70.38 70.38

Ngheo | 1087 18.12 88.50

Rat ngheo | 690 11.50 100.00

————+———————————–

Total | 5999 100.00

. sum ma_ms

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

ma_ms | 5999 1.411235 .6871957 1 3

Tạo biến bằng lệnh xtile

Cú pháp:

xtile <biến mới> = biểu thức [quyền số] [điều kiện] [phạm vi] [, nquantiles(#)]

Lệnh này tạo biến phân nhóm cho biểu thức theo phân vị. Trong đó nquantiles(#) chỉ ra số lượng phân vị.

Ví dụ: Tạo biến ngũ vị phân theo chi tiêu

. xtile quinexp= rlpcex1, nq(5)

. tab quinexp

5 quantiles |

of rlpcex1 | Freq. Percent Cum.

————+———————————–

1 | 1200 20.00 20.00

2 | 1200 20.00 40.01

3 | 1200 20.00 60.01

4 | 1200 20.00 80.01

5 | 1199 19.99 100.00

————+———————————–

Total | 5999 100.00

. tab quinexp, sum( rlpcex1)

| Summary of comp.M&Reg price adj.pc

5 quantiles | tot exp

of rlpcex1 | Mean Std. Dev. Freq.

————+————————————

1 | 1184.3975 261.20537 1200

2 | 1803.6331 151.66604 1200

3 | 2408.4867 211.5407 1200

4 | 3390.1065 403.08913 1200

5 | 7160.021 3690.3672 1199

————+————————————

Total | 3188.6671 2692.5673 5999

4.2.Đổi tên biến

Cú pháp:

rename <tên biến cú> <tên biến mới>

Lệnh này thực hiện việc đổi tên cũ của một biến sang tên mới.

Ví dụ:

rename poor nguoingheo

rename rpcexp1 chitieu

4.3. Lệnh xoá biến, xoá quan sát

Cú pháp:

drop <danh sách biến> Lệnh này xoá biến được chỉ ra bởi danh sách biến

drop <điều kiện> Lệnh này xoá quan sát thoả mãn điều kiện biểu thức

drop <phạm vi> [điều kiện] Lệnh này xoá quan sát được chỉ ra bởi phạm vi (và có thể phải thoả mãn điều kiện biểu thức)

keep <danh sách biến> Lệnh này giữ lại các biến được chỉ ra bởi danh sách biến, các biến không được chỉ ra sẽ bị xoá đi

keep <điều kiện> Lệnh này giữ lại các quan sát thoả mãn điều kiện biểu thức, các quan sát khác sẽ bị xoá đi

keep <phạm vi> [điều kiện] Lệnh này giữ lại các quan sát được chỉ ra bởi phạm vi (và có thể thoả mãn điều kiện biểu thức), các quan sát khác sẽ bị xoá đi.

Ví dụ:

drop poor urban98 Xoá 2 biến poor và urban98

drop if sex==1 Xoá các quan sát có biến sex nhận giá trị bằng 1

drop in 1/20 Xoá quan sát từ 1 đến 20

keep househol Chỉ giữ lại biến househol, các biến khác bị xoá đi

keep in f/50 Giữ lại quan sát từ đầu tiên đến 50, các quan sát khác bị xoá đi

4.4. Lệnh đổi giá trị của biến phân loại

Cú pháp:

recode <tên biến> giá trị cũ = giá trị mới [điều kiện] [phạm vi]

Lệnh này đổi giá trị của biến phân loại theo các quy tắc được chỉ ra ở sau đó.

Ví dụ:

. recode sex 0=1

(0 changes made)

. recode sex . = 0

(0 changes made)

. recode hhsize 1/5=1 6/10 = 2 * = 3

(5785 changes made)

. tab hhsize

Household |

size | Freq. Percent Cum.

————+———————————–

1 | 4164 69.41 69.41

2 | 1786 29.77 99.18

3 | 49 0.82 100.00

————+———————————–

Total | 5999 100.00

. 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

. recode urban98 0=1 1=0

(5999 changes made)

. tab urban98

1:urban 98; |

0:rural 98 | Freq. Percent Cum.

————+———————————–

Rural | 1730 28.84 28.84

Urban | 4269 71.16 100.00

————+———————————–

Total | 5999 100.00

4.5. Lệnh gán nhãn cho biến

Gán nhãn cho biến

Cú pháp:

label variable <tên biến> “Nhãn của biến”

Lệnh này gán nhãn là một dẫy ký tự cho biến.

Ví dụ:

. gen ngheo=poor

. des ngheo

storage display value

variable name type format label variable label

—————————————————————————

ngheo float %9.0g

. tab ngheo

ngheo | Freq. Percent Cum.

————+———————————–

0 | 4222 70.38 70.38

1 | 1777 29.62 100.00

————+———————————–

Total | 5999 100.00

. label var ngheo "Nguoi co thu nhap duoi chuan ngheo"

. tab ngheo

Nguoi co |

thu nhap |

duoi chuan |

ngheo | Freq. Percent Cum.

————+———————————–

0 | 4222 70.38 70.38

1 | 1777 29.62 100.00

————+———————————–

Total | 5999 100.00

. des ngheo

storage display value

variable name type format label variable label

—————————————————————————-

ngheo float %9.0g Nguoi co thu nhap duoi chuan

ngheo

Gán giá trị cho biến phân loại

label define <tên bộ nhãn> # "nhãn" [# "nhãn" ...] [, add modify]

label dir

label list <tên bộ nhãn>

label drop {tên bộ nhãn [tên bộ nhãn ...] | _all}

label values <tên biến> [tên bộ nhãn]

Lệnh label define gán nhãn cho một bộ giá trị số. Tên của bộ nhãn được chỉ ra sau từ khoá define, # là giá trị số, “nhãn” là chuỗi ký tự tương ứng với giá trị số đấy. Có hai tuỳ chọn ở đây: tuỳ chọn add thêm giá trị và nhãn tương ứng vào 1 bộ nhãn đã có sẵn. Tuỳ chọn modify cho phép sửa chữa giá trị và nhãn của 1 bộ nhãn đã có sẵn.

Lệnh label dir hiển thị những bộ nhãn có sẵn, còn lệnh label list hiển thị giá trị của bộ nhãn được chỉ ra. Lệnh label drop xoá các bộ nhãn có sẵn.

Ví dụ:

Tạo nhãn có tên là nngheo với giá trị 1 có nghĩa là người nghèo, còn 0 có nghĩa là người không nghèo.

. label define nngheo 0 "Ngheo" 1 "Khong ngheo"

. label dir

nngheo

region

loaiho

diploma

urban

agegroup

. label list nngheo

nngheo:

0 Khong ngheo

1 Ngheo

. label drop _all

. label dir

Lệnh label values sẽ gán các nhãn của 1 bộ nhãn cho các giá trị số của 1 biến phân loại.

Ví dụ:

. tab ngheo

ngheo | Freq. Percent Cum.

————+———————————–

0 | 4222 70.38 70.38

1 | 1777 29.62 100.00

————+———————————–

Total | 5999 100.00

. list ngheo in 1/5

ngheo

1. 1

2. 0

3. 1

4. 1

5. 0

. label values ngheo nngheo

. tab ngheo

ngheo | Freq. Percent Cum.

————+———————————–

Ngheo | 4222 70.38 70.38

Khong ngheo | 1777 29.62 100.00

————+———————————–

Total | 5999 100.00

. list ngheo in 1/5

ngheo

1. Khong ngheo

2. Ngheo

3. Khong ngheo

4. Khong ngheo

5. Ngheo

4.6. Sắp xếp số liệu

Cú pháp:

sort <danh sách biến> [phạm vi]

gsort [+|-]tên biến [[+|-]tên biến [...]]

Lệnh sort sẵp xếp quan sát theo thứ tự tăng dần của giá trị của các biến được chỉ ra trong danh sách biến.

Lệnh gsort cho phép sẵp xếp các quan sát theo thứ tự tăng dần của của các biến (danh sách biến), nếu dấu + được chỉ ra (đây cũng là giá trị ngầm định), hoặc theo thứ tự giảm dần, nếu dấu – được chỉ ra.

Ví dụ:

sort reg7 hhsize Lệnh này sẵp xếp các quan sát theo thứ tự tăng dần của biến vùng reg7, trong mỗi vùng các quan sát lại được sẵp xếp theo thứ tự tăng dần của biến quy mô hộ hhsize.

gsort reg7 –hhsize Lệnh này sẵp xếp các quan sát theo thứ tự tăng dần của biến vùng reg7, nhưng trong mỗi vùng các quan sát lại được sẵp xếp theo thứ tự giảm dần của biến quy mô hộ hhsize.

4.7. Trộn số liệu

Lệnh thu gọn số liệu – collapse

Cú pháp:

collapse <biểu thức thống kê> [quyền số] [điều kiện] [phạm vi] [, by(danh sách biến)]

trong đó:

Biểu thức thống kê là danh sách các thống kê và các biến tương ứng. Các thống kê được ký hiệu như mục 3.12 của chương này.

Lệnh collapse sẽ tạo ra một tệp số liệu mới bao gồm các biến được chỉ ra bởi danh sách biến, với các giá trị được tính theo thống kê tương ứng. Các quan sát của tệp số liệu cũ sẽ được nhóm lại theo các giá trị cùng loại của biến được chỉ ra bởi by(danh sách biến).

Ví dụ:

Chúng ta có file số liệu về thu nhập và chi tiêu của các hộ thành viên trong gia đình:

ma_tv

ma_ho

thunhap

Chitieu

1

101

200

500

2

101

1200

400

3

101

0

200

4

101

0

200

1

102

3200

500

2

102

1200

320

3

102

200

200

1

103

300

500

2

103

2100

250

3

103

0

300

4

103

0

300

1

104

4300

800

2

104

3500

500

3

104

300

500

4

104

0

300

5

104

0

200

6

104

0

200

Chúng ta sẽ dùng lệnh collapse để tạo file về thu nhập và chi tiêu bình quân của các hộ, và tạo thêm 1 biến về qui mô hộ.

. gen quimo=1

. collapse (mean) thunhap (mean) chitieu (sum) quimo, by(ma_ho)

Tệp số liệu mới có dạng:

ma_ho

thunhap

chitieu

quimo

101

350

325

4

102

1533.33

340

3

103

600

337.5

4

104

1350

416.667

6

Kết hợp số liệu – lệnh merge

Cú pháp:

merge [danh sách biến] using <tên tệp sử dụng> [, update replace]

Lệnh merge sẽ nối các quan sát của tệp số liệu đang mở trong Stata (gọi là tệp chủ (master dataset)) với các quan sát tương ứng của tệp số liệu khác được chỉ ra sau từ khoá using (gọi là tệp sử dụng (using dataset)) thành 1 tệp mới. Các biến chỉ ra trong danh sách biến được gọi là biến xác định (identifying variables), và phải được sẵp xết bằng lệnh sort (hoặc gsort) trước khi thực hiện lệnh merge.

Ví dụ:

Chúng ta có 2 tệp số liệu như sau:

thunhap.dta

ma_ho

thunhap

chitieu

quimo

101

350

325

4

102

1533.33

340

3

103

600

337.5

4

104

1350

416.667

6

dialy.dta

ma_ho

thanhthi

vung

204

0

1

102

1

4

103

0

3

104

0

6

Lệnh merge sẽ được thực hiện như sau:

. use "C:\dialy.dta", clear

. sort ma_ho

. save "C:\dialy.dta"

file C:\dialy.dta saved

. use "C:\thunhap.dta", clear

. sort ma_ho

. merge ma_ho using "C:\dialy.dta"

ma_ho was byte now int

. edit

Tệp kết quả có dạng như sau:

ma_ho

thunhap

chitieu

quimo

thanhthi

vung

_merge

101

350

325

4

.

.

1

102

1533.33

340

3

1

4

3

103

600

337.5

4

0

3

3

104

1350

416.667

6

0

6

3

204

.

.

.

0

1

2

Trong tệp kết quả có thêm 1 biến tên là _merge, biến này nhận các giá trị như sau:

_merge==1 Nếu như quan sát chỉ được tạo từ tệp chủ

_merge==2 Nếu như quan sát chỉ được tạo từ sử dụng

_merge==3 Nếu như quan sát được tạo từ cả tệp chủ và tệp sử dụng

Các tuỳ chọn:

Trong trường hợp hai tệp số liệu có các biến trùng nhau, các tuỳ chọn sau đây cho phép xử lý số liệu theo các cách khác nhau:

update Nếu số liệu của biến trùng nhau của tệp chủ có giá trị thiếu thì giá trị thiếu này nhận giá trị của biến trùng nhau của tệp sử dụng.

replace Giá trị của biến trùng nhau của tệp chủ sẽ nhận giá trị của biến trùng nhau của tệp sử dụng.

Nếu không tuỳ chọn nào được chỉ ra thì theo ngầm định, giá trị của biến của tệp chủ sẽ không thay đổi.

Nối số liệu – lệnh append

Cú pháp:

append using <tên tệp>

Lệnh này cho phép nối tệp được chỉ ra bởi using vào với tệp đang được mở theo các biến có cùng tên và định dạng. Số quan sát của tệp mới bằng tổng số số quan sát của 2 tệp.

Ví dụ: có tệp thunhap2.dta như sau

ma_ho

thunhap

chitieu

gioitinh

105

1350

425

1

106

1500

370

0

107

800

556

0

108

1500

417

0

109

2500

540

1

Hai tệp này sẽ được nối với nhau bằng lệnh append như sau:

. use "C:\thunhap.dta", clear

. append using "C:\thunhap2.dta"

. edit

Tệp kết quả có dạng:

ma_ho

thunhap

chitieu

quimo

gioitinh

101

350

325

4

 

102

1533.33

340

3

 

103

600

337.5

4

 

104

1350

416.667

6

 

105

1350

425

 

1

106

1500

370

 

0

107

800

556

 

0

108

1500

417

 

0

109

2500

540

 

1

Chú ý: Xem thêm lệnh expand dung để tạo ra các quan sát giống nhau.

4.8. Chuyển dạng số liệu

Cú pháp:

reshape wide <tên biến>, i(danh sách biến) [ j(tên biến [values]) … ]

reshape long <tên biến>, i(danh sách biến) [ j(tên biến [values]) … ]

reshape wide

reshape long

Lệnh này cho phép chuyển số liệu từ dạng ngang sang số liệu dạng dọc (tuỳ chọn long), và từ dạng dọc sang dạng ngang (tuỳ chọn wide). i(danh sách biến) chỉ ra biến xác định (indentifying variables) dùng để phân biệt các quan sát với nhau trong số liệu dạng ngang (gọi là quan sát cấp 1). j(tên biến) chỉ ra biến dùng để phân biệt giữa các quan sát cấp 2 ở số liệu dạng dọc.

Ví dụ 1:

Chúng ta có thể số liệu dạng bảng ngang như một ma trận như sau:

- i -

——————– xịj ——————-

maho

quimo

thunhap95

thunhap96

thunhap97

101

5

4500

4400

5400

102

4

3400

3300

3700

103

6

5000

5400

5500

số liệu này sẽ được chuyển sang dạng bảng dọc như sau:

- i -

 

- j -

- xji -

maho

quimo

nam

thunhap

101

5

95

4500

101

5

96

4400

101

5

97

5400

102

4

95

3400

102

4

96

3300

102

4

97

3700

103

6

95

5000

103

6

96

5400

103

6

97

5500

Và lệnh reshape sẽ được viết như sau:

. reshape long thunhap, i(maho) j(nam)

(note: j = 95 96 97)

Data wide -> long

———————————————————————

Number of obs. 3 -> 9

Number of variables 5 -> 4

j variable (3 values) -> nam

xij variables:

thunhap95 thunhap96 thunhap97 -> thunhap

———————————————————————

* Va chuyen nguoc lai tu dang doc sang dang ngang nhu sau

. reshape wide thunhap, i(maho) j(nam)

(note: j = 95 96 97)

Data long -> wide

————————————————————————

Number of obs. 9 -> 3

Number of variables 4 -> 5

j variable (3 values) nam -> (dropped)

xij variables:

thunhap -> thunhap95 thunhap96 thunhap97

———————————————————————-

Ví dụ 2:

Chúng ta có số liệu dạng bảng sau đây:

maho

sotien1

nguon1

sotien2

nguon2

101

1200

“Ngan hang A”

2000

“Ngan hang A”

102

1300

“Ngan hang B”

.

.

103

2500

“Ngan hang A”

1000

“Ngan hang C”

104

3000

“Ngan hang A”

2000

“Ngan hang B”

Bảng này được chuyển sang bảng dạng dọc như sau:

. reshape long sotien nguon, i(maho) j(lanvay)

(note: j = 1 2)

Data wide -> long

———————————————————————

Number of obs. 4 -> 8

Number of variables 5 -> 4

j variable (2 values) -> lanvay

xij variables:

sotien1 sotien2 -> sotien

nguon1 nguon2 -> nguon

———————————————————————

Bảng dọc có dạng như sau:

maho

lanvay

sotien

nguon

101

1

1200

Ngan hang A

101

2

2000

Ngan hang A

102

1

1300

Ngan hang B

102

2

   

103

1

2500

Ngan hang A

103

2

1000

Ngan hang C

104

1

3000

Ngan hang A

104

2

2000

Ngan hang B

5. Quyền số trong VHLSS (Weight)

5.1. Quyền số trong điều tra chọn mẫu

Trong điều tra chọn mẫu, các quan sát được lựa chọn một cách ngẫu nhiên nhưng thông thường các quan sát thường có xác suất lựa chọn khác nhau. Quyền số bằng giá trị nghịch đảo của xác suất được chọn vào mẫu. Nếu như quan sát i có quyền số là wi thì có thể nói quan sát i trong mẫu đại diện cho wi phần tử trong tổng thể. Các ước lượng suy diễn về tổng thể cần phải tính đến quyền số chọn mẫu, nếu không thì kết quả sẽ bị sai lệch.

Ví dụ:

Giả sử miền Đồng bằng Sông Hồng gồm 2 tỉnh là Hà Nội và Bắc Ninh với dân số tương ứng là 4.5 triệu và 500 nghìn người. Chúng ta muốn chọn một mẫu ngẫu nhiên với cỡ mẫu là 500 quan sát để nghiên cứu về thu nhập của Đồng bằng Sông Hồng cũng như 2 tỉnh này. Nếu như theo tỷ lệ về dân số giữa 2 tỉnh thì chúng ta sẽ thu được mẫu gồm 450 hộ tại Hà Nội và 50 hộ tại Nam Định. Tuy nhiên mẫu được chọn một cách ngẫu nhiên trên cả vùng nên sẽ có khả năng là chúng ta thu được một mẫu mà không có quan sát nào của tỉnh Nam Định, hoặc có với số lượng rất nhỏ. Để cho mẫu mang tính đại diện cho các tỉnh thì nên chọn 400 quan sát tại Hà Nội và 100 quan sát tại Nam Định.

Nếu thu nhập bình quân của Hà Nội là 900 nghìn/ tháng, và của Nam Định là 300 nghìn/tháng thì thu nhập bình quân của cả vùng Đồng bằng Sông Hồng không thể tính là (900 + 300)/2, vì các quan sát trong mẫu không được chọn tỷ lệ với các tỉnh. Mỗi quan sát tại Hà nội đại diện cho 11250 hộ trong vùng (4500000/400). Đây chính là quyền số của quan sát, bằng giá trị nghịch đảo của xác suất được chọn vào mẫu. Còn mỗi quan sát tại Nam Định đại diện cho 50000 quan sát của vùng (500000/100). Thu nhập của vùng Đồng bằng Sông Hồng sẽ được tính như sau:

clip_image004

Trong VLSS 1998 có 2 quyền số. Thứ nhất là quyền số hộ, biến wt, chính là số hộ của Việt Nam mà mỗi hộ đại diện. Quyền số thứ hai là quyền số của thành viên hộ, hhsizewt là số người Việt Nam mà mỗi thành viên của hộ đại diện. Quyền số của thành viên hộ bằng quyền số hộ nhân với quy mô hộ.

Ví dụ: Quyền số trong VLSS 1998

. tab reg7, sum(wt)

Code by 7 | Summary of sample quyền số

regions | Mean Std. Dev. Freq.

————+————————————

region1 | 3218.4296 850.74246 859

region2 | 3133.7277 849.12325 1175

region3 | 3185.1794 801.74266 708

region4 | 2199.37 492.37202 754

region5 | 1336.3098 269.14747 368

region6 | 1963.8964 528.69328 1023

region7 | 2938.2122 547.72125 1112

————+————————————

Total | 2688.5003 900.01379 5999

. tab reg7, sum(hhsizewt)

Code by 7 | Summary of =hhsize*wt

regions | Mean Std. Dev. Freq.

————+————————————

region1 | 15790.857 7555.7552 859

region2 | 12656.003 5970.9089 1175

region3 | 14814.504 7236.7592 708

region4 | 10794.537 5235.562 754

region5 | 7564.731 3185.9336 368

region6 | 9447.7077 4535.0816 1023

region7 | 14653.702 6639.8297 1112

————+————————————

Total | 12636.546 6597.6574 5999

. di 2688.5003*5999

16128313

. di 12636.546*5999

75806639

5.2. Các lựa chọn về quyền số

Stata cho phép sử dụng 4 loại loại quyền số sau đây:

fweights: quyền số tần suất (frequency weights), Stata sẽ hiểu quyền số ở đây có nghĩa là số lần mà mỗi quan sát mỗi quan sát được lặp lại trong tính toán.

pweights: quyền số chọn mẫu (sampling weights), Stata sẽ hiểu quyền số là giá trị nghịch đảo của xác suất được chọn vào mẫu, hay số phần tử trong tông thể mà mỗi quan sát trong mẫu đại diện.

aweights quyền số phân tích (analytical weights), Stata sẽ hiểu quyền số tỷ lệ nghịch với phương sai của quan sát.

iweights quyền số quan trọng (importance weights), đây là quyền số chỉ mức độ quan trọng của các quan sát.

Đối với Điều tra mức sống các lệnh sử dụng quyền số pweights và fweights.

Ví dụ:

. sum poor

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

poor | 5999 29.6216 45.66255 0 100

. sum poor [fw=hhsize]

Variable | Obs Mean Std. Dev. Min Max

————-+—————————————————–

poor | 28509 34.17517 47.43051 0 100

.

.

. tab reg7 urban98

| 1:urban 98; 0:rural

Code by 7 | 98

regions | Rural Urban | Total

———–+———————-+———-

region1 | 672 187 | 859

region2 | 783 392 | 1175

region3 | 600 108 | 708

region4 | 502 252 | 754

region5 | 368 0 | 368

region6 | 514 509 | 1023

region7 | 830 282 | 1112

———–+———————-+———-

Total | 4269 1730 | 5999

.

. tab reg7 urban98 [fw= hhsizewt]

| 1:urban 98; 0:rural

Code by 7 | 98

regions | Rural Urban | Total

———–+———————-+———-

region1 | 11993763 1570583 | 13564346

region2 | 11057932 3812871 | 14870803

region3 | 9582621 906048 | 10488669

region4 | 5618709 2520372 | 8139081

region5 | 2783821 0 | 2783821

region6 | 4545303 5119702 | 9665005

region7 | 13220727 3074190 | 16294917

———–+———————-+———-

Total | 58802876 17003766 | 75806642

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

1.1. Ướ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 <số quan sát> <giá trị trungbình> <độ lệch chuẩn> [, level(#) ] (phân phối chuẩn)

cii <số quan sát> <số lần thành công của quan sát> [, 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 <giá trị thời lượng> <số lần sự kiện xảy ra> 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

1.2. 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 <biến>= # [đ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 Ha: poor ~= .44 Ha: poor > .44

z = 3.440 z = 3.440 z = 3.440

P < z = 0.9997 P > |z| = 0.0006 P > z = 0.0003

prtest <biến 1> = <tên biến2> [đ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 Ha: diff ~= 0 Ha: diff > 0

z = -2.449 z = -2.449 z = -2.449

P < z = 0.0072 P > |z| = 0.0143 P > z = 0.9928

prtest <biến> [đ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 Ha: diff ~= 0 Ha: diff > 0

z = 7.959 z = 7.959 z = 7.959

P < z = 1.0000 P > |z| = 0.0000 P > z = 0.0000

Phân phối nhị thức

Cú pháp:

bitest <biến> = #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 <= 328 or 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 <= 328 or k >= 428) = 0.000660 (two-sided test)

Quy luật phân phối chuẩn

Cú pháp:

ttest <biến> = # [đ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 Ha: mean ~= 3200 Ha: mean > 3200

t = -0.3260 t = -0.3260 t = -0.3260

P < t = 0.3722 P > |t| = 0.7444 P > t = 0.6278

ttest <biến 1> = <biến 2> [đ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 Ha: diff ~= 0 Ha: diff > 0

t = -2.4185 t = -2.4185 t = -2.4185

P < t = 0.0079 P > |t| = 0.0157 P > t = 0.9921

ttest <biến> [đ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 Ha: diff ~= 0 Ha: diff > 0

t = -9.8880 t = -9.8880 t = -9.8880

P < t = 0.0000 P > |t| = 0.0000 P > t = 1.0000

1.2.2. Kiểm định giá trị độ lệch chuẩn

Cú pháp:

sdtest <biến> = # [điều kiện] [phạm vi] [, level(#) ]

sdtest <biến 1> = <biến 2> [điều kiện] [phạm vi] [, level(#) ]

sdtest <biến> [đ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 Ha: sd(rlpcex1) ~= 2700 Ha: sd(rlpcex1) > 2700

P < chi2 = 0.3838 2*(P < chi2) = 0.7676 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 <biến> <danh sách biến> [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 <biến phụ thuộc> [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 <biến phụ thuộc> [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 <tên biến mới> [đ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:

clip_image006

stdp ước lượng sai số chuẩn của gia trị ước lượng:

clip_image008

redid ước lượng giá trị phần dư:

clip_image010

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 <danh sách biến> [, 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

clip_image012

(2) Ma trận đồ thị 2 chiều (two-way scatterplot matrices)

. gr rlpcex1 age educyr98 hhsize, matrix

clip_image014

(3) Đồ thị tần suất (histograms)

. gr rlpcex1, bin(50) normal

clip_image016

(4) Đồ thị rải một chiều (one-way scatterplots)

. gr rlpcex1, oneway

clip_image018

(5) Đồ thị hình hộp (box-and-whisker plots)

clip_image020

(6) Đồ thị cột (bar chart)

. sort reg7

. gr poor, bar means by(reg7)

clip_image022

(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

clip_image024

(8) Đồ thị hình sao (star charts)

chart_type là star

clip_image026

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

clip_image028

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

clip_image030

* 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

clip_image032

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)

clip_image034

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

clip_image036

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

clip_image038

. gr rlpcex1, hist bin(50) normal freq

clip_image040

. gr rlpcex1, hist bin(50) normal freq by(reg7)

clip_image042

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)

clip_image044

. 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

clip_image046

Lựa chọn stack

. gen persons=1

. gr persons urban98, bar ylabel by(reg7) stack alt

clip_image048

Ví dụ:

Hãy vễ đồ thị sau:

clip_image050

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

clip_image052

. 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

clip_image054

. set textsize 100

. gr foodpoor nonfpood nonpoor, pie by(reg7) total

clip_image056

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ị 1> [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")

clip_image058

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 <danh sách biến> [đ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 <ma trận>

scalar drop <tích vô hướng>

Ví dụ:

. matrix drop A

. scalar drop B

4. Lệnh điều kiện và vòng lặp

4.1. Lệnh if…else

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 if…else 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 <điều kiện logic> {

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 <tên chương trình>

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:

clip_image060

Phương sai:

clip_image062

Độ lệch chuẩn:

clip_image064

Độ lệch trung bình tuyệt đối:

clip_image066

Độ lệch:

clip_image068

Độ nhọn:

clip_image070


[1] Phiên bản Stata 8 có giao diện tương tự như phiên bản Stata 7. Khác biệt lớn nhất là Stata 8 có thêm tuỳ chọn Statistics trong thanh thực đơn. Tuỳ chọn này cho phép thực hiện các một số lệnh thống kê bằng các tuỳ chọn qua giao diện cửa sổ mà không phải gõ các lệnh trong cửa sổ Command.

Nguồn: internet