昨天那篇发的有点着急,因为手上的书都没看完就开始K字,感觉不太完整
今天又赶着要出门(和朋友约了吃饭啦嘻嘻嘻),所以没准备新内容,仅对昨天提到的公式做些补充解释
昨天的重点内容:
以似然值取自然对数的数值作为试算的目标值,要求目标值最大
操作截图:
计算公式:{=SUM(LN(NORMDIST(残差列,0,STDEV(残差列),FALSE)))}
请容我先把这个公式稍稍分解一下:
步骤一:假设残差列数据的分布形状
这里因为我们做的是个线性拟合,所以会希望残差值是随机的,没有规律的,这样的话X对Y的解释程度会比较好,而且,我们会希望这个残差数列的中心接近0,这样的话直线的截距就比较准
基于这个理由,这个公式里假设了残差是符合平均值为0的正态分布,但由于不知道整个完整分布的标准差是多大,所以直接使用了现有的所有残差的标准差
因此就有了中间那段:NORMDIST(残差,0,STDEV(残差),FALSE),意思是当我们有了一个残差值时,把它放到一个平均值为0的正态分布里看它的出现概率
对每个残差值计算概率,就会形成一串概率值(我随便标识下,比如叫p1到pn好了)
步骤二:数学书上在这里给的定义是,似然值为所有概率值连乘起来的结果
所以按理论上来讲,这个公式该写成=PRODOUT(p1,p2,... ... pn),其中PRODOUT是连乘,p1到pn=NORMDIST(残差,0,STDEV(残差),FALSE)
但是这里有点小小的风险,就是这个数值算出来的结果有可能非常大,达到什么程度呢?可能会超过Excel一个格子能容纳的最大数值上限
不要以为这是开玩笑哦,你要是自己尝试下在一个格子里输入一串超级长又不太规律的数字,用等于号开头,可以试得出来这个软件支持的上限是多少位数字的(有图有真相)
所以这里有个变通的方法,因为我们要的仅仅是似然值达到最大这个目的,但又不需要真的知道它的计算结果,所以,对似然值取对数(这里用了自然对数LN)就可以把它转换成一个相对小一点的数值,同时又可以把连乘转变成加和,像这样:
LN(PRODOUT(p1,p2,... ... pn))=SUM(LN(p1),LN(p2),... ...LN(pn))
为了方便,于是把它写成了数组公式的形式:{=SUM(LN(p1:pn))}
代入中间正态分布那一截就成了完整公式:
{=SUM(LN(NORMDIST(残差列,0,STDEV(残差列),FALSE)))}
---------------------------小小的分割下---------------------------
但是请注意一下,这里使用正态分布只是基于需求的一种假设,如果是其他类型的问题,比如涉及到时间序列,或者是只有Yes or No的二分类结果,在似然值估计的过程中使用泊松分布或二项分布也是可以的
这样的话,似然值取对数公式的形式也有可能变化成这样:
泊松分布:{=SUM(LN(POISSON(残差列,平均值,FALSE)))}
二项分布:{=SUM(LN(BINOMDIST (残差列,总次数,先验概率,FALSE)))}
以上仅供参考,实际应用时的可能性比我上面列出来的恐怕要多得多了,具体什么时候适合用什么公式终归是要因时因地制宜的
,