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
Trong lĩnh vực sinh thái học định lượng và dịch tễ học phân tử, các nhà khoa học thường sử dụng mô hình thống kê để dự báo sự phân bố loài hoặc mô hình lây truyền bệnh tật. Tuy nhiên, một ứng dụng thú vị khác của mô hình cộng tổng quát, thường được gọi là GAM, chính là dự báo giá trị vòng đời khách hàng trong các doanh nghiệp phần mềm dịch vụ. Việc dự báo CLV đối mặt với những thách thức thống kê tương tự như dự báo sinh thái: các mối quan hệ phi tuyến tính đạt đến giới hạn bão hòa, cấu trúc phân cấp nơi các nhóm khách hàng hành xử khác nhau và nhu cầu cân bằng giữa tính linh hoạt của mô hình với khả năng giải thích cho các bên liên quan. Nhiều doanh nghiệp hiện nay vẫn dựa vào các phương pháp tính toán đơn giản như lấy giá trị đơn hàng trung bình nhân với tần suất và thời gian gắn bó. Cách tiếp cận này bỏ qua quỹ đạo cá nhân và động lực thời gian. Ngược lại, các mô hình học máy dạng hộp đen có thể nắm bắt các quy luật phức tạp nhưng lại thiếu tính diễn giải cần thiết cho các quyết định chiến lược. Mô hình GAM xuất hiện như một giải pháp trung gian hoàn hảo, cho phép nắm bắt các mối quan hệ phi tuyến phức tạp thông qua các hàm mượt có thể trực quan hóa, đồng thời xử lý tốt hiện tượng phương sai thay đổi đặc trưng trong dữ liệu doanh thu. Hiểu về động lực kinh doanh SaaS Các công ty SaaS hoạt động dựa trên doanh thu định kỳ từ đăng ký thuê bao. Khách hàng trả tiền hàng tháng hoặc hàng năm để duy trì quyền truy cập vào phần mềm. Điều này thay đổi hoàn toàn bài toán thống kê. Thách thức lớn nhất là chi phí thu hút khách hàng thường rất lớn so với doanh thu hàng tháng. Một khách hàng trả 99 đô la mỗi tháng nhưng tốn 500 đô la để thu hút sẽ cần ít nhất sáu tháng để doanh nghiệp đạt điểm hòa vốn.
Trong bài viết này, tôi sẽ giới thiệu cho bạn một cách tiếp cận tương đối đơn giản về thống kê Bayes. Phương pháp Bayes ngày càng trở nên phổ biến và bạn có thể thực hiện các mô hình này bằng lệnh bayesmh trong phần mềm Stata. Nội dung hôm nay sẽ tập trung vào các khái niệm, thuật ngữ chuyên môn và cú pháp cơ bản. Trong bài viết tiếp theo, chúng ta sẽ cùng tìm hiểu sâu hơn về mô hình Markov chain Monte Carlo thông qua thuật toán Metropolis-Hastings. Thống kê bayes qua ví dụ thực tế Nhiều người trong chúng ta được đào tạo theo trường phái thống kê tần suất, nơi các tham số được coi là các đại lượng cố định nhưng chưa biết giá trị. Chúng ta ước lượng các tham số này bằng cách lấy mẫu từ quần thể, và các mẫu khác nhau sẽ cho ra các ước lượng khác nhau. Tập hợp các ước lượng này tạo nên phân phối mẫu, giúp định lượng sự không chắc chắn của kết quả. Tuy nhiên, bản thân tham số vẫn luôn được xem là một hằng số cố định. Thống kê Bayes mang đến một tư duy hoàn toàn khác. Ở đây, các tham số được đối xử như các biến ngẫu nhiên và có thể được mô tả bằng các phân phối xác suất. Chúng ta thậm chí không cần dữ liệu để mô tả phân phối của một tham số, bởi xác suất đơn giản là mức độ tin tưởng của chúng ta vào giá trị đó.
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