在统计学中为什么要对变量取对数

2024年11月18日 09:37
有4个网友回答
网友(1):

对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:
1.
缩小数据的绝对数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。
2.
取对数后,可以将乘法计算转换称加法计算。
3.
某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。例如,中文分词的mmseg算法,计算语素自由度时候就取了对数,这是因为,如果某两个字的频率分别都是500,频率和为1000,另外两个字的频率分别为200和800,如果单纯比较频率和都是相等的,但是取对数后,log500=2.69897,
log200=2.30103,
log800=2.90308
这时候前者为2log500=5.39794,
后者为log200+log800=5.20411,这时前者的和更大,取前者。因为前面两个词频率都是500,可见都比较常见。后面有个词频是200,说明不太常见,所以选择前者。从log函数的图像可以看到,自变量x的值越小,函数值y的变化越快,还是前面的例子,同样是相差了300,但log500-log200>log800-log500,因为前面一对的比后面一对更小。对数值小的部分差异的敏感程度比数值大的部分的差异敏感程度更高。
4.
取对数之后不会改变数据的性质和相关关系,但压缩了变量的尺度,例如800/200=4,
但log800/log200=1.2616,数据更加平稳,也消弱了模型的共线性、异方差性等。
5.
所得到的数据易消除异方差问题。
6.
在经济学中,常取自然对数再做回归,这时回归方程为
lnY=a
lnX+b
,两边同时对X求导,1/Y*(DY/DX)=a*1/X,
b=(DY/DX)*(X/Y)=(DY*X)/(DX*Y)=(DY/Y)/(DX/X)
这正好是弹性的定义。
当然,如果数据集中有负数当然就不能取对数了。实践中,取对数的一般是水平量,而不是比例数据,例如变化率等。

网友(2):

(1)减弱模型中数据的异方差性,只能是减弱,并不能彻底消除
(2)模型形式的需要,利用线性回归模型的前提是解释变量和被解释变量之间的线性关系,但是在实际中这一点很难满足,很多的时候需要对多个变量或者是单一变量做对数变换,让模型的形式变为线性
(3)取对数,再配合差分变化,把绝对数变成相对数,这样,数据更能表示变动的相关性.
(4)对取对数以后的经济数据进行线性回归,其前面的参数表示的就是百分比变化率(dlnx=dx/x),也就是弹性
(5)有时候变量不符合正态分布的假定,取了对数可以渐近正态分布

等等。

网友(3):

我能想到的有两点
作用1:
对有些存在异常大的观测值的变量,取对数可以减小方差
作用2:
对只有取正值才有意义的变量,例如重量,如果直接进行线性回归,那么可能产生没有意义的负的预测值,所以有时会考虑对对数值进行回归分析而不是原始的观测值,这样就不会产生没有意义的预测值。

网友(4):

为了呈线性吧