2009-06-20

如何处理Power-law(幂率)分布的数据?

Anonymous @ 2009-06-11:

祝老师:您好!看了您关于“如何在SPSS中做数据正态转化”的帖子受益匪浅。 我做的研究是关于web 2.0 的,所以数据来源都是secondary source,有很多变量的分布都是power law的形式,其中有的自变量数据有点类似count variable(0值有意义,非missing value)占了很大的比例。想就数据转化继续请教您两个问题:

1。比如两个自变量IV1和IV2都是高度偏态,在对其进行对数变换后转化为正态。但是IV1和IV2可能对因变量DV存在交互影响, 那么在检测交互影响的时候interaction term是应该用lnIV1*lnIV2么?因为这里有个疑问是lnIV1+lnIV2=ln(IV1*IV2),如果lnIV1和lnIV2进入后R Squared Change显著的话是不是就代表已经存在交互影响了么?还需要继续进入lnIV1*lnIV2么?对这个问题我感觉有点钻到牛角尖里了,想了很久都不太清楚?

2。另外是关于前面0值太多的自变量 (单峰非正态),有点类似于medical research里面的account variable,0代表没发生,但他们是自变量,而不是因变量, 所以感觉不能用Logistic回归。 我试着用了log之类的转换, 很难变成正态分布,目前我将其转换成了dummy variable 0 和1做了一个model,然后再选择所有不为0的obsevation做了一个model,但这样做得结果不是很理想。请问是否有一些特殊转换处理这方面的数据呢?

庄主 @ 2009-06-20:

问题一较简单:交互影响模型中的自变量是否可以取对数?答案是肯定的。因为在你的模型 Y = b0 + b1ln(IV1) + b2ln(IV2) + b3ln(IV1)ln(IV2) 中的右边前两项,即IV1和IV2各有一个回归系数b1和b2,所以它们不会被约简为另一个b3ln(IV1)ln(IV2) 。

同理,模型右边第三项 b3ln(IV1)ln(IV2) 简约后成为 b3 (IV1 + IV2),也不等同于前两项 b1ln(IV1) + b2ln(IV2)。当然,第三项的变量 (IV1 + IV2 中的联合分布比IV1和IV2原先的独立分布更加不对称,即更加偏离正态分布。但是,据我的理解,当你将 ln(IV1)ln(IV2) 输入OLS回归时,计算程序是将 ln(IV1)ln(IV2) 当做一个值处理而不会将它分析成IV1 + IV2的。

问题二很复杂:如何处理服从power-law(幂律)分布的数据?这种分布特征的数据,具有很多个最小值、而这些最小值由于受到某种机制的限制而无法再往更小的方向延伸(left-censored),而全部堆积在一起。也有人称其为 "floor effects” (“地板效应”)数据(如下图a)。初看,这些最小值(本例是1)堆起来不像是地板效应、而像 “ceiling effects”(“天花板”效应)。但如果将图a作90度旋转,就可以理解“地板”的意思。当然,这种分布的反面,即一组数据中有很多个无法更大的最大值(right-censored values),就是“天花板”了。

image

以上图a中的X,按三个不同的幂律值(1、2、4)而形成三种不同的“地板”分布(即P(X)=X-1、P(X)=X-2、和P(X)=X-4。具体说来,当幂律=-1时,X的最小值占了总体的19%;当幂律=-2时,X的最小值占了总体的61%;而当当幂律=-3时,X的最小值占了总体的92%!在经典的“正态分布世界”(the world of normal distribution) 里,我们都是用log来转换服从幂律分布的数据。以下图b就是对图a中的三组X用log转换以后的分布形状:

image

与图a相比,图b中的三种分布的形状不那么“地板”了,但是还远远不是正态分布的。如果将X的频数(即P(X))也作log转换,即得到一个单调递减的线性分布(图c):

image

图c也不是正态分布。但在“正态世界”里,线性分布是我们对付幂律数据的(相对)最好方法了;就是说,幂律分布的数据永远不可能转换为正态的。真的没有其它方法了吗?有,那就要离开正态世界而进入“变态世界”(the world of abnormality)、做一个研究“变态行为”的“变态学者”。“变态”这个字太刺眼。做“变态研究”的绝大多数是拘谨的物理学家,当然无法承受世俗的歧视,所以将变态世界叫做“复杂系统”(complex system)。我一开始说“这个问题很复杂”,意思就是“这是一个复杂世界的问题”。当然,复杂系统也不能点石为金,将幂律分布数据变成正态分布数据、而是用整个一套完全不同的思想和方法来看变量的分布和变量之间的关系。(参见A. Clauset, C.R. Shalizi, and M.E.J. Newman, "Power-law distributions in empirical data" SIAM Review, 2009)。

好了,别再继续问我变态世界的事,我刚刚开始接触他们的那些事,可能受正态世界的毒害太深,无论理智上或感情上都还没有入门。

回到你的实际问题,你可以试试以下几种方法:一、对X取log之后、再取log(当然,如果log(X)有非正值、需要先对其做线性转换成正值);二、将X转换成0-1值的dummy variable后直接进入模型(而不是用来分拆成两个模型);三、将X与其他相关的自变量合成新的变量;等等。注意,上述任何一种方法都不会产生正态分布、所以其结果都是差强人意的。

No comments: