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都更有切身体验。除了数学公式的所确保的一致性,在一个实验的实践过程中确实有太多的环节可以导致结果的偏差了,尤其是系统误差。如果对这些可能的因素没有警觉,那么实验的设计缺陷可能进一步导致实验结论的稳健性下降。所以,设计实验的过程更多本身就是一种学习和积累经验的过程,然后这种积累到了一定程度,就会影响到理论的发展和进步吧。科学不就是这么一点点艰难的前进的?虽然经济学或者其他社会科学还称不上实验科学,但是这些思想的引入和考量我觉得还是有益无害的。

Categories
事儿关经济

Academic Day

昨天从杭州回来,顿时感到如释重负,事情做完了,自然心里舒畅一些。

然后,今天列了列这周需要做的事情,终于没有什么说是要几点几点必须做完的了。然后长吁一口气,想起来需要改的paper。其实论文这东西,写不写纯属一种对于学术偏执的热情。我还是很喜欢看到一点点contribution to existing literature的,先不管这个contribution有多大。于是写起来,也便多了几分感觉。顿时感慨,大多是时候做事情的热情真的只是单纯的来源于喜欢和责任感啊——尤其是后者,若不是责任感在那里,真的感觉很多事情都没有必要做。与此同时,发觉自己的完美主义倾向越来越严重,不喜欢把一个不负责任的东西交给别人,那样怎么对得起放在第二行的自己的名字呢?虽然很多时候也没有放自己的名字在那里了……

今天,除了接接电话之外,定位于一个academic day,更多的是指让自己的思维回归学术化一点,用经济的角度重新审视过去几周的事情,再就是准备一下接下来的两个conference。

话说,这次R会议要讲的题目终于定下来了, Experiments in Social Networks and Analysis in R,有点绕口是不是?中文更绕口,我都不知道怎么翻译好了。田野实验的方法在实证研究中的应用越来越广,而随机实验的方法尤其对社会网络这种本来内生性问题很严重的领域提供了一个寻找一些答案的方法。今年上半年的时候前后在这个基础上做了一个实验设计、还有后续的一篇更完整的论文,现在又开始真正的run一些实验,所以觉得这个题目至少有一点话可说。只是不知道多少人会感兴趣了。话说,我应该先把《社会实验的特殊性》一系列感想文章一点点写出来,果然实践出真知啊。

R会议上海会场在一点点前进,不时看着慢慢变长的报名列表心里就有一种莫名其妙的幸福感 ^_^ 能见到很多志同道合的人自然是一件格外开心的事情。现在真的是每天都离不开R了,各种该用R的、其实并不一定非用R的事儿都交给R来处理了,工具依赖啊。发现RStudio这个“编辑器”很好用,很好用……然后又在下Revolutoin了,不知道会不会有新的惊喜。

还有很多东西值得一点点期待吧。心情有张、有落也算正常,不过总体上还是一种满积极的状态,毕竟没有白来的丰收,相信今日的辛苦付出都是会换来在未来的某个时刻回眸时的会心一笑。算作一种小小的希望吧。

Categories
我的生活状态

文字的风格

一份普通的结果分析报告被我硬生生的写了成一篇标准的实证计量文章,可怜那个给我耐心的一点点解释这东西为什么不work的人……突然间觉得也不过是一两年的时间就被一篇篇学术论文成功的毒害至深了。强迫自己坐下来以一个普通读者的身份重新审阅那份报告,恍然觉得真的是不知所云。

顿时沉寂……本以为自己的文字表达能力一直是很好的,突然间才发现并没有自己想象的那么尽如人意。倘若当时拿出来几分写blog的耐心,或许也不至于写成那么技术化。然后顿时开始怀疑自己的blog是不是也越写越失败,越来越没有耐心静下来好好的分析一个问题,用最最通俗的语言和表达方式。

两日两次往返杭州,顿时感觉自己已然有了“住在上海、工作杭州”的潜质。不过想想,貌似很不划算的样子。大家更愿意住在杭州,反过来吧~每次都躲在一个书店上面的很低调的咖啡厅里面,静静的等待中午的阳光渐渐暗淡。然后突然觉得时间过得好快好快,然而事情再也不象在象牙塔里面那样可以一一的计划着来,各种随意和冲击。突然发现,真正需要集中注意力工作的时候,其实根本不需要什么咖啡来提神。那东西,或许只能用来应付老师上课吧。

越来越觉得自己笔下的文字失去了细腻的感觉,越来越简练和固定,缺乏新意。翻看五六年前那些为了某些节目而写的策划案,顿感一种悲哀——年少时期的创造力和飘扬的文字,难道就这么渐渐被时间沉淀了么?是因为忙碌淹没了创造性,还是越来越没有那种完美的执着。突然觉得,很多事情走的太快,好想稍稍停下来喘口气。

然后心里还压了好些事儿。比如没改完的paper,比如各种许诺了要做的事情。一点点的理顺之后,觉得自己好像在玩一个游戏的endless模式似的。或许,年底的时候我需要一段时间的vacation时间,放逐自己。

去年此时依稀在感慨失去了经济直觉,莫非每个秋天都是一种历练的时节?春去秋来,一切终将回归正常的。

Categories
日常应用

批量多个文件GB转UTF-8编码、批量合并多个文件

这里更多是一种记录了。

最近遇到两个小问题,批量把GB转成UTF-8,因为R里面就算用en.US-UTF8也是不能直接读GB编码的中文文本文件的。所以需要一个转换。由于手头几百个文件,不可能一一打开notepad++之类的文本编辑器然后另存为,于是就开始搜。果然,神奇的软件哪里都有,一搜救有华军软件园的一个小软件:http://www.onlinedown.net/soft/46844.htm。打开之后很方便~只可惜是windows下的,我还得切出ubuntu来回到windows。

同样的还有一件事儿要依赖windows,那就是在读入R之前,我需要批量合并多个文本文件。这个时候就要靠命令行了。键入CMD之后,一路cd进入需要操作的文件夹。然后一个神奇的命令:

copy *.txt target.txt

就可以看到命令行华丽丽的搞定了!真速度啊,赞一个。

就在此记录一下,整理数据会有各种各样稀奇古怪的需求,能在R之外做的也有很多(本来我是在ubuntu下ls所有文件名,然后想用for循环在R里面依次读入并rbind的)。当然相比于命令行的原生操作,还是速度慢一些。所以,各种武器齐上马,就看哪个利索了。不同于以往在学校里接触好的数据,格式都弄好了,业界的数据格式千奇百怪。所以涉及到数据格式的修改,感觉真的离不开R里面的merge、reshape等基础命令。话说还发现一个R包data.table,可以用来做分组求和等很多基于table的工作,大赞一个!

Categories
日常应用

LyX2+XeTeX/LaTeX若干中文问题

最近琢磨着用sweave写一篇中文报告,结果打开LyX 2.0之后华丽丽的发现已然不知道一份中文的文档应该怎么写了。上一次用Latex玩中文的东西怕是要追溯到本科毕业论文了。而后一年的时间,就从来没用latex编译过任何中文的文档,也难免突然不知所措了。

LyX 2.0相比1.6x变化还是蛮大的,折腾了半天我也没弄明白怎么可以调出中文来。原来的时候觉得XeTeX慢,就一直用ctex+pdflatex的解决办法。可是不知道为什么,这一次中文总是乱码,改成UTF-8也是,弄得我好痛苦。于是一边折腾texlive,一边先在LyX里面用英文写报告。往后再慢慢翻译好了。

终于,在这个中秋假期临近尾声的时候,我没理由再拖着不把中文搞定了。于是,先调回到ubuntu去,从简单的linux软柿子捏。装完texlive 2011,找着网上的若干教程一步步走下来,比如这个,却发现我总是遇到一个莫名其妙的错误问题。错误提示大致如下:

! Undefined control sequence. <argument> ExplFileName

网上哗啦啦的搜了一番,发现原因大概是l3kernel, l3package和fontspec这个包之间的兼容问题。然后照着网上的步骤删除掉expl3这个文件夹,华丽丽的错误又出现了:

! LaTeX Error: File `expl3.sty' not found.

只有各种崩溃啊。最后忍无可忍,一个 rm -dR * 命令删掉了texlive文件夹下所有的文件。重新开始!

这一次学乖了,不用基于internet的网络安装texlive,改成ISO镜像安装(我下的是20110705版的),怎么也是打包好的镜像,不会出什么问题吧?吸取教训坚决不去tlmgr update -all了,就这个版本能用就行。话说,在ubuntu下配置环境变量$PATH的方法有许多,我最后发现还是直接改/etc/environment这个文件来的比较快,比改/home/username/.bashrck(看不到这些文件的话请在窗口上面选View -> Show Hidden Files)方便很多。不过ubuntu真的感觉还是离开了terminal寸步难行啊,总得sudo -i一下才能过得比较舒服。

然后打开LyX,什么乱码之类的浮云都不见了,顺利的编译中文文档。我是在language那里直接选择不用任何语言包,很清爽啊。导言区加了几行字来适应中文。看了一下对应的latex源代码,也蛮简单的,

documentclass{article}
makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
usepackage {fontspec}
setmainfont {WenQuanYi Micro Hei}
XeTeXlinebreaklocale “zh”%中文断行
XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt%左右弹性间距
makeatother
usepackage{xunicode}
begin{document}

只是记得要在文档选项那里把output选成xetex就好了。然后华丽丽的文驿泉中文文档出现……好吧,我去研究一下怎么用宋体。

至此,LyX 2 配合Xetex的中文问题就顺利的搞定了,感觉在linux下编译xetex还是蛮快的。先这么凑合着用吧,接下来研究sweave的中文支持问题去。