首页 > 解决方案 > 使用 stata/mata 编程最小距离估计器

问题描述

我正在尝试为结构模型编程最小距离估计器,该模型试图通过改变 2 个参数来匹配一些模型一致的计算与一些 IV 回归系数。本质上我希望它运行这样:

  1. 猜2个参数值
  2. 使用猜测的参数值为每个观察构造一些模型一致的值
  3. 根据模型一致的值创建一个二元变量,在确定“高”和“低”的中位数处拆分。
  4. 使用原始数据(不是由模型构建的)运行 IV 回归,但使用步骤 3 中的“高”交互项。
  5. 检查回归系数与“高”和“低”组的平均值之间的 L2 范数。
  6. 冲洗并重复,直到步骤 5 最小化。

从我所做的阅读中,我得到了我需要在 mata 中使用优化功能的印象,尽管我不清楚如何。以下是代码的一般步骤。第 5 步是我需要最小化的,第 1 步包含我需要猜测的参数。我猜测需要在程序中定义以下内容,但任何有关如何结合使用 mata 和优化功能的指导都将不胜感激。

*1. Choose parameter values
gen k = *guess1_1*
gen scale = *guess1_2*

*2. Calculate model consistent elasticities
** relevant code which generates variable T for each observation**

*3. Cut by median & calculate model measures
egen median_T = median(T)
gen High = T > median_T

qui sum T if High == 0
gen model_low = r(mean)
qui sum T if High == 1
gen model_high = r(mean)

*4A. Calculate interaction terms for IV
gen lnxXHigh = lnx * High
gen zXHigh = z*High

*4B. Calculate empirical measures
qui ivreghdfe lnY High (lnx lnxXHigh = z zXHigh) if a(c y ym) cluster(c)

gen empirical_low = _b[lnx]
gen empirical_high = _b[lnx] + _b[lnxXHigh]


*5. Euclidean distance
gen euc_distance = sqrt((empirical_low - model_low)^2 +(empirical_high-model_high)^2)

标签: optimizationstata

解决方案


推荐阅读