Seven# Economicmartix Study
第一章
第一节线性回归分析
数据:use "E:\高计数据\nerlove.dta
1.简单的线性回归
regress lntc lnq lnpl lnpf lnpk
(回归元应该放在第一个位置)
回归结果
Source | SS df MS Number of obs = 145
-------------+---------------------------------- F(4, 140) = 437.90
Model | 269.524728 4 67.3811819 Prob > F = 0.0000
Residual | 21.5420958 140 .153872113 R-squared = 0.9260
-------------+---------------------------------- Adj R-squared = 0.9239
Total | 291.066823 144 2.02129738 Root MSE = .39227
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .7209135 .0174337 41.35 0.000 .6864462 .7553808
lnpl | .4559645 .299802 1.52 0.131 -.1367602 1.048689
lnpf | .4258137 .1003218 4.24 0.000 .2274721 .6241554
lnpk | -.2151476 .3398295 -0.63 0.528 -.8870089 .4567136
_cons | -3.566513 1.779383 -2.00 0.047 -7.084448 -.0485779
这里lnpl和lnpk的p值都比较高,均不显著。常数项的p值为0.047在5%的水平上显著
lnq和lnpf均在1%的水平上显著
2.怎么计算系数的协方差矩阵?
使用命令vce
(varience covarience estimated)
回归结果
Covariance matrix of coefficients of regress model
e(V) | lnq lnpl lnpf lnpk _cons
-------------+------------------------------------------------------------
lnq | .00030393
lnpl | -.00035938 .08988127
lnpf | .00030089 -.01124831 .01006447
lnpk | .00034967 .02497537 -.00669535 .11548412
_cons | -.00451909 -.15095534 .00784373 -.59317676 3.1662023
3.回归时不要常数项
. regress lntc lnq lnpl lnpk lnpf,noconstant
Source | SS df MS Number of obs = 145
-------------+---------------------------------- F(4, 141) = 1113.80
Model | 700.203755 4 175.050939 Prob > F = 0.0000
Residual | 22.1602671 141 .157165015 R-squared = 0.9693
-------------+---------------------------------- Adj R-squared = 0.9685
Total | 722.364022 145 4.98182084 Root MSE = .39644
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .715823 .0174313 41.07 0.000 .6813626 .7502834
lnpl | .2859235 .290609 0.98 0.327 -.2885907 .8604377
lnpk | -.8833212 .0666914 -13.24 0.000 -1.015166 -.7514768
lnpf | .4346492 .1012917 4.29 0.000 .2344025 .6348959
在减少了常数项后,lnpl的p值上升了
4.子样本回归
先定义一个子样本
g largre=(q>=6000)
对子样本的回归
. regress lntc lnq lnpl lnpk lnpf if q>=6000
Source | SS df MS Number of obs = 14
-------------+---------------------------------- F(4, 9) = 17.43
Model | 2.58684888 4 .646712221 Prob > F = 0.0003
Residual | .333945243 9 .037105027 R-squared = 0.8857
-------------+---------------------------------- Adj R-squared = 0.8349
Total | 2.92079413 13 .224676471 Root MSE = .19263
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | 1.212431 .1956448 6.20 0.000 .7698514 1.65501
lnpl | .691631 .5184909 1.33 0.215 -.4812769 1.864539
lnpk | .2463727 .5679552 0.43 0.675 -1.038431 1.531177
lnpf | .1566504 .4341391 0.36 0.727 -.8254404 1.138741
_cons | -9.343626 3.074833 -3.04 0.014 -16.29938 -2.387871
------------------------------------------------------------------------------
(((注意这里的if q>=6000前面没有逗号)))
5.对虚拟变量进行回归
①先对上面所定义的虚拟变量中的大企业进行回归
. regress lntc lnpl lnpk lnpf lnq if large==1
Source | SS df MS Number of obs = 14
-------------+---------------------------------- F(4, 9) = 17.43
Model | 2.58684888 4 .646712221 Prob > F = 0.0003
Residual | .333945243 9 .037105027 R-squared = 0.8857
-------------+---------------------------------- Adj R-squared = 0.8349
Total | 2.92079413 13 .224676471 Root MSE = .19263
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnpl | .691631 .5184909 1.33 0.215 -.4812769 1.864539
lnpk | .2463727 .5679552 0.43 0.675 -1.038431 1.531177
lnpf | .1566504 .4341391 0.36 0.727 -.8254404 1.138741
lnq | 1.212431 .1956448 6.20 0.000 .7698514 1.65501
_cons | -9.343626 3.074833 -3.04 0.014 -16.29938 -2.387871
------------------------------------------------------------------------------
或者这里用
. regress lntc lnpl lnpk lnpf lnq if large
也是可以的(也就是没有“==1”)
②对小企业回归
. regress lntc lnq lnpl lnpk lnpf if large==0
Source | SS df MS Number of obs = 131
-------------+---------------------------------- F(4, 126) = 335.12
Model | 191.215784 4 47.8039459 Prob > F = 0.0000
Residual | 17.9734332 126 .142646295 R-squared = 0.9141
-------------+---------------------------------- Adj R-squared = 0.9114
Total | 209.189217 130 1.60914782 Root MSE = .37769
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .6804817 .0189526 35.90 0.000 .6429751 .7179883
lnpl | .2446683 .3103625 0.79 0.432 -.3695299 .8588666
lnpk | -.4438968 .3500475 -1.27 0.207 -1.13663 .2488369
lnpf | .3841839 .0979864 3.92 0.000 .1902717 .5780961
_cons | -1.898111 1.851595 -1.03 0.307 -5.562363 1.766141
------------------------------------------------------------------------------
6.预测拟合值yhat
. predict lntchat
预测lntc的拟合值,并将其记为lntchat
7.计算lnq的系数
. display 1/_b[lnq]
1.4695473
计算 _b[lnq]表示lnq的OLS系数的估计值
7.对于系数的检验
. test lnq=1
( 1) lnq = 1
F( 1, 126) = 284.22
Prob > F = 0.0000
这里的命令代表的是检验H0:lnq的系数为1的假设
由于检验的p值很小,故倾向于拒绝原假设,接受系数大于1的备择假设
同时由于Cobb-Dugglas函数的性质,次方项之和应为1,检验联合假设
. test (lnq=1)(lnpl+lnpk+lnpf=1)
( 1) lnq = 1
( 2) lnpl + lnpk + lnpf = 1
F( 2, 126) = 142.13
Prob > F = 0.0000
由于p值很小,故倾向于拒绝原假设,可认为lnq≠1
又因为前面的回归当中lnpl和lnpk的p值都很大,估计可能出现了偏差,因此对这
两个参数进行联合检验
. test lnpl lnpk
( 1) lnpl = 0
( 2) lnpk = 0
F( 2, 126) = 1.47
Prob > F = 0.2336
这里的(1)(2)表示的是两个线性假设(故采用线性假设的F检验)
由于p值很大,则倾向于接受lnpl和lnpk的系数均为0的两个假设
8.对于非线性假设的检验
什么是非线性假设?
比如β1和β2之间存在着非线性关系,β1=(β2)^2
. testnl _b[lnpl]=_b[lnq]^2
(1) _b[lnpl] = _b[lnq]^2
chi2(1) = 0.49
Prob > chi2 = 0.4837
这里的p值很大,倾向于接受原假设
9.列出所有lnq
. avplot lnq
(avplot=all variable plaot)
10.列出所有新变量的散点图
. avplots
((列出单个变量的散点图和把所有变量的散点图列在同一张图上的代码区别仅仅在于列出所有变量散点图的代码多了“s”少了单个变量的后缀))
11.进行约束回归
constraint def 1 lnpl+lnpk+lnpf=1
((定义一个约束条件并称为1条件:constraint def 1 后面再写具体的条件))
在约束条件下进行回归
. cnsreg lntc lnq lnpl lnpk lnpf,c(1)
Constrained linear regression Number of obs = 145
Root MSE = 0.3915
( 1) lnpl + lnpk + lnpf = 1
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .7213365 .0173912 41.48 0.000 .6869553 .7557176
lnpl | .6064693 .207239 2.93 0.004 .196772 1.016167
lnpk | -.0208375 .1933394 -0.11 0.914 -.4030563 .3613813
lnpf | .4143682 .0987832 4.19 0.000 .2190805 .6096559
_cons | -4.636069 .8949922 -5.18 0.000 -6.405408 -2.866731
------------------------------------------------------------------------------
((cnsreg=constrained regression))
(( c(1)=constrained 1 代表的是在第一个约束条件下))
※※※对比有约束回归与无约束回归的结果※※※
. regress lntc lnq lnpl lnpk lnpf
Source | SS df MS Number of obs = 145
-------------+---------------------------------- F(4, 140) = 437.90
Model | 269.524728 4 67.3811819 Prob > F = 0.0000
Residual | 21.5420958 140 .153872113 R-squared = 0.9260
-------------+---------------------------------- Adj R-squared = 0.9239
Total | 291.066823 144 2.02129738 Root MSE = .39227
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .7209135 .0174337 41.35 0.000 .6864462 .7553808
lnpl | .4559645 .299802 1.52 0.131 -.1367602 1.048689
lnpk | -.2151476 .3398295 -0.63 0.528 -.8870089 .4567136
lnpf | .4258137 .1003218 4.24 0.000 .2274721 .6241554
_cons | -3.566513 1.779383 -2.00 0.047 -7.084448 -.0485779
------------------------------------------------------------------------------
.
. cnsreg lntc lnq lnpl lnpk lnpf,c(1)
Constrained linear regression Number of obs = 145
Root MSE = 0.3915
( 1) lnpl + lnpk + lnpf = 1
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .7213365 .0173912 41.48 0.000 .6869553 .7557176
lnpl | .6064693 .207239 2.93 0.004 .196772 1.016167
lnpk | -.0208375 .1933394 -0.11 0.914 -.4030563 .3613813
lnpf | .4143682 .0987832 4.19 0.000 .2190805 .6096559
_cons | -4.636069 .8949922 -5.18 0.000 -6.405408 -2.866731
------------------------------------------------------------------------------
lnq,lnpl,lnp的系数均未发生显著变化
lnpk的系数从无约束的-0.21变为有约束的-0.02,离真实值较为接近。
12.进行多个约束下的回归
. cons def 2 lnq=1
((同样也是定义第二2约束条件lnq=1))
. cnsreg lntc lnq lnpl lnpk lnpf,c(1 2)
Constrained linear regression Number of obs = 145
Root MSE = 0.6553
( 1) lnpl + lnpk + lnpf = 1
( 2) lnq = 1
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | 1 (constrained)
lnpl | .1558956 .3436328 0.45 0.651 -.5234015 .8351927
lnpk | .1443526 .3231175 0.45 0.656 -.4943898 .7830949
lnpf | .6997518 .1626168 4.30 0.000 .3782892 1.021214
_cons | -7.926918 1.45791 -5.44 0.000 -10.80893 -5.044905
------------------------------------------------------------------------------
((多个约束下的回归只需要在c()的里面添加第几个约束即可,用宫格间隔开,但是要注意得先用constraint def ? __=__ syntax来定义约束))
第二章 大样本OLS
1.对比大样本和小样本OLS的区别与异同
数据来源:. use "C:\Users\Horizon\Desktop\nerlove1963.dta"
①小样本OLS
. reg lntc lnq lnpl lnpk lnpf
Source | SS df MS Number of obs = 145
-------------+---------------------------------- F(4, 140) = 437.90
Model | 269.524728 4 67.3811819 Prob > F = 0.0000
Residual | 21.5420958 140 .153872113 R-squared = 0.9260
-------------+---------------------------------- Adj R-squared = 0.9239
Total | 291.066823 144 2.02129738 Root MSE = .39227
------------------------------------------------------------------------------
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .7209135 .0174337 41.35 0.000 .6864462 .7553808
lnpl | .4559645 .299802 1.52 0.131 -.1367602 1.048689
lnpk | -.2151476 .3398295 -0.63 0.528 -.8870089 .4567136
lnpf | .4258137 .1003218 4.24 0.000 .2274721 .6241554
_cons | -3.566513 1.779383 -2.00 0.047 -7.084448 -.0485779
------------------------------------------------------------------------------
检验lnq的系数是否为1,即,H0:_b[lnb]=1
. test lnq=1
( 1) lnq = 1
F( 1, 140) = 256.27
Prob > F = 0.0000
②大样本OLS
. reg lntc lnq lnpl lnpk lnpf ,robust
Linear regression Number of obs = 145
F(4, 140) = 177.19
Prob > F = 0.0000
R-squared = 0.9260
Root MSE = .39227
------------------------------------------------------------------------------
| Robust
lntc | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lnq | .7209135 .0325376 22.16 0.000 .656585 .785242
lnpl | .4559645 .260326 1.75 0.082 -.0587139 .9706429
lnpk | -.2151476 .3233711 -0.67 0.507 -.8544698 .4241745
lnpf | .4258137 .0740741 5.75 0.000 .2793653 .5722622
_cons | -3.566513 1.718304 -2.08 0.040 -6.963693 -.1693331
------------------------------------------------------------------------------
其中robust=稳健标准误
对比大样本和小样本OLS可得到,无论是大样本还是小样本,估计出来的参数βhat都是相同的
lnq在大样本下的稳健标准为0.32 , 在小样本下的标准误为0.174))变动幅度较大
. test lnq=1
( 1) lnq = 1
F( 1, 140) = 73.57
Prob > F = 0.0000
由此可见,无论是在大样本还是在小样本的情况下,lnq的系数1的假设的P值都很小,故无论是在大样本还是小样本的情况下,都拒绝lnq的系数等于1的原假设)
2.非线性假设的检验
①线性假设的检验为 .test _=__
②非线性假设的检验为 .testnl _=__
. testnl _b[lnpl]=_b[lnq]^2
(1) _b[lnpl] = _b[lnq]^2
chi2(1) = 0.05
Prob > chi2 = 0.8161
p值为0.8161很大,无法拒绝原假设
第三章 Maximium Likelyhood Esitimation
数据来源:
. sysuse auto
(1978 Automobile Data)
1.在一张图当中画出mpg变量和normal distribution的密度
. hist mpg,normal
(bin=8, start=12, width=3.625)
这里的hist指的是histogram(直方图),如果要画两个变量的图像,应该在两个变量之间用逗号隔开
bin代表的是有几个直方图,start表示的是第一个直方图从什么具体数据开始,width表示的是组宽
由于mpg这个变量是离散的,不方便比较其趋势与normal distribution 有什么具体的区别,因此采用核密度
. kdensity mpg,normal lpattern("-")
其中kdensity 代表的是核密度(核密度我也不知道是什么)
lpattern指的是线的种类
或者用另外一种方式
. kdensity mpg,normal lpattern (dash)
dash表示的是虚线的意思,我觉得第二个比较好记(毕竟是英语)
画出mpg & normal distribution的分位数图
.qnorm mpg
#qnorm表示的是正态分布的分位数函数 quantile normal distribution
2.在stata上进行JB检验
. sum mpg,detail
Mileage (mpg)
-------------------------------------------------------------
Percentiles Smallest
1% 12 12
5% 14 12
10% 14 14 Obs 74
25% 18 14 Sum of Wgt. 74
50% 20 Mean 21.2973
Largest Std. Dev. 5.785503
75% 25 34
90% 29 35 Variance 33.47205
95% 34 35 Skewness .9487176
99% 41 41 Kurtosis 3.975005
先找出mpg这个解释变量的偏度和峰度,再根据JB统计量的公式进行计算
. display (r(N)/6)*((r(skewness)^2)+[1/4*(r(kurtosis)-3)^2])
14.031924
这里JB统计量的计算只能手敲,r(_)代表的是从前面的计算中提取的样本容量,同理(r(skewness)和r(kurtosis)
由于JB统计量服从自由度是2的chisquare distribution ,所以可以根据卡方2的数据来计算P值或者进行假设检验
. display chi2tail(2,14.031924)
.00089744
14.031924是一个统计量,可以计算对应的p值,上面那行代码的意思就是“计算在自由度为2的卡方分布的下,14.031924这个JB统计量所对应的P值是多少”
由于计算出来的p值为0.00089744很小,所以可以在1%的显著性水平上拒绝原假设,同时,还可以在0.089744%的水平上拒绝原假设(原假设是扰动项服从normal distribution)
3.用stata的非官方命令进行JB检验(即直接计算JB统计量并且不用手搓JB统计量)
. ssc install jb6
ssc是指Statistical Software Components
ssc install是指安装外部命令,jb6代表的是进行jb检验
. jb6 mpg
Jarque-Bera normality test: 14.03 Chi(2) 9.0e-04
Jarque-Bera test for Ho: normality: (mpg)
用外部程序直接进行JB检验,其中14.93代表的是JB统计量所对应值, 9.0e-04对应的是p值)
. sktest mpg
Skewness/Kurtosis tests for Normality
------ joint ------
Variable | Obs Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2
-------------+---------------------------------------------------------------
mpg | 74 0.0015 0.0804 10.95 0.0042
对mpg进行扰动项服从正态分布的检验,由于p指为0.0042,即0.42%,故可以在1%的显著性水平上拒绝原假设,同时还可以在0.42%的显著性水平上拒绝原假设
3.怎么使mpg更接近于正态分布?
可以采取取自然对数的方法
. gen lnmpg=log(mpg)
这是前面学过的定义新变量的语法结构,gen=generate=生成新变量。左边是新变量的名称,右边表示的是对原变量做出什么函数变换
. kdensity lnmpg,normal lpatter(dash)
对mpg取完对数后,再画出核密度图,并且将normal distribution和lnmpg的核密度图画在一起,我们发现这时候lnmpg已经很接近正态分布了
. sktest lnmpg
Skewness/Kurtosis tests for Normality
------ joint ------
Variable | Obs Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2
-------------+---------------------------------------------------------------
lnmpg | 74 0.3586 0.9446 0.87 0.6474
进行Agostino检验
. sktest lnmpg
Skewness/Kurtosis tests for Normality
------ joint ------
Variable | Obs Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2
-------------+---------------------------------------------------------------
lnmpg | 74 0.3586 0.9446 0.87 0.6474
发现p值很大,不拒绝原假设