ë ®©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. 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.
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: maho tenchuho quymoho thunhapbq
Mỗi một hàng ngang của bảng số liệu được gọi là một quan sát, 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ề Mi hộ (maho); Tên chủ hộ (tenchuho); Quy mô hộ (quymoho); Thu nhập bình quân (thunhapbq) của 3 hộ gia đì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 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à maho, tenchuho, quymoho, và thunhapbq 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à maho, đối với mỗi một quan sát biến maho nhận một giá trị
Các đặc điểm của biến
Các biến có thể đ−ợc gán nhin (chú thích) Ví dụ biến maho có thể đ−ợc gán nhin là “Mi 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ố
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 tenchuho 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
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 8 (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)
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 đi 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:
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ả
Copy text Sao chép văn bản (text)
Copy tables Sao chép bảng biểu
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ỡ
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 đi 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 Nhập và lưu dữ liệu (Use, input and and save)
Mở tệp số liệu đang có:
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
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
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 copy và paste để nhập số liệu này vào Stata
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
- 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
Variable | Obs Mean Std Dev Min Max
Variable | Obs Mean Std Dev Min Max
Dùng thanh công cụ menu bar
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)
Variable | Obs Mean Std Dev Min Max
Variable | Obs Mean Std Dev Min Max
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
Variable | Obs Mean Std Dev Min Max
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
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
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
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
- 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ử trong Stata đ−ợc ký hiệu nh− sau:
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
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ố:
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 absxs(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
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
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
help sum help for sum not found try help contents or search sum
- help for summarize (manual: [R] summarize)
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
Chúng ta cũng có thể dùng cửa sổ lệnh bằng menu bar
Cú pháp: describe [danh sách biến]
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
- 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
Variable | Obs Mean Std Dev Min Max
Variable | Obs Mean Std Dev Min Max
Dùng thanh công cụ menu bar
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)
Variable | Obs Mean Std Dev Min Max
Variable | Obs Mean Std Dev Min Max
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
Variable | Obs Mean Std Dev Min Max
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
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
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
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
- 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ử trong Stata đ−ợc ký hiệu nh− sau:
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
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ố:
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 absxs(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.
Mô tả dữ liệu (Data reporting)
3.1 Xoá bộ nhớ của Stata
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
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
help sum help for sum not found try help contents or search sum
- help for summarize (manual: [R] summarize)
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
Chúng ta cũng có thể dùng cửa sổ lệnh bằng menu bar
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, nhin 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
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 nhin
list househol farm in 1/5 househol farm
list househol farm in 1/5, nolabel househol farm
3.5 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 nhin 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
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
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
Variable | Obs Mean Std Dev Min Max
sum rlpcex1, detail comp.M&Reg price adj.pc tot exp
3.8 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
Chú ý: có thể xem thêm lệnh codebook
Tạo bảng tần suất 1 chiều
Cú pháp: tabulate [quyền số] [điều kiện] [phạm vi] [, missing nolabel] tab1 [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 nhin biến
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
Chúng ta cũng có thể dùng cửa sổ lệnh bằng menu bar
Tạo bảng tần suất 2 chiều
Cú pháp: tabulate [quyền số] [điều kiện] [phạm vi] [, chi2 missing nofreq cell column row] tab2 [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
1:urban | Type of HH (1:farm;
0:rural 98 | non farm farm | Total
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
tab reg7 urban98, cell nof
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
tab farm urban98, column row
Type of HH | 1:urban 98; 0:rural
3.10 Tạo bảng thống kê tổng hợp bằng lệnh tabulate…summarize
Cú pháp: tabulate [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
tab farm urban98, sum(poor)
Means, Standard Deviations and Frequencies of poor
Type of HH | 1:urban 98; 0:rural
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
tab reg7 urban98, sum(poor) means
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
3.11 Tạo bảng thống kê tổng hợp bằng lệnh tabstat
Cú pháp: tabstat [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)
Chúng ta cũng có thể dùng cửa sổ lệnh bằng menu bar
tabstat rlfood rlhhex1, stats(mean median) by(reg7)
Summary statistics: mean, p50 by categories of: reg7 (Code by 7 regions) reg7 | rlfood rlhhex1
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"
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
3.12 Tạo bảng thống kê tổng hợp bằng lệnh table
Cú pháp: table [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]
Biên tập và sửa chữa dữ liệu (Data manipulation)
Tạo biến bằng lệnh generate
Cú pháp: generate = 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
Lệnh tạo biến giả tabulate…generate
Cú pháp: tabulate , 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
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
-> tabulation of region1 reg7==regio | n1 | Freq Percent Cum
-> tabulation of region2 reg7==regio | n2 | Freq Percent Cum
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)
Tạo biến bằng lệnh egen
Cú pháp: egen = 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
Variable | Obs Mean Std Dev Min Max
Variable | Obs Mean Std Dev Min Max
Thay thế giá trị của biến
Cú pháp: replace = 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 [đ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)
gen mucsong="Rat ngheo" type mismatch r(109);
gen str15(mucsong)="Rat ngheo"
replace mucsong="Ngheo" if rlpcex11290
replace mucsong="Khong ngheo" if rlpcex1>90
tab mucsong mucsong | Freq Percent Cum
Variable | Obs Mean Std Dev Min Max
encode mucsong, gen(ma_ms)
tab ma_ms ma_ms | Freq Percent Cum
Variable | Obs Mean Std Dev Min Max
Tạo biến bằng lệnh xtile
Cú pháp: xtile = 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
5 quantiles | of rlpcex1 | Freq Percent Cum
| Summary of comp.M&Reg price adj.pc
5 quantiles | tot exp of rlpcex1 | Mean Std Dev Freq
Cú pháp: rename
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 Lệnh này xoá biến đ−ợc chỉ ra bởi danh sách biến drop Lệnh này xoá quan sát thoả min điều kiện biểu thức drop [đ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ả min điều kiện biểu thức) keep 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 Lệnh này giữ lại các quan sát thoả min điều kiện biểu thức, các quan sát khác sẽ bị xoá đi keep [đ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ả min đ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 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 đó
Household | size | Freq Percent Cum
4.5 Lệnh gán nhãn cho biến
Cú pháp: label variable “Nhãn của biến”
Lệnh này gán nhin là một dẫy ký tự cho biến
des ngheo storage display value variable name type format label variable label
tab ngheo ngheo | Freq Percent Cum
label var ngheo "Nguoi co thu nhap duoi chuan ngheo"
Nguoi co | thu nhap | duoi chuan | ngheo | Freq Percent Cum
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 # "nhãn" [# "nhãn" ] [, add modify] label dir label list label drop {tên bộ nhãn [tên bộ nhãn ] | _all} label values [tên bộ nhãn]
Lệnh label define gán nhin cho một bộ giá trị số Tên của bộ nhin đ−ợ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à nhin t−ơng ứng vào 1 bộ nhin đi có sẵn Tuỳ chọn modify cho phép sửa chữa giá trị và nhin của 1 bộ nhin đi có sẵn
Lệnh label dir hiển thị những bộ nhin có sẵn, còn lệnh label list hiển thị giá trị của bộ nhin đ−ợc chỉ ra Lệnh label drop xoá các bộ nhin có sẵn
Tạo nhin 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
Lệnh label values sẽ gán các nhin của 1 bộ nhin cho các giá trị số của 1 biến phân loại
tab ngheo ngheo | Freq Percent Cum
tab ngheo ngheo | Freq Percent Cum
Cú pháp: sort [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
Lệnh thu gọn số liệu - collapse
Cú pháp: collapse [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)
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
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ộ
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
Kết hợp số liệu - lệnh merge
Cú pháp: merge [danh sách biến] using [, 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
Chúng ta có 2 tệp số liệu nh− sau: thunhap.dta ma_ho thunhap chitieu quimo
104 1350 416.667 6 dialy.dta ma_ho thanhthi vung
Lệnh merge sẽ đ−ợc thực hiện nh− sau:
save "C:\dialy.dta" file C:\dialy.dta saved
merge ma_ho using "C:\dialy.dta" ma_ho was byte now int
Tệp kết quả có dạng nh− sau: ma_ho thunhap chitieu quimo thanhthi vung _merge
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
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
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
Hai tệp này sẽ đ−ợc nối với nhau bằng lệnh append nh− sau:
Tệp kết quả có dạng: ma_ho thunhap chitieu quimo gioitinh
Chú ý: Xem thêm lệnh expand dung để tạo ra các quan sát giống nhau
Cú pháp: reshape wide , i(danh sách biến) [ j(tên biến [values]) ] reshape long , 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
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
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 - - x ji - maho quimo nam thunhap
Và lệnh reshape sẽ đ−ợc viết nh− sau:
reshape long thunhap, i(maho) j(nam)
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)
Number of variables 4 -> 5 j variable (3 values) nam -> (dropped) xij variables: thunhap -> thunhap95 thunhap96 thunhap97
Chúng ta có số liệu dạng bảng sau đây: maho sotien1 nguon1 sotien2 nguon2
Bảng này đ−ợc chuyển sang bảng dạng dọc nh− sau:
reshape long sotien nguon, i(maho) j(lanvay)
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
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à w i thì có thể nói quan sát i trong mẫu đại diện cho w i 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
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:
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
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
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
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
Variable | Obs Mean Std Dev Min Max
Variable | Obs Mean Std Dev Min Max
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
tab reg7 urban98 [fw= hhsizewt]
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
tab reg7 urban98 , sum(hhsize) means
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
tab reg7 urban98 [fw=wt], sum(hhsize) means
Means and Number of Observations of Household size
Code by 7 | 98 regions | Rural Urban | Total
table reg7 urban98 , c(mean poor) col row format(%4.1f)
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
table reg7 urban98 [pw=hhsizewt], c(mean poor) col row format(%4.1f)
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
Kiểm định giả thiết và phân tích hồi quy
Ướ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
Variable | Obs Mean Std Err [95% Conf Interval]
by reg7: ci poor, total
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Variable | Obs Mean Std Err [95% Conf Interval]
Các lệnh −ớc l−ợng có thể đ−ợc sử dụng khi biết các tham số về mẫu Đây có thể đ−ợc gọi là “các lệnh sử dụng tham số trực tiếp” (Commands using immediate arguments) Các lệnh này rất hữu dụng khi chúng ta không có số liệu gốc về biến cii [, level(#) ] (phân phối chuẩn) cii [, level(#) ] (phân phối nhị thức)
#obs chỉ ra số quan sát, #succ chỉ ra số lần giá trị biến nhận giá trị t−ơng ứng với phép thử thành công (thông th−ờng nhận giá trị bằng 1) cii poisson [ level(#) ] (phân phối Poatxông)
Variable | Obs Mean Std Err [90% Conf Interval]
Variable | Exposure Mean Std Err [95% Conf Interval]
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
Cú pháp: prtest = # [điều kiện] [phạm vi] [, level(#)]
Lệnh này thực hiện kiểm định giả thuyết về tỷ lệ giá trị của biến phân phối theo quy luật không một (Ho: p = p 0 )
One-sample test of proportion poor: Number of obs = 859
Variable | Mean Std Err z P>|z| [95% Conf Interval]
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 = [đ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: p X = p Y )
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
gen poor4=poor if reg7==4
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]
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 [đ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: p X1 = p X2 )
Two-sample test of proportion 1: Number of obs = 4375
Variable | Mean Std Err z P>|z| [95% Conf Interval]
Ha: diff < 0 Ha: diff ~= 0 Ha: diff > 0 z = 7.959 z = 7.959 z = 7.959
Cú pháp: bitest = #p [quyền số] [điều kiện] [phạm vi]
Lệnh này kiểm định giả thuyết về tham số p trong quy luật nhị thức (xác suất thành công của phép thử) của biến đ−ợc chỉ ra bởi tên biến (Ho: p = p 0 )
Variable | N Observed k Expected k Assumed p Observed p
Pr(k = 428) = 0.000660 (two-sided test)
Pr(k = 428) = 0.000660 (two-sided test)
Quy luËt ph©n phèi chuÈn
Cú pháp: ttest = # [điều kiện] [phạm vi] [, level(#) ]
Lệnh này kiểm định giả thuyết về giá trị của tham số trung bình của biến ngẫu nhiên tuân theo quy luật chuẩn đ−ợc chỉ ra bởi tên biến (Ho: à = à 0 )
Variable | Obs Mean Std Err Std Dev [95% Conf Interval]
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 = [đ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: à X = à Y ) 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
ttest poor2=poor4, unpaired unequal
Two-sample t test with unequal variances
Variable | Obs Mean Std Err Std Dev [95% Conf Interval]
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 [đ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: à X1 = à X2 )
Two-sample t test with equal variances
Group | Obs Mean Std Err Std Dev [95% Conf Interval]
Ha: diff < 0 Ha: diff ~= 0 Ha: diff > 0 t = -9.8880 t = -9.8880 t = -9.8880
1.2.2 Kiểm định giá trị độ lệch chuẩn
Cú pháp: sdtest = # [điều kiện] [phạm vi] [, level(#) ] sdtest = [điều kiện] [phạm vi] [, level(#) ] sdtest [điều kiện] [phạm vi] , by(biến phân nhóm) [ level(#) ]
Lệnh này kiểm dịnh tham số độ lệch chuẩn của biến ngẫu nhiên tuân theo quy luật chuẩn đ−ợc chỉ ra bởi tên biến Cú pháp của lện này t−ơng tự với cú pháp của lệnh ttest
Variable | Obs Mean Std Dev Min Max
One-sample test of variance
Variable | Obs Mean Std Err Std Dev [95% Conf Interval]
Ha: sd(rlpcex1) < 2700 Ha: sd(rlpcex1) ~= 2700 Ha: sd(rlpcex1) > 2700
Phân tích t−ơng quan và hồi quy (Correlation and regression)
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ê
corr hhsize poor rlpcex1 sex
corr hhsize poor rlpcex1 sex, means cov
Variable | Mean Std Dev Min Max
-+ - 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
pwcorr hhsize poor rlpcex1 sex, obs sig star(5)
| pcorr [quyền số] [điều kiện] [phạm vi]
Lệnh này tính hệ số t−ơng quan của biến đ−ợc chỉ ra bởi tên biến với các biến đ−ợc trong danh sách biÕn
pwcorr poor hhsize rlpcex1 sex
Ph−ơng pháp bình ph−ơng nhỏ nhất (Ordinary-Least Square)
Cú pháp: regress [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, option]
Lệnh này −ớc l−ợng các hệ số của hàm biến phụ thuộc (dependent variable) theo các biến độc lập (danh sách biến) theo ph−ơng pháp bình ph−ơng nhỏ nhất
reg rlpcex1 reg7 sex hhsize
Source | SS df MS Number of obs = 5999
- rlpcex1 | Coef Std Err t P>|t| [95% Conf Interval]
Các tuỳ chọn: level(#) Chỉ ra mức tin cậy cho −ớc l−ợng khoảng tin cậy của hệ số noconstant Không có hệ số (intercept) trong hàm hồi quy noheader Chỉ hiển thị kết quả phân tích về các hệ số beta Hiển thị hệ số được chuẩn hoá, dùng để so sánh mức độ ảnh hưởng của các hệ sè víi nhau Ph−ơng pháp khả năng lớn nhất (Maximum-Likelihood)
Cú pháp: probit [danh sách biến] [quyền số] [điều kiện] [phạm vi] [, tuỳ chọn]
Lệnh này thực hiện hồi quy biến phụ thuộc theo các biến đ−ợc chỉ ra trong danh sách biến theo ph−ơng pháp khả năng lớn nhất Biến phụ thuộc th−ờng là biến giả với hai giá trị 0 và 1
probit poor reg7 sex hhsize
Probit estimates Number of obs = 5999
- poor | Coef Std Err z P>|z| [95% Conf Interval]
- Ước l−ợng giá trị biến phụ thuộc và phần d−
Cú pháp: predict [điều kiện] [phạm vi] [, xb stdp resid]
Lệnh này đ−ợc thực hiện sau lệnh regress (hoặc probit) để tạo ra 1 biến mới có giá trị đ−ợc tính tuỳ theo tuỳ chọn đ−ợc chỉ ra
Các tuỳ chọn: xb cho phép −ớc l−ợng giá trị của biến phụ thuộc thu đ−ợc từ hàm hồi quy: i 1 0 i ˆ ˆ X
Yˆ =β +β stdp −ớc l−ợng sai số chuẩn của gia trị −ớc l−ợng:
SE i = β 0 + i 2 β 1 − i β 0 β 1 redid −ớc l−ợng giá trị phần d−: i i i Y Yˆ e = −
VÝ dô: predict exphat, xb
Tạo ra biến mới exphat có giá trị −ớc l−ợng của biến phụ thuộc (fitted value) theo hệ số thu đ−ợc từ hàm hồi quy predict expres, resid
Tạo ra biến expres có giá trị của phần d−
Kiểm định về hệ số của hàm hồi quy
Cú pháp: test [giá trị biểu thức] test [danh sách biến] testparm [, equal ]
Lệnh test kiểm định các giả thiết về hệ số của hàm hồi quy vừa mới đ−ợc −ớc l−ợng
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
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
reg rlpcex1 urban98 region* sex educyr98 hhsize
Source | SS df MS Number of obs = 5999
- 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
Vẽ đồ thị
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 nhin 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)
(2) Ma trận đồ thị 2 chiều (two-way scatterplot matrices)
gr rlpcex1 age educyr98 hhsize, matrix comp.M&Reg price adj.pc tot exp
Age of household head schooling year of HH.head
(3) Đồ thị tần suất (histograms)
F ra c ti o n comp.M&Reg price adj.pc tot exp
(4) Đồ thị rải một chiều (one-way scatterplots)
gr rlpcex1, oneway comp.M&Reg price adj.pc tot exp
(5) Đồ thị hình hộp (box-and-whisker plots)
45801.7 comp.M&Reg price adj.pc tot exp
(6) Đồ thị cột (bar chart)
gr poor, bar means by(reg7)
(7) Đồ thị hình tròn (pie charts)
for num 1/7: gen poorX=poor if reg7==X
-> gen poor1=poor if reg7==1
-> gen poor2=poor if reg7==2
-> gen poor3=poor if reg7==3
-> gen poor4=poor if reg7==4
-> gen poor5=poor if reg7==5
-> gen poor6=poor if reg7==6
-> gen poor7=poor if reg7==7
24% poor1 16% poor2 16% poor3 12% poor4 10% poor5 4% poor6 18% poor7
(8) Đồ thị hình sao (star charts) chart_type là star
Price Mileage (mpg) Repair Record 1978 Headroom (in.) Trunk space (cu ft.) Weight (lbs.) Length (in.) Turn Circle (ft.) Displacement (cu in.)
Audi 5000 Audi Fox BMW 320i Datsun 200 Datsun 210
Datsun 510 Datsun 810 Fiat Strada Honda Accord Honda Civic
Mazda GLC Renault Subaru Toyota Celica Toyota Corolla
Toyota Corona VW Dasher VW Diesel VW Rabbit VW Scirocco
Các lựa chọn chung (common_options)
| Summary of comp.M&Reg price adj.pc
Household | tot exp size | Mean Std Dev Freq
| Summary of schooling year of
Household | HH.head size | Mean Std Dev Freq
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 ahhsize meanexp meanedu
* 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)
Do thi chi tieu va hoc van chu ho
Quy mo ho gia dinh
Chi tieu binh quan So nam hoc
* 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
Do thi chi tieu va hoc van chu ho
Quy mo ho gia dinh
Chi tieu binh quan So nam hoc
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]])
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)
Do thi chi tieu va hoc van chu ho
Quy mo ho gia dinh
Chi tieu binh quan So nam hoc
Một số loại đồ thị thường dùng
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
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
Do thi chi tieu va hoc van chu ho
Quy mo ho gia dinh
Chi tieu binh quan So nam hoc
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
F ra c ti o n comp.M&Reg price adj.pc tot exp
gr rlpcex1, hist bin(50) normal freq
F re q u e n c y comp.M&Reg price adj.pc tot exp
gr rlpcex1, hist bin(50) normal freq by(reg7)
Histograms by Code by 7 regions comp.M&Reg price adj.pc tot exp region1
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)
8.64426 schooling year of HH.head Household size
label define region 1 "region1" 2 "region2" 3 "region3" 4 "region4" 5 "region5" 6 "region6" 7
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
gr educyr98 hhsize, bar means by(reg7) ylabel( 2 4 to 10) alt
10 schooling year of HH.head Household size region1 region2 region3 region4 region5 region6 region7
gr persons urban98, bar ylabel by(reg7) stack alt
1500 persons 1:urban 98; 0:rural 98 region1 region2 region3 region4 region5 region6 region7
Hiy vễ đồ thị sau:
600 foodpoor poor region1 region2 region3 region4 region5 region6 region7
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ẽ đồ 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
24% poor1 16% poor2 16% poor3 12% poor4 10% poor5 4% poor6 18% poor7
label var nonfpood "poor but still above food poverty line"
gr foodpoor nonfpood nonpoor, pie
12% foodpoor 18% poor but still above food povert 70% nonpoor
gr foodpoor nonfpood nonpoor, pie by(reg7) total
12% foodpoor 18% poor but still above food povert 70% nonpoor region1 region2 region3 region4 region5 region6 region7 Total
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
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 }
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ị đi lưu trữ bằng lệnh: graph using [tệp tệp đồ thị 2 ] [, margin(#)] margin(#) chỉ ra khoảng cách lề bao quanh đồ thị theo giá trị phần trăm của diện tích đồ thị Giá trị ngầm định là 0
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")
Mot so dac diem cua ho gia dinh
12% foodpoor 18% poor but still above food povert 70% nonpoor region1 region2 region3 region4 region5 region6 region7 Total
1500 persons 1:urban 98; 0:rural 98 region1 region2 region3 region4 region5 region6 region7
24% poor1 16% poor2 16% poor3 12% poor4 10% poor5 4% poor6 18% poor7
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
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
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 đó
use "C:\VLSS98\Hhexp98n.dta", clear
Variable | Obs Mean Std Dev Min Max
gen new=hhsizet hhsizet not found r(111); end of do-file r(111);
do "c:\vlss98\chuong trinh 1", nostop
use "C:\VLSS98\Hhexp98n.dta", clear
Variable | Obs Mean Std Dev Min Max
gen new=hhsizet hhsizet not found r(111);
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
use "C:\Hhexp98n.dta", clear no room to add more observations r(901);
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
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
- 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
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:
- 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.
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 diy 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ộ)
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õ:
local tb “summarize” thì chúng ta có thể thực hiện lệnh summarize age hhsize rlpcex1 bằng cách gõ:
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)
_hogd: age hhsize rlpcex1 Để xoá local macros thì chúng ta có thể dung lênh macros drop _(tên local macros)
macro list _hogd local macro `hogd' not found r(111);
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 $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
$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)
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)
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 đi đượ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
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"
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"
macro list b b: chuong trinh thong ke Stata
Tích vô h−ớng và ma trận (scalar and 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)
Nếu ma trận A đi đ−ợc tạo ra thì chúng ta có thể xem nội dung của ma trận đó nh− sau:
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
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
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:
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
Ma trận có thể tạo ra bằng các câu lệnh trực tiếp
VÝ dô: matrix mymat = (1,2\3,4) Các phần tử đ−ợc phân biệt bởi dấu phẩy, còn các hàng đ−ợc phân biệt bởi dấu gạch chéo matrix myvec = (1 5 3 1 3) Tạo ra véctơ hàng matrix mycol = (1/5/3/1/3) Tạo ra véctơ cột
Ma trận cũng có thể đ−ợc tạo ra từ số liệu bằng lệnh: mkmat [điều kiện] [phạm vi] [, matrix(tên ma trận) ]
input maho quymo thunhap maho quymo thunhap
mkmat maho quymo thunhap, matrix(A)
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’
Ma trận và tích vô h−ớng có thể xoá khỏi bộ nhớ bằng lệnh: matrix drop scalar drop
Lệnh điều kiện và vòng lặp
Cú pháp: điều kiện (điểu kiện logic) {
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 {…}
- 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
- 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
- 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) {
} else điều kiện (điều kiện) {
Cú pháp: while {
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’