Thứ Tư, 25 tháng 9, 2013

Data interpolation (cập nhật thêm)

Bài hay của TS Lê Giang:

Data interpolation

Giang Le: Có một số bạn email hỏi tôi có cách nào nội suy (interpolate) số liệu GDP quí (hoặc một chuỗi macro nào đó) thành số theo tháng không. Hầu hết các bạn có nhu cầu này đều muốn ước lượng (estimate) một mô hình kinh tế lượng (time series) nào đó nhưng chuỗi GDP quí quá ngắn nên muốn sử dụng chuỗi theo tháng để tăng số observation (điểm quan sát?).
 Đa số các chuyên gia kinh tế lượng sẽ cho rằng không nên làm như vậy ngay cả khi có số liệu GDP tháng. Có rất nhiều lý do để không nên chuyển từ mô hình quí sang tháng nhưng hai lý do chính là noise vs signal và structural rigidity.
Lý do thứ nhất thuần tuý là vấn đề thống kê và không chỉ giới hạn trong kinh tế/tài chính. Hầu hết các chuỗi số liệu time series có đặc tính chung là khi frequency tăng lên thì tỷ lệ noise/signal cũng tăng lên, do vậy information content[*] của số liệu giảm xuống. Vấn đề này càng nghiêm trọng đối với các chuỗi số liệu macro vì sai số đo đạc và tổng hợp (measurement & aggregation errors) lớn hơn nhiều số liệu tài chính hay các ngành khoa học khác.

Để giảm noise người ta có thể sử dụng một số statistical filters, vd moving average hay một số smoothing techniques. Tuy nhiên những biện pháp này thường dẫn đến một số vấn đề phức tạp khác như làm thay đổi auto correlation structure của chuỗi số liệu hay làm mất một số observation ở đầu và/hoặc cuối chuỗi. Ngoài ra các giải pháp thuần tuý thống kê như vậy không làm tăng information content nên về bản chất không giúp gì cho việc ước lượng/kiểm định mô hình lý thuyết.

Lý do thứ hai thiên về bản chất kinh tế. Một hệ thống kinh tế có quán tính rất lớn nên trong một khoảng thời gian ngắn (vd tháng, tuần) các biến số macro không thể thay đổi nhiều dẫn đến việc sử dụng high frequency data không có ý nghĩa. Nhiều nhà kinh tế cho rằng với những mô hình sử dụng số liệu macro, annual frequency có lẽ là hợp lý nhất. Tuy nhiên vì các chuỗi số liệu năm thường ngắn nên họ phải chấp nhận sử dụng số liệu quí dù như vậy chưa phải tối ưu. Frequency ngắn hơn quí hầu như chỉ sử dụng cho số liệu tài chính hoặc môt số trường hợp hãn hữu khi mô hình kinh tế liên quan đến số liệu nominal (vd lạm phát, lãi suất, tỷ giá). Mô hình kinh tế phải phản ánh ở một mức độ nhất định thực tế decision making của các economic agents (policy maker, doanh nghiệp, người tiêu dùng) và sự tương tác của họ trong các social/economic institutions. Đa số các doanh nghiệp không thể thay đổi kế hoạch kinh doanh hàng tháng chứ đừng nói hàng tuần, policy maker cũng vậy. Người tiêu dùng có thể có decision making frequency ngắn hơn nhưng họ có nhiều constraint dài hạn như việc làm, gia đình.

Tóm lại nếu bạn cần ước lượng một mô hình macro đừng nghĩ rằng sử dụng số liệu tháng sẽ tốt hơn ngay cả khi cơ quan thống kê cung cấp loại số liệu này. Trong trường hợp những chuỗi số macro chỉ được thống kê theo quí, cố gắng biến đổi chúng thành số liệu tháng còn tệ hơn vì có thể bạn không thêm được information content mà thậm chí còn làm distort chuỗi số liệu gốc bởi các kỹ thuật interpolation. Nếu chẳng may bạn chỉ có thể kiếm được số liệu quí rất ngắn không đủ để ước lượng mô hình quí, đừng cố gắng biến những dữ liệu này thành tháng để có thêm observations. Thà phải chấp nhận nghiên cứu của mình đi vào ngõ cụt còn hơn dựa vào một giải pháp mà ngay từ bản chất đã sai. Nói như thế không có nghĩa là data interpolation vô dụng hoặc không có ý nghĩa. Trong một số trường hợp người ta vẫn cần phải biến các chuỗi số liệu có frequency thấp (vd năm, quí) thành chuỗi có frequency cao (tháng/tuần/ngày). Ở Mỹ có một công ty tư vấnchuyên tính và cung cấp số liệu GDP theo tháng cho khách hàng. Bài viết này giới thiệu với các bạn một số phương pháp interpolation cơ bản đã và đang được áp dụng cho số liệu kinh tế.

[*]: Tôi không biết dịch chữ "information content" như thế nào cho chính xác. Thuật ngữ này có nghĩa là khối lượng thông tin hữu ích cho nhu cầu nghiên cứu mà bạn có thể bóc tách được từ một chuỗi/tập hợp số liệu thô ban đầu. Lấy ví dụ bạn có thể do chiều dài một cái bàn hàng nghìn lần (large data) nhưng information content hầu như không tăng lên bao nhiêu so với nếu chỉ đo một vài lần (small data). Một ví dụ khác là 2 bình luận viên bóng đá có có số lượng câu bình luận như nhau (same size data sets) trong một trận đấu nhưng một người chỉ toàn nói những câu sáo rỗng thì information content rất thấp so với người kia phân tích được chiến thuật của từng đội.


1. Simple interpolation

Phương pháp interpolation đầu tiên và đơn giản nhất chuyển từ số liệu quí sang tháng là gán giá trị của quí trước cho tất cả các tháng trong quí hiện tại. Lấy ví dụ giá nhà trung bình của quí trước là $1000/m2 (giả sử giá nhà chỉ được thống kê hàng quí) thì giá trị nội suy cho mỗi tháng sau đó theo phương pháp này là $1000/m2. Nếu số liệu được cộng dồn theo thời gian (flow value) thì phải hiệu chỉnh cho độ dài của từng giai đoạn. Ví dụ nếu tổng số xe hơi được bán ra trong quí trước là 300 chiếc thì giá trị nội suy cho mỗi tháng trong quí này là 100 chiếc.

Bạn có thể cười cho rằng phương pháp này quá đơn giản và không chính xác nên chẳng ai sử dụng bao giờ. Trên thực tế với những trường hợp không cần độ chính xác cao hoặc khó sử dụng những phương pháp interpolation khác người ta vẫn chấp nhận cách thức này. Ví dụ chúng ta thường xuyên nói dân số VN là 90 triệu, thực ra con số đó là interpolation từ thống kê/ước lượng dân số gần nhất của VN. Nhiều con số thống kê như GDP per capita, employment/population ratio cũng ngầm sử dụng cách thức interpolation dân số này khi tính toán. Trong tài chính có thể kể những ví dụ như PE ratio, dividend yield, price/book ratio...

Một trong những khiếm khuyết quan trọng của cách intepolation đơn giản này là giá trị được interpolated ở các thời điểm ngay trước khi có số thống kê chính thức sẽ bị gián đoạn (non-continuous). Quay lại ví dụ giá nhà bên trên, giả sử quí trước giá nhà là $1000/m2 và quí tiếp theo giá tăng lên $1300/m2. Như vậy trong 3 tháng liên tục giá nhà là $1000/m2 rồi bất ngờ "jump" lên $1300/m2 rồi lại giữ nguyên trong 3 tháng tiếp theo. Điều này có thể gây ra một số khó khăn cho việc ước lượng mô hình và đặc biệt là sai số lớn trong dự báo. Phương pháp thứ hai giải quyết được vấn đề này.


2. Linear interpolation

Đây cũng là một phương pháp khá đơn giản, bạn chỉ cần kẻ một đường thẳng nối giá trị của 2 quí rồi nội suy giá trị của các tháng bên trong khoảng thời gian giữa 2 quí đó. Trong ví dụ giá nhà bên trên, giá nhà của 3 tháng tiếp theo sẽ là $1100, $1200, và $1300. Như vậy thay vì giả định giá nhà không đổi từ quí này sang quí khác chúng ta giả định tốc độ tăng giá không đổi (đạo hàm bậc nhất không đổi). Đây là phương pháp interpolation được sử dụng rất rộng rãi, nhiều phần mềm thống kê (vd Eviews) sử dụng như default option khi phải interpolate số liệu.

Mặc dù phương pháp này giải quyết được vấn đề "jump" ở các điểm nối nó vẫn còn nhược điểm là đạo hàm bậc nhất không liên tục ở các điểm này. Lấy ví dụ ở thời điểm t, t+1, t+2 chuỗi giá trị quí là 0, 1, 0 thì tốc độ thay đổi (đạo hàm bậc nhất) giữa t và t+1 bằng 1, trong khi giữa t+1 và t+2 bằng -1, nghĩa là giá trị này không liên tục (non-continuous) ở các điểm nối (đạo hàm bậc 2 bị jump). Điều này có thể ảnh hưởng đến một số mô hình tài chính (sử dụng lý thuyết continuous time) và cũng ảnh hưởng đến khả năng dự báo của mô hình. Phương pháp tiếp theo giải quyết được vấn đề này.

3. Polynomial splines

Trong phương pháp thứ hai bên trên một đường thẳng nối 2 điểm có thể coi là một polynomial bậc nhất (hàm bậc nhất là một đường thẳng). Nếu thay vì sử dụng bậc nhất chúng ta sử dụng các bậc cao hơn, phổ biến nhất là bậc ba, thì có thể ép các hàm bậc ba này có đạo hàm bậc nhất ở các điểm nối bằng nhau. Phương pháp này thường được biết đến với tên gọi "cubic spline", rất phổ biến trong cách ngành kỹ thuật. Đồ thị dưới đây cho thấy sự khác biệt giữa linear và cubic spline interpolation.


Cả ba phương pháp trên có thể xếp vào nhóm non-stochastic interpolation, tức là quá trình nội suy không có bất kỳ yếu tố ngẫu nhiên (random) nào ảnh hưởng. Một đặc điểm chung nữa của nhóm interpolation này là information content của chuỗi số liệu không tăng (ngoại trừ một số trường hợp đặc biệt) vì chúng ta không đem thêm thông tin gì mới vào mô hình. Phương pháp tiếp theo đi theo một hướng hoàn toàn khác.


4. Related variable regression

Để đưa thêm information content vào chuỗi số liệu được interpolate, vd GDP tháng biến đổi từ GDP quí, nhất thiết bạn phải cung cấp thêm một/vài biến số khác. Cách đơn giản nhất là sử dụng một mô hình regression bình thường cho chuỗi số liệu quí với các biến độc lập là chuỗi số liệu tháng đã được cộng dồn. Ví dụ bạn có số liệu số xe máy được bán ra hàng tháng, X_t, bạn có thể cộng từng 3 tháng lại để có số xe máy bán ra theo quí, X_q. Sau đó regress GDP quí (Y_q) theo X_q để xác định các hệ số alpha và beta: Y_q = alpha + beta*X_q + epsilon.

Với những hệ số của mô hình đã được ước lượng có thể dễ dàng tính ra Y_t dựa vào giá trị tháng của X_t. Tuy nhiên những giá trị Y_t này chưa phải là ước lượng GDP tháng mà bạn cần vì tổng của chúng sẽ khác với Y_q (bằng sai số epsilon). Bạn cần thêm một số giả định để phân bổ sai số epsilon cho từng Y_t trong một quí, vd chia đều epsilon cho mỗi tháng hay chia theo tỷ lệ variance của mỗi X_t. Phương pháp interpolation này dù đưa thêm information content vào chuỗi số liệu được nội suy nhưng có nhược điểm là các giá trị nội suy không phản ánh được dynamic (cấu trúc chuyển động) của các biến X_t trong từng quí. Vấn đề dynamic này được khắc phục bằng cách đưa vào mô hình một số giả định ARMA như trong phương pháp tiếp theo.

5. State-Space interpolation

Nếu chúng ta coi GDP quí (hay một biến vĩ mô nào đó) chỉ đơn thuần là tổng của các hoạt động kinh tế trong một quí thì chỉ số này có thể tính cho bất kỳ một khoảng thời gian ngắn hơn quí, vd tháng, tuần, thậm chí hàng ngày. Tất nhiên trên thực tế vì chi phí quá lớn và không cần thiết (như đã nói bên trên) nên các cơ quan thống kê chỉ tính GDP cho từng quí. Như vậy chúng ta có thể coi GDP quí là một số snapshot cho một chuỗi GDP có frequency cao hơn (quí, tuần, ngày) mà chúng ta không observe được (thuật ngữ chuyên môn gọi là latent variable). Cách hiểu này rất phù hợp với mô hình state-space được sử dụng rộng rãi trong các ngành kỹ thuật và gần đây đã được đưa vào kinh tế lượng.

Về căn bản mô hình state-space có 2 phương trình state và space. Phương trình thứ nhất biểu diễn quan hệ giữa latent variable, hay còn gọi là state variable, (trong trường hợp này là GDP tháng) với observed variable, còn gọi là space variable (GDP quí). Phương trình thứ hai biểu diễn những giả định về dynamic của latent variable, vd AR(p). Cả hai phương trình này có thể bao gồm một số random errors phản ánh tính chất ngẫu nhiên của hệ thống. Mô hình state-space phổ biến nhất có dạng linear, nghĩa là các phương trình đều là bậc nhất của các biến và error terms, và các error terms có phân bổ Gaussian. Mô hình state-space này thường được estimate bằng Kalman filter, một phương pháp iteration cập nhật thông tin sau mỗi bước.

Y_q = A*X_q + B*epsilon (space equation)
X_q = C*X_q-1 + D*theta (state equation), trong đó X_q là một vector của Y_t

Sau khi những hệ số A, B, C, D (và covariance matrix của epsilon và theta) được xác định chúng ta dễ dàng tính được X_q, nghĩa là các latent X_t (GDP tháng) dựa vào một giả định giá trị của X_0 (GDP tháng đầu tiên). Lưu ý phương pháp này đưa yếu tố dynamic vào nhưng loại bỏ các related variables, nghĩa là không thêm information content cho mô hình. Tất nhiên có thể khắc phục điều này dễ dàng bằng một mô hình state-space có exogenous variables.


(còn tiếp)

4 comments:


  1. Bài viết rất hay bác Giang ạ. Nhu cầu xây dựng mô hình kinh tế lượng vĩ mô quý xuất phát từ nhu cầu phân tích và dự báo kinh tế quý phục vụ xây dựng các chính sách điều tiết kinh tế của Chính phủ. Nếu chỉ dựa vào kết quả dự báo năm thì không thể điều hành kinh tế tốt được trong bối cảnh đầy biến động quá nhanh và phức tạp hiện nay. Thực tế cho thấy trong một số giai đoạn kinh tế vĩ mô đã có những thay đổi lớn qua các quý.

    Tuy nhiên đúng như bác viết, số liệu quý rất kém chính xác, hầu như được ước lượng chủ quan của người làm thống kê. Do đó hiện nay tất cả các số liệu quý trên thế giới đều là số ước lượng thô để dùng ngay. Ở các nước công nghiệp, chỉ sau 2-3 quý mới có số liệu ước lượng lại và thành số liệu chính thức. Còn ở các nước đang phát triển thì chẳng mấy nước ước lượng lại, hoặc họ chỉ chỉnh sửa sơ qua để cân đối với số liệu tổng hợp chung cả năm và lấy làm chính thức; hoặc như ta thì chẳng bao giờ ước lượng lại, quên chúng đi, chỉ tính chung cho cả năm thôi.

    Việc phân rã số liệu vĩ mô năm thành quý đã là một vấn đề quá lớn và sai số rất cao (vì đặc trưng mùa vụ trong năm rất lớn) thì nội suy số liệu quý thành tháng hoàn toàn vô nghĩa. Do đó các bạn trẻ không nên nghĩ đến chuyện này.

    Việc điều hành kinh tế vĩ mô ít nhất cũng phải căn cứ vào biến động quý. Tiếc rằng ở ta người ta không nhận ra điều đó nên cứ họp hàng tháng và thay đổi chính sách liên xoành xoạch làm nền kinh tế càng rối loạn, mất hoàn toàn định hướng trung hạn.

    Viết đã dài, xin dừng và cám ơn bác Giang có bài viết bổ ích.

    Tôi đã từng làm một số mô hình kinh tế lượng quý. Ví dụ xem ở đây:
    http://toithichdoc.blogspot.ch/2011/05/thu-nghiem-xay-dung-mo-hinh-kinh-te.html

    Bạn nào muốn xem bài giảng của tôi về Kỹ thuật xây dựng mô hình kinh tế lượng vĩ mô thì có thể xem ở đây:
    http://toithichdoc.blogspot.ch/2011/05/ky-thuat-xay-dung-su-dung-mo-hinh-kinh.html
    ReplyDelete

    Replies





    1. Cám ơn bác đã share link, các bài viết của bác rất hữu ích. Highly recommended cho các bạn muốn lập mô hình macroeconometric.
  2. Em chào anh, theo em, information content có thể dịch là 'hàm lượng thông tin' ạ
    Reply

    Replies





    1. Cám ơn bạn, cách dịch của bạn rất hay.

Không có nhận xét nào:

Đăng nhận xét