messenger_logo
Liên hệ qua Messenger
SciEco

[Dữ liệu chuỗi thời gian] ĐỊNH DẠNG VÀ KHAI BÁO CHUỖI THỜI GIAN

MH
Mỹ Hiền
Ngày viết: 18/08/2023

Khi thực hành với dữ liệu chuỗi thời gian sẽ có một số định dạng thời gian không thích hợp cho Stata. Vì vậy, chúng ta phải định dạng biến thời gian thích hợp. Trong bài viết này, SciEco cung cấp nội dung về định dạng và khai báo chuỗi thời gian trên Stata.

1. Tạo chuỗi thời gian bất kì

Trong Stata, khi muốn thực hiện các phép tính hoặc phân tích liên quan đến ngày và thời gian thì cần chuyển đổi dữ liệu thành các giá trị số nguyên dưới dạng %t (định dạng ngày và thời gian của Stata).

Một số dạng chuỗi thời gian trên Stata:

Thời gian
Ví dụ
Hàm-Stata
Định dạng
date
01jan2000
td(day-month-year)
%td
weekly date
2000w1
tw(year-week)
%tw
monthly date
2000m1
tm(year-month)
%tm
quarterly date
2000q1
tq(year-quarter)
%tq
yearly date
2000
year
%ty

Hướng dẫn cách tạo dữ liệu theo ngày trên Stata:

VD: đối với 50 quan sát dữ liệu hàng ngày bắt đầu từ năm 2000, có thể tạo bằng cách dựa vào Hàm-StataĐịnh dạng (%t)

1set obs 50
2gen time = tq(2000q1) + _n-1 
3format %tq time

Tương tự, có thể tự tạo chuỗi thời gian theo tuần, tháng, quý,..

Để xem các tùy chọn khác và để tìm hiểu thêm cách chúng hoạt động, có thể nhập: help dates and times

2. Tạo chuỗi thời gian từ các thành phần thời gian

Thời gian
Hàm-Stata
date
td = mdy(M-D-Y)
weekly date
tw = yw(Y-W)
monthly date
tm = ym(Y-M)
quarterly date
tq = yq(Y-Q)
yearly date
ty = y(Y)

VD: Tập dữ liệu có 2 biến số m (tháng) và y (năm), chuyển đổi sang dạng ngày Stata có thể hiểu được như sau:

1gen month = ym(y,m)
2format month %tm

3. Định dạng chuỗi thời gian

Giới thiệu về data: Các biến ngày tháng đang ở dữ liệu dạng chuỗi (string- màu đỏ) từ “1-Jan-98” đến “15-Jan-08” (hình dưới). Do đó, cần định dạng để Stata hiểu.

Trước hết, dùng các hàm chuyển đổi từ "string" sang "numeric" để chuyển chuỗi ký tự này thành một giá trị số nguyên phù hợp để định dạng chuỗi ngày tháng (%t). Với chuỗi kí tự "1-Jan-98" sử dụng hàm date().

Cấu trúc câu lệnh:

1date (s1, s2 [, Y])

Trong đó:

Ví dụ:

1date("1/15/08","MDY",1999) = 15jan1908
2date("1/15/08","MDY",2019) = 15jan2008
3date("1/15/50","MDY",2000) = 15jan1950
4date("1/15/00","MDY",2050) = 15jan2000

Thực hành trên stata:

Đối với “date1

1gen datevar = date(date1,"DMY",2008)
2format datevar %td

Đối với “date2

1gen datevar = date(date2,"MDY",2008)
2format datevar %td

Đối với “date3

1tostring date3a=, gen (date3a)
2gen datevar = date(date3a,"YMD")
3format datevar %td

Tương tự:

Format
String-to-numeric conversion function
%td
date(string,mask)
%tw
weekly(string, mask)
%tm
monthly(string, mask)
%tq
quarterly(string, mask)
%ty
yearly(string, mask)

4. Trích xuất thành phần từ ngày và thời gian

Khi có một biến %t, chúng ta có thể sử dụng các hàm trích xuất để lấy các thành phần của biến đó. Ví dụ, các hàm sau đây thích hợp để sử dụng với các biến %td (date)

Function
Return
year(date)
năm có 4 chữ số; vd: 1980, 2002,..
month(date)
tháng: 1, 2, . . . , 12
day(date)
ngày trong tháng 1, 2, . . . , 31
quarter(date)
qúy trong năm 1,2,3,4
week(date)
tuần trong năm 1, 2, . . . , 52
dow(date)
ngày của tuần 0, 1, . . . , 6; 0 = Sunday
doy(date)
ngày của năm 1, 2, . . . , 366

VD: Biến date được định dạng như hình dưới, cần trích xuất thành các thánh phần của chuỗi thời gian

1gen day=day(date)
2gen week = week(date)
3gen month = month(date)
4gen quar = quarter(date)
5gen year=year(date)

5. Chuyển đổi dữ liệu

Chuyển đổi từ dữ liệu ngày - td thành:

From date to
weekly
tw = wofd(td)
monthly
tm = mofd(td)
quarterly
tq = qofd(td)
yearly
ty = yofd(td)

VD: Biến date đang ở dạng td

tạo dữ liệu tháng từ dữ liệu ngày

1gen monthly = mofd(date)
2format monthly %tm

tạo dữ liệu quý từ dữ liệu ngày

1gen quarterly = qofd(date)
2format quarterly %tq

tạo dữ liệu năm từ dữ liệu theo ngày

1gen yearly = yofd(date)
2format yearly %ty

Chuyển đổi từ .... về dữ liệu ngày-td (tương ứng ngày đầu tiên của tháng):

From
To - date
weekly
td = dofw(tw)
monthly
td = dofm(tw)
quarterly
td = dofq(tq)
yearly
td = dofy(ty)

VD: Từ dữ liệu theo Tháng tạo dữ liệu theo Quý:

1gen quarterly =qofd(dofm(monthly))
2format quarterly %tq

6. Khai báo chuỗi dữ liệu

Khi có biến thời gian ở 'date format' - cần khai báo dữ liệu của mình dưới dạng chuỗi thời gian để sử dụng toán tử chuỗi thời gian. Trong Stata:

1tsset thời gian

Lệnh tsset thời gian, cho Stata biết rằng biến thời gian sẽ được xác định là biến đưa ra thời gian trên lịch, tất cả các đầu và độ trễ sau đó dựa trên thứ tự từ biến này.

Theo dõi Science for Economics để cập nhật thêm những bài viết tiếp theo nhé!


Bài viết khác
1. Giới thiệu Phân cụm đồ thị (K-means Clustering) là quá trình phân chia hoặc tách biệt dữ liệu theo các nhóm dựa trên các đặc điểm chung sau đó được biểu thị qua một đồ thị. Phù hợp với những công việc cần phân khúc các tệp khách hàng trong thương mại, phân tích thị trường. Điều này giúp các công ty hiểu rõ hơn về sở thích và nhu cầu của từng nhóm, qua đó đưa ra chiến lược marketing phù hợp. Trong thuật toán phân cụm, K-means là một thuật toán phân cụm đơn giản và phổ biến trong học máy (machine learning) để phân cụm các điểm dữ liệu thành các nhóm riêng biệt dựa trên các đặc điểm của chúng. Thuật toán này dùng để chia dữ liệu thành các nhóm dựa trên khoảng cách giữa các điểm dữ liệu với nhau. 2. Ta cài đặt những thư viện sau
Trong thời đại của số hóa và khoa học dữ liệu lên ngôi, khả năng phân tích, giải mã và trích xuất thông tin hữu ích từ khối lượng dữ liệu khổng lồ là một kỹ năng không thể thiếu để giúp bạn thích nghi với yêu cầu của công việc! Đặc biệt, với việc làm chủ STATA, phần mềm phân tích dữ liệu có giao diện thân thiện và khả năng xử lý dữ liệu mạnh mẽ sẽ là công cụ đắc lực cho bạn. Để có thể giúp bạn chinh phục STATA, SciEco ở đây để mang đến cho bạn khóa học STATA đầy hấp dẫn: Nội dung khóa học chi tiết: Bài 1: Giới thiệu về STATA và VES
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