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
Mô hình hồi quy tự vectơ cấu trúc là một công cụ mạnh mẽ trong kinh tế lượng vĩ mô, giúp chúng ta nhận diện các cú sốc kinh tế và đánh giá tác động của chúng qua thời gian. Trong bài viết này, chúng ta sẽ tìm hiểu cách thiết lập các ràng buộc dài hạn trong mô hình này bằng cách tái hiện lại nghiên cứu kinh điển của hai tác giả Blanchard và Quah năm 1989 trên phần mềm Stata. Khung Lý Thuyết Cơ Bản Trong các nghiên cứu trước đây về hồi quy tự vectơ cấu trúc, việc nhận diện các tham số thường dựa trên các ràng buộc ngắn hạn, tức là cách các cú sốc tác động ngay lập tức lên các biến nội sinh tại thời điểm xảy ra cú sốc. Ngược lại, Blanchard và Quah đạt được sự nhận diện bằng cách áp dụng các ràng buộc lên tác động dài hạn của các cú sốc, tức là phản ứng giới hạn của một biến nội sinh khi thời gian tiến về vô hạn. Trong một hệ hồi quy tự vectơ dừng, phản ứng của mỗi biến đối với từng cú sốc phải tiến về không trong dài hạn. Blanchard và Quah phân tích một hệ thống gồm tổng sản phẩm quốc gia thực tế GNP và tỷ lệ thất nghiệp, trong đó tốc độ tăng trưởng GNP và mức thất nghiệp được giả định là các chuỗi dừng. Hệ thống này có hai cú sốc là cú sốc cung và cú sốc cầu. Phản ứng dài hạn của tăng trưởng GNP và thất nghiệp đối với các cú sốc này phải bằng không vì các biến này là dừng.
Một biểu đồ xuất sắc không chỉ dừng lại ở việc hiển thị số liệu chính xác mà còn phải truyền tải thông điệp một cách hiệu quả nhất. Tùy thuộc vào mục đích truyền thông, bạn có thể cần một biểu đồ phù hợp với tiêu chuẩn nghiêm ngặt của các tạp chí khoa học, một biểu đồ có màu sắc tương phản cao để người đọc dễ dàng phân biệt, hoặc đơn giản là một biểu đồ tối giản với tông màu xám cổ điển. Hành trình thiết kế này thường bắt đầu từ việc vẽ một biểu đồ thô từ dữ liệu nghiên cứu, sau đó từng bước biến đổi diện mạo của nó để đạt được phong cách mong muốn. Stata cung cấp cho người dùng những công cụ vô cùng mạnh mẽ để thực hiện việc này một cách nhanh chóng và có hệ thống. Khởi đầu với biểu đồ mặc định trong Stata Để minh họa cho quá trình tùy biến, chúng ta sẽ bắt đầu với một biểu đồ kết hợp nhiều thành phần bao gồm biểu đồ phân tán của các điểm dữ liệu thực tế, đường xu hướng từ mô hình ước lượng và vùng biểu diễn khoảng tin cậy.
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