messenger_logo
Liên hệ qua Messenger
SciEco

Tùy chỉnh bảng trong stata 17: cách lưu và sử dụng phong cách trình bày dữ liệu

I
IEFPA
Ngày viết: 25/03/2026

Trong quá trình phân tích dữ liệu, chúng ta thường phải tạo ra rất nhiều bảng kết quả hồi quy với cùng một định dạng và nhãn dán lặp đi lặp lại. Thay vì phải định dạng lại từ đầu cho mỗi bảng báo cáo, Stata cung cấp một giải pháp hiệu quả giúp bạn lưu lại toàn bộ cấu trúc trình bày để tái sử dụng về sau. Bài viết này sẽ hướng dẫn cách lưu các thiết lập định dạng bảng và áp dụng chúng cho những dự án phân tích dữ liệu trong tương lai.

Tạo bảng kết quả cơ bản

Chúng ta sẽ bắt đầu bằng việc mở tập dữ liệu thông qua lệnh webuse nhanes2l. Sau đó, chúng ta dùng lệnh table để tạo một bảng cơ bản cho mô hình hồi quy logistic với biến phụ thuộc nhị phân là highbp. Bảng này sẽ bao gồm tỷ số chênh, sai số chuẩn, thống kê z, p-value và khoảng tin cậy. Lưu ý rằng ký hiệu biến phân loại của Stata được sử dụng để đưa vào hiệu ứng chính của biến liên tục age, hiệu ứng chính của các biến phân loại sex và diabetes, cùng với sự tương tác giữa age và sex.

1. webuse nhanes2l
2(Second National Health and Nutrition Examination Survey)
3. table () (command result),                                   
4>           command(_r_b _r_se _r_z _r_p _r_ci                 
5>                   : logistic highbp c.age##i.sex i.diabetes)
6--------------------------------------------------------------------------------------------------
7                             |                logistic highbp c.age##i.sex i.diabetes
8                             |  Coefficient   Std. error        z   p-value          95% CI
9-----------------------------+--------------------------------------------------------------------
10Age (years)                  |     1.034281     .0018566    18.78     0.000   1.030648    1.037926
11Sex=Male                     |            1            0
12Sex=Female                   |     .1549363     .0223461   -12.93     0.000   .1167849    .2055511
13Sex=Male # Age (years)       |            1            0
14Sex=Female # Age (years)     |     1.028856     .0027958    10.47     0.000   1.023391    1.034351
15Diabetes status=Not diabetic |            1            0
16Diabetes status=Diabetic     |     1.521011      .154103     4.14     0.000   1.247073    1.855124
17Intercept                    |     .1730928     .0157789   -19.24     0.000    .144772    .2069537
18--------------------------------------------------------------------------------------------------

Tạo và lưu phong cách trình bày tùy chỉnh

Trước tiên, hãy dọn dẹp bộ nhớ tạm của Stata bằng lệnh collect clear.

1. collect clear

Tiếp theo, chúng ta áp dụng các lệnh định dạng để làm sạch bảng dữ liệu. Các chú thích trong đoạn mã dưới đây sẽ giải thích chức năng của từng dòng lệnh, từ việc tắt các mức cơ sở của biến phân loại, gộp nhãn, xóa đường kẻ dọc cho đến định dạng lại các con số thập phân.

1// Tat muc co so cho cac bien phan loai
2collect style showbase off
3// Gop cac nhan hang va thay doi dau phan cach tuong tac
4collect style row stack, delimiter(" x ") nobinder
5// Xoa duong ke doc
6collect style cell border_block, border(right, pattern(nil))
7// Dinh dang cac con so
8collect style cell result[_r_b _r_se _r_ci], nformat(%8.2f)
9collect style cell result[_r_p], nformat(%5.4f)
10collect style cell result[_r_ci], sformat("[%s]") cidelimiter(,)
11// An lenh hoi quy logistic
12collect style header command, level(hide)

Cuối cùng, sử dụng lệnh collect style save để lưu toàn bộ phong cách này vào một tệp tin mang tên MyLogitStyle.stjson.

1. collect style save MyLogitStyle, replace
2(style from mylogit saved to file MyLogitStyle.stjson)

Tạo và lưu nhãn tùy chỉnh

Bên cạnh phong cách trình bày, việc tùy chỉnh nhãn dán cũng rất quan trọng. Các hệ số trong kết quả hồi quy logistic thực chất là các tỷ số chênh. Chúng ta sẽ thay đổi nhãn hiển thị từ Coefficient thành Odds Ratio.

1collect label levels result _r_b "Odds Ratio", modify

Tương tự như trên, chúng ta lưu thiết lập nhãn này thành một tệp tin tên là MyLogitLabels.stjson.

1. collect label save MyLogitLabels, replace
2(labels from mylogit saved to file MyLogitLabels.stjson)

Ứng dụng phong cách và nhãn đã lưu

Khi tạo một bảng mới, bạn có thể gọi lại ngay các định dạng vừa lưu bằng cách thêm tùy chọn style và label. Nếu bạn đang làm việc trong cùng thư mục lưu tệp, chỉ cần gõ tên tệp. Nếu ở thư mục khác, bạn cần cung cấp đường dẫn đầy đủ.

1. table () (command result),                                   
2>          command(_r_b _r_se _r_z _r_p _r_ci                  
3>                  : logistic highbp c.age##i.sex i.diabetes)  
4>          style(c:\MyFolder\MyLogitStyle.stjson, override)    
5>          label(c:\MyFolder\MyLogitLabels.stjson)
6-------------------------------------------------------------------------------
7                   Odds Ratio   Std. error        z   p-value        95% CI
8-------------------------------------------------------------------------------
9Age (years)              1.03         0.00    18.78    0.0000   [1.03,    1.04]
10Sex
11  Female                 0.15         0.02   -12.93    0.0000   [0.12,    0.21]
12Sex x Age (years)
13  Female                 1.03         0.00    10.47    0.0000   [1.02,    1.03]
14Diabetes status
15  Diabetic               1.52         0.15     4.14    0.0000   [1.25,    1.86]
16Intercept                0.17         0.02   -19.24    0.0000   [0.14,    0.21]
17-------------------------------------------------------------------------------

Lưu vào thư mục cá nhân để dùng mọi lúc

Cách tối ưu nhất là lưu các tệp định dạng này vào thư mục cá nhân của hệ thống để có thể gọi ra sử dụng bất cứ lúc nào mà không cần nhớ đường dẫn. Gõ lệnh sysdir để xác định vị trí thư mục cá nhân trên máy tính của bạn.

1. sysdir
2   STATA:  C:\Program Files\Stata17\
3    BASE:  C:\Program Files\Stata17\ado\base\
4    SITE:  C:\Program Files\Stata17\ado\site\
5    PLUS:  C:\Users\ChuckStata\ado\plus\
6PERSONAL:  c:\ado\personal\
7OLDPLACE:  c:\ado\

Sau khi biết thư mục đích, bạn lưu trực tiếp tệp stjson vào đó.

1. collect style save "c:\ado\personal\MyLogitStyle", replace
2(style from mylogit saved to file c:\ado\personal\MyLogitStyle.stjson)
3. collect label save "c:\ado\personal\MyLogitLabels", replace
4(labels from mylogit saved to file c:\ado\personal\MyLogitLabels.stjson)

Áp dụng định dạng cho các bảng dữ liệu khác

Hãy thử nghiệm phong cách trình bày này với một tập dữ liệu hoàn toàn khác. Chúng ta sẽ mở dữ liệu nghiên cứu về trẻ sơ sinh nhẹ cân và chạy mô hình dự đoán khả năng sinh con dưới 2500 gram.

1. webuse lbw, clear
2(Hosmer & Lemeshow data)
3. describe low age smoke ht
4Variable      Storage   Display    Value
5    name         type    format    label      Variable label
6------------------------------------------------------------------------------------------------------------------------
7low             byte    %8.0g                 Birthweight<2500g
8age             byte    %8.0g                 Age of mother
9smoke           byte    %9.0g      smoke      Smoked during pregnancy
10ht              byte    %8.0g                 Has history of hypertension

Khi tạo bảng kết quả, chúng ta lại tiếp tục gọi phong cách MyLogitStyle và nhãn MyLogitLabels.

1. table () (command result),                          
2>          command(_r_b _r_se _r_z _r_p _r_ci         
3>                  : logistic low c.age##i.smoke ht)  
4>          style(MyLogitStyle, override)              
5>          label(MyLogitLabels)
6----------------------------------------------------------------------------------------------------
7                                         Odds Ratio   Std. error       z   p-value        95% CI
8----------------------------------------------------------------------------------------------------
9Age of mother                                  0.92         0.04   -1.85    0.0646   [0.84,    1.01]
10Smoked during pregnancy
11  Smoker                                       0.36         0.56   -0.66    0.5082   [0.02,    7.37]
12Smoked during pregnancy x Age of mother
13  Smoker                                       1.08         0.07    1.14    0.2542   [0.95,    1.23]
14Has history of hypertension                    3.47         2.15    2.00    0.0456   [1.02,   11.72]
15Intercept                                      2.16         2.27    0.73    0.4642   [0.28,   16.90]
16----------------------------------------------------------------------------------------------------

Định dạng tổng thể của bảng đã hoàn hảo như mong đợi, tuy nhiên tên của các biến số đang quá dài. Chúng ta có thể kiểm tra danh sách nhãn cột và rút gọn chúng lại để bảng trông sắc nét hơn.

1. collect label list colname, all
2  Collection: Table
3   Dimension: colname
4       Label: Covariate names and column names
5Level labels:
6       _cons  Intercept
7       _hide
8         age  Age of mother
9          c1
10          c2
11          c3
12          c4
13          ht  Has history of hypertension
14       smoke  Smoked during pregnancy

Sử dụng lệnh modify để tinh chỉnh lại tên biến số cho ngắn gọn.

1. collect label levels colname age "Age", modify
2. collect label levels colname ht "Hypertension", modify
3. collect label levels colname smoke "Smoke", modify

Kiểm tra lại thành quả cuối cùng bằng lệnh preview.

1. collect preview
2-------------------------------------------------------------------------
3              Odds Ratio   Std. error       z   p-value        95% CI
4-------------------------------------------------------------------------
5Age                 0.92         0.04   -1.85    0.0646   [0.84,    1.01]
6Smoke
7  Smoker            0.36         0.56   -0.66    0.5082   [0.02,    7.37]
8Smoke x Age
9  Smoker            1.08         0.07    1.14    0.2542   [0.95,    1.23]
10Hypertension        3.47         2.15    2.00    0.0456   [1.02,   11.72]
11Intercept           2.16         2.27    0.73    0.4642   [0.28,   16.90]
12-------------------------------------------------------------------------

✨ Khả năng lưu và tái sử dụng các phong cách tùy chỉnh cho phép bạn tối ưu hóa hoàn toàn quy trình tạo báo cáo. Dù bạn là nhà nghiên cứu cần định dạng bảng theo tiêu chuẩn khắt khe của các tạp chí khoa học, hay chuyên viên phân tích dữ liệu cần tạo báo cáo định kỳ cho doanh nghiệp, việc đầu tư thời gian xây dựng chuẩn trình bày một lần sẽ mang lại lợi tức khổng lồ về mặt thời gian cho các dự án sau này.

Hãy thử mở một tập dữ liệu bất kỳ mà bạn đang thực hiện phân tích, chạy một mô hình hồi quy đa biến và tự tay thiết lập một phong cách định dạng chuẩn theo đúng yêu cầu từ trường học hoặc công ty của bạn. Bạn lưu trữ tệp định dạng này vào thư mục nào để đảm bảo tính sẵn sàng cao nhất cho những lần chạy mô hình tiếp theo?


Bài viết khác
Machine learning, deep learning và trí tuệ nhân tạo là tập hợp các thuật toán dùng để nhận diện các mẫu trong dữ liệu. Các thuật toán này thường có tên gọi khá đặc biệt như random forests, neural networks hay spectral clustering. Bài viết này trình bày cách sử dụng một trong những thuật toán phổ biến mang tên Support Vector Machines hay còn được gọi tắt là SVM. Mục tiêu là ứng dụng mô hình SVM để phân biệt những người có khả năng mắc bệnh tiểu đường và những người không mắc bệnh thông qua hai biến số là tuổi và mức HbA1c. Tuổi được tính bằng năm, còn HbA1c là chỉ số xét nghiệm máu đo lường mức độ kiểm soát đường huyết. Mô hình SVM sẽ dự đoán rằng những người lớn tuổi với mức HbA1c cao có nguy cơ mắc bệnh tiểu đường cao hơn, trong khi những người trẻ tuổi với mức HbA1c thấp ít có nguy cơ mắc bệnh hơn. Tải, gộp và làm sạch dữ liệu bằng Stata Dữ liệu được sử dụng lấy từ Khảo sát Kiểm tra Sức khỏe và Dinh dưỡng Quốc gia Hoa Kỳ. Cụ thể, biến số tuổi trích xuất từ tập dữ liệu nhân khẩu học, chỉ số HbA1c từ dữ liệu hemoglobin và trạng thái bệnh từ dữ liệu tiểu đường. Quá trình bắt đầu bằng việc tải các tệp gốc từ trang web, lưu thành các tập dữ liệu Stata cục bộ và tiến hành gộp chúng lại với nhau. Sau khi gộp, các biến số sẽ được đổi tên và mã hóa lại cho đồng nhất. Những quan sát có giá trị bị khuyết sẽ được loại bỏ hoàn toàn để đảm bảo chất lượng cho bước huấn luyện mô hình.
Chúng ta đã làm quen với các khái niệm cơ bản về dược động học và dược lực học. Hôm nay, chúng ta sẽ ứng dụng những kiến thức đó vào bộ đôi kháng sinh piperacillin/tazobactam và vi khuẩn Pseudomonas. Gần đây, một tuyên bố của FDA vào tháng hai năm 2024 đã chỉ ra rằng đối với điểm gãy phụ thuộc liều nhạy cảm là 16 mcg/mL, chúng ta nên sử dụng liều 4.5g mỗi sáu giờ truyền kéo dài trong ba giờ. Lý do là vì phác đồ chuẩn 4.5g truyền tĩnh mạch mỗi sáu giờ trong vòng nửa giờ không đủ để đạt PTA lớn hơn 90 phần trăm. Tuyên bố này cũng đề cập đến một hạn chế khi sử dụng chỉ số thời gian nồng độ thuốc tự do lớn hơn mic đạt 50 phần trăm để tính toán PTA, một chỉ số chưa được kiểm chứng đầy đủ cho Pseudomonas. Đây là cơ hội tuyệt vời để chúng ta tự mình kiểm chứng điều này thông qua dữ liệu. Xây dựng mô hình dược động học quần thể Đầu tiên, chúng ta cần thu thập các thông số popPK, xây dựng mô hình, thực hiện mô phỏng và trực quan hóa PTA. Chúng ta sẽ dựa trên một phân tích gộp về dược động học cho piperacillin/tazobactam trên nhiều nhóm bệnh nhân khác nhau, từ trẻ sinh non đến người cao tuổi. Mô hình gộp này phức tạp và tinh vi hơn rất nhiều so với các mô hình đơn lẻ. Dưới đây là đoạn mã khởi tạo mô hình cơ bản sử dụng ngôn ngữ R và gói mrgsolve.
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội