第1个回答 2024-08-20
日常摸鱼的强师傅,终于想起来填这个大坑了!
许多有关计量的入门教程都上来先丢一堆理论,看的头晕脑胀,但实际应用却讲的十分含糊。这对于很多想快速水paper或者写毕业论文交差的同学十分不友好。
而跟着本教程走,则可以通过实际的例子,快速的学习Stata软件的使用,这样在导入自己的数据后,可以快速搞出一篇论文的实证模型。
经管类专业在本科都会学计量经济学,但是一般只会教到基本的多元OLS模型就戛然而止了。诚然,这对于本科生来说够用了,但是基本的多元OLS模型本身并不好处理。如果是横截面数据,那解决异方差问题还算简单,但是大部分容易获得的经济数据都是时间序列数据,而时间序列数据的多重共线性处理又十分棘手。本科的计量书里一般都会说,逐步回归剔除一下就好了,但是这样会使得你能用的变量数量大打折扣,有些奇葩导师总会要你必须加一些他们想要的变量,不能让你去掉。另一个可行的方法则是采用主成分分析降维分析,但是这种方法,又需要用一个复杂的公式换算,过程繁琐且麻烦,一些类似KMO检验的东西还可能根本过不去。
因此,强师傅更推荐采用面板数据来处理本科以及硕士的毕业论文实证,因为其检验简单,而且更易操作,总之就是坑少好摸。
对于很多上了计量课就浪起来的同学来说,可能还分不清计量里的三种数据结构。本科一般只教两种:横截面数据,举例来说,就是中国2020年30个省份的GDP;时间序列数据,整个中国2010至2020年的GDP;而第三种数据结构便是面板数据,实际上就是横截面数据和时间序列数据的结合。
值得注意的是,不同软件输入面板数据的格式不一样,我只推荐Stata来处理这些数据,因为真的对新手很友好。面板数据可以在excel整理好,直接粘贴到Stata。
一个简单的面板数据例子如下:以北京上海和广州3个城市2010至2016年的人口,地区生成总值和商品房均价为例,在excel里的整理如下:可以看到,A列为我们的具体城市,实际上也就是截面或叫做个体,而B列年份则是时间,其余列为变量。你可以自己搭配不同的数据,整理成这样的格式即可。
打开stata的窗口,其中下方命令窗口可以直接输入我们要做的指令,左边为历史窗口可以看到我们已经进行过的处理,而变量窗口则可以显示我们输入数据后产生的变量。在命令窗口输入edit则可以打开数据编辑窗口。将excel的数据连同表头直接粘贴到这个窗口,则会有如下提示:选择变量名则可以直接将第一行作为变量名称。关闭该窗口回到stata主界面,则可以发现,有五个变量21个观测被导入了进去。由于城市变量是字符数据,因此在处理之前需要采用encode命令将其改为数值型数据。具体命令如下:encode 城市,gen(city)。这个命令中 encode为命令的名字,其作用是将字符数据转换为数值型。而gen为生成的意思,实际上是生成一个新变量。如果你的城市是以数值如1,2,3,4来命名的,则可以省略这一步。
紧接着,可以用xtset来声明面板模型的截面和时间。在stata里,x代表个体或截面(在计量中和paper里,个体一般用n或i来表示,面板的模型的公式角标一般是it或者nt),t代表时间,set便是设置的意思。在stata里,一般与面板相关的命令都会以xt开头。输入xtset city 年份则会发现,stata提示我们的panel变量,也就是个体为city,而时间跨度为2010至2016,如果每个城市每个年份均有数据,则为strongly balanced,即平衡面板,如果缺失数据,则为非平衡面板。
接着我们就可以着手跑第一个面板模型了,输入:xtreg 商品房均价 年末总人口 地区生产总值,fe则可以得到如下结果:此时我们便得到了第一个面板个体固定效应模型的结果。其中xtreg表示我们运行的面板模型,在stata里,第一个出现的变量一定是y变量,也就是被解释变量,而后面的变量均为x变量,因此在这个模型里,商品房价格为Y变量,人口和地区生产总值为X变量。在stata里,逗号后面一般跟随的都是命令的选项,你可以通过不同的选项来调节模型。我们的命令里,fe代表fixed effects,即个体固定效应模型。
在上述结果中,最为重要的是t检验的p值,即P>|t|这一列,可以发现,年末总人口的P值为0.103,这一般认为是不显著的结果。而地区生产总值为0.000,意味着其在1%水平上通过了显著性检验,可以认为地区生产总值直接与商品房房价有关。(一般P值小于0.1为10%显著,0.05为5%显著,小于0.01为1%显著,在论文里一般用星号代替,分别为*, ** , ***)
值得注意的是,面板模型不需要在意R2,因此R-sq的数值并不重要,这个后续的文章再讲原因。而_cons为常数项,不需要特别的解释。需要关注的是coef.这一列,对于P>|t|显著的,如变量“地区生产总值”可以这样解释:北京上海广州三个城市地区生产总值每上涨1万元,商品房房价上涨0.0001247元。但是这样解释看起来,很奇怪,因为一来系数非常的小,感觉很不直观,二来并不能反映出边际效应的变化。
因此,需要将y和x两边取对数,一来缩小量纲,二来转换为边际效应,也可以称为弹性。stata里输入:gen ln商品房均价=log( 商品房均价 )gen ln年末总人口 =log( 年末总人口 )gen ln地区生产总值 =log( 地区生产总值 )即可生成三个变量的对数形式:计量模型一定要用自然对数,stata里,log和ln都会取以e为底的自然对数。而excel里取对数的公式,用ln是自然对数,用log是以10为底的对数,是不一样的(一个小坑)。
再次运行面板模型的命令:可以发现,系数coef.的数值一下子变得好解释了。当然也会发现,年末总人口的P值小于了0.05,通过了显著性检验。这是由于许多社会经济数据本身是右偏的,而取对数可以将其转换为正态分布,从而修正异方差性,这部分会后续再详细解释(挖坑*1)。
而此时,模型则可以这样解释:当北上广三个城市,人口上升1%,则会导致商品房均价下降5.97%,而地区生产总值上升1%,则商品房价格会上升1.43%。有些时候,结果不是我们想要的,可能是我们的数据结构和样本选取导致的。面板模型是一个大树,后面根据不同的数据结构会出现不同的分支。对于个体多于时间的数据,则为短面板,一般为大N小T,而个体少于时间的数据,则为长面板,一般被称为小N大T。我们这个模型只有3个城市,但时间跨度为7年,显然属于长面板范畴,则需要特殊的处理,这个后续再补(挖坑*2)。
对于本科生来说,采用短面板是比较好的选择,对于硕士生来说,长面板可以进行许多高阶操作以满足实证的复杂度需要,如变系数模型或动态面板(挖坑*3)。模型需要做Hausman检验以在随机和固定效应两种不同的模型中进行选择,这会在下一期文章中讲解(挖坑*4)。而遗漏变量和内生性问题也可能会导致我们得不到想要的结果,这时候则需要一些高级的方法如工具变量法来处理(挖坑*5)。
但是对于许多想要快速进行实证分析的本科生和硕士生来说,这篇文章算是一个好的入门了。我的个人公众号已上线,请随意关注,欢迎向我提问哦。