Basic Econometrics: why log?

 

1. heteroscedasticity

对数据做一些变换的目的是它能够让它符合我们所做的假设,使我们能够在已有理论上对其分析。
对数变换(log transformation)是特殊的一种数据变换方式,它可以将一类我们理论上未解决的模型问题转化为已经解决的问题。我将说两类比较有代表性的模型。

A. 理论上:随着自变量的增加,因变量的方差也增大的模型。

先给个很经典的例子,如分析美国每月电力生产数。
左边是正常数据,可以看到随着时间推进,电力生产也变得方差越来越大,即越来越不稳定。这种情况下常有的分析假设经常就不会满足(误差服从独立同分布的正态分布,时间序列要求平稳)。
这必然导致我们寻求一种方式让数据尽量满足假设,让方差恒定,即让波动相对稳定。而这种目的可以通过对数转换做到。

理论上,我们将这类问题抽象成这种模型,即分布的标准差与其均值线性相关
\sqrt{Var(Z_{t})} =\mu _{t}\times \sigma ,其中E(Z_{t}) =\mu _{t}
由定义可推:Z_{t}=\mu _{t}\left( 1+\frac{Z_{t}-\mu _{t}}{\mu _{t}}  \right) ,利用log函数的性质:log(1+x)\approx x(当x足够小)
那么log(Z_{t})\approx log(\mu _{t})+\frac{Z_{t}-\mu _{t}}{\mu _{t}} .
那么很容易就知道E(log(Z_{t})) \approx log( \mu _{t})Var(log(Z_{t})) \approx \sigma ^{2} .

所以对数变换能够很好地将随着自变量的增加,因变量的方差也增大的模型转化为我们熟知的问题。

B. 经验上:研究数据的增长率分布存在一定规律的模型。

再给个例子:实际研究中,某一研究对象自身性质难以研究,但其增长率是服从一定分布。例如说:Z_{t}=(1+X_{t}) \times Z_{t-1},其中X_{t}是每年增长率(不很大)。
我们可以考虑对数变换:log(Z_{t})-log(Z_{t-1})=log\left(  \frac{Z_{t}}{Z_{t-1}}  \right)=log\left( 1+X_{t} \right)\approx X_{t}
这样,我们又可以将研究数据的增长率分布存在一定规律的模型转化为我们熟知的问题。

在对数转换后,人们又思考了很多其他的转换方式(如Cox-Box转换)。但总而言之,每一种转换方式都是为了让数据符合我们的假设,来对其进行分析。

Caveats:

异方差的角度是从数据出发来解释为什么取对数。但是这里有两点需要注意:

  1. 做OLS回归的时候,异方差对系数估计的一致性没有影响,但是对假设检验有影响
  2. 计量经济学看中DGP,也就是数据生产过程。而取不取对数取决与研究人员对DGP的belief是怎样的,而这种belief是从理论或者直觉上来的

 

2. Distribution and Economics meaning

A. 将数据取对数有一定的经济含义

log(1+x)=x,这个关系在x比较小的时候接近成立。因此数据取对数之后再差分有增长率的含义,举个例子:log(GDP_year2)-log(GDP_year1) = log(GDP_year2/GDP_year1)=(GDP_year2/GDP_year1)-1,即GDP的增速。取对数之后可以比较方便地研究增长率的问题。

B. 将右偏的数据形态变为正态

首先什么是“右偏”?图像上看,右偏是这种形态的分布:
简而言之,分布非对称,右边的尾部偏长,表示有一些非常大的极端值,大部分样本的数据集中在偏左的部分。
而在计量经济学的应用中,通常希望分布是正态的,或者至少是对称的,既不往左也不往右偏,也就是下面这种形状:
大多数的经济数据都是呈右偏的形态如收入分布,企业的资产规模,等等,取了对数之后可以一定程度地修正数据的右偏形态,使其更接近于正态。数据的正态性对于统计量的各种小样本性质,统计量的有限样本分布,极大似然估计方法的应用都有比较重要的含义。

Caveats:为什么很多数据是这样的分布。

取对数的原因很简单,经济学理论大多可以得到取对数的函数形式,或者直觉告诉我们,不取对数与现实不符。

举几个例子:

a)人口

这个应该是最容易理解的,如果不考虑自然条件的限制,生物的种群总是指数增长的:\frac{dP}{dt}=rP,其中P为人口,r为人口的自然增长率。现在我们假设有两个国家D=0,1,两个国家的人口一般说来是增长率的差异,比如差\beta,所以模型可以写成:\frac{dP}{dt}=\left( r+\beta D \right) P,整理一下就可以写成d\log{P}=r+\beta D。如果你写成P=e^{rt}+\beta D是什么意思呢?每年国家1比国家2多\beta个人,这样显然不现实。

b)GDP
这个可以从生产函数Y=AK^{\alpha}L^{1-\alpha}导出\log{Y}=\log{A}+\alpha \log{K}+\left( 1-\alpha \right) \log{L}。这个生产函数形式是经济学最常用的。
也许你会说,这个生产函数是个假设,我也可以假设Y=A+\alpha K+\beta L的形式啊。但是如果你这样假设,会跟现实差距很大,比如用C-D的假设可以得出GDP的增长率跟劳动和资本的增长率大约是同阶的,但是用线性的就得不到。还有很多其他的观察,比如规模报酬、要素的替代等等。一个假设肯定是以为其对现实拟合的很好才会被保留下来的(这里的拟合不仅仅是直接的拟合,还包括理论的其他推论的拟合)。

c)国际贸易
也就是我们说的引力模型了。如果你假设了消费者的适当的效用函数形式以及以上的生产函数形式,经过一系列复杂的一般均衡的推导,可以得到两个国家之间的贸易量有如下形式:
X_{i,j}=\frac{X_i X_j}{D_{i,j}}\eta _{i,j}
其中左手边是两个国家之间的贸易量,右手边是两个国家的产出和距离。做回归的时候,自然也就得到了log的形式。

Matching Function
具体我就不介绍了,可以看Shouyong Shi 的文章<Pricing and Matching with Frictions>。这个函数的右手边是市场上工作的个数和工人的个数,左手边是匹配成功的个数。以下的函数形式也是在很简单的假设下推导出来的,当n m很大的时候,这个函数也是慢慢变成齐次的,用C-D来表示是个很好的近似:

其他例子我就不举了。其实仔细想一下这个问题,理论都是基于假设,而理论的验证则是看理论的推测是不是满足现实。所以剩下来的没有被抛弃的理论都是前人经验没有推翻的。所以,与其说是理论告诉我们要取对数,还不如说是前人的经验告诉我们,绝大多数level的变量都要取对数。

 

3. Statistics

总的说来,对数变换是数据变换的一种常用方式,数据变换的目的在于使数据的呈现方式接近我们所希望的前提假设,从而更好的进行统计推断。但需要注意的是,数据是离散变量时进行对数变换要额外小心!

当然,我们可以追问的更多:

A. (Why)为什么需要做数据变换?

  • 从直观上讲,是为了更便捷的发现数据之间的关系(可以理解为更好的数据可视化)。举个栗子,下图的左图是各国人均GDP和城市人口数量的关系,可以发现人均GDP是严重左偏的,并且可以预知在回归方程中存在明显的异方差性,但如果对GDP进行对数变换后,可以发现较明显的线性关系。为什么呢?因为我们度量相关性时使用的Pearson相关系数检验的是变量间的线性关系,只有两变量服从不相关的二元正态分布时,Pearson相关系数才会服从标准的t-分布,但如果变量间的关系是非线性的,则两个不独立的变量之间的Pearson相关系数也可以为0.
  • 所以,数据变换后可以更便捷的进行统计推断(t检验、ANOVA或者线性回归分析)。例如通常构造估计量的置信区间时是使用样本均值加减两倍标准差的方式,而这就要求样本均值的分布是渐近正态分布,如果数据呈现出明显的偏度,则此时使用上述统计推断方式就是不适用的;另外,最经典的例子就是回归分析中的异方差性,误差项的方差随着自变量的变化而变化,如果直接进行回归估计残差的方差会随着自变量的变化而变化,如果对变量进行适当变换,此时残差服从同一个正态分布。

B. (Why)为什么可以做数据变换?

    • 这个问题很难,每当做数据变换时,禁不住会想这样原始的数据信息是否经过变换后存在损失?数据变换有没有标准程序原始数据的统计推断又该怎么进行?我也没有完全理清思路,但想通过几个例子抛砖引玉。
    • 先从理论情形下去考虑,例子1,如果一个数是连续的,并且服从对数正态分布ln(X)\sim N(\mu,\sigma^{2}),可以很容易知道X的概率密度函数(PDF)f_{X}(x)=\frac{1}{x\sqrt{2\pi}\sigma} e^{-\frac{(lnx-\mu)^2}{2\sigma^{2}} } ,这样E(X)=e^{\mu+\frac{\sigma^{2}}{2}}Var(X)=\left( e^{\sigma{2}-1}  \right)e^{2\mu+\sigma^2} ,此时可以看到已知变换后的数据的统计特征可以反过来推导出原始数据的统计特征,不存在数据信息的损失(可以看到对数转换后变量的均值可以直接由样本数据的均值得到,但不进行变化却需要由样本均值方差两方面去推断得到);例子2,如果一个数是离散的,服从负二项分布,概率质量函数(PMF)可以写成f\left( k:\theta,p\right)=C_{\theta-1}^{k+\theta-1} \left( 1-p \right)^\theta p^k,如果对这个变量进行对数变换后,情形又会怎样呢?此时,E\left( k \right) =\frac{p^{\theta}}{1-p} Var\left( k \right)=\frac{p^\theta}{(1-p)^2} ,假设数据的生成过程服从负二项分布,并且在不同的\theta=0.5,1,2,5,10,100下模拟生成数据,再用不同的方式去估计\tilde{\mu}=Y ,可以设计评价指标B=\frac{1}{S}\Sigma_{\left(s\right)} \tilde{\mu} -\mu,可以看到不同的数据变换方式下的估计精度是不同的。可以看到,如果假设数据服从负二项分布,估计的误差很小,如果假设数据对数变换后服从正态分布时会出现较大误差(由于离散分布时数据可以取0,此时对数变换需要用ln\left( x+k \right) 的形式,可以发现k取值并非随意),如果假设数据根号变换后服从正态分布时的误差要小于对数变换。所以,从一个小的随机模拟实验可以看出,数据的变换方式并非随意,并且对数变换也不一定是最好的变换,尤其是离散数据情况下(详见”Do not log-transform count data”).
  • 但上述仅仅是在理论前提下数据变换的讨论,但实际应用中呢?理论前提下,即使再复杂总能找到处理的办法,但应用问题却没有标准答案。在我看来,数据变换方法的使用更是一门艺术(先验知识+经验+运气),需要结合应用领域的专门知识。例如,在宏观计量中,许多不平稳的经济数据要进行时间序列建模,就需要进行差分变换或者去除趋势,按照经济增长理论,经济数据应该存在趋势,那对数据应该进行去除趋势变换,但后来实证发现数据进行差分变换后的ACF/PACF图更符合模型的假设,这就要求建模时使用差分变换而非去除趋势变换(从理论上可以证明一个非平稳的变量如果错误进行变换仍然是非平稳的),所以这就存在困惑(貌似说的有点远……)。

至于,怎么去做数据变换(Box-Cox正态性变换还是均匀变换)?(When)什么时候需要做什么样的数据变换?(What)数据变换后的结果是什么,如何解释?当理清上述两个为什么时,我想应该基本就能回答了。

 

4. Conclusion

取对数的原因是
(1) 时间序列和面板数据, 都要做平稳的单位根检验, 取对数一般能使序列平稳(stationary), 不然就取差分进行平稳.
(2) 能使模型的残差呈现随机的特性, 而不是趋势或者截距.
(3) 减少共线性和异方差(heteroscedasticity)出现的概率
(4) 有经济学意义上, 比如增长率, 变化率和弹性.
(5) 统计学认为变量具有内在的指数增长的趋势, 取对数可以让联合分布 (对应的F-statistics)呈现正态, level形式的数据, 特别是时间序列, 最好做Lavene检验
(6) Log-linearization 取对数方便最小二乘的线性拟合, 乘积运算用对数就变成了求和

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s