Categories
读书有感

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

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

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

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

定义二维的中心点: ,然后就可以定义二维方差: 每个点到图中心的距离的平方和。看图就知道了。

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那些),所以统计建模常年在跟残差项的分布作斗争——反正看到你有什么规律,我就可以提取出来更多的信息放到我的模型中。计量经济学家喜欢说残差项是垃圾桶,但其实也是金矿——没办法呀,资源有限,不能太浪费。

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

Categories
互联网产业观察

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

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

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

但是偏偏,我们还是希望可以利用这样的网络效应的——主动的传播岂不是更好?于是问题就变成了如何去精准衡量网络效应。

从我们以前的做法(可以参见我的硕士论文,in English),基本上是需要动用IV的...哎,然后这个IV还其难找无比。有些幸运的情况,IV是可以找到的,但是也需要一些外在的shock强行的打破现有的网络连接。

如果说要找一种比较简单的做法,那可能就是类似于spatial econometrics他们做的那样,对各个个体在空间中的位置进行加权。比如你要衡量微博营销的ROI,肯定要跟踪到实际覆盖的个体,然后在构造了网络结构的基础上,对个体的位置进行加权。但是讨厌的是,位置或者连接这些东西都是内生的...所以需要去找自然实验,然后去找工具变量...

总而言之,在我读过的为数不多的paper里面,可以很好的衡量网络效应的很少,而那些极少的还是控制了可控的资源的(比如实际的物品发放而不是新闻式传播)。感觉受新媒体的影响和冲击,很多传统的营销方式都在面临着极大的变化,做的好的往往不是分析人员算出来的而更多的是营销人员一步步摸索出来的...

所以,其实我想说的是,可能需要增加一些更好使用的指标来衡量新媒体营销的力量,而不是期待更好的分析方法的改进来支撑营销。后者还需时间来打磨(如果不是case by case的找IV的话)...

Categories
互联网产业观察 经济、IT观察与思考

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

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

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

links类数据

微博有两大类links:

  • 粉丝关系
  • 评论与转发关系

然后呢然后呢?

首先很多人感兴趣的是信息传递吧?那么决定信息传递的就是,第一呢,每个用户的信息源(主要来自于他关注的其他微博用户);第二呢,他关注的人的发布及转发行为。用粉丝关系来计算影响力(influential rank)自然是没有问题,但是多少有点损失的感觉——我们总关心一个人在接受信息之后的response是不是?所以,一个简单可行的思路是,这里不妨用其转发行为来加权,判断每个他关注的用户对于他的影响程度的不同~如是,则每个有向的link上就附加了一个权重,成为了一个加权的有向图。

嗯,这样一个基本的网络模型就构建好了。然后呢?链路预测?等等,我们关注并分析微博数据是为了什么呢?到底构建什么样的指标是合理的呢?

如果你想扩大自己的影响力...

好吧,在下作为一个老字号(落园居然被我坚持写到第6个年头了,这是一种什么精神啊~)blogger,自然可能希望多少扩大一下影响力。落园是落园,blog对我来说有它自己特殊的意义(比如发泄,呃),但是我的新浪微博就沦落为一个落园的notifier了(这个特别的理由就不在这里公开说了,私底下聊)。如是,那么应该怎么办呢?

正常的话,经营一个微博,怎么判断自己是不是越来越受欢迎了呢?显然,简简单单一个“粉丝数”还是不够的,用“转发数”为每个粉丝关系加权也还是不够的,我还得关注一下我的“粉丝”们都是一些什么样的人。比如,他们有几千+的粉丝,还会转发我的东西,那么我的影响力就~哈哈。简单的说,一个衡量指标可以是:我的微博可能会被多少人看到呢?那么,我只要算一下我的粉丝和他们转发的可能性,然后再算他们的粉丝转发他们微博的可能性,以此类推,我就通过了“粉丝”这类link成功的影响到了更多的人。从这个角度而言,这比直接的“粉丝数”或者“转发次数”更能衡量一个微博的影响力。

当然,类似的指标还可以构建很多,比如对response进行加权。看具体目的了。我的微博算个特例,因为它有一个特殊性:不转发任何其他微博(机器人自然要符合自己的身份嘛),所以我关注的指标相对单一——我是比较关注“信息能传递到的人”,而不是特别关心他们的response程度(话说最近关评论了,直接刺激大家转发啊,故需要另当别论了)。如果是商业经营一个微博,那么在内容的选择上或许就要更加迎合各自群体的口味,具体的是否可以用Bayesian规则来算算被转发概率呢(不断的update概率)?

如果你是想提供一个互动渠道……

微博被很多企业作为新兴的接触客户的渠道(沟通成本低嘛),所以很多企业可能希望建立一个帐号来更多的获取用户的信息。比如会员制的商家,可以通过找寻自己会员的微博号,来得知他们最近的偏好,然后推荐相应的产品。电商也可以进一步的做一些销售活动,比如我的京东帐号和微博帐号绑定之后,是不是就可以直接留言给京东下单了呢?就像我打个电话似的那么方便。要是他搞什么团购之类的,我也可以直接在微博上买而不是跳转到京东复杂的页面上去,那该多好啊。

对于这样的目的,首要的任务就是找寻自己的用户群,然后建立他们微博帐号和会员帐号之间的关联。除了直接的搜索关键词之外,初期还可以利用社交网络的力量,比如洲际和喜达屋集团都在做一些转发抽奖的活动,让已经关注他们的微博用户来扩散到他们的朋友(所谓物以类聚嘛,自然更有可能也是酒店常客),这样一来就已经实现了用户的识别。然后,怎么引诱这群会员是这些商家的长项,各种美图诱惑之下,让人经常在屋子里面各种坐不住(比如我...)。如果这些用户发一些信息,比如“下周飞北京”,那么这些商家大可以直接找到这些用户施以小惠然后成功的从对手那里抢的客户(先发制人啊)……反正至少我认识的玩酒店常客计划的人,都没有只专心的玩一家的。

跟R啥关系?

说了这么多,我们有了一些基本的建模思路。比如希望借助微博扩大影响力,那么最直接的办法:去找粉丝多的微博来转发自己的内容。很多微博都有一个不太公开的转发价格,如果你相信市场是无摩擦的、处于均衡的,自然可以认为价格反映了其影响范围的大小。但是,首先市场就不是一个静态的,难免在动态潮流的波动下偏离均衡;再说怎么可能无摩擦呢,信息不对称总是到处存在的。因此,为了实现现有资金(或其他资源)的集约化投入,往往需要做到的就是“找到对目标群体影响力最大的微博”。

还是用那句俗话,“物以类聚,人以群分”,很多大众微博的粉丝关系并不是从天而降的。这些微博发布的内容往往偏重某一个侧面,如科学松鼠会往往会发布科普类知识,主动follow松鼠会的粉丝可能也就有着更高的教育背景和辨知能力。换言之,不同微博的粉丝往往有着不同的群体背景。为了识别这些形形色色的圈子,我们可以先利用微博的粉丝关系,建立起来一个网络图(更可利用转发情况来建立加权的有向网络)。这在R中可以利用SNA等package完成,或者Gephi之类的更专一的network analysis software。然后在此基础上,分析若干帐户发布的微博关键词(会用到一些text mining技术,其R中的实现可以参见思喆大哥的这篇指导:http://www.bjt.name/2012/03/text-mining-in-r/),然后找到一个或者若干个符合目标群体特征的微博帐户,在此基础上按照links顺藤摸瓜、获取更多相关的帐户。一切的影响力之类都可归结于一个数学上的distance的measure问题(think about real analysis...),而加权网络中计算这些并不困难(也可以加入随机的扰动项进行多次模拟得出结果)。最后,自然可以计算哪些微博帐号的转发会对某些目标群体产生极大的影响——不仅仅是定量计算,更可以进一步归结于一个有约束的最优化问题。一旦一个问题成为数学问题,在R中无论是模拟还是求解都不是难事。最后结论会告知,哪些微博是应该去争取转发的(无论是通过金钱还是内容本身的意义去说服)。

类似的思路,能做的事情还有很多。譬如,哪怕是作为一个个体用户,我只关心某些事情发展的潮流(比如那些会影响股市的情绪),利用R也可以在浩瀚的微博信息中更准确的找出我应该关注的信息源(可能不是全部,或者出于实时性要求无法做到全量检测),即排除噪音,然后这些信息源所提供的信息便有可能给我一些方向上的指导,而不是盲从大众媒体的言论。

利用微博作为新兴交互渠道的办法就更多了,背后依赖的数据分析知识也会相应有所调整。R作为一个开源、免费的工具,其已经提供的众多packages可以迅速的帮分析人员实现相应的想法,而不是把大量的时间用于无休止的编程以开发相应工具。这样,R便可以在一个想法探索阶段找到相应的数据支撑和信息。有了想法、去实现之后,很多时候还需要评估效果(这里可以参见去年写的关于社会实验的东西:演讲幻灯片),这方面简单的计量工具更是可以在R中迅速实现、并可以轻易实现可重复的评估和报告(简单的分析模型和结果重复可以利用已有的脚本,偏正式的报告可以借助当年的Sweave和进化版如knitr)。

总而言之,我一直觉得数据分析考察的是分析人员本身的统计知识、业务知识和具体学科知识的积累,以及一些对于数据的敏锐直觉,而不是编程能力。若有想法便有其他人可以帮忙实现自然好,但是有时候一味的借助他人往往存在着时滞,一闪而过的很多想法便成了过眼烟云。不是我不提倡团队合作,只是找到这么一个完美团队的成本实在是太高,更多的时候还是不得不自己做很多事情。团队的合作程度在现实中往往会有所降低,分工模式也会更加的偏向项目执行流程(比如分析->成熟模型->自动化系统),而不是在分析阶段就完全的实现了各展所长(那样对每个成员的要求可能都太高了~)。在效率和效果兼顾的现实情况中,R的贡献自然轻易的凸显。我想这也是这两年R越来越热的趋势背后的推动原因吧。Labor division problem with constraints 🙂 分工最优化的必然结果。

------remaining challenges ------
当然,有一个回避不了的问题就是大数据量……R现在面对大数据依旧有些吃力,而network的数据往往又是一个N*N维的(N为个体数量),更加大了对于空间计算量的需求。这方面,解决思路一方面是把线性的计算分块化、分批跑;对于非线性的计算,更多的则可能是先抽取一个小样本,然后确定一个或几个模型,最后利用其它高性能计算工具来实现最终在整个大数据集上面的运行。

Categories
事儿关经济 经济、IT观察与思考

社会实验的特殊性(三)

在上一篇[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]里面回顾了费歇尔的实验设计三原则之后,那么归根结底,我们为什么要做实验?

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

说一下从我个人的感觉上的最大的在业界和在学术界的不同,可能就是data上。在学术界,难得会有非常好的data,所以很多的时候我们都是在有限的数据资源的基础上、去力求用最完美的方法估计我们感兴趣的值。数据源有限的原因有些是历史上的,比如我们研究几十年前的事情,自然当时没有电脑等东西可以完善的记录所有的事情;有些是数据本身的性质决定的,比如宏观里面常用的gdp等东西,中国的数据是1978年之后才有的,而且一般都是年度数据,更受限于国民统计汇总的层级汇报,自然会有一些测量偏差;有些是业界有数据,但是没法得到,这里就牵扯到一些隐私等法律权益、或者数据接口API等开放的幅度的问题;还有些是知道数据在哪里、也可以得到,但是成本太高,比如个人层面的数据,除了全民普查外很难有全覆盖的数据,一般只是小规模样本;最后的就是信息并不是直接以数字的方式记录的,比如twitter上面的用户微博记录,因此需要借助文本挖掘等手段进一步深究。

业界主要提供的就是第三类,大量的个人用户的数据,比如淘宝上各种买卖双方交易的数据。现在淘宝的交易量真的是非常大,而且每笔交易都是真实的现金往来的(我们不考虑非法的洗钱状况),其实背后对应的就是一个真实的微观交易的集合。但是这个交易数据怎么用?最简单的,我们可以看价格,对于同质品之间竞争已然白热化的,已然相差无几,那么价格几乎就等同于scanner price,可以用来衡量物价的波动。当然,网络交易有不同于实体交易的地方,比如受限于运输成本和采购的规模效应,肯定会和超市里的价格有所区别。另一方面,网络上的价格信息流动非常充分,越来越接近于理想中的完全竞争市场对于信息的要求,所以多少也让人兴奋。

另外一个有趣的数据可能就是微博,因为其实质上是一种“短平快”的信息传播渠道,会把信息通过简单的几个信息源极快的扩散到整个网络中去(所谓的influencer model)。所以现在很多人炒得很热的微博营销也是背后有着深刻的渊源的。但是同样的,信息传输成本降低的背后就是噪音的增加,因此对于微博的信息分析起来除了文本挖掘技术实现之外,就是怎么去在大量的噪音数据中寻找到有用的信息。从这个角度而言,就是在进行任何文本挖掘或者信息提取之前,是不是有一个主导的思路去明确的知道需要挖掘的信息。业界很多时候不是数据太少了,而是太多了,以至于大家根本不知道这些数据可以怎么用,所以data mining成为了救命稻草,一窝蜂的上去看看能不能挖到金矿。从我的角度看,每一个data mining算法背后必然是有一种主导的思想来支撑的,比如决策树,不过是分类统计最优化路径的感觉,这样的直觉还是蛮强的。所有数据分析的任务无外乎两个字:降维,怎么在一个多维的好烦的数据海中找到自己最感兴趣的数据,可能是几个变量之间的关系,可能是一个综合指标的创建。最简单的,GDP就是对于国民生产消费活动的降维衡量指标,所以他既然降维了自然有损失,能够多么真切的反应经济活动的现实就必然要打个折扣。

经济学里面常用的“降维”的方法就是回归,无论回归在统计学或者其他学科里面被批判的多么体无完肤,但是回归最大的好处在我看来就是最容易融入经济学直觉。在[cref %e5%b0%8f%e7%aa%a5%e2%80%9c%e9%ab%98%e7%bb%b4%e6%95%b0%e6%8d%ae%e9%99%8d%e7%bb%b4%e2%80%9d-2]里面我曾经提到一些最新的高维数据降维的算法,然而算法本身必然是有直觉甚至是(经济)理论来支撑的。当数据挖掘方法被应用在一个经济活动或者经济问题的时候,如果完全脱离了经济直觉和经济思维衍生的分析方法,我觉得未免有点太过于高傲了。有的时候,如果分析思路足够敏锐,那么基于这样思路的各种算法的出来的结果可能是殊途同归。正所谓“万变不离其宗”,这也是我觉得很多data mining的方法应该和经济学、商科的思维更好的融合在一起的缘故。就像挖矿,我们除了要有先进的挖掘机以外,事前的各种勘探和经验思路还是有非常大的价值的,至少可以降低找到金矿位置的成本、尤其是时间成本。这也是我觉得经济学在业界的应用天地断然不仅仅限于和金融相关的那些而已的缘故。

另外,如果“降维”说的广义一点,就是科学的目标。可能不同的人对科学有不同的定义,我除了喜欢一种“概率”角度的定义之外,刚看到一种定义也是蛮受启发的,

The object of science is the discovery of relations.., of which the complex may be deduced from the simple. John Pringle Nichol, 1840

然而,说到底,经济直觉总要来源于实践经验,只要经济学还是定位于“研究人类行为活动的科学”。实践中信息不足的时候,信息是制约的瓶颈,因此我们要借助更多的数学建模工具来力求完美精细的刻画现有的数据构成的轮廓。反之,如果数据是可选择的,那么更多的精力就应该放在如何去“选择”数据上。我认为,实验最大的好处就是数据完全是由实验设计阶段决定的,实验设计的好数据自然会更好的告诉我们所关心的答案。

忘了是哪位大牛在Handbook of Econometrics里面写的了,大意是“与其寻求更好的估计方法,不如寻找更高质量的数据”,言下之意就是在数据可以被“设计”而获得的情况下,我们可以把精力更多的放在实验设计而不是估计模型的选择上。我并不是一个纯粹的reduced form鼓吹者,相反,我是更欣赏structural model后面的经济学思维的。因此,在实验的方法被付诸实践之前,我更希望更多的按照一种经济学model的模式去考量这些问题,去更精巧的让实验告诉我们想知道的答案。除了社会实验的特殊性考量之外,必然的,我们没有任何理由抛弃现有的经济理论、尤其是微观经济理论去完全随意的“检查”几个变量之间的实验上的因果关系。且不论efficiency,社会实验的对象为参与经济活动的人、这一特质决定了我们在设计实验的时候便要充分利用现有对于人类行为的认识成果,更好的一步步设计实验的流程——可能不只是一次实验的流程,更多的是一环扣一环的一个个实验如何按部就班进行下去。一个动态的实验设计会更好的考量实验设计者对于经济学的理解,也是社会实验较之于费歇尔三原则下的自然科学实验、要求更高的方面之一。

Categories
事儿关经济 经济、IT观察与思考

社会实验的特殊性(二)

还真没想到这一题目居然被我一直写下来了,虽然已然时隔一月。今天想说的是偏社会实验设计的东西,起承于“费歇尔(Fisher)三原则”。当然,关于Fisher,建议大家读一下《女士品茶 (The Lady Testing Tea)》这本书,会得到更多的八卦故事以及他的思想的来源。

Fisher三原则是指实验设计的:1)随机化原则 2)重复原则 3)区组化原则。

我就沿用计量的术语了,第一个随机化原则大家都比较熟悉了,就是保证进行实验的时候实验组和对照组(如为对照实验)的同质性,也就是避免我们在将实验对象分组的时候分组不均、造成由样本偏差带来的实验对照结果偏差。从社会实验来看,实验的对象必然是人,那么人作为一个主动行为和决策的个体,自然会有非常强烈的个体之间的差异,这也是我在[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]里面一直在说的问题。随机化最常见的就是lottery,比如彩票或者抽签的形式决定哪些人可以进入 treatment group、哪些人留作对照。这种方式最常见于小额贷款实验的实践中,因为他们想看一下有机会得到贷款(优惠)的人是否和其他人日后的生活有了显著的差异,从而证明小额贷款的意义。这种实验方法从技术和随机性原则来说并没有什么问题,但是在实践中却经常被口诛笔伐,毕竟有些优惠政策很吸引人、这样子的随机抽取而不是按需分配多少有点不道德的味道。关于疫苗、书籍等牵涉到一代人命运的分配更是如此,这样子随机实验的“机会成本”着实太高,谁也无力大规模承担。众所周知,由于种种原因印度成为了小额贷款等microcredit的优选试验田,因此有了这么一张经典的图片……

因此随机性原则说起来容易,但是很多时候还是有实践困难的,要不也不用RDD(Regression Discontinuity Design)等稍显复杂和依赖于更强假设的模型了(当然,某些时候RDD的假设也不是那么强……这个各种经典的实验分析方法日后另论)。

再说第二条“重复原则”,就是说实验可以被重复、然后结论经得起重复试验的检验。这种要求最常见于理科实验中,比如物理、生物、化学等。刚看到一条新闻说是“欧洲研究人员发现了难以解释的中微子超光速现象",其中有这么一句“参与实验的瑞士伯尔尼大学的安东尼奥·伊拉蒂塔托说,他和同事被这一结果震惊了,他们随后反复观测到这个现象1.6万次,并仔细考虑了实验中其他各种因素的影响,认为这个观测结果站得住脚,于是决定将其公开”。我们姑且不论这个发现的物理意义和新闻的正确性,假设新闻是正确的,那么重复实验1.6万次就足以在大样本下排除实验每一次的一些随机性和测量误差,更充分和有说服力的证明一个实验结论的可靠性。这一条原则在社会实验中相对较难满足,因为每一次都是“独立重复”实验隐含着对于实验对象也要保持一模一样的要求。然而我们很难找到两群完全相同的人去做实验,比如我们今年找大一的学生做一次心理暗示教育,明年再做这个东西下一批学生多多少少就会有一些不同,三五年之后这种不同便更明显了。对同一群人做重复实验显然不可取,在经历了一次 treatment 之后实验个体已然发生了改变,不可能回到原来的起点重新做重复实验了。这也是社会实验面临的严格性挑战之一。最简单的,很多人说做博弈论的实验,觉得只需要一组两个人参与,然而看看实验经济学的paper有多少前后实验设计并无二致的实验进行之后结果迥异。这也是实验经济学就算是 lab experiment、不算 field experiment 也会出现各种争议的缘故。毕竟,实验的对象在变化,这样的重复实验并不是完全的“独立重复实验”。从社会实验来看,更多的只是能说一次结果,然后找一群我们认为关键的特征相似的人群做下一次实验。实验的不可完全重复性某种程度上决定了我们对于一次实验结果的internal validity和external validity的难以确保性,也就是说这种试点实验结果在多大程度上可以复制到所有我们感兴趣的人群中,还需心里预先打个折扣。我觉得,两次实验结果一致那真的有点纯属巧合了,不一致还是正常的。这也是很多时候我对于实验估计出来的marginal effect并不是特别的关心,只看一下数量级便是了,更关心的则是显著性。一般说来,几次相差不大的实验若是都能保证我们预期结论的显著成立,那么便可以考虑大规模的复制了。这也是社会实验和自然科学所无法比拟的严格性。

Fisher提出的最后一个原则是“区组化原则”,指的是“消除试验过程中的系统误差对试验结果的影响而遵守的一条规律”。这里要说的两个概念就是“随机误差”和“系统误差”,都和“测不准原则”有关系。随机误差大致是说我们不知道的随机因素造成的每一次实验结果的客观误差存在性,而对应的解决策略就是上面说到的“独立重复实验”。“系统误差”则是更多的在结果出来之后我们对其进行测量的时候带来的误差,比如最经典的测长度可能会由于尺子本身刻度不准的问题带来系统误差,即最简单的“仪器误差”。当然,系统误差还包括我们本身实验设计所依赖的理论要求和实验条件的差别,比如“热学实验中没有考虑散热所导致的热量损失,伏安法测电阻时没有考虑电表内阻对实验结果的影响等”,称之为“理论误差”。当然,“个人误差”也是客观存在的,指的是“由于观测者个人感官和运动器官的反应或习惯不同而产生的误差,它因人而异,并与观测者当时的精神状态有关”。区组化原则更多的就是为了消除/减轻系统误差的影响、提高实验的精确度而建立的一条原则。区组化的做法无外乎先把实验对象按照某种特征分组,使各组之内尽量同质,然后在此基础上每组分别随机抽样。这里多少有点和“分层抽样”的思想契合。从我的感觉来说,社会实验中我们对于这一点的强调相对少一些,除非是比如性别决定了实验方式需要区别(比如对丈夫和妻子要采取不用的treatment),要不大多数情况下常见的还是完全随机抽样。我的感觉来说,区组化原则更多的在于treatment的制定是不是完全相同,如果我们需要依赖于某种特质来制定treatment,那么分组再随机抽样就显得更为必要。当然我这里的理解可能和fisher的意思有一些偏差,但是实际中我们确实是要考虑,比如对于教育水平极低的人(甚至不识字)采用亲笔签名的方式来确认某项事情并不一定反映了其真实意愿,不见得有最传统的“按手印”来的有效。这里我更多的是想说区组化原则除了可以作为分层抽样的基础,更多的是一种制定实验手段的时候可以考虑一些实施中的实际困难、灵活应变,以保证在某些区组中不至于出现大规模的系统误差影响实验最终的平均意义上的效果。这更多的是一种事前的警觉性体现,事后往往修正就比较难了,实验不尽如人意也就在所难免了。

OK,今天就简单的回顾一下Fisher的实验设计三原则,感觉这些东西在最基础的统计学中都学过,估计大家也都有把这些作为“重点”概念熟记应付考试的经历,其实刚才很多名词我搜了一下出来的都是XX试题详解。其实“随机误差”“系统误差”这些东西说起来容易,先不论很多人只是为了考试,大多数人学这些概念思想的时候很少有同时确实在动手做实验的,哪怕是物理化学实验,更少有思考实验设计“为什么这样”的机会,很多东西大家都约定俗成了。而到了社会实验,面临的问题就更复杂和多元化,对这三原则自然也会有一些不同的解读和理解,大概也是走出象牙塔之后的一种进步吧。实践出真知,比证明多少次plim a= a或者E(u|x)=0都更有切身体验。除了数学公式的所确保的一致性,在一个实验的实践过程中确实有太多的环节可以导致结果的偏差了,尤其是系统误差。如果对这些可能的因素没有警觉,那么实验的设计缺陷可能进一步导致实验结论的稳健性下降。所以,设计实验的过程更多本身就是一种学习和积累经验的过程,然后这种积累到了一定程度,就会影响到理论的发展和进步吧。科学不就是这么一点点艰难的前进的?虽然经济学或者其他社会科学还称不上实验科学,但是这些思想的引入和考量我觉得还是有益无害的。