您的位置:

分布滞后模型详解

一、分布滞后模型数据

分布滞后模型是基于横向截面数据的经验微观经济学模型,旨在解析在分布滞后动态下的经济行为。它的基础数据是横向截面数据(Cross Section Data),即在某一时点上,跨越不同实体被观测到的数据。比如一个城市的房屋租金的数据。

为了建立分布滞后模型,需要收集包括所有生产要素、生产制度、企业备考年报的经济方面的数据。希望通过数据来解析所研究的社会经济问题,并从数据方案的角度得到有力的支持。

二、有限分布滞后模型的含义

通常我们使用有限分布滞后模型(Limited Dependent Variable Distributional Lag Model, LDVDL)来建立横向截面的分布滞后模型。这是一个非参数统计模型,旨在探究影响横向截面上分布滞后动态的变量。

有限分布滞后模型的依赖变量通常是一个二类或零一类变量,如失业率、贫困率等。这些变量具有截然不同的分布特性,如集中、分散、商业等特性,因此在经济行为统计中表现出明显的劣势。有限分布滞后模型考虑到这些特性,从而使得建立模型更加准确。

三、分布滞后模型的缺点

分布滞后模型的另一个问题是它无法回答“因果关系”的问题。换句话说,模型无法告诉我们一个事物是什么原因造成的。我们只能得出一个关于原因与影响之间的相关描述,而不是一个明确的原因生成影响的“X导致Y”的关系链。

这种限制使得分布滞后模型不能提供真正有意义的预测。因为它们不提供有关原因和影响关系的明确信息。所以使用分布滞后模型时,需要谨慎分析结果和结论。

四、分布滞后模型估计面临的问题

估计分布滞后模型的一个核心问题是偏移量的选择。偏移量是指回归线条与依赖变量的平均线起始点的距离。选择偏移量的初衷是为了使得回归线条能够与横向截面数据的分布、平均值和方差保持一致。但是,偏移量的选择对分布滞后模型的估计效果有很大的影响。

此外,选择短期乘数(Short-Term Multiplier)也是一个重要问题。短期乘数是指当一个变量改变一个单位时,该变量对依赖变量的影响。由于模型是非参数的,所以需要根据经验选择。

五、分布滞后模型修正

为了解决偏移量的问题,可以采用交叉验证法(Cross-Validation),即将数据拆分为训练集和测试集,并对每个偏移量再次估计。交叉验证法的目标是减少模型的过拟合。

解决短期乘数选择的问题,可以采用计算出单位变化的短期乘数,并对其进行修正。短期乘数修正的目标是使得回归模型能够更好地预测。

六、分布滞后模型的优缺点

分布滞后模型的优点在于它可以更好地与实际横向截面数据保持一致,同时能够加深我们对分布滞后动态行为的认识。分布滞后模型的缺点在于它对于因果关系的推断局限较大,同时需要谨慎分析结果。

总之,在使用分布滞后模型时,需要考虑到自身的优缺点,并在多个方面对模型进行严格的评估和分析。

七、分布滞后模型冲击乘数

    lm(Y ~ X1 + X2, data = DATA) #回归模型
    EM = AER::elastplm(mod, DATA, type = "nlv", rew = T) #计算冲击乘数Elasticity

八、分布滞后模型名词解释

  • 横向截面数据:在某一时点上,跨越不同实体被观测到的数据。
  • 有限分布滞后模型:是建立横向截面的分布滞后模型的非参数统计模型。它考虑到二类或零一类变量具有截然不同的分布特性,从而使得模型更加准确。
  • 偏移量:回归线条与依赖变量的平均线起始点的距离。
  • 短期乘数:当一个变量改变一个单位时,该变量对依赖变量的影响。
  • 交叉验证法:将数据拆分为训练集和测试集,并对每个偏移量再次估计,以减少模型过拟合。
  • 分布滞后模型冲击乘数:计算冲击乘数Elasticity。

九、分布滞后模型的自由度

为了避免模型过于复杂,需要在模型中引入自由度的约束。通常,我们使用最大似然方法(Maximum Likelihood, ML)或最小二乘法(Least Squares, LS)来进行模型的拟合和调整。

在确定自由度约束时,我们需要考虑模型的训练误差和测试误差,以使模型能够更好地预测未来的数据。

十、分布滞后模型的短期乘数选取

在选择短期乘数时,通常先根据经验选择一个比较小的乘数范围,并对选择范围内的所有乘数进行测试。

   test_coef = seq(-2, 2, 0.1) #选择一定范围的乘数
   results = lapply(test_coef, FUN = function(x) { #对每个乘数进行计算
        lm(Y ~ X1 + X2 + I(X2^x), data = DATA)
   })

   # 选择最佳乘数值
   best_coef = test_coef[[max(unlist(lapply(results, FUN = function(x) {x$R2})))]]