Categories
读书有感

重温概率论和线性代数

年底的节奏比较舒缓,就有更多的时间来重新拾起一些东西。先是百无聊赖的浪费了一些时间看剧打游戏看小说,基本就是一种不动脑子的打发时间的模式。后面觉得着实无聊了,开始想有什么可以看的。不知怎么的,就动了重温数学的念头。搜了一下网上的各种公开课,发现MIT的线性代数(Gilbert Strang)和Harvard的概率论基础(Joe Blitzstein)评价比较高,就打开youtube开始跟课。

线性代数我其实偷了个懒,没有去跟那个完整版的,而是简单地看了一下Strang教授今年发布的2020版。一共只有五部分,每一部分大概一刻钟,我看之前还在想这个是怎么做到的。看完了,就明白这75分钟的高屋建瓴之处了。大一的时候学线性代数,虽然分数不错,但是其实学了一堆计算却不知所云。后面学到高等计量开始频繁地用到线性代数,才多少有了一些事后的感悟。现在再去看线性代数,觉得这东西真的挺美的,一点一点地串联起多少问题。

话说到这里,多少有点“我吃了七个烧饼发现饱了,是不是直接去吃第七个就好了的”味道。我需要略带羞耻地承认,我大学以后的数学基本都是靠学经济学才学会的(学会指的是有一些理解而不仅仅是记忆公式和定理)。大一一上来的微积分,动不动各种极限和证明,直接懵掉了。概率论学了什么完全不记得了,印象中好像只有一本很薄的小册子,各种证明,然后考试一片茫然。线性代数也是,死记硬背了一堆证明却不知所云。

类似的,我对计量经济学也有差不多的体验。其实第一次学(初级)计量经济学的时候也是一脸懵,第二次学(中级计量)稍微好了一点,后面一遍又一遍地学计量(或者广义地说,线性模型),我才逐渐开始理解回归模型。回头看,这实在是一个成本巨大而痛苦的过程。可是代价如此之高是因为老师教得不好呢,还是因为这些东西本来就难?我现在已经没法回到原点去体会另外一条路径了。只是重温这些基础课程的时候,更容易跟着这些大家公认优秀的教师的思路,来站在更高的层面欣赏数学本身的美,而不仅仅是当作工具。

数学这种学科,学懂了和没学懂差别太大了。学懂了,再厚的教科书都觉得如若无物,要用的时候信手拈来(英文我习惯用internalize来描述这种状态)。没学懂的话,基本就是记住了一堆程序化的操作流程(procedure)却忘记了他们的来龙去脉。这种差别会深刻地影响日后的学习或研究。这两年面试了上百人,我所在意的其实不是一个面试者记住多少公式和模型(比如我允许他们随时google),而是他们是不是真正理解他们用到的模型本身。把统计模型学成了一堆procedure其实是一件非常危险的事情。

概率论这门课我是老老实实地跟完全程的。毕竟是一个学期的内容,34节课,每节课接近一个小时,加起来就有三十多个小时。我并没有快进或者跳跃(主要是在电视上放起来快进比较麻烦),所以陆陆续续花了四五天的时间才把全程跟完。如果是第一次学这门课,这种节奏几乎是不可能的,因为新的信息量其实可能很大。只是我对于这些内容多少熟悉,所以实践起来更像是复习直觉而不是学习知识。这也是让我可以有机会去由衷地感慨原来概率论可以如此简单明了。我开始以为我会经常走神,尤其是已经非常熟悉的内容。结果很多时候,我居然全神贯注地又听了一遍那些熟悉的定理和公式。Blitzstein确实把这门课讲得很深入浅出。印象最深的是他在推导正态分布的时候,明明是那么无趣的定积分和极坐标变换问题,居然可以讲得那么好玩。又一次验证了高斯发现正态分布时候那种“天赐”的感觉。数学的美往往就在这种时刻。凭什么,一切繁琐的符号最终化为这么简洁优雅的记号?

正好在2020年的最后一天和新年交界的时点,看完了这门30多个小时的课程。让我忍不住记录一下,这种别致的、超级满足的跨年方式。

Categories
读书有感

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十一)

上海的冬天越来越冷了,这门课也越来越临近这学期结束了。这节课公式推导不多,有也是那种烂熟于胸无数次的,所以可以稍稍歪楼,不时掺杂一点八卦什么的。

BootStrap

1. 定义

BootStrap的基本思想就仨字:重抽样。先开始八卦~

跟高斯窥探天机猜出来正态分布的密度函数表达式相似,Efron搞出来BootStrap的时候,大概也在偷偷的抿嘴而笑吧。“上帝到底掷不掷骰子呢?”,每次我们都在揣测天意,也是现在越来越有点理解为什么牛顿老先生晚年致力于神学了。每当我们猜中一次,就会有一个新的突破到来。BootStrap思想简单到如斯,以至于我的一位朋友在当高中老师的时候(可惜是美国不是中国),就尝试着跟 teenagers 介绍BootStrap思想了(貌似用的还是Econometrica上的一篇文章,我瞬间声讨“你们这群高中老师真凶残-_-||)——结果显然是我多虑了,那群熊孩子居然表示理解毫无压力!可见BootStrap这个东西是有多么的平易近人。什么测度论什么高等代数都不需要,会摸球就可以了!

顺便抄一下杨灿童鞋《那些年,我们一起追的EB》上的一段八卦:

五十多年前,Efron为 Stanford 的一本幽默杂志 Chapparal 做主编。那年,他们恶搞 (parody) 了著名杂志Playboy。估计是恶搞得太给力了,还受到当时三藩的大主教的批评。幽默的力量使 Efron 在“错误”的道路上越走越远,差点就不回Stanford 读 PhD 了。借用前段时间冰岛外长的语录:“Efron 从事娱乐时尚界的工作,是科学界的一大损失!”在关键时刻,Efron在周围朋友的关心和支持下,终于回到 Stanford,开始把他的犀利与机智用在 statistics 上。告别了娱乐时尚界的 EB,从此研究成果犹如滔滔江水,连绵不绝,citation又如黄河泛滥,一发不可收拾...

所以说嘛,天才之人做什么都是能闪光的,Efron从事科学界的工作,怕也是美国几亿人民周末娱乐的损失吧。好了,满足了你们这群越来越挑剔的读者八卦的胃口了,开始正儿八经的说BootStrap。

我们有观测数据集,然后对这N个样本,进行有放回的重抽样。每轮我们还是抽N个,然后一共抽B轮(比如几百轮,话说前几天weibo上有人问“如果给你一万个人,你要做什么”,放在这里我就要他们不停的抽小球抽小球抽小球,哈哈!)。这样就得到了新的观测样本

2. 应用

BootStrap几乎可以用来干各种合法的不合法的事儿,只要是跟数据估计有关的...这就如同你问一个画家,“什么最好画?”“上帝和魔鬼,因为大家都没有见过。”大家都没有那么明确的知道BootStrap的界限在哪里,所以BootStrap就被应用在各种跟估计有关的地方了。

在统计学习中,我们最常用的可能就是估计精度:对于每一个,我们都可以得到一个预测函数,然后就对于给定的,有B个预测值,这样就可以做直方图什么的,还可以排排序算出来的置信区间。

最大似然估计(MLE)

我们有一族密度函数,其中为参数集,可不止一个参数。按照概率的定义,我们有,而且

数据方面,我们有一组数据,为\emph{i.i.d}(独立同分布)。

这样就可以写出来似然函数: ,从而可以写出来对数似然函数:。接下来驾轻就熟的,我们就有最大似然估计量:

最大似然估计之所以这么受欢迎,主要是他有一个非常好的性质:一致性,即当,估计值收敛于真值

仅仅渐进一致还不够,我们当然更喜欢的是MLE的附加优良性质:渐进正态,即,其中称为信息矩阵,定义为。实际中,如果我们不知道真值,则会用估计值来代替正态分布中的参数。(没想到事隔这么多年,我居然又手动推导了一遍MLE...真的是,我跟统计的缘分怎么这么纠缠不断呀)。

MLE大都要求数值解的,少数情况下可以求解解析解。比如正态分布。

正态分布的密度函数为:,所以我们有对数似然函数:

还有一个特例是正态线性回归模型(Gauss-Markov),即,其中,这个就和OLS的BLUE性质蛮像了,MLE和OLS对于此种情形估计值是完全一样的。所以说高斯王子在搞出OLS的时候,也是各种深思熟虑过的...揣测上帝的“旨意”也不是件信手拈来的事儿的。

简单情形下,我们可以直接求得估计量的置信区间,但是在复杂的情形下,就只能用BootStrap了。人们的思路就从传统的数学推倒,越来越多的转换到计算能力了。有的时候稍稍感觉这更符合统计学的思维——归纳嘛,这也是统计学在computer

area和数学渐行渐远的表现之一么?

吴老师总结了一句话:BootStrap类方法,就是思想简单、实际有效,虽然不知道为什么...

模型平均

模型平均也是有点延续上面的BootStrap思想,就是我有很多重抽样出来的模型之后,要怎么平均这些结果来找出最优模型的。

1. Bagging方法。 这个就有点直截了当了。利用BootStrap,我可以,然后自然收集了一堆,所以简单一点就平均一下:

2. Stacking方法。这个就稍稍动了一点心思,直接平均看起来好简单粗暴呀,还是加权平均一下比较细致一点。所以:,其中权重。实际操作中,的选取也是一个蛮tricky的事儿。可以利用validation集来优化...

3. Bumpping (优选)方法。,即在所有的中,选择最好的那个,使得一定标准下的损失最小。

话说,Machine learning或者统计学习,无非就是四件事儿:数据(D)、函数族()、准则()、算法(A)。说来说去,每一样改进都是在这四个的某一方面或者某几方面进行提升的。

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) (泊松分布,单位时间内随机事件发生的次数)

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