解名缰 鸟倦飞

段子手苏东坡

2016 年 06 月 25 日 | 分类于 生活

晚上失眠,起来翻几页书来读,翻到苏轼的词选,结果这老家伙害得我更睡不着,活生生笑清醒了。此仇不报难解心中之痒,所以分享出来给诸君放毒。

事情是这样的,熙宁七年九月,苏老爷子,啊不对,当年他也才37,是个大叔,苏大叔路过湖州,当时的湖州知州叫李公择,正巧生了个儿子,第三天的时候宴请宾客,请苏大叔写首词助助兴。然后苏大叔就写了下面这首《减字木兰花》给他:

惟熊佳梦,释氏老君亲抱送。壮气横秋,未满三朝已食牛。

犀钱玉果,利市平分沾四座。多谢无功,此事如何着得侬?

前半阙其实还比较正常,是化用自杜甫的诗《徐卿二子歌》,里面有这么几句:“徐卿二子生绝奇,感应吉梦相追随。孔子释氏亲抱送,并是天上麒麟儿。大儿九龄色清澈,秋水为神玉为骨。小儿五岁气食牛,满堂宾客皆回头。”

但是,

苏大叔你怎么抄得这么不走心啊![扶额]

杜老爷子说人家小孩是孔子和佛祖抱着来的,到了你这儿倒好,变成了佛祖和老君抱来的,

不知道他们俩在一块会打起来啊?!

阅读全文→

标题党统计学

2016 年 06 月 08 日 | 分类于 学习中

如果你是被这个标题骗进来的,那么说明标题党的存在的确是有原因的。在网络高度发达(以及“大数据”泛滥)的今天,数据动不动就是以 GB 和 TB 的级别存储,然而相比之下,人类接受信息的速度却慢得可怕(参见大刘《乡村教师》)。试想一下,你一分钟能阅读多少文字?一千?五千?总之是在 KB 的量级。所以可以说,人们对文字的“下载速度”基本上就是 1~10KB/min。如果拿这个速度去上网的话你还能忍?

既然如此,每天网上有成千上万的新闻、报告、文章和八卦,怎么看得过来呢?没办法,只能先对正文进行一次粗略的筛选——看标题。俗话说得好,这是一个看脸的世界。于是乎,文章的作者为了吸引读者,就要取个足够博眼球的标题,而所谓标题党便是充分利用这种心理,用各种颇具创意的标题来吸引读者的注意。

好了,既然看官已经看到了这里,我就可以承认本文其实也是标题党了。这篇小文并不是要讨论标题党的前世今生,而是研究一个与此有关的统计问题:怎样的标题会更加吸引读者的关注?

这个问题有点太大了,所以我们缩小一下范围。既然是统计问题,就拿自家的一个例子下手吧:做统计学研究的,都得读各种各样的统计论文,那么论文的标题是否会对这篇文章的阅读量产生影响呢?巧的是,美国统计协会期刊(JASA)的网站上正好提供了该期刊旗下文章的下载访问量,所以我们可以以此做一个小分析,来研究一下标题与文章阅读量之间的关系。

可能有读者要问,为什么要使用文章的访问量,而不是引用率呢?这是因为 JASA 在其网站上说明,访问量数值是指从 JASA 官网下载的统计量,不包括从其他途径(比如购买的论文数据库)的来源。在 JASA 网站上,下载文章之前读者能获取到的主要是文章的标题和作者信息,所以访问量的主要驱动因素就是读者在阅读标题和作者之后产生的好奇感,从而减少了数据中的噪音。相反,引用一篇文章,通常是对文章有了充分理解之后产生的行为,这时候标题的作用可能就非常微弱了。总而言之,JASA 文章的下载量可以较好地代表读者在获取了文章的基本信息后对它感兴趣的程度。

JASA论文

阅读全文→

标准正态分布函数的快速计算方法

2016 年 01 月 30 日 | 分类于 学习中

标准正态分布的分布函数 $\Phi(x)$ 可以说是统计计算中非常重要的一个函数,基本上有正态分布的地方都或多或少会用上它。在一些特定的问题中,我们需要大量多次地计算这个函数的取值,比如我经常需要算正态分布与另一个随机变量之和的分布,这时候就需要用到数值积分,而被积函数就包含 $\Phi(x)$。如果 $Z\sim N(0,1), X\sim f(x)$,$f$ 是 $X$ 的密度函数,那么 $Z+X$ 的分布函数就是

我们知道,$\Phi(x)$ 没有简单的显式表达式,所以它需要用一定的数值方法进行计算。在大部分的科学计算软件中,计算的精度往往是第一位的,因此其算法一般会比较复杂。当这个函数需要被计算成千上万次的时候,速度可能就成为了一个瓶颈。

当然有问题就会有对策,一种常见的做法是略微放弃一些精度,以换取更简单的计算。在大部分实际应用中,一个合理的误差大小,例如 $10^{-7}$,一般就足够了。在这篇文章中,给大家介绍两种简单的方法,它们都比R中自带的 pnorm() 更快,且误差都控制在 $10^{-7}$ 的级别。

第一种办法来自于经典参考书 Abramowitz and Stegun: Handbook of Mathematical Functions公式 26.2.17。其基本思想是把 $\Phi(x)$ 表达成正态密度函数 $\phi(x)$ 和一个有理函数的乘积。这种办法可以保证误差小于 $7.5\times 10^{-8}$,一段C++实现可以在这里找到。(代码中的常数与书中的略有区别,是因为代码是针对误差函数 $\mathrm{erf}(x)$ 编写的,它与 $\Phi(x)$ 相差一些常数)

我们来对比一下这种方法与R中 pnorm() 的速度,并验证其精度。

library(Rcpp)
sourceCpp("test_as26217.cpp")

x = seq(-6, 6, by = 1e-6)
system.time(y <- pnorm(x))
## user  system elapsed
## 1.049   0.000   1.048
system.time(asy <- r_as26217ncdf(x))
## user  system elapsed
## 0.293   0.019   0.311
max(abs(y - asy))
## [1] 6.968772e-08

可以看出,A&S 26.2.17 的速度大约是 pnorm() 的三倍,且误差也在预定的范围里,是对计算效率的一次巨大提升。

那么还有没有可能更快呢?答案是肯定的,而且你其实已经多次使用过这种方法了。怎么,不相信?看看下面这张图,你就明白了。

阅读全文→

周记(四)

2015 年 12 月 19 日 | 分类于 生活学习中

上周的周记缺了一次,原因是期末最后的这两周基本上是在各种死线中度过的,于是没有精力也没有心情去写博客了。

其实上上周有好几条突如其来的消息。谢老大之前身体不适,前两周一直在医院检查,直到这周一做了一晚上手术,向师姐了解情况后,得知最后问题不是太大,应该能很快恢复。也是两周之前,瑶总滑雪摔伤,经过前前后后的诊断,需要一个来月的时间恢复静养,其中滋味必然不好受,希望伤痛能尽快退去,新年无忧无虞。还有一条挺沉重的消息,是两周前陈博士在微信群里告诉我们的。当年和我们一起入学的有位瑞典小哥,他在13年暑假的时候去南美旅游,结果被报失踪,再也没有回来。陈博士偶然在浏览相关报道的时候发现今年5月份有更新的消息,说是他的遗骸被找到了,与当地的黑帮有关。这种在电影里面出现的情节就发生在自己身边的人,一时还难以接受。

负能量过后,生活依然还在继续,忙碌了两周,把剩下的期末报告都写完之后,今天就算是进入假期了。

周二和导师见面,闲聊的时候不经意提到了主动性的问题,他说读书期间要学会主动一点,如果有机会就应该多把自己做过的东西展示出来,之前十月份的时候他让我参加泛华统计协会的Poster比赛就是这个原因。他说这种类似的比赛有很多,如果有一些成果都可以投出去试试,拿不拿奖是其次,关键是要学会怎么让别人更多地了解你。

在这一点上,我确实得反思一下。很多时候我会觉得宣传自己是一件没有必要而且有些难以启齿的事,所以很少会主动跟别人介绍自己的能力或是成果,为此身边的朋友都或多或少觉得我过于低调和谦卑了。任何事情推到极致都是有问题的,关键是如何达到一个平衡,导师和朋友的劝诫我都记下了。

说起这事是因为和另一个话题有关。之前谢老大跟我提起过好几回参加John Chambers奖比赛的事,而我一直觉得没有什么值得参赛的作品,所以并没有太上心。当天听了导师一席话后,觉得确实得有所行动,所以就决定拿暑假写的一个软件包参加比赛。虽然我对结果并不抱什么希望,但我发现给自己人为地加一个截止日期,不管有意无意,都能极大提高工作的效率。事实上比赛当天就要截止,于是我一整晚都在写各种文档,完善一些细节,最终在截止前一个小时把申请投了出去。

参加这个比赛给我带来的另一个收获是它促使我做了一些之前一直想做但就是没有动力去做的事,比如给写的这个软件做一个网站。因为申请材料的篇幅有限,所以很大程度上得依靠材料之外的媒介对参赛作品进行描述,而网站一般是首选。由于前一阵为了做R会议的网站搭过一个简单的框架,所以这次上手也很快,我对做出来的效果也比较满意。让我有些吃惊的是,谢老大在第二篇周记里留过言,说“做一个好看的网站,看起来不务正业,却是有实在产出并对将来能产生影响的事情,所以是看起来没用但重要的事情”,不想这么快预言就成真了。

忙完这许多事情,算是可以稍微休息一阵了。今年村里的冬天很反常,气象温和,阳光常在,下午坐在书桌前,发现窗台前的花草在卧室墙上投出了一道映像。素影参差,年光催度,希望亲朋好友都能在年底有个完满的收官,把不如意之事放在旧年,给马上到来的2016一个崭新的开端。

影

阅读全文→

周记(三)

2015 年 12 月 05 日 | 分类于 生活学习中

周日在朋友家吃火锅,其间Z同学喊了句“藕下了啊”,我便调侃了句“这话在好多年前的 BBS 上就是我要下线了的意思”,然后W同学评论说暴露年龄了,于是接下来又互相聊出了更多暴露年龄的典故,像是多图杀猫,九城社区,东北人都是活雷锋,小小,Showgood 之类。这么列举一下,发现2000年初的网络文化其中很重要的一支就是 Flash 动画,而这其中 Showgood 毫无疑问是当时中国 Flash 界的主力军之一。

第一次听说 Showgood 我记得是初中的时候去P姑娘家玩,她推荐了大话三国系列中的某一部作品给我看,当时我就被那部动画的画风和搞笑台词惊艳到了,后来家里能拨号上网,就自己去 Showgood 的网站上看,现在依然还有印象的就是三集左右的《千里走单骑》,还有后来的《小兵的故事》。下午回到公寓后特意又搜了下,发现 Showgood 这个网站居然还在,只是已经成了一家做互联网儿童教育的创业公司。尽管已经改头换面,但进网站后迎面那句“这些年,你们还好吗?”还是让人唏嘘不已。

但其实在我心目中真正的 Flash 神作还是小小系列,也就是当时风靡整个 Flash 界的火柴人动画。我至今还记得小小的域名是 xiaoxiaomovie.com,用 whois 查了下,并没有被注销掉,只是网站已经无法访问了。小小的影响力之大,我清楚地记得曾经玩过一个英文的 Flash 格斗游戏,里面可选的角色是各类美国的超级英雄和日本的动漫角色,但列表中赫然有着 Xiao Xiao 的名字。可惜后来再想找到这个游戏,就如同大海捞针了。少年时的记忆就像是擦肩而过的路人,偶尔留下一抹难忘的影子,又很快地融入到黑压压的人群中,再不见踪迹。

阅读全文→

周记(二)

2015 年 11 月 27 日 | 分类于 生活

上周周六,入冬以来的第一场雪,气温骤降,让人猝不及防。突然从清爽中还带着一丝明媚的“深秋”时光变到压抑晦暗的冬天,一时还有些不习惯。

不过冬天依然是个好季节,很多事情都是在冬天的时候想通的。

初雪

周日做了一次大胆的尝试,从早上八点到晚上八点,把手机一直保持在关机状态,看能不能存活下来。后来事实证明不但成功地活了下来,还大大提高了做事的效率,先是把该干的活干完了,还抽空读掉了一本小说,就是上周因为写周记而没有读的那本,2014年诺奖得主帕特里克•莫迪亚诺的《暗店街》。

书是室友的,当时看封面内页的介绍,有些侦探小说的感觉,于是好奇就借来看了。书很薄,不到200页,总的故事走向也很简单,就是在二战后的巴黎,主角因为遗失记忆而四处寻找线索,希望能揭开自己的身世之谜。然而在读完最后一章后发现根本就没有真相大白的一幕,直到最后,主角还在寻找、怀疑和挣扎,依靠一些微弱的线索去拼凑曾经的自己。从理性的角度讲,主角是可以彻底与过去割裂开的,然而寻找本源似乎是所有人与生俱来的一种天性,以至于作者借另一个角色之口说出了“在生活中重要的不是未来,而是过去”。我非常喜欢书里面的一个比喻,他说我们都是一种 海滩人,我们无数次地出现在海滩度假照片中的一角或背景中,出现在欢快的人群中,但谁也叫不出我们的名字,说也说不清我们为何在那儿。“沙子只把我们的脚印保留几秒钟”,当我们离开沙滩以后,与这个世界的联系就仅剩许许多多互不相关的碎片而已。

豆瓣上一条评论说这本书得在一个阳光明媚的午后拿来读,否则容易想多,我觉得是这么回事。

阅读全文→

所有文章列表→