Categories
日常应用

中心极限定理的Monte Carlo模拟

中心极限定理版本一堆,每一个都牵扯一堆数学公式什么的...而与我而言,其核心就是,样本足够大的时候,可以无视其本身分布(只要均值、方差存在),(独立同分布的)样本均值将服从正态分布。这样一来,就可以使用正态分布的一系列良好性质,比如两个正态分布之间的检验什么的...

按说中心极限定理(下简称CLT)整天都在用,可是后面渐渐的习惯了计量那些矩阵推导渐进性质之类的,往往就忘了一些基本的统计量或者区间估计是怎么计算出来的...呃,眼高手低,还是老老实实的不时回头复习一下基础知识比较靠谱。

记得Yihui曾经在animation包做过一个动画展现CLT...相比而言,我就比较懒了,简单的做个模拟看看最终结果就好了。本来这种模拟应该扔给Matlab去做的,可惜啊现在电脑上米有,只能用R了。R里面可以产生随机数的分布有很多,一个个试呗...在基础的stats包里面,有一堆以r开头的函数,对应不同的分布(wiki页面建议看英文,中文长度完全不在一个量级啊...)。

  • rbeta: The Beta Distribution (wiki link)
  • rbinom: The Binomial Distribution (wiki link) (二项分布)
  • rcauchy: The Cauchy Distribution (wiki link) (柯西分布,N阶矩都不存在的分布...)
  • rchisq: The (non-central) Chi-Squared Distribution (wiki link) (卡方分布,正态分布平方的分布)
  • rexp: The Exponential Distribution (wiki link) (指数分布,独立随机事件发生的时间间隔)
  • rf: The F Distribution (wiki link) (F分布,两个卡方分布除以各自自由度)
  • rgamma: The Gamma Distribution (wiki link) (伽玛分布)
  • rgeom: The Geometric Distribution (wiki link) (几何分布,在第n次伯努利试验中,试验k次才得到第一次成功的机率)
  • rhyper: The Hypergeometric Distribution (wiki link) (超几何分布)
  • rlnorm: The Log Normal Distribution (wiki link) (对数正态分布,正态分布的指数的分布)
  • rlogis: The Logistic Distribution (wiki link) (逻辑分布)
  • rmultinom: The Multinomial Distribution (wiki link) (多变量正态分布)
  • rnbinom: The Negative Binomial Distribution (wiki link) (负二项分布)
  • rnorm: The Normal Distribution (wiki link) (正态分布)
  • rpois: The Poisson Distribution (wiki link) (泊松分布,单位时间内随机事件发生的次数)

那就...一个个试呗。计算机就是会让人的生活变得简单...结果如下。

Categories
读书有感

主观评价与薪酬设计

本来心情大好的,在这一期AEJ:micro中拎出来两篇papers,准备好好研读的。第一篇关于online marketing的还好,长长的日志已经发出来了。但是这第二篇...我怎么选了一篇TSE(Toulouse School of Economics)的文章呢?自讨苦吃。

题目蛮诱人的,尤其对我这种热衷于机制设计游戏的孩子来说。

Maestri, Lucas. 2012. "Bonus Payments versus Efficiency Wages in the Repeated Principal-Agent Model with Subjective Evaluations". American Economic Journal: Microeconomics, 4(3): 34–56.

什么主观评价体系啊(原来都是看客观评价的),奖金激励啊,有效工资啊,重复PA博弈啊,看起来多么实际的劳动市场机制设计问题啊。然后呢?看到1/2处,我已经忍无可忍了。假设,也太多了吧。各种陈述,各种规则,各种各种最后得出来一些不怎么强的结论。耐着性子推了1/3的公式之后,终于忍无可忍了,直接扫文字,最后跳到conclusion了。

米有意思,大大的米有意思。Too economics to enjoy. 还是喜欢直觉比较强的文章,虽然某种程度上公式是逃不掉的。只是感觉,不够elegent吧。

我不知道应不应该复制一下conclusion,还是复制一下abstract吧。

We study an infinitely repeated principal-agent model with subjective evaluations. We compare the surplus in efficiency-wage equilibria and in bonus-payments equilibria. The agent receives a constant wage and is motivated by the threat of dismissal in efficiency-wage equilibria. The agent receives a bonus and quits the relationship after disagreements between his self-evaluation and the principal's performance appraisal in bonus-payments equilibria. We construct a class of equilibria with bonus payments that approach efficiency as patience increases. In contrast, payoffs from efficiency-wage equilibria are bounded away from the Pareto-payoff frontier for any discount factor.

让我对这篇paper没那么大耐心的另外一个原因是,新一期的Journal of Economic Perspectives也出了,还有一两篇有意思的paper可以读(尤其是一篇两个在业界的研究者搞出来的paper)。只是在这里简单记录一下好了。对TSE的风格,真的是让人越来越不喜欢了(虽然曾几何时,Laffont的那本书几乎成为桌案圣经...)。希望不是我开始越来越浮躁了吧?

Categories
互联网产业观察 读书有感

网购中新品牌更难出头?

前几天看到最新一期的 American Economic Journal: Microeconomics 出来了,扫了一眼目录然后发现有两篇papers挺好玩的。也可能是现在人在电商的缘故,对online marketing格外的敏感,所以先拎出来一篇对比在线个购物和传统购物中新品牌探索的论文,一睹为快,顺便忍不住和大家分享一下:

Pozzi, Andrea. Shopping Cost and Brand Exploration in Online Grocery, American Economic Journal: Microeconomics,4(3), p96-120, 2012

AEJ版的米有权限下不到(有权限的童鞋帮忙给我发一份),去作者网站上找到了working paper版。有兴趣的不妨去下个PDF看看原文,虽然有点小长(econ的论文难得见到50页以下的-_-||,命苦啊)。

---------一点经济学理论背景知识----------

相关信息提供结束,下面开始全力关注正文。网购出现之后,由于其一堆让人欣喜的特性,受到广大人民群众的广泛欢迎。作为一个从高中时代就开始支持电商的孩纸,我个人网购的主要理由如下:

  • 便宜:相比于实体店,网店房租等固定成本投入低的多,所以价格上自然有所让利。加之现在电商之间竞争惨烈,消费者自然可以期望一个更接近于博弈均衡价格的价格(基本就是,会稳定的趋近于成本)。优胜劣汰的信息丰富下的完全竞争市场模型嘛。
  • 选择丰富:实体店往往受限于店面面积,能陈列的就那么几个牌子。而网购则不同,可以一下子把更多的东西都放在上面,任君挑选。有的时候可以很方便的买到一些平时便利店买不到的小东西,各种造福生活。当然还有各种限定版或者水货之类的?
  • 便于比较:比较一方面是价格,另一方面还有商品的评价。比如买电器,在国美苏宁基本上就是推销员口若兰花,根本不知道一件东西到底有什么缺点(比如西门子关不上冰箱门)...而在电商网站,可以很容易的看到其他购买者对于商品的评价,各种实拍图什么的,有利于作出更理论性的购买判断。再者,选定了款式之后,价格比较也是很容易的。呃,作为一个有经验的网购者,基本上不会出现严重的被欺骗交易——网购市场一分钱一分货的道理还是一直存在的,所以我很少会买特别廉价的东西,还是习惯于一个reasonable的折扣(相较于实体店)。

我曾经很关注网购市场,尤其关注的是其中的交易机制设计。这个名词听起来挺专业的感觉,其实不过是一些很细微的规则:比如,淘宝商家商品上架要不要收费?商家要做哪些身份验证?商家的声誉是怎么积累的?商品打分评价是怎么计算的(豆瓣现在对电影图书等评分系统有了更好的算法调整,避免过高/过低的个别评价干扰整体结果)?退货换货制度是怎么设计的?保险又是怎么规定的?

这些看起来细微的东西,累积起来,就在一定的时间范围内决定了一个市场的生态状况。简单的说,每一次淘宝对于收费等等的调整都会引起很多商家的地震,优胜劣汰本来无可厚非,只是这其中牺牲的卖家有的时候还真让人感觉制定规则之人的凶残~ 嗯,淘宝需要经济学家,嘻嘻。这些东西真的不是拍拍脑袋想出来就可以的嘛~

而在一个给定的制度下,从更微观的角度,我们不仅仅可以看到商家之间的竞争,更多的也可以看到消费者行为的变化。比如现在更习惯淘宝商城或者京东这些B2C平台的购物者,和那些喜欢在淘宝C2C中浏览购买的人群(或者同样的人购买的商品),往往都是呈现一定程度的差异性的。简而言之,这是对于消费者的一个自然划分过程,通过他们对于机制的选择体现了他们本身的属性:购买力,价格敏感度,风险偏好,时间成本,计算机使用程度,决策理性程度等等。这些属性共同的,在网购的市场中,决定了消费者购买的产品和购买地。在这些特性之中,风险偏好貌似是网购市场中最最让人关注的事情——可能是因为,市场机制的调整会直接的影响不同风险偏好程度消费者的购买行为变化。一般说来,感觉习惯于B2C的消费者会有更高的风险厌恶特性——哪怕付出稍稍高的价钱。为什么这里我说B2C价格一般会高一些呢,主要是B2C为了进入市场(比如拿到淘宝商城的执照),需要一次性或者长期的付出更高的成本(进入成本或者声誉成本,或者像京东商城那样趁着奥运会打广告什么的)。短期之内低价可能是驱逐其他竞争者的策略,但长期看来这些成本必然还是由消费者买单的。

风险偏好的一大体现就是,消费者对于既有商家或者既有商品品牌的认可。比如,对于一些日常用品,我会倾向性的选择某些品牌。相机,嗯,Nikon或者Sony吧;笔记本自然是IBM(好吧现在是联想)的Thinkpad;出门一般不会去坐小航空公司的航班,碰到天气不好先取消的肯定是这些,还是大航空公司的调度能力强一些。之类之类的吧,人们对于品牌的依赖无处不在。品牌理论有很多,我有些武断和路径依赖的认为,品牌存在的核心价值就是降低了消费者的选择成本——习惯性的去购买自己习惯的商品,不会出现什么突发的不适应情况(当然也就没有了意外惊喜)。当然,品牌还有一个功能就是向自己周围的人传递一些信号,比如投行的孩子们一般需要一身名牌来武装自己,而IT男则常年拎着各种小众神器招摇过市吸引MM眼光...奢侈品基本就是这个目的的。然而,无论是哪个目的,品牌的塑造总是有成本的。一遍呢,是口碑长期的积累,类似于“百年老店”这样的声誉,这个是时间赋予的;另一方面,则是广告投入。最近看奥运会的童鞋有米有发现,比赛之间穿插着各种广告,不断的用某些名词来刺激人们脑子中对于品牌的反应和认知(恶心的例子如某年春晚,恒源祥的“羊羊羊”,导致大家的电视机集体呈现死机状~你懂得)。

就算我们耳熟能详的一些品牌,也有子品牌和多品牌策略,可以方便的区分不同的顾客群。典型如各大酒店连锁集团,例如喜来登,高端的有以私人管家服务著称的“瑞吉”(补一句,拉萨有一家,让人各种流口水啊~);商务客有艾美、威斯汀和喜来登;然后还有稍稍平民的福朋喜来登。日常生活中,你知道的,什么潘婷啊、沙宣啊、飘柔啊都是宝洁的,对吧?这个世界大概只有强大如apple,才能上下通吃吧...一个iphone搞定所有孩子。微博最近流传了一张很经典的快消品品牌图:the illusion of choice,嗯,其实这些都是一家的...

1c63c0e4c3e0a2d4dd93d2f64dddf848-1024x642

那么一个关键的问题也就浮出水面了——在网购中,人们对于新品牌是什么态度呢?我们一边看到淘宝让很多江浙地区的中小企业有了打造自己品牌的机会(比如裂帛?),另外一个方面网购的时候出于风险厌恶和时间紧迫,可能人们更多就是匆匆买完自己需要的东西而已。那么,是不是对于人们在传统超市里面买的更多的快消品,网购市场会使得新品牌更难出头呢?而对于一些实体店更难买到的东西,或者人们更追求风格和设计的商品(比如女装),网购中反而新品牌更容易确立呢?

----------实证结果-------
罗嗦了这么多,终于回归这篇论文,让我们来看一下实证的结果吧!

先说数据集,嗯嗯,这个永远是我们首要关心的。当然,世界上永远不可能有那么完美的数据,可以100%科学的回答这个问题。不过有的时候选择性样本也不是什么大问题,如果这个样本代表性还是可以的话。在Andrea这篇论文中,她的数据来源于美国一家拥有1500多家门店的连锁超市。有意思的是,这家超市一是有会员制度,二是它同时提供网上购物。也就是说,你如果是这家店的会员,既可以自己开车去超级宽广的超市购物,也可是坐在家里点点鼠标等人送货上门。具体到数据,作者拿到了11640个家庭2004到2006年之间的购物样本(时间有点早呃),这些家庭同时有实体店和网络商店的购物记录。数据是scanner level的,就是可以看到购物清单,包含商品名称价格等等。

然后,作者为了保持一个比较好的可比性,选择了grocery这个类别,基本就是我们常见的各种快消品:食品、日用品这些吧,可以参见上面那张图。作者对于新品牌的定义可能和我们感知的有点不同:对于每个消费者来说,买他以前没有买过的品牌就算一次新品牌探索行为。不管这个新品牌是不是真的新上市的。特别的,作者格外关注cereal的购买(燕麦片?),体现了人们对于早餐的选择。

好了,基本的数据情况就是这样,我们先来看一眼简要的结果:网购中,消费者购买新品牌的倾向比实体店中低13%。

可能的原因是:

  • 网购快消品更多的是为了节省时间
  • 消费者对触碰不到的东西质量更为忧虑
  • 购物网站上更多的呈现“历史购买记录”等对新品牌购买有负面影响的信息

前两点有点显而易见,最后一点则是非常有趣的。去年接触了很多推荐算法方面的东西,从理论的角度来说,很多现行的推荐算法确实倾向于推荐热门的商品。最简单的,如amazon初期使用的,购买过XX的人还购买过YY,这样一来越来越多的人可能会被导向YY。一些新品牌因为可能比较小众,就比较难以在这种推荐算法中脱颖而出。如果是电影还好,至少还有导演演员等等可以做一些基于内容的推荐。但是,对于快消品来说,本来品牌的竞争就已经呈现白热化了,推荐算法除非特别调整,否则还是很难把这些近乎“冷启动”的品牌推荐出来的。此外,推荐算法的diversity一直是一个评价算法很重要的指标,虽然很多简单的算法带来了较多的转化率,但是这样长此以往会出现热门商品更热门,冷僻商品更冷僻的两极分化。热门商品由于各个电商之间竞争激烈,很难获得高额利润,这样下来不一定电商的利润会更高。

与之相对的,是实体超市中的“推荐算法”——强大的人肉推销员。在实体超市中,会有各种试吃试用的机会,还有推销员现场演示,这样的使用体验感知会抵消人们对于新品牌的质量忧虑,反而有了猎奇的好奇心。这样一来,冷启动也不是一个冷冰冰的问题了。

嗯,接下来我们自然关心的是,一个消费者在什么情况下,会从传统超市购物转向网络购物呢?这大概是很多电商极为关注的问题。对于这个问题,Andrea使用了一个简单的线性模型,考虑了距离、运费、是否为周末这几个因素,外加一堆控制变量,主要是受教育程度、收入等等家庭特征因素。然后对于燕麦片的需求,主要考虑了价格、以前是否购买过、购买渠道等等因素。

嗯嗯,最后高潮来了——估计的时候,Andrea使用了贝叶斯估计(Gibbs随机抽样),对于购物渠道选择估计结果如下:

  • 运费越高,网购可能性越小。
  • 越有钱的人,越倾向网购(当然财富本身可能是内生的,由教育程度等等决定)。
  • 周末的时候,人们更可能出门购物而不是网购(注:这个结果可能更适用于美国)。
  • 住的离超市越远,越倾向网购。
  • 18-35岁的人群更爱网购。

而后,对于消费者品牌选择的估计结果为:

  • 网站界面设计的影响:新品牌在网购中如果希望脱颖而出,往往需要提供一个特别诱人的巨大折扣(4$以下折扣基本无作用——而一般一盒麦片也就是三五刀而已)。
  • 周末的时候,新品牌看起来更容易被发现。
  • 网购中,人们对于质量的忧虑更高。
  • 人们时间不足的时候,购买新品牌的可能性降低。

那么,网站上的推荐列表影响到底有多大呢?作者实施了一个simulation,从“历史购买记录”到“相似购买推荐”,实验结果是两年的时间内预期可以提高23%的新品牌探索比例,但是依旧低于实体店。同时,模拟结果也侧面证实了,一个新品牌进入网购市场的时候,不仅仅面对实体店中存在的进入壁垒,同时还受到人们历史购物习惯和推荐列表的双重影响(尤其是历史购买记录,成为了一个新的无形的进入壁垒)。

那么,最后的指导就是,新品牌若想在网购中谋得一席之地,类似于病毒营销的强力广告营销是不可或缺的;与此同时,如果网站的推荐算法包容新品牌,那么新品牌将受益,更容易脱颖而出。嗯,满符合直觉的嘛~ 在一个成熟的市场要脱颖而出,不靠创意和广告怎么可能呢?此外网站算法导致的信息不同流向,自然会很大程度影响网购的品牌选择——不像实体店,网络中的信息更多的呈现“被设计”感呢。

Categories
日常应用

探索R包plyr:脱离R中显式循环

所有R用户接受的第一个“莫名其妙”的原则就是:

不要在R中写显式循环...

不要写显式循环...

不要写循环...

不循环...

不...

我第一次接受到这个“黄金律”,就跟当年从basic语言转到C语言的时候,老师说:

不要写go to...

不go to...

不...

一样的,好震撼。往往对于R用户来说,R基本上不可能是他们学习的第一门计算机语言,什么C啊Java啊甚至matlab或者VBA都可能排在R前面。所以,循环,无论是for还是while,好像都是再家常便饭不过的事情了。换句话说,不准写循环,我要你计算机还辛辛苦苦的码代码干啥?你丫不就是一免费精确的重复劳动力么!

带着一种到处循环的思维,接触R的初期我是各种不适应不适应啊。循环不让写???后来习惯了去搜R的各种稀奇古怪的函数,发现基本上我想用的功能都被其他大牛们实现了,只需要知道怎么调用那些函数和参数就可以了。这个,挺好的嘛,适合我这种懒人。可是,总有一些时刻需要写循环的嘛...呜啊。

后来,lijian哥给我不断的潜移默化各种展示sapply等apply类函数的强大,越来越体会到一种思维习惯的变化——不再是循环,而是向量操作。这就好比以前只知道求和公式的孩子一朝学习了矩阵乘法,各种惊讶膜拜。其实,从这个角度来讲,R里面很多东西都是更希望借助向量来做而不是自己一个一个的写循环。嗯啊,果然思维方式是有很大提升的。

在痛苦的跟apply类函数纠结了一阵子之后,惊讶的在stackoverflow.com上看到许多人用一个莫名其妙的ddply函数或者ldply函数来实现类似sapply的功能,一时之间难免好奇。于是按图索骥,找到了神奇的plyr包。于是,开启了一扇门(顿时想到叶诗文拿到第二枚金牌的时候,两位央视解说员激情四射的即时附和)。相映成趣啊。plyr的解释只有一句:The split-apply-combine strategy for R。嗯,超级符合其作者一贯的风格...

简单来说,这个包就是用来简化apply类函数的使用的。作者给出了一个稳健回归的例子(原文载于JSS):

已有函数:

deseasf <- function(value) rlm(value ~ month - 1)

循环版:

models <- as.list(rep(NA, 24 * 24))
dim(models) <- c(24, 24)
deseas <- array(NA, c(24, 24, 72))
dimnames(deseas) <- dimnames(ozone)
for (i in seq_len(24)) {
for(j in seq_len(24)) {
mod <- deseasf(ozone[i, j, ])
models[[i, j]] <- mod
deseas[i, j, ] <- resid(mod)
}
}


非循环版:

models <- apply(ozone, 1:2, deseasf)
resids_list <- lapply(models, resid)
resids <- unlist(resids_list)
dim(resids) <- c(72, 24, 24)
deseas <- aperm(resids, c(2, 3, 1))
dimnames(deseas) <- dimnames(ozone)

plyr版

models <- dlply(ozonedf, .(lat, long), deseasf_df)
deseas <- ldply(models, resid)

嗯,代码长度上可以看出来显著差别了吧,嘻嘻。基本上,plyr就是一步步的从split()到lapply()最后rbind()结果嗯。我个人是怎么用的呢?小小剧透一下,最近在处理一堆XML数据,虽然自认对HTML很熟,但是对XML还是各种两眼一抹黑。为了把XML转为方便的data.frame格式,网上一通乱搜最终找到了简洁的解决方案:

## xml_names中含有一系列的XML文件地址,为字符串向量。
xml_df <- ldply(xml_names,
function(x) {
as.data.frame(t(xmlToList(x)$weibo_fans))
}
)

调用XML包的xmlToList()函数之后,就可以用ldply方便的开始揉数据了。嘻嘻,然后加一个 print()函数,就可以舒舒服服的见证屏幕上几千个XML文件被慢慢刷成自己想要的格式的过程了。爽死了。

从数据输入上来看,支持三大类——array,list和dataframe。我个人最偏爱dataframe,虽然list有时候更方便灵活。另外还有几个方便的函数可以用,比如:

  • each():each(min, max)等价于function(x) c(min = min(x), max = max(x))。
  • colwise():colwise(median)将计算列的中位数。
  • arrange():超级顺手的函数,可以方便的给dataframe排序。
  • rename():又是一个handy的函数,按变量名而不是变量位置重命名。
  • count():返回unique值,等价于length(unique(**))。
  • match_df():方便的配合count()等,选出符合条件的行,有点像merge(...,all=F)的感觉。
  • join():对于习惯SQL的童鞋,可能比merge()用起来更顺手吧(当然也更快一点),不过灵活性还是比不上merge()嗯。

好吧,看出这位作者Hadley的风格了吧,基本上能save your life的函数都给预备好了。现在我的办公桌上常年挂着stringr的简短说明,然后习惯ggplot2画图,reshape2揉数据...这算不算Hadley依赖症捏?

------Happy Hour (欢乐时光模式开启)------

Categories
读书有感

夜半耕读「The Ph.D Grind」

最近的落园文章多少有点反常,从category来看原来少有更新的「游来游去」、「读书有感」和「日常应用」开始频繁的更新,而且频率连我自己都多少被吓到了。转折期想法和接受的新知识都比较多吧,所以文字也开始泛滥。

今天本来打算早早入睡的,前几天连着忙碌,多少还是有点吃不消了。不过,一切的plan夭折在打开「The Ph.D Grind」这个PDF的那一刹那--完全没想到自己会一口气读完100多页的纯英文回忆录,而且是在今天白天已经阅读了大量的英文书籍之后。但是,没办法,这部回忆录的主题实在是我太过于关心的了,如何survive in a Ph.D life?

常来的朋友们大致都知道我离开象牙塔已经一年整了,而且在可见的一段时间之内都不会折回去。可是这份纪实还是深深的勾起了我心底的疑问与渴望。一直在问自己这么一个问题:how can you survive?没有一点点把握之前,申请Ph.D也白搭。至少五年的时间,人生最好的年华。这个赌注着实太大。

我非常感谢命运的眷顾,在我盲目的就是想拿到Ph.D offer的那年,2010年,把我狠狠的拒之门外,然后用一个类似的master项目把我收留。master的一年,是从research角度最最productive的一年。虽然没有一篇文章投出去,但是这一年思想的自由与research life的体验,让我切身体会了可能到来的Ph.D life是什么样子。而最大的收获,就是了解了更多的自己,知道为了达到自己的目标到底还要做多少准备。当年没有留在UPF让很多老师朋友都多多少少不理解,而现在回头看依然觉得自己当时的决定虽然仓促武断,还有若干突发因素干扰,但终究还是正确的。离开象牙塔的这一年,重新感受到生机勃勃的感觉。我又不得不再次感谢命运的眷顾,在某些时刻总可以帮我痛快的下一些本应纠结的决定。

这本书让我欲罢不能,只是因为作者叙事的腔调和平实的文风。深有同感,虽然所处的field还是有区别的。很欣赏最后总结的那句,「读Ph.D最大的收获不是研究上的突破,也不是学历上的荣耀,而是在人生的一段时间、用心地做一件事情,得到了坚韧而诚实的品质」。作文易,做人难。

夜已深,不知还有多少的问题足以让我辗转难眠。有的时候苦笑自己好好的学什么动态规划和那一堆线性非线性的最优化方法,总是在试图计算自己离最优路径是不是偏离了太远。一个ultimate goal在那里,就忍不住不断调整方向盘。其实有的时候是不是应该更加放手而随心,相信曲径通幽呢?

最近新的冲击太多,每天都在摄入大量的信息并试图形成自己的思考,多少有点脑力吃不消了。每天早晨定时起床、出门、穿越一个十字路口的时候,都觉得人生仿佛「Groundhog Day」那样不断重复播放,需要不断努力才能打破并突破。却也钦佩那些在魔都奋斗寻梦的打工仔打工妹们--我怕是受不了work for living这样的艰苦吧。有的时候,人的懦弱真的很顽强,远远比不上那些无路可退时刻的无可选择的坚持。