Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/374558751

ỨNG DỤNG NGÔN NGỮ LẬP TRÌNH PYTHON TRONG NGHIÊN CỨU KHOA HỌC
SINH VIÊN THUỘC KHỐI NGÀNH KINH TẾ

Preprint · October 2023


DOI: 10.13140/RG.2.2.31108.91526/1

CITATIONS READS

0 1,177

1 author:

Anh Hoang Le
Banking University HCMC
44 PUBLICATIONS 250 CITATIONS

SEE PROFILE

All content following this page was uploaded by Anh Hoang Le on 10 October 2023.

The user has requested enhancement of the downloaded file.


ỨNG DỤNG NGÔN NGỮ LẬP TRÌNH PYTHON TRONG NGHIÊN CỨU
KHOA HỌC SINH VIÊN THUỘC KHỐI NGÀNH KINH TẾ

Lê Hoàng Anh
Phòng Nghiên cứu Khoa học và Chuyển giao Công nghệ, Viện Nghiên cứu
Khoa học và Công nghệ Ngân hàng, Trường Đại học Ngân hàng TP.HCM
Email: anhlh_vnc@hub.edu.vn
Tóm tắt
Bài viết này nhằm mục đích làm rõ các ứng dụng của ngôn ngữ lập trình Python
trong nghiên cứu khoa học sinh viên khối ngành kinh tế. Trong bài viết này, tác
giả tập trung giới thiệu các ứng dụng mạnh mẽ của ngôn ngữ lập trình Python
trong thu thập và trích xuất dữ liệu, tiền xử lý dữ liệu, trực quan hóa dữ liệu và
phân tích dữ liệu. Do khuôn khổ bài viết, tác giả không thể cung cấp các chỉ dẫn
cụ thể nhưng những học liệu cần thiết để các bạn sinh viên có thể tự nghiên cứu
khi ứng dụng ngôn ngữ lập trình Python trong nghiên cứu khoa học đã được tác
giả trình bày. Cuối cùng, một số kiến nghị nhằm nâng cao năng lực ứng dụng ngôn
ngữ lập trình Python trong hoạt động nghiên cứu khoa học sinh viên được tác giả
đề xuất.
Từ khóa: Python, ngôn ngữ lập trình, phân tích dữ liệu, nghiên cứu khoa học

1. Đặt vấn đề
Khi máy tính ngày càng trở nên phổ biến vào những năm 1950, 1960 và
1970, các nhà khoa học máy tính đã tập trung phát triển chúng hơn nữa, cùng với
đó là các phần mềm để thực hiện các tính toán dài, phức tạp và tự động hóa việc
thu thập dữ liệu. Các phần mềm này được viết bằng nhiều ngôn ngữ lập trình khác
nhau. Có rất nhiều ngôn ngữ lập trình, mỗi ngôn ngữ đã được thiết kế để lấp đầy
khoảng trống chưa được đáp ứng trong khả năng của những ngôn ngữ đi trước,
nhưng dù vậy, mọi ngôn ngữ được sử dụng phổ biến đều có ưu điểm và nhược
điểm. Do đó, các lập trình viên chuyên nghiệp thường có xu hướng sử dụng đồng

1
thời một số ngôn ngữ lập trình, nhưng vì các nhà khoa học có ít thời gian hơn
đáng kể để đầu tư nên họ thường thích thành thạo một ngôn ngữ có thể đáp ứng
càng nhiều nhu cầu càng tốt từ thu thập dữ liệu, trực quan hóa dữ liệu, phân tích
dữ liệu,...
Trong các ngôn ngữ lập trình thông dụng, Python là có thể được xem là một
ngôn ngữ đáp ứng tốt các nhu cầu nghiên cứu của các nhà khoa học (Van Rossum,
1998). Hơn nữa, các tác giả của bài viết này cảm thấy rằng Python là một trong
những ngôn ngữ dễ nhất dành cho người mới học, đồng thời đáp ứng tốt nhất cho
mục đích khoa học, chẳng hạn như tự động hóa, xử lý số liệu, trực quan hóa và
phân tích số liệu. Nó cũng cung cấp một môi trường nơi người dùng chỉ có thể bắt
đầu với những khả năng đơn giản nhưng có thể tiến tới sử dụng các tính năng
mạnh mẽ hơn, chẳng hạn như lập trình hướng đối tượng, khi kỹ năng phát triển.
Đối với hoạt động nghiên cứu khoa học sinh viên, ngôn ngữ Python có
nhiều ứng dụng hiệu quả trong việc hỗ trợ thu thập dữ liệu từ nhiều nguồn khác
nhau một cách tự động, hỗ trợ trực quan hóa dữ liệu thông qua các đồ thị. Bên
cạnh đó, hầu hết các phương pháp phân tích dữ liệu phổ biến từ dữ liệu chéo
(cross-sectional data), dữ liệu chuỗi thời gian (time-series data), dữ liệu bảng
(panel data) đều có thể thực hiện được bằng ngôn ngữ Python thông qua các thư
viện đã được xây dựng. Tuy nhiên, việc lựa chọn và dạy ngôn ngữ lập trình Python
cho sinh viên vẫn còn rất hạn chế, đặc biệt là đối với sinh viên không phải chuyên
ngành công nghệ thông tin. Sobral (2018) thực hiện nghiên cứu về mức độ phổ
biến của ngôn ngữ lập trình cho sinh viên tại Bồ Đào Nha, trong năm học 2016 -
2017, qua phân tích trên 46 khóa học về mức độ phổ biến của ngôn ngữ lập trình,
trong năm đầu, mức độ phổ biến của các ngôn ngữ lập trình lần lượt là C (48%),
Java (22%), C và Haskell (9%), C và Java (4%), Scheme và Java (4%). Đến năm
2019, Becker & Fitzpatrick (2019) khi xét 10 khoá học nhập môn lập trình của
ngành Kỹ thuật máy tính đã thấy rằng mức độ phổ biến của các ngôn ngữ lập trình
lần lượt là Java hoặc Python và C (cả hai đều chiếm 30%), C (20%. ), Python và

2
Java hoặc Haskell và C (cả hai chiếm 10%). Có thể thấy, ngôn ngữ lập trình
Python bắt đầu được đưa vào giảng dạy nhiều hơn trong những năm gần đây.
Tại Việt Nam, ngôn ngữ lập trình Python mới chỉ được giới thiệu đến sinh
viên không chuyên công nghệ thông tin trong những năm gần đây. Đồng thời, việc
vận dụng ngôn ngữ lập trình này để hỗ trợ hoạt động nghiên cứu khoa học của
sinh viên hiện nay là khá hạn chế. Sinh viên vẫn chưa biết cách khai thác sức
mạnh của ngôn ngữ lập trình trong việc tự động hóa một số quy trình trong hoạt
động nghiên cứu. Do đó, bài viết này nhằm mục đích giới thiệu một số ứng dụng
của ngôn ngữ lập trình Python trong hỗ trợ sinh viên nghiên cứu khoa học.
2. Giới thiệu về ngôn ngữ lập trình Python và Jupyter Notebook
Ngôn ngữ Python lần đầu tiên được sử dụng vào năm 1989 bởi Guido van
Rossum tại Hà Lan và bắt đầu được phát triển từ năm 1991. Sau đó Python tiếp
tục được phát triển dưới dạng ngôn ngữ mã nguồn mở bởi tổ chức Python
Software Foudation. Theo Mertz (2003), Python là một ngôn ngữ lập trình đơn
giản nhưng mạnh mẽ bởi nó vừa có được sức mạnh giống như các ngôn ngữ biên
dịch truyền thống nhưng cũng vừa có được các lợi thế của một ngôn ngữ thông
dịch (interpreted), hướng đối tượng (object-oriented). Python là ngôn ngữ lập trình
tương tác, thông dịch, hướng đối tượng với rât nhiều ưu điểm nổi bật như: cú pháp
trong sáng, dễ hiểu; tính tương thích cao; khả năng mở rộng; các kiểu dữ liệu động
ở mức cao; chạy trên đa nền.
Trước đây Jupyter Notebook có tên là IPython Notebook, đến năm 2014
tách ra khỏi IPython và đổi tên thành Jupyter Notebook. Jupyter hỗ trợ rất nhiều
các kernel cho các ngôn ngữ khác nhau, trong đó tập trung vào 3 ngôn ngữ là
Julia, Python và R. Jupyter là một nền tảng tính toán khoa học mã nguồn mở, với
khả năng nổi bật cho phép tương tác trực tiếp với từng dòng code (interactive).
Jupyter Notebook gồm 2 thành phần chính:
• Ứng dụng Web: cho phép tạo và chia sẻ tài liệu chứa live code, hình ảnh,
tài liệu (viết dưới dạng markdown),...

3
• Notebook documents: trình bày những gì có trong một notebook (code,
đồ thị,...)
➢ Ưu điểm của Jupyter Notebook
• Tạo code ngay trong trình duyệt, hỗ trợ syntax highlight, thụt lề,... như
một code editor.
• Chạy được code ngay trong trình duyệt.
• Hiển thị kết quả tính toán bằng cách sử dụng biểu diễn đa phương tiện,
như HTML, LaTeX, PNG, SVG,....
• Hỗ trợ markdown, khiến cho việc comment cho code trở nên trực quan
hơn nhiều so với việc dùng plain text.
➢ Giao diện của Notebook
Trong 1 notebook sẽ có 4 phần chính (đánh số theo thứ tự từ 1, 2, 3, 4) như
sau:

• 1: Tên của file notebook, tương ứng với tên file .ipynb.
• 2: Thanh Menu hiển thị nhiều chức năng khác nhau để điều khiển
notebook.
• 3: Thanh công cụ (toolbar) chứa các công cụ được sử dụng nhiều (run,
di chuyển code cell lên xuống, restart kernel...).
• 4: Code cell (sẽ nói kỹ ở phần tiếp)
➢ Cấu trúc của một Notebook
Cell Code
Một notebook bao gồm một chuỗi các cell. Một cell giống như một text
editor mini, có thể thực thi code bằng tổ hợp phím Shift + Enter hoặc nhấn nút

4
Run trên toolbar. Tuỳ thuộc vào kiểu cell mà output sẽ khác nhau, có 4 loại cell
được hỗ trợ trong Jupyter Notebook:
• Code: Là kiểu hay dùng nhất, bạn nhập và thực thi code trên loại cell
này.

• Markdown: Kiểu cell được dùng cho việc nhập văn bản, toàn bộ văn bản
của bạn sẽ được format bằng Markdown

• Raw NBConvert: được sử dụng để hiển thị các định dạng code khác
nhau thành HTML hoặc LaTeX.
• Heading: Thêm tiêu đề cho notebook, loại cell này hiện đã được merge
vào Markdown và không còn được khuyến khích dùng.
Ví dụ, gõ đoạn code sau, sau đó nhấn Shift + Enter hoặc click Run trên
toolbar:

Khi thực thi 1 cell, output của code sẽ được hiển thị ở phía dưới, đồng thời
label ở phía bên trái chuyển từ In[ ] (chưa thực thi) => In[*] (đang thực thi) =>
In[1] (đã thực thi - số trong ô ngoặc tương ứng với số lần thực thi cell của
notebook). Một điều cần lưu ý là không cần phải nhập hàm print mới có thể in ra
màn hình được, có thể nhập tên biến ở cuối cell như sau:

5
Kernel
Cùng với cell, kernel (nhân) là 2 thành phần quan trọng nhất của Jupyter.
Kernel bản chất là một chương trình thông dịch và thực thi code. Jupyter
Notebook đã cài sẵn cho chúng ta Kernel IPython để làm việc với Python, tuy
nhiên có khá nhiều kernel dành cho ngôn ngữ khác và người dùng có thể cài thêm
(R, Julia,...) khiến cho sử dụng Jupyter trở nên rất tiện dụng.
Khi người dùng thực thi một cell code, code sẽ được thực thi bởi kernel và
trả về output như những ví dụ trên. Một điều quan trọng trong Jupyter Notebook
là kernel vẫn chạy và liên kết giữa các cell code với nhau, chứ không tách rời từng
cell riêng lẻ, điều này trở nên cực kỳ tiện dụng cho việc debug.
Ví dụ như người dùng khai báo một hàm, import một thư viện,... vào một
cell và thực thi nó, thì cell khác sẽ nhận được giá trị đó trong lần thực thi tiếp, ví
dụ như:

Trong ví dụ trên, khai báo một hàm tính tổng như sau:

6
Vào một cell code và thực thi, sau đó ta tạo 1 cell code khác và truyền hai
biến a và b đã khai báo trước vào, và kết quả là tổng của 2 biến a và b đó.
Trong phần lớn thời gian, code của người dùng thường sẽ đi từ trên xuống,
tuy nhiên nên chú ý tới trạng thái của từng cell code, do nó biểu thị cell code đó
đã được thực thi lúc nào.
3. Ứng dụng của ngôn ngữ lập trình Python trong hoạt động nghiên cứu khoa
học sinh viên
3.1. Sử dụng API Python để thu thập và trích xuất dữ liệu
Trong lĩnh vực kinh tế cũng như các lĩnh vực khác, dữ liệu là hết sức quan
trọng để bắt đầu công việc nghiên cứu. Theo cách truyền thống, sinh viên khi thu
thập dữ liệu trong lĩnh vực kinh tế sẽ sử dụng các nguồn báo cáo như báo cáo tài
chính, niên giám thống kê,... để thu thập dữ liệu. Xa hơn, một số sinh viên có thể
sử dụng các website cung cấp dữ liệu như Tổng Cục Thống kê Việt Nam
(https://www.gso.gov.vn), Ngân hàng Thế giới (https://data.worldbank.org), Qũy
tiền tệ quốc tế (https://www.imf.org/en/Data), các website công ty chứng khoán,
hoặc các cơ sở dữ liệu như Thomson Reuters, Bloomberg ... đã được trang bị bởi
các trường đại học. Với các cách thu thập dữ liệu như trên, sinh viên thường phải
tổng hợp và thiết kế lại bảng dữ liệu cho phù hợp với nhu cầu nghiên cứu. Việc
làm này dù được thực hiện bằng công cụ Excel nhưng vẫn mất nhiều thời gian để
thực hiện.
Với ngôn ngữ lập trình Python, sinh viên có thể thực hiện thu thập và trích
xuất dữ liệu tự động, thiết kế bảng dữ liệu theo yêu cầu mà không phải sử dụng
công cụ Excel. Để làm được điều này, các bạn sinh viên có thể sử dụng các giao
diện lập trình ứng dụng (Application Programming Interface) viết tắt là API được
cung cấp bởi các website dữ liệu. API là một trong những đổi mới trong lĩnh vực
phát triển phần mềm, một thành phần không thể thiếu của hệ sinh thái phần mềm
(Manikas, 2016). Trong lịch sử, API đã có từ khi máy tính cá nhân ra đời và chủ
yếu tồn tại để trao đổi giữa hai hoặc nhiều chương trình (IBM, 2016). Sự xuất hiện
của API trên các website bắt đầu từ khoảng năm 2000. Kể từ đó, API đã nhận

7
được sự quan tâm đáng kể từ những lập trình viên, nhà nghiên cứu đến mức một
số chuyên gia cho rằng chúng ta hiện đang sống trong nền kinh tế API.
Hiện nay, hầu hết các website dữ liệu uy tín trên thế giới đều cung cấp API
chẳng hạn World Bank, AlphaVantage, Federal Reserve Economic Data (FRED),
Fama-French Data (Ken French’s Data Library), Bank of Canada, Econdb,
Enigma, Eurostat, The Investors Exchange (IEX), Moscow Exchange (MOEX),
NASDAQ, Naver Finance, Organisation for Economic Co-operation and
Development (OECD), Quandl, Stooq.com, Tiingo, Thrift Savings Plan (TSP),
World Bank, Yahoo Finance. Để thu thập dữ liệu từ các website này, sinh viên có
thể sử dụng thư viện pandas-datareader, thông qua việc cài đặt thư viện này:

Các hướng dẫn cụ thể có thể tìm thấy được tại website: https://pandas-
datareader.readthedocs.io/en/latest/
Để thu thập các dữ liệu kinh tế liên quan đến Việt Nam, sinh viên có thể sử
dụng API được cung cấp bởi World Bank, hoặc một số tổ chức tại Việt Nam như
VNSTOCK với thư viện vnstock, thông qua việc cài đặt thư viện này:

Các hướng dẫn cụ thể có thể tìm thấy được tại website:
https://pypi.org/project/vnstock/.
Bằng việc sử dụng ngôn ngữ Python, sinh viên có thể tự động hóa quá trình
thu thập và tổng hợp dữ liệu thành các bộ dữ liệu chéo, dữ liệu chuỗi thời gian,
dữ liệu bảng mà không cần phải xử lý lại trên công cụ Excel sau khi đã thu thập
được dữ liệu thô.
3.2. Sử dụng ngôn ngữ Python để tiền xử lý dữ liệu
Bên cạnh việc thu thập dữ liệu, các thao tác tiền xử lý dữ liệu (Data
preprocessing), bao gồm: lọc dữ liệu thiếu, dữ liệu nhiễu, dữ liệu trùng, dữ liệu
ngoại lai, chuẩn hóa dữ liệu,... trước khi phân tích cũng là cả một vấn đề với các
nghiên cứu sử dụng các bộ dữ liệu với kích thước lớn. Mặc dù có sự hỗ trợ của

8
công cụ Excel, tuy nhiên, việc xử lý vẫn mất rất nhiều thời gian do các thao tác
lặp đi lặp lại.
Tiền xử lý dữ liệu (Data Preprocessing) Là một kỹ thuật khai thác dữ liệu
(data mining technique) bao gồm chuyển đổi dữ liệu thô thành định dạng dễ hiểu,
có thể sử dụng được. Dữ liệu trong thế giới thực thường không đầy đủ, không nhất
quán và/ hoặc thiếu một số hành vi/xu hướng nhất định và có khả năng chứa nhiều
lỗi.
Các thao tác tiền xử lý dữ liệu bao gồm:
Kiểm tra dữ liệu thiếu (missing value)
Đây là công việc cần thiết vì nếu các giá trị còn thiếu không được nhà
nghiên cứu xử lý đúng cách, thì cuối cùng họ có thể rút ra một suy luận không
chính xác về dữ liệu.
Dữ liệu thiếu trong các tập dữ liệu huấn luyện mô hình có thể làm giảm sức
mạnh/ sự phù hợp của một mô hình hoặc có thể dẫn đến một mô hình sai lệch vì
chúng ta chưa phân tích chính xác hành vi và mối quan hệ với các biến khác. Nó
có thể dẫn đến dự đoán hoặc phân loại sai.
Kiểm tra dữ liệu nhiễu (noise)
Dữ liệu nhiễu là dữ liệu vô nghĩa, dữ liệu bị hỏng, hay dữ liệu mà máy
không thể hiểu và diễn giải một cách chính xác. Nhiễu có thể do sai số từ các công
cụ đo lường đưa vào hoặc sai số ngẫu nhiên do quá trình xử lý
Dữ liệu nhiễu có thể ảnh hưởng xấu đến kết quả phân tích dữ liệu và làm
sai lệch kết luận nếu không được xử lý đúng cách.
Kiểm tra dữ liệu ngoại lai (outlier)
Ngoại lệ là mẫu xuất hiện ở xa và tách khỏi tổng thể.
Các ngoại lệ có thể thay đổi mạnh mẽ kết quả phân tích dữ liệu và mô hình
thống kê. Có rất nhiều tác động bất lợi của các ngoại lệ trong bộ dữ liệu:
+ Ngoại lệ làm tăng phương sai lỗi và giảm sức mạnh của kiểm định thống

9
+ Nếu các ngoại lệ được phân phối không ngẫu nhiên, chúng có thể làm
giảm tính quy tắc
+ Chúng có thể thiên vị (bias) hoặc ảnh hưởng đến các ước tính có thể được
quan tâm thực sự
+ Chúng cũng có thể tác động đến giả định cơ bản của regression và các
giả định mô hình thống kê khác.
Kiểm tra dữ liệu trùng (duplicate)
Dữ liệu trùng là bất kỳ bản ghi nào vô tình chia sẻ dữ liệu với một bản ghi
khác trong cơ sở dữ liệu, hoặc được nhập nhiều lần từ người dùng.
Dữ liệu trùng làm cho bộ dữ liệu không sạch dẫn đến các báo cáo được tạo
ra từ dữ liệu đó không chính xác. Cuối cùng, các quyết định dựa trên việc phân
tích một bộ dữ liệu như vậy sẽ không đúng đắn.
Chuẩn hóa dữ liệu (Data standardizing)
Tập dữ liệu đầu vào thường chỉ chứa các thuộc tính số và do đó có thể cần
phải chia tỷ lệ (Feature scaling) cho các thuộc tính trong dữ liệu trước khi thực
hiện công việc tiếp theo như PCA, Kmeans...
Chia tỷ lệ là phương pháp giới hạn phạm vi của các thuộc tính để chúng có
thể được so sánh dựa trên các căn cứ chung. Một số cách để chia tỷ lệ là Standard
Scaler, Min-max Scaler...
Việc tiền xử lý dữ liệu sẽ trở nên dễ dàng hơn khi sinh viên sử dụng ngôn
ngữ lập trình Python thông qua các thư viện pandas, numpy, pandas-profiling,
scikit-learn. Các hướng dẫn cụ thể có thể tìm thấy được tại website: https://scikit-
learn.org/stable/modules/preprocessing.html
3.3. Trực quan hóa dữ liệu
Công việc quan trọng tiếp theo khi tiến hành phân tích dữ liệu là trực quan
hóa dữ liệu. Thông qua các biểu đồ, sinh viên có thể kể một câu chuyện về dữ liệu
họ thu thập được. Tùy vào mục tiêu nghiên cứu, đôi khi việc phân tích dữ liệu chỉ
cần dừng lại ở trực quan hóa dữ liệu. Với các phần mềm phân tích dữ liệu như
SPSS, STATA, EVIEW, hoặc Excel, việc trực quan hóa dữ liệu thông qua các

10
biểu đồ là hoàn toàn có thể. Tuy nhiên, các biểu đồ được vẽ từ các phần mềm bị
hạn chế bởi các mẫu biểu đã được dựng sẵn, thiếu sự đa dạng, cũng như việc tùy
chỉnh số liệu, lời văn trên biểu đồ thường khó có thể thực hiện được.
Thông qua việc trực quan hóa dữ liệu bằng ngôn ngữ Python, các thư viện
phổ biến như matplotlib, seaborn có các biểu đồ rất đa dạng, và sinh viên có thể
tùy chỉnh số liệu cũng như lời văn trên các biểu đồ. Đồng thời, việc vẽ biểu đồ,
trích xuất biểu đồ có thể tiến hành một cách tự động.

Hình 1. Các dạng biểu đồ trong thư viện seaborn


3.4. Phương pháp phân tích
Khi thực hiện các nghiên cứu định lượng trong lĩnh vực kinh tế, các nhóm
sinh viên thường sử dụng đa dạng các phương pháp phân tích tùy theo lĩnh vực
nghiên cứu. Chẳng hạn:

11
Với các nghiên cứu thuộc lĩnh vực tài chính – ngân hàng, các nhóm sinh
viên thường sử dụng đa dạng các phương pháp tùy theo dữ liệu chéo, dữ liệu chuỗi
thời gian, hoặc dữ liệu bảng. Đối với dữ liệu chéo và dữ liệu bảng, các phương
pháp thường được sử dụng như phương pháp bình phương bé nhất (OLS), tác
động cố định (FEM), tác động ngẫu nhiên (REM), phương pháp mô ment tổng
quát (GMM),... Đối với dữ liệu chuỗi thời gian các phương pháp tự hồi quy thường
được sử dụng như ARIMA, GARCH, ARCH,...
Với các nghiên cứu thuộc lĩnh vực quản trị kinh doanh, các nhóm sinh viên
thường sử dụng các phương pháp như đánh giá độ tin cậy của thang đo Cronbach's
Alpha, phân tích nhân tố khám phá (EFA), phân tích nhân tố khẳng định (CFA),
phân tích hồi quy bội, phân tích mô hình cấu trúc (SEM),...
Để thực hiện các phương pháp kể trên, các nhóm sinh viên thường sử dụng
các phần mềm phân tích thống kê như SPSS, STATA, EVIEW. Tuy nhiên, điểm
hạn chế của các phần mềm này là người sử dụng không thể biết được các tính toán
ẩn đằng sau phần mềm. Do đó, việc kết hợp và tùy chỉnh các thuật toán là khó có
thể thực hiện được theo nhu cầu của nhà nghiên cứu. Thêm vào đó, với dữ liệu có
kích thước lớn, các phần mềm cần phải có bản quyền để có thể sử dụng do các
bản dùng thử và các phiên bản Crack thường bị giới hạn về số lượng quan sát
trong các tập dữ liệu. Cuối cùng, việc sử dụng các thuật toán mới thường không
được nhanh chóng cập nhật trên các phần mềm mà thường được phát triển bằng
các ngôn ngữ lập trình như R, Python.
Với ngôn ngữ Python, sinh viên hoàn toàn có thể sử dụng các phương pháp
quen thuộc kể trên thông qua việc sử dụng các thư viện. Cụ thể:
Đối với các phương pháp ước lượng OLS, FEM, REM, GMM, ARIMA,
GARCH, ARCH, sinh viên có thể sử dụng thư viện statsmodels để thực hiện ước
lượng. Các hướng dẫn có thể được tìm thấy tại website:
https://www.statsmodels.org/stable/index.html
Đối với các phương pháp như như đánh giá độ tin cậy của thang đo
Cronbach's Alpha, phân tích nhân tố khám phá (EFA), phân tích nhân tố khẳng

12
định (CFA), phân tích hồi quy bội, phân tích mô hình cấu trúc (SEM), sinh viên
có thể sử dụng thư viện semopy để thực hiện ước lượng. Các hướng dẫn có thể
được tìm thấy tại website: https://semopy.com
Như đã trình bày trước đó, việc sử dụng các thuật toán mới thường không
được nhanh chóng cập nhật trên các phần mềm mà thường được phát triển bằng
các ngôn ngữ lập trình như R, Python. Chẳng hạn, các thuật toán học máy
(Machine Learning) được phát triển ngày càng nhiều trong những năm gần đây
với 2 nhóm lớn là học có giám sát (Supervised learning), học không có giám sát
(Unsupervised learning) được ứng dụng nhiều trong dự báo, phân tích tương quan,
phát hiện các quy luật,... trong lĩnh vực kinh tế. Các thuật toán này đều có thể
được thực hiện, cải tiến bằng ngôn ngữ Python thông qua thư viện scikit-learn.
Sinh viên có thể tìm thấy các hướng dẫn tại website: https://scikit-
learn.org/stable/user_guide.html.
4. Một số kiến nghị nâng cao năng lực ứng dụng ngôn ngữ lập trình Python
trong hoạt động nghiên cứu khoa học sinh viên
Có thể thấy, ngôn ngữ lập trình Python có rất nhiều ứng dụng đa dạng trong
hoạt động nghiên cứu khoa học sinh viên. Tuy nhiên, trong lúc này, việc nâng cao
năng lực ứng dụng ngôn ngữ lập trình Python trong hoạt động nghiên cứu khoa
học của sinh viên là cần thiết. Để làm được điều đó, tác giả đề xuất một số kiến
nghị sau:
Thứ nhất, cần rèn luyện cho sinh viên thói quen tư duy giải quyết vấn đề
bằng các thuật toán, giải quyết các công việc lặp đi lặp lại bằng lập trình. Lập trình
là một công việc khó với các bạn sinh viên không thuộc chuyên ngành công nghệ
thông tin. Do đó, để các bạn có động lực trong việc học và vận dụng ngôn ngữ lập
trình Python, trước hết cần cho các bạn thấy được lợi ích và sức mạnh của việc tự
động hóa trong giải quyết các vấn đề thuộc lĩnh vực kinh tế hoặc công việc hàng
ngày.
Thứ hai, rèn luyện kỹ năng viết code gắn liền với các chủ đề nghiên cứu
trong lĩnh vực kinh tế. Sinh viên có thể học code nhanh hơn khi gắn với các chủ

13
đề kinh tế, cái mà sinh viên đã quen thuộc. Tiếp theo, sinh viên cần nắm chắc các
quy tắc viết code của ngôn ngữ lập trình Python và bắt đầu với các nhiệm vụ từ
đơn giản đến phức tạp.
Thứ ba, cần nâng cao ý thức tự học, tự sáng tạo của sinh viên khi học ngôn
ngữ Python. Thay vì chỉ tập trung và các đoạn code có sẵn do giáo viên cung cấp,
sinh viên cần hiểu được ý nghĩa và tác dụng của các đoạn code đó để có thể vận
dụng. Đồng thời, việc vận dụng cần được tiến hành một cách chủ động, tự lực và
liên tục. Sau khi đã quen dần với việc viết code, sinh viên cần có sự sáng tạo trong
việc lập trình, cải thiện hiệu suất các dòng code.
Tài liệu tham khảo
Becker, B. A., & Fitzpatrick, T. (2019). What Do CS1 Syllabi Reveal About Our
Expectations of Introductory Programming Students? Proceedings of the
50th ACM Technical Symposium on Computer Science Education, 1011–
1017. https://doi.org/10.1145/3287324.3287485
IBM. (2016). Innovation in the API economy: Building winning experiences and
new capabilities to compete.
Manikas, K. (2016). Revisiting software ecosystems Research: A longitudinal
literature study. Journal of Systems and Software, 117, 84–103.
https://doi.org/10.1016/j.jss.2016.02.003
Mertz, D. (2003). Text Processing in Python. Addison-Wesley Professional.
Sobral, S. (2018). Bachelor’s and master’s degrees integrated in portugal in the
area of computing: a global vision with emphasis on programming ucs and
programming languages used (p. 667).
https://doi.org/10.21125/iceri.2018.1132

14

View publication stats

You might also like