messenger_logo
Liên hệ qua Messenger
SciEco

Tích hợp python trong stata phần 2: ba cách sử dụng python trong stata

I
IEFPA
Ngày viết: 04/05/2026

Trong bài đăng trước, tôi đã chỉ cho bạn cách cài đặt Python và thiết lập Stata để sử dụng Python. Bây giờ, chúng ta đã sẵn sàng để sử dụng Python. Có ba cách để sử dụng Python trong Stata: gọi Python một cách tương tác, đưa mã Python vào các do-file và ado-file, và thực thi các tệp script Python. Mỗi cách hữu ích trong những trường hợp khác nhau, vì vậy tôi sẽ trình bày cả ba. Các ví dụ được cố tình đơn giản và đôi khi mang tính minh họa. Tôi sẽ trình bày một số ví dụ phức tạp hơn trong các bài đăng sau, nhưng trong bài này, tôi muốn giữ mọi thứ đơn giản.

Gọi Python Tương Tác

Bạn có thể sử dụng Python một cách tương tác trong Stata bằng cách gõ `python` vào cửa sổ lệnh của Stata.

1. python
2----------------------------------------------- python (type end to exit) ------

Stata nhắc nhở bạn rằng bạn có thể gõ `end` để thoát Python khi hoàn tất. Bây giờ bạn có thể gõ mã Python vào cửa sổ lệnh. Ví dụ, bạn có thể hướng dẫn Python in ra một cụm từ.

1>>> print("Hello Stata, I am Python")
2Hello Stata, I am Python

Bạn cũng có thể sử dụng Python như một máy tính tương tác.

1>>> 2*3
26
3>>> 3*4
412

Sau đó, bạn có thể gõ `end` để thoát khỏi Python và quay lại Stata.

1>>> end
2--------------------------------------------------------------------------------

Bạn cũng có thể chỉ cần gõ `python:` theo sau là một câu lệnh Python. Python sẽ chạy câu lệnh đó và sau đó quay lại Stata. Đây là một ví dụ đơn giản:

1. python: print("Hello Stata, I am Python")
2Hello Stata, I am Python

Bạn cũng có thể sử dụng cú pháp này cho các phép tính nhanh:

1. python: 2*3
26

Python Trong Do-file Và Ado-file

Bạn có thể sử dụng `python:` theo sau là một lệnh đơn giản như

1. python: print("Hello Stata, I am Python")

trong các do-file và ado-file, giống như khi bạn làm việc tương tác.

Bạn cũng có thể sử dụng các khối mã Python để chạy nhiều câu lệnh Python trong các do-file và ado-file. Một khối mã Python bắt đầu bằng `python` và kết thúc bằng `end`, như chúng ta đã thấy trong ví dụ tương tác ở trên. Ví dụ 1 dưới đây là một do-file bắt đầu bằng lệnh `display` của Stata, mở một khối mã Python bằng `python`, thực thi hai câu lệnh `print()` của Python, kết thúc khối mã Python bằng `end` và kết thúc bằng một lệnh `display` của Stata.

Ví dụ 1: hello.do

1display "Hello Python, I am Stata."
2print("Hello Stata.")
3print("I am Python.")

display "Nice to meet you Python!"

end

Khi chúng ta gõ `do hello`, dễ dàng thấy khối mã Python trong kết quả đầu ra vì khối mã bắt đầu và kết thúc bằng các dòng dấu gạch ngang.

1. display "Hello Python, I am Stata."
2Hello Python, I am Stata.
3. python
4----------------------------------------------- python (type end to exit) ------
5>>> print("Hello Stata.")
6Hello Stata.
7>>> print("I am Python.")
8I am Python.
9>>> end
10--------------------------------------------------------------------------------
11. display "Nice to meet you Python!"
12Nice to meet you Python!

Có hai điều quan trọng cần biết về các khối mã. Thứ nhất, bạn có thể bắt đầu một khối mã bằng `python` hoặc `python:`. Cả hai đều sẽ chạy khối mã, nhưng chúng hoạt động khác nhau nếu Python gặp lỗi trong khối mã. Nếu bạn bắt đầu khối mã bằng `python` và Python gặp lỗi, Python sẽ tiếp tục thực thi các mã còn lại trong khối. Nếu bạn bắt đầu khối mã bằng `python:` và Python gặp lỗi, Python sẽ trả quyền điều khiển về Stata mà không thực thi các mã Python còn lại. Một thông báo lỗi chi tiết sẽ được in ra, và một mã lỗi sẽ được ban hành trong cả hai trường hợp.

Thứ hai, thụt lề trong các khối mã Python có chức năng chứ không chỉ mang tính thẩm mỹ. Ví dụ, bạn có thể bị cám dỗ viết một khối mã Python và thụt lề mã trong khối như trong Ví dụ 2.

Ví dụ 2: hello2.do

1display "Hello Python, I am Stata."
2python:
3    print("Hello Stata.")
4    print("I am Python.")

display "Nice to meet you Python!"

end

Nhưng Python sử dụng thụt lề để “xác định nhóm các câu lệnh” (Python Documentation 2.1.7). Python trả về lỗi thụt lề (IndentationError) khi chúng ta chạy Ví dụ 2.

1. display "Hello Python, I am Stata."
2Hello Python, I am Stata.
3. python:
4----------------------------------------------- python (type end to exit) ------
5>>>     print("Hello Stata.")
6File "
7", line 1
8    print("Hello Stata.")
9    ^
10IndentationError: unexpected indent
11(1 line skipped)
12--------------------------------------------------------------------------------
13r(7102);

Bạn có thể đọc thêm về việc sử dụng thụt lề trong tài liệu Python.

Chạy Các Tệp Script Python

Bạn cũng có thể chạy các tệp script Python trong Stata. Một tệp script Python chỉ đơn giản là tập hợp các câu lệnh Python được lưu trong một tệp với phần mở rộng .py. Ví dụ 3 cho thấy nội dung của một tệp script Python có tên `hello.py`.

Ví dụ 3: hello.py

1print("Hello Stata.")
2print("I am Python.")

Chúng ta có thể chạy tệp script Python bằng cách gõ `python script` theo sau là tên của tệp script chúng ta muốn chạy.

1. python script hello.py
2Hello Stata.
3I am Python.

Phương pháp chạy Python trong Stata này hữu ích khi bạn gặp một tệp script Python do người khác viết. Nó cũng hữu ích để lưu một tập hợp các hàm Python. Tôi sẽ chỉ cho bạn cách truyền đối số từ Stata sang các tệp script Python trong một bài đăng blog sắp tới.

Bạn có thể sử dụng `python script` trong cửa sổ lệnh, do-file hoặc ado-file.

Trong bài đăng blog này, tôi đã trình bày cho bạn ba cách khác nhau để chạy Python trong Stata. Mỗi cách đều hữu ích trong những trường hợp khác nhau, và tôi sẽ minh họa cách sử dụng chúng trong các bài đăng blog sắp tới. Lần tới, tôi sẽ chỉ cho bạn cách tải xuống và cài đặt các gói Python.

✨ Việc tích hợp Python vào Stata mang lại sự linh hoạt đáng kể, giúp người dùng tận dụng sức mạnh của cả hai công cụ phân tích dữ liệu hàng đầu, từ thực thi nhanh chóng các câu lệnh đơn lẻ đến quản lý các tác vụ phức tạp qua script và do-file.

Câu Hỏi Tư Duy Hoặc Bài Tập Ứng Dụng

Hãy thử viết một do-file trong Stata để:

1. Hiển thị thông báo "Chào mừng đến với tích hợp Stata-Python!" bằng lệnh `display` của Stata.

2. Sử dụng một khối mã Python để tính tổng của 5 và 7, sau đó in kết quả ra màn hình.

3. Hiển thị thông báo "Kết thúc quá trình tích hợp." bằng lệnh `display` của Stata.

Bạn sẽ sử dụng `python` hay `python:` để bắt đầu khối mã Python trong trường hợp này, và tại sao?


Bài viết khác
Stata cung cấp một phương thức đơn giản và tinh tế để thực hiện các mô hình hồi quy Bayes bằng cách thêm tiền tố bayes vào trước các lệnh ước lượng. Với hơn 45 lệnh được hỗ trợ, người dùng có thể linh hoạt lựa chọn giữa các phân phối tiền nghiệm mặc định hoặc tự thiết lập theo nhu cầu nghiên cứu. Trong bài viết này, chúng ta sẽ tìm hiểu cách áp dụng hồi quy logistic Bayes và khám phá sức mạnh của phân phối tiền nghiệm Cauchy đối với các hệ số hồi quy. Một thách thức phổ biến khi làm việc với Bayes là việc lựa chọn phân phối tiền nghiệm. Cách tiếp cận thận trọng thường dùng các tiền nghiệm yếu hoặc không có thông tin để đảm bảo tính khách quan dựa trên dữ liệu. Tuy nhiên, các tiền nghiệm không có thông tin đôi khi không đủ để giải quyết những vấn đề như hiện tượng phân tách hoàn hảo trong hồi quy logistic. Ngược lại, nếu không có kiến thức chuyên gia sâu sắc, việc chọn tiền nghiệm có thông tin cũng không hề dễ dàng. Dựa trên khuyến nghị của Gelman và các cộng sự, việc sử dụng phân phối tiền nghiệm Cauchy thông tin yếu là một giải pháp cân bằng hiệu quả. Chuẩn bị dữ liệu và chuẩn hóa Chúng ta sử dụng bộ dữ liệu Iris nổi tiếng để phân loại hoa. Biến phụ thuộc virg phân biệt loài Iris virginica với các loài khác. Các biến độc lập bao gồm chiều dài và chiều rộng của đài hoa và cánh hoa. Theo khuyến nghị của các nhà nghiên cứu, các biến độc lập nên được chuẩn hóa để có trung bình bằng 0 và độ lệch chuẩn bằng 0.5 trước khi áp dụng phân phối tiền nghiệm Cauchy.
Trong bài viết này, bạn sẽ tìm hiểu kiểm định t là gì và cách thực hiện phương pháp này trong ngôn ngữ lập trình r. Đầu tiên, chúng ta sẽ làm quen với một hàm đơn giản giúp thực hiện kiểm định chỉ với một dòng mã nguồn. Sau đó, chúng ta sẽ cùng khám phá bản chất của kiểm định thông qua việc xây dựng từng bước với dữ liệu thực tế về hành khách tàu Titanic. Kiểm định t là gì Kiểm định t là một quy trình thống kê được sử dụng để kiểm tra xem sự khác biệt giữa hai nhóm có ý nghĩa hay chỉ là do ngẫu nhiên. Trong bài viết này, chúng ta sẽ xem xét dữ liệu từ các hành khách trên tàu Titanic, chia họ thành hai nhóm nam và nữ. Giả sử chúng ta muốn kiểm tra giả thuyết rằng nam giới và nữ giới có độ tuổi trung bình như nhau. Nếu dữ liệu cho thấy phụ nữ trẻ hơn nam giới trung bình 2 tuổi, chúng ta cần đặt câu hỏi: liệu đây là một sự khác biệt thực sự hay chỉ là sự trùng hợp ngẫu nhiên? Kiểm định t sẽ giúp chúng ta trả lời câu hỏi đó. Tại sao kiểm định t lại quan trọng
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