在统计学中为什么要对变量取对数? - 知乎

To transform or not to transform? That is the question!

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

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

  1. (Why)为什么需要做数据变换?
  • 从直观上讲,是为了更便捷的发现数据之间的关系(可以理解为更好的数据可视化)。举个栗子,下图的左图是各国人均GDP和城市人口数量的关系,可以发现人均GDP是严重左偏的,并且可以预知在回归方程中存在明显的异方差性,但如果对GDP进行对数变换后,可以发现较明显的线性关系。为什么呢?因为我们度量相关性时使用的Pearson相关系数检验的是变量间的线性关系,只有两变量服从不相关的二元正态分布时,Pearson相关系数才会服从标准的t-分布,但如果变量间的关系是非线性的,则两个不独立的变量之间的Pearson相关系数也可以为0.

  • 所以,数据变换后可以更便捷的进行统计推断(t检验、ANOVA或者线性回归分析)。例如通常构造估计量的置信区间时是使用样本均值加减两倍标准差的方式,而这就要求样本均值的分布是渐近正态分布,如果数据呈现出明显的偏度,则此时使用上述统计推断方式就是不适用的;另外,最经典的例子就是回归分析中的异方差性,误差项的方差随着自变量的变化而变化,如果直接进行回归估计残差的方差会随着自变量的变化而变化,如果对变量进行适当变换,此时残差服从同一个正态分布。

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

  • 这个问题很难,每当做数据变换时,禁不住会想这样原始的数据信息是否经过变换后存在损失?数据变换有没有标准程序原始数据的统计推断又该怎么进行?我也没有完全理清思路,但想通过几个例子抛砖引玉。
  • 先从理论情形下去考虑,例子1,如果一个数是连续的,并且服从对数正态分布,ln(X)∼N(μ,σ2)ln(X)\sim N(\mu,\sigma^{2}),可以很容易知道XX的概率密度函数(PDF)fX(x)=1x2πσe−(lnx−μ)22σ2 f_{X}(x)=\frac{1}{x\sqrt{2\pi}\sigma} e^{-\frac{(lnx-\mu)^2}{2\sigma^{2}} } ,这样E(X)=eμ+σ22E(X)=e^{\mu+\frac{\sigma^{2}}{2}}Var(X)=(eσ2−1)e2μ+σ2 Var(X)=\left( e^{\sigma{2}-1} \right)e^{2\mu+\sigma^2} ,此时可以看到已知变换后的数据的统计特征可以反过来推导出原始数据的统计特征,不存在数据信息的损失(可以看到对数转换后变量的均值可以直接由样本数据的均值得到,但不进行变化却需要由样本均值方差两方面去推断得到);例子2,如果一个数是离散的,服从负二项分布概率质量函数(PMF)可以写成f(k:θ,p)=Cθ−1k+θ−1(1−p)θpkf\left( k:\theta,p\right)=C_{\theta-1}^{k+\theta-1} \left( 1-p \right)^\theta p^k,如果对这个变量进行对数变换后,情形又会怎样呢?此时,E(k)=pθ1−p E\left( k \right) =\frac{p^{\theta}}{1-p} Var(k)=pθ(1−p)2 Var\left( k \right)=\frac{p^\theta}{(1-p)^2} ,假设数据的生成过程服从负二项分布,并且在不同的θ=0.5,1,2,5,10,100\theta=0.5,1,2,5,10,100下模拟生成数据,再用不同的方式去估计μ~=Y \tilde{\mu}=Y ,可以设计评价指标B=1SΣ(s)μ~−μB=\frac{1}{S}\Sigma_{\left(s\right)} \tilde{\mu} -\mu,可以看到不同的数据变换方式下的估计精度是不同的。可以看到,如果假设数据服从负二项分布,估计的误差很小,如果假设数据对数变换后服从正态分布时会出现较大误差(由于离散分布时数据可以取0,此时对数变换需要用ln(x+k) ln\left( x+k \right) 的形式,可以发现kk的取值并非随意),如果假设数据根号变换后服从正态分布时的误差要小于对数变换。所以,从一个小的随机模拟实验可以看出,数据的变换方式并非随意,并且对数变换也不一定是最好的变换,尤其是离散数据情况下(详见"Do not log-transform count data").

  • 但上述仅仅是在理论前提下数据变换的讨论,但实际应用中呢?理论前提下,即使再复杂总能找到处理的办法,但应用问题却没有标准答案。在我看来,数据变换方法的使用更是一门艺术(先验知识+经验+运气),需要结合应用领域的专门知识。例如,在宏观计量中,许多不平稳的经济数据要进行时间序列建模,就需要进行差分变换或者去除趋势,按照经济增长理论,经济数据应该存在趋势,那对数据应该进行去除趋势变换,但后来实证发现数据进行差分变换后的ACF/PACF图更符合模型的假设,这就要求建模时使用差分变换而非去除趋势变换(从理论上可以证明一个非平稳的变量如果错误进行变换仍然是非平稳的),所以这就存在困惑(貌似说的有点远……)。

至于,怎么去做数据变换(Box-Cox正态性变换还是均匀变换)?(When)什么时候需要做什么样的数据变换?(What)数据变换后的结果是什么,如何解释?当理清上述两个为什么时,我想应该基本就能回答了。当然,我的回答一定还存在问题与遗漏,不当之处还望指正^_^


原网址: 访问
创建于: 2024-03-06 17:18:51
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论