平滑过渡回归模型
平滑过渡回归(smooth transition regression,STR)模型是这样一种模型:$$y_t = x_t’\beta+z_t’\alpha+G(q_t|\delta,c)z_t’\gamma +u_t$$模型中\(z_t\)的系数(向量)为某一阈值变量\(q_t\)的函数:$$\alpha+G(q_t|\delta,c)\gamma$$其中,\(q_t\)通过过渡函数(transition function)\(G(\cdot|\delta,c)\)来影响\(z_t\)对\(y_t\)的边际影响,\(\delta\)为斜率参数,\(c\)为阈值参数,\(\alpha\)为\(z_t\)线性部分的系数,\(\gamma\)为\(z_t\)非线性部分的系数。
如果\(G(\cdot|\delta,c)\)取离散值的话,显然,STR就是离散阈值回归。所以,在EViews中,STR模型的估计也使用threshold命令。在STR模型中,\(G(\cdot|\delta,c)\)是一个取值在(0,1)间的连续函数,这也是”平滑过渡“的含义。
模型估计
EViews中提供以下四种过渡函数以供使用,它们分别对应逻辑斯特STR模型、指数STR模型、正态STR模型和二阶逻辑斯特STR模型。
Logistic:$$G(s|\delta,c)=\frac{1}{1+e^{-\delta(s-c)}}$$
Exponential:$$G(s|\delta,c)=1-e^{-\delta(s-c)^2}$$
Normal:$$G(s|\delta,c)=\Phi(\delta(s-c))$$ $$\Phi(\cdot)\text{为标准正态分布的累积分布函数}$$
Logistic, second-order:$$G(s|\delta,c)=\frac{1}{1+e^{-\delta(s-c_1)(s-c_2)}}$$
threshold命令的用法与估计离散阈值回归类似,只需令参数type=smooth即可。默认状态下,EViews会估计逻辑斯特STR模型,估计另外三种STR模型需要设参数smoothtrans分别为exponential、normal或logistic2。例如:
smpl 1953m01 1990m12
equation eq1.threshold(type=smooth) cp c fygt10(-1 to -2) @thresh 1 2
估计结果如下:

估计结果显示,最优的阈值变量为\(cp_{t-1}\),斜率参数的估计值为0.162293,阈值参数的估计值为5.986313。
对某一自变量,如果只想保留它非线性部分的系数而不要其线性部分的系数(也就是将系数强制设为0),那么,只需在代码中将其套上@alt即可。例如:
equation eq1.threshold(type=smooth) cp c fygt10(-1) @alt(fygt10(-2)) @thresh 1 2
线性检验
对STR模型,一个很重要的问题是:是否有必要引入导致模型非线性的过渡函数。对这一问题,我们可以通过线性检验(linearity tests)得到答案。线性检验的原理很简单,就是检验\(\delta=0\),但是,我们不能通过估计结果中“SLOPE”一行的p值来做这一检验,原因是在此原假设下,\(c\)和\(\gamma\)是无法被识别的。所以,这不是一个常规的检验(那个p值是错的😂)。进行线性检验使用的命令为strlinear,用法为:
eq1.strlinear代码执行后会报告三种检验结果,原理在此不赘述,请查阅相关资料🎈。命令复习
(.)threshold(type=smooth):估计平滑过渡回归模型.strlinear:对STR模型进行线性检验
[注] ( . )命令表示命令可单独使用,也可跟在对象后使用;.命令表示命令只能跟在对象后使用。
练习
- 把上面的逻辑斯特STR模型改为二阶逻辑斯特STR模型并估计,两个阈值参数的估计是多少?它们显著吗?
- 版权声明:本作品使用知识共享(Creative Commons)的署名-非商业性使用-禁止演绎 4.0 国际许可协议。非商业转载请注明出处(作者及原文链接),商业转载请联系作者获得授权。

给站长留言