按照因变量Y的类型通常分为五类:
类型 | Y的特点 | 模型 | 例子 |
---|---|---|---|
线性回归 | 连续数值型变量 | OLS、GLS | GDP、产量、收入 |
0-1回归 | 二值变量 | logistic回归 | 是否违约、是否得病 |
定序回归 | 定序变量 | probit定序回归 | 等级评定(优良差) |
计数回归 | 计数变量 | 泊松回归 | 每分钟车流量 |
生存回归 | 生存变量(截断数据) | Cox等比例风险回归 | 企业、产品的寿命 |
这次主要学习线性回归
回归分析要完成的三个主要使命:
1、识别重要变量(哪些相关,哪些不相关)
2、判断相关性的方向(正或负)
3、估计权重(回归系数,如果要相互比较,需要去量纲处理,即标准化回归)
还有其他的使命,比如判断权重是否显著.
1、横截面数据,在同一个时间点对于不同对象的数据。
例如,2008年我国各省份GDP数据
2、时间序列数据,对于同一个对象在不同时间点连续观察得到的数据
例如,河南省2008-2018年的GDP数据
3、面板数据:横截面数据与时间序列数据综合起来的一种数据资源。
例如,2008-2018年我国各省份GDP的数据。
其中,横截面数据往往可以使用多元线性回归来进行建模。
并不是那种单纯的线性,可以通过变量替换而转化成线性模型
假设我们的模型为: y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β k x k + μ {y=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_kx_k+\mu} y=β0+β1x1+β2x2+⋯+βkxk+μ
解释回归系数的前提是这个回归系数较为准确,才有解释的意义,因此,这里有这么一个注意点!
内生性
1)产生原因:遗漏变量
2)定义:如果满足误差项 μ {\mu} μ和所有的自变量 x {x} x均不相关,则称该回归模型具有外生性,反之存在内生性。
3)后果:不满足无偏性和一致性,回归系数不准确
4)解决方案:很难把所有相关变量加到回归中,因此把变量分为核心解释变量和控制变量两类,然后只要保证核心解释变量与 μ {\mu} μ不相关即可。
1、双对数模型,x每增加1%,y平均变化b%
l n y = a + b l n x + μ lny=a+blnx+\mu lny=a+blnx+μ
2、半对数模型1,x每增加1%,y平均变化b/100个单位
y = a + b l n x + μ y=a+blnx+\mu y=a+blnx+μ
3、半对数模型2,x每增加1个单位,y平均变化(100b)%
l n y = a + b x + μ lny=a+bx+\mu lny=a+bx+μ
问题1:何时取对数?
取对数意味着原被解释变量对解释变量的弹性,即百分比的变化而不是数值的变化,目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则:
(1)与市场价值相关的,例如,价格、销售额、工资等都可以取对数;
(2)以年度量的变量,如受教育年限、工作经历等通常不取对数;
(3)比例变量,如失业率、参与率等,两者均可;
(4)变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y);
问题2:取对数有什么好处?
(1)减弱数据的异方差性(2)如果变量本身不符合正态分布,取 了对数后可能渐近服从正态分布(3)模型形式的需要,让模型具有经济学意义。
例如性别、地域等定性变量,在回归中需要处理成定量变量,即产生了虚拟变量。
如何设置虚拟变量?
为了避免完全多重共线性的影响,我们一般设置一个参照分类,引入虚拟变量的个数是类数减一,然后对于每一个样本,如果属于这个分类,则对应于这个分类的变量值为1,其他的分类变量为0。
回归得到的虚拟变量前的系数,表示与参照分类比较出来的差异。
因变量对于一个解释变量的偏效应、弹性或半弹性,有时很自然地取决于另一个解释变量地大小,这时需要引入交互项。
导入数据后,以下命令:
(1)定量数据 描述性统计
命令:summarize 变量1 变量2 … 变量n
(2)定性数据 描述性统计
命令:tabulate 变量名【,gen(A)】
加上gen(A)之后会对应的增加虚拟变量 A i {A_i} Ai
(3)回归
命令:regress y x1 x2 … xk
y为因变量,其他的为自变量,用空格隔开
(默认使用的OLS,普通最小二乘估计法)
(4)标准化回归
命令:regress y x1 x2 … xk,beta
标准化回归就是先对数据进行标准化处理,即减去均值再除以标准差,得到新的变量,用新的变量去回归得到标准化回归方程、标准化回归系数,而且标准化完全不会影响回归系数的标准误和显著性。
我们要保证同方差和无自相关,才能进行回归。不然会出现异方差
(就是扰动项的方差不相同)
1、后果
(1)OLS估计出来的回归系数仍然时五篇、一致的;
(2)假设检验无法使用(因为方差不对了);
(3)OLS估计量不再是最优线性无偏估计量。
2、如何判断是否存在异方差?
方法1:在回归后使用 rvfplot 或 rvpplot x 可以画出残差与拟合值或残差与自变量的散点图,观察其分布特点。(不推荐)
方法2:
BP检验:estat hettest ,rhs iid
怀特检验:estat imtest, white
BP检验是怀特检验的一种特殊情况,因此一般使用怀特检验,这两个检验的原假设 H 0 {H_0} H0都是扰动项不存在异方差。(在回归后使用命令即可)
3、解决方法
(1)使用OLS + 稳健的标准误
(2)广义最小二乘估计法GLS
Stock and Watson (2011)推荐,在大多数情况下应该使用“OLS + 稳健标准误”。
在stata中使用OLS + 稳健的标准误:
r e g r e s s y x 1 x 2 … , r o b u s t regress\quad y\ \ x_1\ \ x_2 \ \ \dots,robust regressy x1 x2 …,robust
只需要在后面跟上robust(可以简写成r)即可
方差膨胀因子VIF,拿某个变量当作因变量,其他变量当作自变量处理得到的,反映了该变量与其他变量的相关性,VIF越大,相关性越大
定义回归的方差膨胀因子为:
V I F = m a x { V I F 1 , V I F 2 , ⋯ , V I T k } VIF\ =\ max\{VIF_1,VIF_2,\cdots,VIT_k\} VIF = max{VIF1,VIF2,⋯,VITk}
其中,KaTeX parse error: Undefined control sequence: \m at position 24: …rac{1}{1-R_{1~k\̲m̲}^2},反映了第m个变量与其他变量的相关性
一般来说,如果VIF>10,则认为该回归方程存在严重的多重共线性
在stat中回归结束后使用
e s t a t v i f estat\quad vif estatvif
命令计算各自变量的VIF
如果存在多重共线性,一般不用理会,没有什么影响,如果影响到了所关心变量,则要剔除导致严重共线性的变量(一般不要轻易删除变量,因为可能会导致内生性)
向前逐步回归:将自变量逐个引入模型,每引入一个自变量都要进行检验,显著时才加入模型。(缺点:前面加入的自变量到后面可能不显著了,没有及时剔除)
向后逐步回归:先将所有变量加入模型中,再逐个剔除不显著的自变量。(推荐)
在stata中使用
s t e p w i s e r e g r e s s y x 1 x 2 … x k , p e ( a l p h a ) stepwise\quad regress\ y \ x_1\ x_2 \dots x_k,pe(alpha) stepwiseregress y x1 x2…xk,pe(alpha)
s t e p w i s e r e g r e s s y x 1 x 2 … x k , p r ( a l p h a ) stepwise\quad regress\ y \ x_1\ x_2 \dots x_k,pr(alpha) stepwiseregress y x1 x2…xk,pr(alpha)
注意:
1、pe是向前,pr是向后,这里要给定一个剔除或加入自变量的显著性水平;
2、这里的自变量不能有完全多重共线性,可以根据前面regress命令中自动剔除的那些变量进行手动剔除(实际上每个虚拟变量任意剔除一个即可);
3、可以在后面跟上参数 b 和 r ,即标准化回归或稳健标准误;
4、逐步回归解决了多重共线性的问题;
5、正经的论文中最好不用逐步回归,因为剔除自变量的话会导致内生性,但是数模竞赛中没有那么严格,还是经常用的;
6、除了逐步回归,还有看起来更好的筛选方法就是把自变量加不加的所有情况都试一遍,这会有 2 n − 1 2^n-1 2n−1种情况,不太推荐。