落园 » 社会实验|专注经济视角下的互联网

从Variance说起:回归、聚类、残差和方差

前言的废话:有种被统计学洗脑的感觉,跟搞统计的接触的有点太多了吧...哎,算了,难得有点感悟记录一下吧...喵。本文试图以一个典型的统计学的思维过程来叙述,呃,可能功力不足,凑合着看吧,也不枉我连续几天做梦都是直方图 密度曲线 average treatment effect之类的。

-------------------------------------------废话结束了-----------------------------------

Variance这个词很好玩,如果是用在统计的情境中就中文译作方差,公式就是  \sum (x- \bar{x})^2 / N,写成列向量(N*1矩阵)的形式就是Var(X) = E(X^2)- E(X)^2=X'X/N-(X'1/N)^2,1这里是N×1个1的列向量。从公式的形式就可以看出是一个二阶中心距,即距离中心的距离的平方(二阶)和。然后既然是二阶距,那么自然的衡量的就是某个数据集分布的离散情况。越大越散,越小越密。此为一维(这里指只有一个观测维度的情形)相信这样的定义实在是太耳熟能详了。方差有个小弟叫做标准差,就是方差开平方。这个也没啥说的,有意思的是大家习惯用字母\sigma来标注他,于是有了著名的六-西格玛原理...好吧,其实最有用的就是正态分布的几个西格玛了(随便偷张图):79f0f736afc37931c22b82ecebc4b74542a911b7.jpg

 

然后我们看简单的二维。二维就是散点图,没什么特别说的。找张著名的散点图来(随便找的,懒得自己去R里面画了。最后还是乖乖的去R里面的画了,还是自己画的好用一些,果然偷懒不容易,唉,我写博客实在是太敬业了!)。

2014-12-27 23_41_46-Plot Zoom

 

背景知识大家可以去自己搜搜,反正就是黄石公园某个自然形成的间歇性喷泉,每次喷发的时间和等待时间的散点图。挺简单的对吧。这个数据点也不多,大家一眼扫过去大概百余个的样子。可是这幅图真的很有意思,跟Variance的联系实在是太紧密了。

我们先来说直觉。如果让你用自然语言(而非统计或者数学公式)来讲述这个图,比如你带这你刚上小学的孩子去黄石公园玩,他好奇的在等待这个喷泉喷发,这个时候你应该怎么跟他讲?嗯,可以大概说一下,“你看基本上呢,你等的时间越久,下一次喷发的时间就越长哦。让我们一起来计时~” 然后小朋友看了一眼图,不服的说到,“什么嘛,明明是等了如果超过一小时(或70分钟),那么下一次基本上喷发时间才会长(4-5分钟)。”。那么到底哪种说法更准确呢?

(吐槽君:自从上次写了乐高机器人之后,落园的段子里面的科普对象就从同学们降低到小朋友了,喵~)

好啦,不跟小朋友玩了,我们得研究一下更fancy一点的方法。说白了就是,用一个什么样的模型可以让经过我们模型处理的Variance尽量的小呢?

嗯,同学们说试试回归呗,明显的正相关性啊。你都说了啊,X的增加Y也在增加(先不要理会因果即X和Y谁先谁后,我们只说相关)。

2014-12-27 23_51_53-Plot Zoom

所以我们虽然得到了一个显著的正相关关系,但是回归模型的R方只有81%(当然已经很好了,只是我们希望更好嘛)。来看看对应的残差分布:

2014-12-27 23_59_10-Plot Zoom残差好像挺散的(最理想的残差就是白噪音了,说明没有任何信息量了),但是隐隐约约也能看出来有两群这样。于是很自然的,有同学说,我们去试试聚类啊。

在去试聚类以前,先说说大名鼎鼎的K-mean算法的一些基石。

上面不是罗嗦了一堆variance在一维情形下的定义嘛,那么推广到二维,也很简单。

定义二维的中心点: (\bar{x}, \bar{y}) ,然后就可以定义二维方差: 每个点到图中心的距离的平方和。看图就知道了。

2014-12-28 00_09_03-Plot Zoom蓝色的就是中心点。这里我们就不罗嗦什么均值容易受极值影响之类的了,那些也是看菜下料的,我们的数据看起来还好。(突然间为什么有种牛郎织女鹊桥相会的即视感...原来古人观星也是有异曲同工之妙呀,天空就是一个大大的散点图——勿喷,我保证下面不跑题了)

 

2014-12-28 00_25_06-Plot Zoom

对于一个线性回归模型来讲,我们看的就是残差项的方差——残差项方差越大,表示他们分布的越散,那模型捕捉到的信息就少。

对于聚类呢,也可以看相应的方差:每个类里面的点到类中心的距离平方和 -> K-means。K-means虽然是通过迭代来实现的,但他的原理大致也是让二维的二阶中心距最小(由每一次迭代的损失函数来决定)。一眼扫过去大概可以分成牛郎织女两堆星星,那么我们就聚两类好了。显然不用跑程序我们也知道,聚成两类之后的组内方差和肯定比直接跟中心点算一个方差要小。

2014-12-28 00_32_00-Plot Zoom聚成两类之后呢,我们类似定义的残差就是两类中每个点距离其中心点的Y轴距离(因为会直接把中心点作为每类的预测值)。还是画个残差图看看。

 

2014-12-28 00_51_13-Plot Zoom红色是K-MEANS给出的残差,蓝色是回归给出的残差。貌似这两个长得还是挺像的,也是左右两群,虽然每群中两者长得都不太一样...这个时候我们就可以回到和小朋友的对话了:你们说的都有道理,都有8成的准确率,谁也没比谁更好很多。

于是我们尝试在每组内再做回归?会有效果么?

2014-12-28 01_01_20-Plot Zoom见效寥寥...引入聚类后回归模型的R方从81%升到了84%,才3个百分点。这主要是在每一类里面,我们很难找到残差的规律了,所以这样只是通过组别信息的增加减少了组间方差,而其实从上图我们也可以看出每个组内的残差方差还是很大的、每条回归拟合线的斜率从最初的10降低到6和4,每个子回归的R方只有10%不到,能给予的信息已经很少了,所以整体模型只是增加了一点点准确性。但是无论如何也比直接玩回归的效果要好(之所以用k-means而不是简单粗暴的用类似x>3.5这样来分成两类,是因为k-means是按照其损失函数优化过的、给出的是最优的两类聚类结果)。

问题来了,为什么我只聚成两类而不是三类五类甚至更多呢?主要是怕过拟合,数据才200多个点,聚太多的话很容易过拟合了。大数据的情况下可以尝试其他办法。

好了,废话了这么多,其实统计学家们已经不仅仅玩这些了。其实我们上面的残差图传达了一个很重要的信息就是残差的分布不是一个白噪声(或者说不是均值为0、方差为常数的正态分布),称之为异方差(Heteroscedasticity)。异方差有很多很多情形,最简单的就是随着X的增加而增加。还是网上随便找了个图:

p109figure异方差的存在使得我们模型的估计(或者基于训练数据预测)精度有限(先不考虑validate- test那些),所以统计建模常年在跟残差项的分布作斗争——反正看到你有什么规律,我就可以提取出来更多的信息放到我的模型中。计量经济学家喜欢说残差项是垃圾桶,但其实也是金矿——没办法呀,资源有限,不能太浪费。

然后是一些补充的废话时间。

[......]

Read more


新媒体营销中随机分组实验的失败

这个话题可以很深,我这里只是随便写写。当然我也不去定义什么是“新媒体”了...基本上下面可以视之为社交网络媒体。此文纯属若干无知的随便念叨,内行请无视。

记得原来在做社会实验的时候,最头疼的就是网络效应——这东西会让你的随机分组失效。如果网络扩散是均匀的也就罢了,这东西还不均匀,搞得随机分组基本上被破坏殆尽。今天和做社会网络营销这块儿同事聊起,发现他们在新媒体营销上也是遇到了类似的问题——传统的A/B test基本失效,因为control组会被极大程度的“污染”。和电视营销的地理隔离还不一样,社交网络是无孔不入的...

但是偏偏,我们还是希望可以利用这样的网络效应的——主动的传播岂[......]

Read more


[RAAT]第一话:微博的数据该怎么玩呢?

引言(即废话):每当要准备presentation的时候,就会开始想一些问题。去年写的是【社会实验的特殊性】,然后有一系列的文字和最终的slides。现在,想多少从自己这大半年的工作经历出发,写一系列文章,就叫做 R as an analytical tool吧,简称RAAT。第一话,从微博入手好了;第二话,将由Joke童鞋过年时候问的一个问题引出;第三话,会是更偏向流程和实践的东西。这些我会一点点写,也可能有所改变,看到时候具体的想法了。

新浪微博也火了这么久了,但是对于吾等数据源控来说,这等数据简直不能被暴殄天物啊。怎么用来分析为好呢?

links类数据

微博有两大类links:

  • 粉[......]

Read more


社会网络中的实验[会议幻灯片共享]

最近两天在成都,参加电子科技大学主办的《第七届全国复杂网络学术会议》。其实本来这会议跟我关系不大的,人家都是专门研究物理啊、计算机啊等复杂性科学的科学家们,而我就是简单的做做社会网络中的几个比较小的经济学问题,所以基本上是联系不大的。可是谁让我脸皮那么厚,非要缠着主办者说,给我个机会讲讲呗,哪怕丢人也讲讲呗,所以在我百般烦扰之下终于有机会浪费听众们的半个小时、听我稀里哗啦闲扯了半天社会实验。嘿嘿。

嗯,是的,这次的题目就是:社会网络中的实验(Experiments in Social Networks)。说的主要是实验方法在网络中的应用和价值。这里是依惯例放在网上供大家批判的slides[......]

Read more


社会实验的特殊性(三)

在上一篇[cref %e7%a4%be%e4%bc%9a%e5%ae%9e%e9%aa%8c%e7%9a%84%e7%89%b9%e6%ae%8a%e6%80%a7%ef%bc%88%e4%ba%8c%ef%bc%89]里面回顾了费歇尔的实验设计三原则之后,那么归根结底,我们为什么要做实验?

从一个纯经济学的角度来看,社会实验的目的之一就是在我们面对现有的数据受到各种局限、从而无法完美的回答我们关心的问题的时候(说到底还是各种内生性问题),采取的一种主动出击寻求答案的方式。故而,实验之前我们一般是有一个基本的思路和方向的,然后更多的想去看一下这个东西到底是不是在现实中就是这个样子。从这个角度[......]

Read more


12