原文链接:http://tecdat.cn/?p=27564
本文展现了如何通过矩量的狭义办法和狭义教训似然来预计模型。对这两种办法的实践方面进行了简要探讨,并通过经济学和金融学中的几个例子介绍了 R 语言。
介绍
自 Hansen (1982) 以来,狭义矩量法 (GMM) 已成为利用经济学和金融学许多畛域的重要预计程序。) 介绍了两步 GMM (2SGMM)。它能够看作是许多其余预计办法的概括,例如最小二乘法 (LS)、工具变量 (IV) 或最大似然法 (ML)。因而,它不太可能被谬误指定。LS 估计量的性质取决于回归量的外生性和残差的循环性,而 ML 的估计量取决于似然函数的抉择。GMM 更加灵便,因为它只须要一些对于矩条件的假如。例如,在宏观经济学中,它容许通过方程来预计构造模型方程。在金融畛域,股票收益等大多数数据的特点是重尾散布和偏态散布。因为它不对数据的散布施加任何限度,所以 GMM 在这个畛域也是一个很好的抉择。
狭义矩量法
咱们心愿依据以下_q_ × 1 无条件矩条件向量从模型中预计参数向量_θ_ 0 ∈ R p:
E [g (θ 0 ,xi )] = 0 ,
其中_xi_是横截面数据、工夫序列或两者的向量。为了使 GMM 从上述条件产生统一的预计,_θ_ 0 必须是_E_ [g (θ,xi )] = 0 的惟一解,并且是紧致空间的一个元素。还须要对_g_ (θ,xi ) 的更高矩进行一些边界假如。_然而,它对 xi_的散布没有施加任何条件,除了当它是工夫序列向量时察看的依赖水平。
一些预计办法,如最小二乘法 (LS)、最大似然法 (ML) 或工具变量 (IV) 也能够被视为基于此类矩条件,这使其成为 GMM 的非凡状况。例如,以下线性模型:
Y = Xβ + u,
其中_Y_和_X_别离是_n_ × 1 和_n_ × k_矩阵,能够通过 LS 预计。预计_β ^ 是通过求解 min β k u k2 取得的,因而是以下一阶条件的解:
这是矩条件_E_ (Xiui (β )) = 0 的预计。同样的模型能够通过 ML 预计,此时矩条件变为:
其中_li_ (β ) 是_ui_的密度。在解释变量_X_存在内生性的状况下,即_E_ (Xiui ) 6 = 0,通常应用 IV 办法。_它通过将 X_替换为工具矩阵_H_来解决内生性问题,该矩阵须要与_X_相干且与_u_不相干。这些属性容许模型通过条件矩条件_E_ (ui | Hi ) = 0 或其隐含的无条件矩条件_E_ (uiHi_) = 0。一般来说,咱们说_ui 与信息集__Ii_正交,或者说_E (ui | Ii ) = 0 在这种状况下,_Hi_是蕴含_Ii_的任何元素的函数的向量。因而,该模型能够通过求解来预计
当没有对_u_的协方差矩阵进行假如时,IV 对应于 GMM。如果_E_ (Xiui ) = 0 成立,则狭义 LS 不假如_u_的协方差矩阵(边界矩阵除外)也是 GMM 办法。对于被视为 GMM 的 ML 过程,必须满足对于_u 散布的假如。_如果不是,但_E_ (dli (θ 0) /dθ ) = 0 成立,因为它是具备非正态误差项的线性模型的状况,应用持重协方差矩阵的伪 ML 能够看作是 GMM 办法。
因为 GMM 仅依赖于矩条件,因而对于经济和金融中的许多模型来说,它是一种牢靠的预计过程。例如,个别平衡模型存在内生性问题,因为这些模型被谬误指定并且它们仅代表经济的一部分。因而,具备正确时刻条件的 GMM 比 ML 更适合。在金融中,没有令人满意的参数散布来再现股票收益的个性。稳固散布族是一个很好的候选者,但只有属于该族的正态分布、柯西散布和 L´evy 散布的密度具备关闭模式的表达式。因而,在这种状况下,GMM 的无散布个性很有吸引力。
R 的 GMM
-
预计正态分布的参数 ---------
当矩条件信息有余时,这也是 GMM 弱点的一个很好的例子。事实上,正态分布的均值和方差的 ML 预计更无效,因为似然比多数矩条件携带更多信息。
对于正态分布的两个参数 (µ,σ ),咱们有以下矩量条件向量:
其中前两个能够通过 (µ,σ ) 的定义间接取得,最初一个来自在 0 处评估的矩生成函数的三阶导数。
咱们首先须要创立一个函数_g_ (θ,x ),它返回一个_n_ × 3 矩阵:
f <- cbind(m1,m2,m3)
以下是¯ g (θ ) 的梯度:
如果提供,它将用于计算_θ_ ^ 的协方差矩阵。
首先咱们生成正态分布的随机数:
> x1 <- rnorm(n, mean = 4, sd = 2)
而后咱们应用起始值运行 gmm
summary 办法从预计中输入更多后果:
> summary(res)
“系数的初始值”局部显示了用于计算 2 步 GMM 中的加权矩阵或 CUE 或迭代中的固定带宽的第一步预计 GMM。
提取适度辨认限度的 J 测验:
应用以下函数的小型模仿表明,基于上述矩条件,ML 生成的估计量均方误差小于 GMM。然而,不是 GMM 而是矩条件不是无效的,因为 ML 是 GMM,以似然导数作为矩条件。
for(i in 1:iter)
{x1 <- rnom(n mean = 4, sd = 2)
tet1\[i,1\] <- mean(x1)
tet1\[i,2\] <- sqrt(varx1)*(n-1)/n)
tet2\[i,\] <- gm(g,x1,c(,0),graDg)$oefficiets
}
bias<- cind(rwMens(t(et)-(4,2)),owMans(t(tet2)-c4,2)))
dimnams(bias)<-ist(c("mu","sigma"),c("ML","GMM"))
在 n = 50、_iter_ = 2000 并通过设置 set.seed 能够重现以下后果:
-
具备 iid 矩条件的线性 ar 模型 ------------------
咱们想预计一个具备内生性问题的线性模型。
xi_的任何函数都能够用作工具,因为它与_i_正交且与_Wi_相干。因而有无数种可能的工具。对于此示例,(_xi,x 2 i ,x 3 i ) 将是选定的工具,并且样本大小设置为_n_ = 400:
> e <-rmvnorm(,sma=sig
> x4 <- rnom(n)
> w <- exp(-x4^2) + e\[,1\]
> y <- .1*w + e\[,2\]
其中 rmvnorm 是一个多元正态分布随机生成器,它蕴含在 mvtnorm 包中(Genz、Bretz、Miwa、Mi、Leisch、Scheipl 和 Hothorn(2009 年))。对于线性模型,_g_参数是一个公式,用于指定 lm 的右侧和左侧:
> h <- cbind(x4, x4^2, x4^3)
> g3 <- y~w
然而,在理论数据中,倡议不要将此选项设置为“iid”,因为咱们要应用 GMM 的起因之一是防止此类限度。最初,当模型是线性的时,不须要提供梯度,因为它曾经蕴含在 gmm 中。第一个后果是:
默认状况下,计算 2SGMM。能够通过批改选项“类型”来抉择其余办法。第二种可能性是 ITGMM:
type='iterative'
该过程迭代直到两次间断迭代的估计值之间的差别达到某个容差程度,由选项 crit(默认为 10-7)定义,或者如果迭代次数达到 itermax(默认为 100)。在后一种状况下,批示该过程未收敛。
第三种办法是 CUE。如您所见,来自 ITGMM 的估计值用作起始值。然而,仅当 g 是函数时才须要起始值。当 g 是一个公式时,默认的起始值是通过设置权重矩阵等于单位矩阵取得的。
type='cue')
能够应用 confint 办法生成置信区间:
> confint(res3,level=.90)
拟合办法和残差办法也可用于线性模型。咱们能够将 lm 的拟合值与 gmm 的拟合值进行比拟,看看为什么这个模型不能被 LS 预计。
> plot(w,y)
LS 仿佛更适宜模型。然而图形暗藏了内生性问题。_LS 高估了 y_和_w_之间的关系,因为它没有思考到一些相关性是由_yi_和_wi 与误差项__i_正相干引起的。
预计 ARMA 过程的 AR 系数
应用 ML 或非线性 LS 能够更好地预计 ARMA(p,q) 过程的自回归系数。然而在蒙特卡洛试验中,往往是通过 GMM 预计来钻研它的性质。它给出了具备内生性问题的线性模型的一个很好的例子,其中矩条件是序列相干的并且可能是条件异方差的。与后面的示例相同,HAC 矩阵的抉择成为一个重要问题。
对于这个例子,抉择的工具是 (Xt -3 ,Xt -4 ,Xt -5 ,Xt -6) 并且样本大小等于 400。ARMA(2,2) 过程由函数 arima.sim 生成:
> 5 <- arima.sim(n=t))
>
当矩条件基于工夫序列时,最优矩阵是由等式(3)定义的 HAC 矩阵。文献中曾经提出了该矩阵的几个估计量。给定一些正则条件,它们是渐近等价的。然而,它们对 GMM 预计器的无限样本属性的影响可能不同。
咱们能够将后果与不同的内核抉择进行比拟:
> coef(res2)
kernel="Bartlett")
> coef(res3)
kernel="Parzen")
> coef(res4)
kernel="Tukey-Hanning")
> coef(res5)
后果的相似性并不奇怪,因为权重矩阵应该只影响预计器的效率。咱们能够应用 vcov 办法比拟预计的标准差:
这表明,对于这个例子,巴特利特核生成的估计值具备最小的方差。然而,这并不意味着它更好。如果咱们想比拟它们,咱们必须运行模仿并计算实在的方差。事实上,咱们不晓得哪一个产生了最精确的方差预计。
第二个选项用于带宽抉择。
最初,能够对 gmm 对象利用 plot 办法来绘制残差的 QQ 图:
> plot(res,which=2)
或用拟合值绘制察看后果:
预计方程组:CAPM
咱们想测试资本资产定价模型 (CAPM) 的影响之一。
数据包中蕴含的数据是 1993 年 1 月至 2009 年 2 月 20 只选定股票的日收益率、无风险利率以及 Fama 和 French 的三个因素。以下测试是应用 5 只股票的收益和 500 的样本量进行的。
> z <- as.matrix(r-rf)
> zm <- as.matrix(rm-rf)
> coef(res)
其中应用渐近卡方,因为默认散布须要正态假如。能够应用系数的名称执行雷同的测试:
测试 CAPM 的另一种办法是预计适度辨认的受限模型 (α = 0),并执行 J 测验。将 -1 增加到公式中会删除截距。在这种状况下,必须将一列 1 增加到工具矩阵中:
> specTest(res2)
证实了该实践的不被回绝。
狭义教训似然
GEL 是一个新的预计办法家族,与 GMM 一样,它是基于矩条件的。它遵循 Owen (2001),他提出了教训似然预计的想法,旨在进步预计器的相信区域。咱们在这里简要探讨该办法,而不波及太多细节。
预计是基于
E (g (θ 0 ,xi )) = 0 ,
对于此示例,咱们能够将选项 smooth 保留为其默认值,即 FALSE,因为_x_的 iid 属性。良好的起始值对 GEL 十分重要。最好的抉择是样本均值和标准差。默认状况下,选项类型设置为 EL。
> summary(res_el)
每个拉格朗日乘数代表矩条件隐含的束缚的价格。summary 报告了两个收敛代码,一个用于_λ_,另一个用于_θ_。
ET 和 CUE 估计值能够如下取得:
type="ET")
> coef(r_et)
g1,x1,tet0,type="CUE")
> cef(esue)
第四种办法可用,称为指数歪斜教训似然 (ETEL),由 Schennach (2007) 提出。然而,它不属于 GEL 预计器家族。它解决了谬误指定模型的问题。在这样的模型中,随着样本量的减少,可能不存在任何_θ ^ 收敛到的伪值。_ETEL 应用 ET 的_ρ_ () 求解_λ_和 EL 的_ρ_ () 求解_θ_。Schennach (2007) 表明 ETEL 与 EL 具备雷同的渐近个性,而不用对_ρ_ (_v_) 求解_λ_时。
g1,x1,c(mu=1,sig=1),type="ETEL")
> oef(re_el)
ETEL 类型目前是实验性的。尽管它应该更稳固,因为求解_λ_不须要任何限度,然而一旦咱们在 EL 指标函数中替换_λ_ (θ ) 来预计__θ_,咱们依然须要限度_λ 0 gt_以避免出现 NA。解决方案是应用 constrOptim 取得_λ (θ ),限度__为 λ 0 gt > 1,即便 ET (ρ (v ) = -exp(v )) 不须要它。然而,它对起始值很敏感。这就是为什么咱们在下面应用不同的起因。
预计 ARMA 过程的 AR 系数
因为矩条件是弱相干的,咱们须要设置选项 smooth=TRUE。在进行预计程序之前,咱们须要理解平滑核和 HAC 预计器之间的关系。因而,该模型将应用核截断来预计。抉择具备单位矩阵的 GMM 预计作为起始值。
watrix="ident")$coef
smoothTRUE,kernel="Truncated")
> sumay(res)
计算了 Smith 提出的三个测验 2004):
> specTest(res)
plot 产生更多图形。它显示了隐含的概率以及教训密度 (1 /T )。
> plot(res,which=4)
咱们还能够抉择 optfct=”nlminb” 或 constraint=TRUE 以对系数施加限度。前者设置系数的上限和下限,而后者应用算法 constrOptim 施加线性束缚。在此示例中,咱们心愿 AR 系数的总和小于 1。constrOptim 施加束缚_uiθ_ − ci ≥ 0。
因而,咱们须要设置:
> ui=cbind(0,-1,-1)
> ci <- -1
并从新运行预计
+ constraint=TRUE, ui=ui,ci=ci)
后果是雷同的。
也能够应用选项更改优化器管制列表中的默认值 LadaCntol(参见 ?nlminb 或 ?optim)。这里有些例子:
+ LambdaControl=list(trace=TRUE, parscale=rep(.1,5)))
论断
R 提供了残缺和灵便的算法来预计 GMM 和 GEL 模型。为了预计参数向量,用户能够依据是否须要不等式束缚来抉择他们喜爱的优化算法。对于 GEL 的拉格朗日乘子向量,能够通过基于牛顿法的迭代程序计算,进步了收敛速度,升高了预计程序的不稳定性。那些对钻研这两种办法的数值个性感兴趣的人能够很容易地应用它。
最受欢迎的见解
1.R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略
2.R 语言改良的股票配对交易策略剖析 SPY—TLT 组合和中国股市投资组合
3.R 语言工夫序列:ARIMA GARCH 模型的交易策略在外汇市场预测利用
4.TMA 三均线期指高频交易策略的 R 语言实现
5.r 语言多均线量化策略回测比拟
6. 用 R 语言实现神经网络预测股票实例
7.r 语言预测稳定率的实现:ARCH 模型与 HAR-RV 模型
8.R 语言如何做马尔科夫转换模型 markov switching model
9.matlab 应用 Copula 仿真优化市场危险