Cách xử lý dữ liệu trong Stata

Lời mở đầu. Trong nghiên cứu khoa học, sẽ thật tiện dụng nếu chính bản thân bạn biết xử lý số liệu. Nếu bạn thấy học và biết những điều này là mất thời gian, hãy tìm một nhà thống kê hay nhà dịch tễ học [có cả hai càng tốt] vào đội của bạn, đó là lời khuyên chân thành

. Nhưng nếu bạn vẫn tự xử lý số liệu, thì chào mừng bạn đã đến với một thế giới rắc rối, vô thường, và như các bạn tôi bên lập trình hay đùa rằng, bỗng một ngày đẹp trời, code của tao chạy được như một phép màu! Đôi khi là vấn đề ăn ở
.

Hôm nay tôi sẽ chia sẻ một số kinh nghiệm và câu lệnh trong STATA tôi thường sử dụng khi tiếp cận một bộ dữ liệu mới, tương ứng với bước Khám phá/thăm dò dữ liệu [tôi dự định sẽ viết một series khác về workflow trong data analysis, nhưng không phải bài này]. Nhìn chung có hai dạng data chúng ta hay gặp: primary data là data mà chính chúng ta thu thập và nhập liệu [nên nếu có sai sót gì thì hãy tự đập đầu vô gối!], và secondary data là dữ liệu có sẵn, mình chỉ sử dụng. Cách tiếp cận hai loại dữ liệu này khác nhau một tí, và tôi sẽ đề cập tới trong từng phần dưới đây.

1. Change Working Directory

Hành động này nhằm xác định thư mục làm việc của bạn. Khi xác định rồi thì nếu bạn đang tiếp cận các tập tin trong thư mục này, bạn không cần mở hộp thoại mà chỉ cần gõ lệnh mà thôi. Đồng thời, thao tác mở do-file cũng tự động điều hướng về thư mục này.

Hình 1: Cách đổi working directory trong menu.

Câu lệnh để đổi thư mục làm việc:

cd Ví dụ: cd "C:\Users\Data"

Nếu đường dẫn rườm rà quá thì bạn có thể làm theo Hình 1.

Sau khi đã đổi working directory, bạn có thể xem những file nằm trong thư mục này bằng lệnh dir. Xem ví dụ ở Hình 2.

Hình 2: Trong thư mục làm việc có 7 files.

Đổi working directory không phải là hành động bắt buộc, nhưng đây là thói quen tốt khi xử lý số liệu. Đối với một người bề bộn như tôi thì việc làm một việc tỉ mỉ như xử lý số liệu nên cẩn thận và tươm tất ngay từ bước chuẩn bị. Rất may tôi đã tập được thói quen này mỗi khi khởi động STATA [nó cũng giúp tôi ngăn nắp hơn khi lưu các tập tin data!].

2. Import dữ liệu

Việc tiếp theo là đưa data vào STATA. Dưới đây là câu lệnh cho việc nhập dữ liệu từ định dạng STATA [*.dta], SPSS [*.sav], Excel [*.xlsx] và [*.csv]:

//Câu lệnh cho STATA . use H173.dta //Lưu ý nếu tên file có khoảng trống, thêm dấu "" //Câu lệnh cho SPSS //Nếu bạn chưa có package usespss thì làm theo các bước sau: . search usespss //Sau đó đọc help file để cài package này . usespss Kaplan_aml.sav //Nếu bản STATA của bạn là 32-bit thì dùng lệnh: . usespss using Kaplan_aml.sav //Câu lệnh cho Excel và *.csv . insheet using "Kaplan_gastric cancer data.csv" . import excel ICU.xlsx, sheet["ICU"] firstrow

Ngoài ra các bạn cũng có thể import dữ liệu bằng cách vào File Import và chọn loại data file mình muốn [nhưng khi đã đổi working directory, việc gõ lệnh sẽ nhanh hơn

].

3. Mô tả cơ bản dữ liệu

Đầu tiên là lệnh describe [viết tắt desc]. Lệnh này sẽ mô tả thông tin bộ dữ liệu bạn đang có. Kết quả như Hình 3.

Hình 3: Kết quả lệnh desc với dữ liệu ICU.

Nhưng nếu bạn vô tình gõ desc cho một dữ liệu thứ cấp nào đó

Hình 4: Kết quả sẽ hơi bàng hoàng một tí

Giải pháp là hãy gõ thêm option như câu lệnh sau:

. desc, short
Hình 5: Kết quả này thân thiện với người dùng hơn!

Ngoài ra, lệnh browse [viết tắt br] cũng là một cách để có cái nhìn về dữ liệu. Bạn hãy tự thử nghiệm và nếu có câu hỏi, hãy để lại comment cho mình nhé

.

Nếu dữ liệu đang được xử lý là do chính bạn xây dựng, rõ ràng bạn sẽ hiểu cách mã hóa các biến, nhưng nếu vô tình bạn quên, hoặc đây là một secondary data lạ lẫm nào đó thì sao? Hãy nhớ tới codebook.

Hình 6: Lệnh codebook trả về cách mã hóa biến bmicat.

Lệnh codebook có thể đi kèm một danh sách các biến quan tâm. Nhưng nếu kết quả codebook của biến tobacco trả về như Hình 7 thì sao?

Hình 7: Biến tobacco không có dán nhãn cho từng giá trị!!!

Lúc này, các bạn hãy truy lại nguồn gốc dữ liệu [hỏi người đưa bạn bộ dữ liệu, lên trang chủ của cơ sở dữ liệu,] để tìm file codebook. Ví dụ như biến tobacco có mã hóa -9, đây là câu hỏi Có hút thuốc hay không? thì giá trị -9 hơi lạ, và thường nó gợi ý đến missing data. Lúc này bạn sẽ cần recode các giá trị có nghĩa là missing/inappropriate dựa theo codebook được cung cấp [recode nằm trong Làm sạch và biến đổi dữ liệu chưa viết

].

Vậy làm sao để biết trong bộ dữ liệu có những biến nào có missing data? Dùng lệnh mdesc.

Hình 8: Lệnh mdesc cho biết có 3 biến chứa missing data. Chúng ta cần quan tâm để ý 3 biến này kĩ hơn.

Lệnh mdesc cũng có thể theo sau bởi danh sách một số biến mà bạn quan tâm khảo sát thôi.

Cuối cùng cho bài viết về khảo sát dữ liệu ban đầu ngày hôm nay, tôi giới thiệu lệnh lookfor để tìm kiếm nội dung bạn quan tâm trong một cơ sở dữ liệu lớn Hình 9.

Hình 9: Bộ data tôi ví dụ ở đây có hơn 2000 đối tượng tham gia và gần 2000 biến số. Đây là dữ liệu từ một khảo sát hộ gia đình ở Mỹ.

Nếu bạn muốn tìm kiếm thông tin mình quan tâm ở trong bộ dữ liệu như thế này thì thật nản. Hãy xem đây!

Hình 10: Kết quả của lệnh lookfor.

Nhờ lệnh lookfor, tôi sẽ ghi chú được những biến số có chứa nội dung tôi quan tâm. Sau đó, tôi sẽ tra lại codebook những biến này [nếu cần, bạn sẽ phải mở bảng câu hỏi gốc đã để xem cách người ta ghi nhận biến số này trên cơ sở nào], recode theo codebook, đánh giá missing data, và đi tới bước làm sạch và biến đổi dữ liệu.

Hi vọng bài viết của tôi cung cấp cho các bạn vài công cụ hữu hiệu khi tiếp xúc lần đầu với một data lạ. Hãy nhớ: nếu không biết điều gì, STATA luôn có lệnh help + nội dung để giúp đỡ bạn trên từng cây số, hoặc hãy hỏi đứa bạn của mình làm thống kê, hoặc lên mạng! Đây là trang web tôi rất hay tham khảo khi có thắc mắc liên quan đến thống kê, phân tích dữ liệu: //stats.idre.ucla.edu/

Nếu có thắc mắc hay đóng góp gì, vui lòng để lại comment hoặc liên hệ tác giả nhé

. Hẹn gặp lại các bạn trong bài tiếp theo về STATA!

Trong bài tôi có sử dụng một số dataset được tải miễn phí từ trang: //meps.ahrq.gov/mepsweb/data_stats/download_data_files.jsp

Share this:

Related

  • Hôm nay bạn đã bắt đầu chạy chưa?
  • April 20, 2020
  • In "Blog Post"
  • [Câu chuyện #1] 30 có phải là Tết?
  • April 28, 2020
  • In "Nghiên cứu khoa học"
  • [Câu chuyện #2] Bàn về Tự do
  • May 6, 2020
  • In "Blog Post"

Video liên quan

Chủ Đề