KTL cơ bản

Tính độ co dãn của hàm cầu – Stata

Có nhiều dạng mô hình được sử dụng để ước lượng hàm cầu. Phổ biến nhất trong các mô hình có dạng hàm log-log, log-lin (hoặc lin-log) và lin – lin. Vậy làm thế nào để tính các độ co dãn từ các mô hình hàm cầu này? Bài viết sau sẽ lần lượt trình bày cách tính toán các độ co dãn của 4 mô hìnhtrên bằng cách sử dụng tùy chọn dydx(); eyex(); eydx(); dyex() của lệnh margins trên Stata.

I. Giới thiệu về tùy chọn tính độ co dãn

Lệnh margins trên Stata có cú pháp như sau:

margins [marginlist] [if] [in] [weight], [response_option] [options]

Trong đó[response_option] là các tùy chọn được sử dụng để tính toán các tác động biên của giá trị dự báo theo các biến độc lập.

Theo mặc định của Stata, các tác động biên sẽ tính toán cho mỗi giá trị của quan sát và hiển thị giá trị trung bình của các độ co dãn. Chúng ta có thể sử dụng tùy chọn atmeans để chỉ rõ các tính toán được thực hiện tại giá trị trung bình của các biến hoặc sử dụng tùy chọn at() để xác định các giá trị cụ thể ứng với từng biến (cả hai tùy chọn này thuộc nhóm [options] trong câu lệnh margins). Nếu giá trị được dự báo là âm thì không thể tính toán được các độ co dãn bởi chúng ta không thể lấy logarit của các số âm.

Có 4 loại tùy chọn [response_option] được sử dụng phổ biến để tính độ co dãn trong câu lệnh margin là dydx(); eyex(); eydx(); dyex(). Ý nghĩa cũng như công thức tính cụ thể của từng loại tùy chọn được thể hiện như sau:

Tùy chọnCông thứcMô hình phù hợp
dydx()(dy/dx)Mô hình dạng log-log
eyex()(dy/dx) * (x/y)Mô hình dạng lin-lin
eydx()(dy/dx) * (1/y)Mô hình dạng lin-log
dyex()(dy/dx) * (x)Mô hình dạng log-lin

Tham khảo bài: Tính độ co dãn của hàm cầu

Trong ví dụ này, chúng ta sẽ tính toán các độ co dãn ứng với các giá trị trung bình của các biến độc lập bằng cách sử dụng tùy chọn eyex. Sau đây là do-file của quá trình tính toán các độ co dãn này.

sysuse auto, clear
regress mpg weight length
summarize weight
local meanwei=r(mean)
summarize length
local meanlen=r(mean)
local f=`meanwei’*_b[weight]+`meanlen’*_b[length]+_b[_cons]
display “weight: eyex = ” (`meanwei’*_b[weight])/`f’
display “length: eyex = ” (`meanlen’*_b[length])/`f’
margins, eyex(weight length) atmeans nose

Chúng ta có thể vẽ các độ co dãn này như là các hàm của các biến độc lập bằng cách sử dụng tùy chọn at() theo sau lệnh marginsplot. Phần trình bày bên dưới bao gồm do-file sẽ thực hiện điều này. Ở đây, chúng ta có 2 biến độc lập và chúng ta sẽ vẽ độ co dãn theo một biến trong khi giữ biến còn lại không đổi ở giá trị trung bình.

sysuse auto, clear
regress mpg weight length
margins, eyex(weight) at(weight = (1750(250)5000) (mean) length) noatlegend
marginsplot, noci xlabel(2000(1000)5000) saving(weight, replace) nodraw
margins, eyex(length) at(length = (140(10)240) (mean) weight) noatlegend
marginsplot, noci xlabel(140(20)240) saving(length, replace) nodraw
graph combine weight.gph length.gph, ycommon

Độ co dãn của hàm cầu

1 2Trang sau
Xem thêm
Back to top button