数学建模(7)回归分析
自变量X和因变量Y
类型:线性回归、0-1型、定序变量(1很喜欢,2比较喜欢、3不喜欢)、计数变量(访问了几次)、生存变量(寿命)
用X来解释Y
相关性不等于因果性
因变量只有一个,自变量可以有多个。
回归的目的
1、识别重要变量
2、判断相关性的方向
3、估计权重(回归系数)
可以理解为用X解释Y
数据的分类
横截面数据:在某一个时间点收集的不同对象的数据
时间序列数据:同一个对象在不同时间里观测得到的数据
面板数据:把横截面数据和时间序列数据组合
对于线性的理解
通过变换也可以得到线性模型,就算是线性
例如:
l
n
y
i
=
β
0
+
β
1
l
n
x
i
+
μ
i
lny_i=\beta_0+\beta_1lnx_i+\mu_i
lnyi=β0+β1lnxi+μi
也属于线性关系
只需要对于线性回归建模前对于数据进行预处理
一元线性回归
x自变量,y因变量,且满足
y i = β 0 + β 1 x i + μ i y_i=\beta_0+\beta_1x_i+\mu_i yi=β0+β1xi+μi
β 0 \beta_0 β0和 β 1 \beta_1 β1是回归系数, μ \mu μ是扰动项。
令预测值为
y i ^ = β 0 ^ + β 1 ^ x i \hat{y_i}=\hat{\beta_0}+\hat{\beta_1}x_i yi^=β0^+β1^xi
其中 β 0 ^ \hat{\beta_0} β0^ β 1 ^ = a r g m i n ( ∑ i = 1 n ( y i − y i ^ ) 2 ) \hat{\beta_1}=argmin(\sum_{i=1}^n(y_i-\hat{y_i})^2) β1^=argmin(∑i=1n(yi−yi^)2)
β 0 ^ β 1 ^ = a r g m i n ( ( μ i ^ ) 2 ) \hat{\beta_0}\hat{\beta_1}=argmin((\hat{\mu_i})^2) β0^β1^=argmin((μi^)2)
残差 μ i ^ = y i − β 0 ^ − β 1 ^ x i \hat{\mu_i}=y_i-\hat{\beta_0}-\hat{\beta_1}x_i μi^=yi−β0^−β1^xi
回归系数的解释
一般的 y = a x 1 + b x 2 + c y=ax_1+bx_2+c y=ax1+bx2+c这一类的斜率、截距不多说了。
要解释a、b、c三个变量,且记住一句话,在保持其他变量不变的条件下。
如果满足误差量 μ \mu μ和所有的自变量x均不相关,则回归模型具有外生性。
如果相关,则有内生性,内生性会导致不满足无偏性和一致性。
在实际应用中,保证核心解释变量和扰动项 μ \mu μ不相关即可。
什么时候取对数
1、与市场价值相关的价格、销售额、工资
2、以年度量的变量,售价为年限,工作经历不取对数
3、比例变量,失业率、参与率两者都可以去对数
4、变量取值必须是非负数,如果包含了0可以 l n ( 1 + x ) ln(1+x) ln(1+x)
好处:
1、减弱异方差性
2、可能取了对数会符合正态分布
3、有了经济学意义
解释回归系数:
1、
y
=
a
+
b
x
+
μ
y=a+bx+\mu
y=a+bx+μ:
x每增加一个单位,y平均变化b个单位
2、
l
n
y
=
a
+
b
l
n
x
+
μ
lny=a+blnx+\mu
lny=a+blnx+μ:
x每增加
1
%
1\%
1%,y平均变化
1
%
1\%
1%
3、
y
=
a
+
b
l
n
x
y=a+blnx
y=a+blnx:
x每增加
1
%
1\%
1%,y平均变化
b
100
\frac{b}{100}
100b个单位
4、
l
n
y
=
a
+
b
x
lny=a+bx
lny=a+bx:
x每增加一个单位,y平均变化
(
100
b
)
%
(100b)\%
(100b)%
虚拟变量X
有定性的变量,比如男女、地域,需要引入虚拟变量。
男女这一类可以看作 0 − 1 0-1 0−1
地域这一类,有abcdefg一堆变量,探究a是否特殊,a的那个相关变量设为1,其他全部为0,每次最多只能保证有一个虚拟变量为1
自变量的交互项
比如自变量 x 1 x_1 x1和 x 2 x_2 x2有关系,可以创造交互项 β 3 x 1 x 2 \beta_3 x_1x_2 β3x1x2
看作 y = β 1 x 1 + β 2 x 2 + β 3 x 1 x 2 + μ y=\beta_1x_1+\beta_2x_2+\beta_3 x_1x_2+\mu y=β1x1+β2x2+β3x1x2+μ
因为求偏导之后,可以看到两个系数对于 x 2 x_2 x2的共同影响
Δ y Δ x 2 = β 2 + β 3 x 1 \frac{\Delta y}{\Delta x_2}=\beta_2+\beta_3x_1 Δx2Δy=β2+β3x1
Stata软件
一个专业的统计分析软件,常常用来解决计量经济学。
做回归分析可以快速上手这个软件
定量数据的描述性统计
summarize 变量名
//可以有多个变量名一起放进去
定性数据的描述性统计
tabulate 变量名, gen(A)
// 可以有多个变量名一起放进去
// 生成以A开头的虚拟变量
进行回归:
regress y x1 x2 ... xk
// 默认使用普通最小二乘法
// 如果全部都是定量数据,直接用下面这一行
regress y x1 x2 ... xk
// 如果有一部分定性数据,需要把每一种定性数据转化成虚拟变量
tabulate 变量名1, gen(A)
tabulate 变量名2, gen(A)
// 再使用regerss
regress y x1 x2 ... xk A1 A2 B1 B2
结论中:
Model是SSR,
Residual是SSE,
Total是SST,
df是自由度,
MS是均值
R
2
=
1
−
S
S
E
S
S
T
R^2=1-\frac{SSE}{SST}
R2=1−SSTSSE
R
a
d
j
u
s
t
e
d
2
=
1
−
S
S
E
/
(
n
−
k
−
1
)
S
S
T
/
(
n
−
1
)
(
k
为
自
变
量
的
个
数
)
R^2_{adjusted}=1-\frac{SSE/(n-k-1)}{SST/(n-1)}\quad (k为自变量的个数)
Radjusted2=1−SST/(n−1)SSE/(n−k−1)(k为自变量的个数)
coef是回归系数,
t为t检验的参数,
[95% Conf.Interval]是置信区间
拟合优度 R 2 R^2 R2低怎么办
解释型回归一般不太看重 R 2 R^2 R2,预测型回归更看重 R 2 R^2 R2
所以对于预测型回归需要 R 2 R^2 R2较好,调整数据,取对数或者平方(有点玄学了)
有异常值或者数据分布极不均匀
评价评价量的重要因素
考虑标准化回归系数
regress y x1 x2 ... xk beta
// 后面加beta就可以了
回归中不要随意添加高次的自变量,例如弄成 x 2 x^2 x2或者 x 4 x^4 x4这种。
异方差
之前的回归,默认扰动项是球形扰动项(满足“同方差”和“无自相关”)
OLS估计出来的回归系数是无偏、一致的,但是假设检验失效,不再是最优线性无偏估计量。
Stata检验异方差
rvfplot
怀特检验
cstat imtcst, white
多重共线性
出现这种情况,会导致 β \beta β不可识别,无法定义最小二乘法估计量。
表现为即使 R 2 R^2 R2很大,单个系数的 t t t检验不显著。或者增加一个或者减少一个数据导致回归系数变化很大。
检验多重共线性的方法
方差膨胀因子VIF
有 k k k个自变量,那么第 m m m个自变量的 V I F m = 1 1 − R 1 ∼ k 2 / m VIF_m=\frac{1}{1-R^2_{1\sim k}/m} VIFm=1−R1∼k2/m1
VIM越大,第m个变量和其他变量相关性越大。
定义回归模型
V I M = m a x V I M 1 , V I M 2 , . . . , V I M K VIM=max{VIM_1,VIM_2,...,VIM_K} VIM=maxVIM1,VIM2,...,VIMK
如果VIM>10,则认为该回归方程存在严重的多重共线性。
Stata命令:
estat vif
//回归结束后使用
如果出现多重共线性那么:
1、不管他,如果不关心回归系数,能预测就行;
2、不管他,如果关心回归系数,但是不影响显著性;
3、增大样本容量;
4、剔除导致严重共线性的变量(小心内生性)。
逐步回归
分为向前逐步回归,向后逐步回归
向前逐步回归:将自变量逐个引入模型,引入一个,检验一次。
stepwise regress y x1 x2 ... xk, pe(#1)
// #1是显著性水平,一般取0.05
// p<#1加入模型
向后逐步回归:所有变量都放入模型,尝试剔除一个自变量,观察模型是否有显著变换。不停迭代。
stepwise regress y x1 x2 ... xk, pr(#2)
// #2是显著性水平,一般取0.05
// p>=#1剔除模型
如果筛选后的变量很多,你可以减少#1或者#2;
变量少了,增加#1或者#2
注意:
1、这个x1 x2 … xk之间不能有完全多重共线性,可以先regress剔除掉完全多重共线性。
2、尽量多考虑内生性问题。