zoukankan      html  css  js  c++  java
  • logistic回归的一些直观理解(1.连接函数 logit probit)

    logistic回归的一些直观理解(1.连接函数 logit probit)  

    前面写了一些读书笔记是关于用logit回归做二分类问题后的效果评价,基本上已经可以告一段落。然后打算回过头来整理一下logit回归本身的一些思路。很惭愧,我不是统计学出身,当年概率论差点考挂,数理统计也是一门选修课(唯一印象深刻的是老师的口音),所以大概很难从理论上进行严格的阐述,主要还是写一点直观的理解。

    限制一下问题的范围吧,基本上用到logistic回归的,很多是二分类问题,也就是因变量是0-1类型的情况。我们想要研究的是因变量与自变量之间的关系,跟线性回归是完全类似的问题。但是由于因变量形式比较特殊,所以造成了处理方式的不同,也就引出了我的第一个困惑:为什么要引进广义回归方法呢?

    首先,假设我们从线性回归的思路出发,遇到的第一个问题就是,我们问题的因变量是什么?这个因变量是一个分类的变量,看一下散点图就能知道因变量与自变量之间不是那种直线的关系,这就导致我们没办法写出传统的那种比较容易理解的线性回归公式 y = a + b*x。我们想到的一个解决办法是,将这个因变量抽象成它的期望值(这应该是广义线性回归的核心内容之一)。在0-1变量的情形下,这个期望值就等于因变量取1的概率,一般就写成P了。这个P貌似是可以涵盖了0-1因变量的信息,同时也能够用来比较直观地理解我们的问题:当自变量发生变化时,我们的目标变量取1的概率是怎样变化的。

    然后,我们继续试图用线性回归的思路,把问题写成 P = a + b*x,也就是说,我们假设因变量取1的概率跟自变量是线性关系。这个假设挺自然也挺合理的,但是却导致了另外三个问题:参数估计,因变量P的取值范围,以及非正态的误差。由于这里的P是我们抽象出来的一个变量,我们没办法从观测数据中得到这个值,所以也就没办法用我们熟悉的最小二乘法,而如果不用最小二乘法,说实话,我还真不知道应该用什么方法来估计参数(知识太有限了)。另一方面,等式右边是自变量x的线性函数,于是他的取值范围是负无穷到正无穷,这显然与等式左边的概率P的取值范围相矛盾,是不合理的。同时,非正态的误差也与线性回归的基本假设相违背。

    于是,我们就得想办法对上面的这个回归公式 P = a + b*x做一些调整,这里就涉及到了广义线性回归的另一个核心内容,连接函数。连接函数可以认为是对等式左边的概率P做一点变换,使得我们能够有办法进行参数估计,并且让变化之后的取值范围变得合理。参数估计这块,我不是非常明白,因为可能涉及分布族的一些理论,貌似是为了能够方便地进行极大似然估计。而对取值范围进行缩放变换似乎稍微容易理解一点,就是努力地将P[0,1]限制取消。这里常用的连接函数就是logit()probit()。经过变换后,回归公式变成了:

    logit(P) = log(P / (1-P)) = a + b*x以及 probit(P) = a + b*x

    这两个连接函数的性质使得P的取值被放大到整个实数轴上。

    事实上可以把上面的公式改写一下:

    P = exp(a + b*x) / (1 + exp(a + b*x))或者 P = pnorm(a + b*x)(这个是标准正态分布的分布函数)

    可以看出,公式右边的取值被限制到[0,1]上了,从而使得公式变得合理。

    但是,能够实现这种[0,1]限制的函数应该也蛮多的,为啥会推荐这两个变换呢?这个应该跟业务理解有关。

    可以先看一下经过变换后,自变量和P的关系是个什么样子。

    上半部分图形显示了概率P随着自变量变化而变化的情况,下半部分图形显示了这种变化的速度的变化(没记错的话,分布函数求导应该就是密度函数)。可以看得出来,概率P与自变量仍然存在或多或少的线性关系,主要是在头尾两端被连接函数扭曲了,从而实现了[0,1]限制。同时,自变量取值靠近中间的时候,概率P变化比较快,自变量取值靠近两端的时候,概率P基本不再变化。这就跟我们的直观理解相符合了,似乎是某种边际效用递减的特点,不恰当的例子就是我们青春期的时候狂长个子而当青春期过去我们的个头就基本稳定了。(确实是个不恰当的例子,恰当的例子暂时没想到。)这就基本解释了我们选择这两个变化作为连接函数的一部分原因。

    同时也可以看出来,logitprobit的形式虽然不同,外观还是蛮相似的。前几天我还跟老段讨论这个来着,我当时以为probit回归是跟logit回归完全不同的假设,看来是理解不够的缘故。

    顺便来画一下不同系数的效果。

     

    到这里,logit回归就基本成型了,里面用到比较重要的内容是求期望连接函数,最后的回归公式就是

    有这个形式,就比较容易用似然函数的方法进行参数估计了。

  • 相关阅读:
    Google API 详解
    Why should I use SASS?
    Google Maps and ASP.NET
    IP摄像机
    解决母版页报错“内容控件必须是内容页中的顶级控件,或是引用母版页的嵌套母版页。”
    sass服务
    C#中操作符的重载(Time类)
    第一次面试
    单链表(C++)
    指针和引用的区别(C++)
  • 原文地址:https://www.cnblogs.com/huzs/p/3742029.html
Copyright © 2011-2022 走看看