Phân tích dữ liệu cơ bản sử dụng Stata Buổi 1: Làm quen với Stata Nguyễn Ngọc Minh, Ma Doãn Hải DEPOCEN 3-4/2022 Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 1 / 28 Giao diện phần mềm Properties: Hiển thị thông tin về biến (Variables) và bộ số liệu (Data) Variables: Các biến của bộ số liệu Command: Trực tiếp thực hiện các câu lệnh Review: Hiển thị các câu lệnh được thực hiện Results: Hiển thị kết quả mỗi câu lệnh Log, Viewers, Graph, Do-file Editor, Data Editor và Data Browser Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 2 / 28 Nguồn dữ liệu sử dụng trong chương trình học Bài giảng: Khảo sát mức sống hộ gia đình ở Việt Nam VHLSS 2016 Bài tập về nhà, bài kiểm tra: Khảo sát hộ gia đình tiếp cận nguồn lực ở Việt Nam VARHS 2016 Khảo sát doanh nghiệp vừa và nhỏ ở Việt Nam 2015 Đánh giá ngẫu nhiên về các khoản chi trả cho các dịch vụ hệ sinh thái ở Ấn Độ Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 3 / 28 Hiển thị dữ liệu Tiếp cận dữ liệu Quan sát/ Cỡ mẫu Biến quan sát Cấp độ của tập dữ liệu: dữ liệu cấp cá nhân, dữ liệu cấp hộ gia đình, dữ liệu cấp quốc gia, v.v... Biến nhận diện (Identification variables): Sử dụng để nhận biết cấp độ của các quan sát và để gộp dữ liệu Data Editor: Hiển thị thông tin dữ liệu và trực tiếp chỉnh sửa bộ dữ liệu (manual) Data Browser: Chỉ hiển thị thông tin dữ liệu Dữ liệu số (Number) và dữ liệu chuỗi (String) Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 4 / 28 Do-file và cách tổ chức các do-files Do-file Editor và doedit Do-file: Một do-file là một tệp tin bao gồm một chuỗi các câu lệnh được sử dụng để xử lý toàn bộ hoặc một phần dữ liệu của một dự án. Một do-file tốt cần phải cung cấp đầy đủ thông tin để người đọc có thể hiểu được ý đồ của người viết do-file. Cấu trúc của một do-file thường như sau: Thông tin về bộ dữ liệu hoặc phần dữ liệu được xử lý trong do-file Thông tin liên hệ của người tạo do-file Các lệnh macro dùng để chỉ ra đường dẫn của bộ số liệu gốc (raw data) và kết quả. Các lời ghi chú tương ứng với các câu lệnh được thực hiện Master do-file: Xử lý một bộ dữ liệu có thể cần dùng đến nhiều do-file khác nhau, Master do-file là do-file được dùng để gọi và chạy tất cả các do-file của một dự án. Master do-file có chức năng như một bản đồ tới thư mục dữ liệu. Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 5 / 28 Do-file và cách tổ chức các do-files Bạn sẽ không gặp vấn đề gì khi để dòng trống trong do-file. Bạn có thể lưu được các ghi chú trong do-file theo các cách khác nhau. *: Để dấu này ở đầu dòng, Stata sẽ bỏ qua toàn bộ dòng này. /* */: Stata sẽ bỏ qua tất cả các dòng ở giữa 2 dòng này. //: Stata sẽ bỏ qua tất cả tất cả các ký tự từ sau dấu này đến cuối dòng. ///: Stata cũng sẽ bỏ qua tất cả tất cả các ký tự từ sau dấu này đến cuối dòng. Tuy nhiên, Stata sẽ nối phần lệnh ở câu tiếp theo tới câu lệnh hiện tại. Vì vậy, ký hiệu này cho phép ta ngắt các câu lệnh dài thành nhiều dòng trong do-file. Tuy nhiên, nếu nhập trực tiếp trong cửa sổ Command, ký hiệu này sẽ không có tác dụng nối dài câu lệnh. Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 6 / 28 Các câu lệnh macro: global và local Macro gán một tập hợp từ hoặc một số cho một tên. Có hai loại macro. global: ở trong bộ nhớ cho đến khi bạn rời khỏi Stata local: chỉ tồn tại với một chương trình hoặc một vòng lặp. Global một tập hợp các biến Ví dụ: global hh16 tinhh huyen xa diaban hoso Lệnh: br $hh16 sẽ hiện thị cùng kết quả với lệnh: br tinhh huyen xa diaban hoso Global một đường dẫn Ví dụ: global data "/Users/ngoc-minhnguyen/Documents/Stata course/Datasource2022" use "$data/Muc1A_2016_n.dta", clear Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 7 / 28 Các câu lệnh help, search, findit và ssc help: Khi bạn biết tên của lệnh bạn muốn sử dụng, bạn có thể sử dụng trợ giúp Stata để có được bản tóm tắt nhanh về lệnh và cú pháp của nó. Ví dụ: help global search: Khi bạn không biết chính xác câu lệnh, nhưng biết chủ đề cần tìm kiếm, Stata sẽ tìm kiếm cơ sở dữ liệu từ khóa và sẽ hiển thị cho bạn các tệp trợ giúp và các nguồn khác nhau trong đó chủ đề cần tìm kiếm được đề cập. Ví dụ: search macro findit: tìm kiếm từ nhiều nguồn hơn nữa. Tuy nhiên, findit đặc biệt thích hợp để cài đặt các lệnh bổ sung (thường có sẵn như được gọi là tệp ado), vì nó sẽ hiển thị cho bạn các nguồn có thể tải xuống các tệp này. Ví dụ: findit gologit ssc: cho phép tải xuống một gói lệnh (package). Ví dụ: ssc install outreg Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 8 / 28 Log file Tại sao cần sử dụng log file: lưu trữ kết quả phân tích để sử dụng và trích xuất ra các phần mềm khác như Excel, Word Các cách tạo log file: Sử dụng log trên thanh công cụ File/Log/Begin (Append, Close, Suspend, Resume) Từ cửa sổ Command, sử dụng cú pháp log Từ một do-file, sử dụng cú pháp log Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 9 / 28 Các câu lệnh sử dụng với log file log using: tạo một tệp (log file) để sau đó lưu tất cả các lệnh và kết quả của các lệnh này. Lần đầu tiên bạn mở một log file, bạn phải đặt tên cho log file mới sẽ được tạo. Cú pháp cơ bản: log using filename [, append replace [ text | smcl ] ] filename: tên của log file append: nhập thêm thông tin mới vào log file đã có sẵn replace: thay thế hoàn toàn thông tin của log file đã có sẵn bằng thông tin mới text | smcl: Định dạng của log file Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 10 / 28 Các câu lệnh sử dụng với log file log off: tạm thời tắt ghi thông tin vào log file, để mọi kết quả của các lệnh tiếp theo không được sao chép vào log file. Điều này rất hữu ích nếu bạn muốn lưu một số kết quả nhưng không phải tất cả. Câu lệnh log off chỉ hoạt động sau câu lệnh log using. log on: khởi động lại quá trình ghi thông tin vào log file, sao chép mọi kết quả mới vào log file vừa được tắt tạm thời. Câu lệnh log on chỉ hoạt động sau lệnh log using và lệnh log off. log close: tắt hẳn một log file. Sau lệnh log close, cách duy nhất để bắt đầu ghi nhật ký lại là log using. set logtype: Sử dụng trước khỉ tạo một log file, lệnh này yêu cầu Stata luôn lưu các log file ở định dạng text hoặc smcl Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 11 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - cd Lệnh cd (change directory) có thể được sử dụng riêng để xác định thư mục bạn hiện đang làm việc. Lệnh này, theo sau là tên thư mục, sẽ thay đổi thư mục bạn làm việc. Lưu ý rằng nếu đường dẫn thư mục của bạn chứa các khoảng trắng (space), bạn sẽ cần đặt đường dẫn trong dấu ngoặc kép Ví dụ: cd "/Users/ngoc-minhnguyen/Documents/Stata course/Datasource2022" use Muc1A_2016_n, clear Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 12 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - set Lệnh set được sử dụng để điều khiển môi trường hoạt động Stata. Có hàng tá lệnh thiết lập, nhưng nhiều lệnh trong số đó hiếm khi được sử dụng. Một số trong số những lệnh phổ biến là: set mem XXm: đặt bộ nhớ cho Stata ở XX megabyte. Nếu bạn nhận được thông báo lỗi “Không có chỗ để thêm các quan sát khác”, điều này có nghĩa là tệp dữ liệu quá lớn so với bộ nhớ được cấp cho Stata. Lệnh này làm tăng bộ nhớ được cấp cho Stata. Bạn không thể đặt XX lớn hơn tổng bộ nhớ RAM trong máy tính. set more off/on: được sử dụng để bật và tắt cuộn thông tin liên tục. Sử dụng set more off nếu bạn không quan tâm đến thông tin trung gian, chỉ quan tâm đến kết quả cuối cùng. Sử dụng set more on nếu bạn cần các thông tin chi tiết. set scrollbufsize XX: được sử dụng để thay đổi số lượng thông tin đầu ra mà Stata sẽ lưu trữ trong cửa sổ Results. XX được biểu thị bằng byte. Mặc định là 32.000 (32k) và tối đa là 500.000 (500k). Nhập help set để có danh sách các cài đặt khác trong Stata. Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 13 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - clear Lệnh clear: sẽ xóa tất cả các tệp, biến và nhãn khỏi bộ nhớ để sẵn sàng sử dụng tệp dữ liệu mới. Bạn có thể xóa bộ nhớ bằng cách sử dụng lệnh xóa hoặc bằng cách sử dụng lệnh con xóa như một phần của lệnh use. Lệnh này không xóa bất kỳ dữ liệu nào được lưu vào ổ cứng. Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 14 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - use Lệnh use: dùng để mở một tập Stata hiện có. Cú pháp sử dụng với lệnh clear có thể là: clear use filename hoặc use filename , clear Ví dụ: use "$data/Muc1A_2016_n.dta", clear Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 15 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - describe Lệnh describe cung cấp mô tả ngắn gọn về tệp dữ liệu. Các thông tin bao gồm: Số lượng biến Số lượng quan sát Kích thước của tệp Danh sách các biến và đặc điểm của chúng Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 16 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - describe Lệnh describe varname cung cấp các thông tin về mỗi biến trong tệp dữ liệu, bao gồm: Tên biến (variable name) Kiểu lưu trữ (Storage type): byte được sử dụng cho các biến nhị phân, int được sử dụng cho số nguyên và float được sử dụng cho các biến liên tục có thể có số thập phân. Để xem thông tin về từng loại bộ nhớ, hãy nhập help datasets. Kiểu hiển thị: kết quả đầu ra của câu lệnh. Nhãn các giá trị của biến (value label): tên của một tập hợp các nhãn cho các giá trị khác nhau. Nhãn biến (variable label) Ví dụ: describe m1ac8 Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 17 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - list Lệnh list liệt kê các giá trị của các biến trong tập dữ liệu. Cú pháp là: list [varlist] [if exp] [in range] Với [varlist] , bạn có thể chỉ định giá trị của biến nào sẽ được hiển thị. Nếu không có danh sách nào được chỉ định, tất cả các biến sẽ được liệt kê. Với if và in, bạn có thể chỉ định bản ghi nào sẽ được liệt kê. Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 18 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - list Dưới đây là một số ví dụ: list: liệt kê toàn bộ tập dữ liệu list in 1/10: liệt kê các quan sát từ 1 đến 10 list m1ac7a m1ac8: liệt kê các biến đã chọn list m1ac8 in 1/20: liệt kê các quan sát 1-20 cho biến đã chọn list m1ac8 if m1ac8 == 1: liệt kê các quan sát đã kết hôn Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 19 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - summarize Lệnh summarize tạo ra thống kê về các biến, và thường được dùng cho các biến liên tục (continuous variables). Ví dụ: tuổi, chi tiêu bình quân đầu người, v.v... Cú pháp có dạng như sau: summarize [varlist] texttt[if exp] [in range], [detail] Theo mặc định, nó tạo ra các thống kê sau: Trung bình Độ lệch chuẩn Giá trị tối thiểu Giá trị tối đa Nếu bạn chỉ định detail, Stata cung cấp cho bạn số liệu thống kê bổ sung: Skewness Kurtosis Bốn giá trị nhỏ nhất Bốn giá trị lớn nhất Các percentiles khác nhau Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 20 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - summarize Dưới đây là một số ví dụ: summarize: đưa ra thống kê về tất cả các biến summarize m1ac5: đưa ra thống kê về tuổi summarize m1ac5 if m1ac8 == 1: đưa ra thống kê về tuổi của người đã kết hôn Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 21 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - tabulate, tab1, tab2 Đây là ba lệnh liên quan tạo ra bảng tần suất, và thường được dùng cho các biến rời rạc (discrete variables). Họ có thể tạo bảng tần suất một chiều (bảng có tần suất của một biến) hoặc bảng tần suất hai chiều (bảng với một biến hàng và một biến cột). tabulate or tab: đưa ra một bảng tần suất cho một hoặc hai biến tab1: tạo bảng tần suất một chiều cho mỗi biến trong danh sách biến tab2: tạo ra tất cả các bảng hai biến có thể có từ danh sách các biến Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 22 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - tabulate, tab1, tab2 Bạn có thể sử dụng một số tùy chọn với các lệnh sau: all: đưa ra tất cả các kết quả kiểm định thống kê cho bảng hai chiều cell: cung cấp tỷ lệ phần trăm tổng thể cho bảng hai chiều col: cung cấp tỷ lệ phần trăm cột cho bảng hai chiều row: cung cấp tỷ lệ phần trăm hàng cho bảng hai chiều nofreq: không hiển thị tỷ lệ phần trăm tần suất nol: không hiển thị nhãn giá trị mà hiển thị các giá trị số chi2: cung cấp kiểm định chi2 cho các bảng hai chiều Có nhiều tùy chọn khác, bao gồm các kiểm định thống kê. Để biết thêm thông tin, hãy nhập help tabulate. Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 23 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - tabulate, tab1, tab2 Dưới đây là một số ví dụ: tab m1ac8: lập bảng về tình trạng hôn nhân tab m1ac8 m1ac2: lập bảng thống kê chéo giữa biến tình trạng hôn nhân và biến giới tính tab m1ac8 m1ac2 , row : lập bảng thống kê chéo giữa biến tình trạng hôn nhân và biến giới tính với tỷ lệ phần trăm theo hàng tab1 m1ac8 m1ac2: lập bảng tần suất riêng cho từng biến: biến tình trạng hôn nhân và biến giới tính tab2 m1ac8 m1ac2 m1ac16: tạo ra ba bảng thống kê chéo cho từng cặp biến Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 24 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - tiền tố prefix Đây không phải là một lệnh độc lập mà là một “tiền tố” đi trước một lệnh khác và yêu cầu Stata lặp lại lệnh cho mỗi giá trị của một biến. Cú pháp chung là: bysort varlist : command trong đó varlist là một hoặc nhiều biến (thường chỉ là một) và command là lệnh Stata sẽ lặp đi lặp lại. Một số ví dụ về tiền tố bysort là: bysort m1ac8 : sum m1ac5: lập bảng thống kê về độ tuổi theo từng nhóm tình trạng hôn nhân bysort m1ac8 : tab m1ac2: lập bảng tần suất về giới tính cho từng nhóm tình trạng hôn nhân Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 25 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - save Lệnh save lưu dữ liệu trong bộ nhớ. Cú pháp là: save filename , replace Nếu bạn không đặt tên tệp mới, Stata sẽ sử dụng chính tên tệp hiện tại, tệp gốc sẽ bị ghi đè thông tin. Bạn không thể ghi đè lên một tệp cũ trừ khi bạn chỉ định replace. Ví dụ save $results/practice26Mar.dta , replace Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 26 / 28 Các câu lệnh cơ bản để xử lý dữ liệu - tùy chọn if, in if, in không phải các một lệnh, mà là một tùy chọn cho nhiều lệnh được sử dụng trong Stata. if: thực hiện lệnh cho các quan sát hoặc biến thỏa mãn một số điều kiện. Lưu ý rằng câu lệnh if luôn sử dụng hai ký hiệu bằng nhau == cho đẳng thức. | là ký hiệu của “hoặc” trong khi & là ký hiệu của “và”. in: thực hiện một lệnh chỉ cho các quan sát được chọn Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 27 / 28 Luyện tập Sử dụng tập Muc1A_2016_n.dta và các câu lệnh vừa được giới thiệu để trả lời các câu hỏi sau: Có bao nhiêu biến và bao nhiêu quan sát trong tập tin? Tỷ lệ số quan sát là nữ là nữ? Có sự khác biệt ý nghĩa thống kê giữa giới tính người trả lời và việc sử dụng internet hay không? Tỷ lệ người trả lời là nữ có tuổi dưới 30 là bao nhiêu? Tỷ lệ người trả lời là nữ tham gia hội nông dân khác nhau như thế nào theo tình trạng hôn nhân? Tuổi trung bình của người trả lời là bao nhiêu? Tuổi trung bình của một người đã kết hôn và có sử dụng internet là bao nhiêu? Nguyễn Ngọc Minh, Ma Doãn Hải (DEPOCEN)Phân tích dữ liệu cơ bản sử dụng Stata 3-4/2022 28 / 28