1.15. Isotonic regression(保序回归)
一、描述

保序回归,正如它的名字,是一种对预测值施加了“保序”约束的一种回归分析。“保序”的严格定义我们暂且不表,可以简单的理解为一种“对任意 X i ≤ X j X_i\le X_j Xi≤Xj,必须有 y i ≤ y j y_i \le y_j yi≤yj”的一种约束。
在它的目标函数 ∑ i ω i ( y i − y i ^ ) 2 \sum_i\omega_i(y_i-\hat{y_i})^2 ∑iωi(yi−yi^)2 中,mse部分很好理解,代表损失,参数 ω i \omega_i ωi是基于“保序”的要求,对预测的一种修正。
保序回归,本质上就是针对实践环境中保序的情况提出的一种回归
二、应用场景(举例)
在这里,我们举一个典型的例子,并借此介绍一下PAVA算法
1. 药用环境
动物园有老虎逃了出来,我们要用麻醉针将其麻醉。想要找到一个合适的药用剂量使我们能麻醉老虎并让其不受伤害,我们要探究不同药用剂量的麻醉剂在老虎身上的作用。
在这里,自变量是麻醉剂的剂量,应变量是麻醉剂在老虎群众起作用的比例。拟合函数,我们得到的是一定剂量的麻醉剂在一只老虎身上起作用的概率。
定义一下变量,对于剂量 x i x_i xi,我们手上 n i n_i ni只老虎的有效数据,其中 t i t_i ti有只老虎被麻醉,比例为 p i ^ \hat{p_i} pi^,而我们要求该剂量下的单只老虎被麻醉的概率为 p i p_i pi
2.PAVA
无约束
在没有约束条件的情况下,根据最大似然,我们可以求得, p i = p i ^ p_i=\hat{p_i} pi=pi^,证明如下:
对于剂量 x i x_i xi,我们设观测到在实际概率 p i p_i pi下, n i n_i ni只老虎中有 p i ^ \hat{p_i} pi^比例被麻醉的概率,是一个不考虑顺序的二项分布。所以我们可以列出似然函数 L ( p i ) = p i n i p i ^ ( 1 − p i ) n i ( 1 − p i ^ ) L(p_i)=p_i^{n_i\hat{p_i}}(1-p_i)^{n_i(1-\hat{p_i})} L(pi)=pinipi^(1−pi)ni(1−pi^)
取对数得
    
     
      
       
        l
       
       
        n
       
       
        L
       
       
        (
       
       
        
         p
        
        
         i
        
       
       
        )
       
       
        =
       
       
        
         n
        
        
         i
        
       
       
        
         
          p
         
         
          i
         
        
        
         ^
        
       
       
        l
       
       
        n
       
       
        (
       
       
        
         p
        
        
         i
        
       
       
        )
       
       
        +
       
       
        
         n
        
        
         i
        
       
       
        (
       
       
        1
       
       
        −
       
       
        
         
          p
         
         
          i
         
        
        
         ^
        
       
       
        )
       
       
        l
       
       
        n
       
       
        (
       
       
        1
       
       
        −
       
       
        
         p
        
        
         i
        
       
       
        )
       
      
      
       lnL(p_i)=n_i\hat{p_i}ln(p_i)+n_i(1-\hat{p_i})ln(1-p_i)
      
     
    lnL(pi)=nipi^ln(pi)+ni(1−pi^)ln(1−pi)
 求导数得
    
     
      
       
        l
       
       
        
         n
        
        
         ′
        
       
       
        L
       
       
        (
       
       
        
         p
        
        
         i
        
       
       
        )
       
       
        =
       
       
        
         n
        
        
         i
        
       
       
        (
       
       
        
         
          
           p
          
          
           i
          
         
         
          ^
         
        
        
         
          p
         
         
          i
         
        
       
       
        −
       
       
        
         
          1
         
         
          −
         
         
          
           
            p
           
           
            i
           
          
          
           ^
          
         
        
        
         
          1
         
         
          −
         
         
          
           p
          
          
           i
          
         
        
       
       
        )
       
       
        =
       
       
        
         
          
           
            n
           
           
            i
           
          
          
           (
          
          
           
            
             p
            
            
             i
            
           
           
            ^
           
          
          
           −
          
          
           
            p
           
           
            i
           
          
          
           )
          
         
         
          
           
            p
           
           
            i
           
          
          
           (
          
          
           1
          
          
           −
          
          
           
            p
           
           
            i
           
          
          
           )
          
         
        
       
      
      
       ln'L(p_i)=n_i(\frac{\hat{p_i}}{p_i}-\frac{1-\hat{p_i}}{1-p_i})=\cfrac{n_i(\hat{p_i}-p_i)}{p_i(1-p_i)}
      
     
    ln′L(pi)=ni(pipi^−1−pi1−pi^)=pi(1−pi)ni(pi^−pi)
 求得在
    
     
      
       
        
         p
        
        
         i
        
       
       
        =
       
       
        
         
          p
         
         
          i
         
        
        
         ^
        
       
      
      
       p_i=\hat{p_i}
      
     
    pi=pi^时,似然函数取极大值即最大值。
所以,在 p i ^ ≤ p i + 1 \hat{p_i}\le p_{i+1} pi^≤pi+1时,我们可以直接让 p i = p i ^ p_i=\hat{p_i} pi=pi^
有约束
在 p i ^ > p i + 1 ^ \hat{p_i}>\hat{p_{i+1}} pi^>pi+1^时,有约束 p i ≤ p i + 1 p_i \le p_{i+1} pi≤pi+1,此时一个自然而然的想法是,让 p i = p i + 1 = n i p i + n i + 1 p i + 1 n i + n i + 1 p_i=p_{i+1}=\cfrac{n_ip_i+n_{i+1}p_{i+1}}{n_i+n_{i+1}} pi=pi+1=ni+ni+1nipi+ni+1pi+1,证明如下:
我们写出带拉格朗日子项的对数似然函数 l n L ( p i , p i + 1 ) = n i p i ^ l n ( p i ) + n i ( 1 − p i ^ ) l n ( 1 − p i ) + n i + 1 p i + 1 ^ l n ( p i + 1 ) + n i ( 1 − p i + 1 ^ ) l n ( 1 − p i + 1 ) + λ ( p i + 1 − p i ) lnL(p_i,p_{i+1})=n_i\hat{p_i}ln(p_i)+n_i(1-\hat{p_i})ln(1-p_i)+n_{i+1}\hat{p_{i+1}}ln(p_{i+1})+n_i(1-\hat{p_{i+1}})ln(1-p_{i+1})+\lambda(p_{i+1}-p_i) lnL(pi,pi+1)=nipi^ln(pi)+ni(1−pi^)ln(1−pi)+ni+1pi+1^ln(pi+1)+ni(1−pi+1^)ln(1−pi+1)+λ(pi+1−pi)
求偏导得
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               
                σ
               
               
                l
               
               
                n
               
               
                L
               
               
                (
               
               
                
                 p
                
                
                 i
                
               
               
                ,
               
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
               
                )
               
              
              
               
                σ
               
               
                
                 p
                
                
                 i
                
               
              
             
             
              =
             
             
              
               
                
                 n
                
                
                 i
                
               
               
                (
               
               
                
                 
                  p
                 
                 
                  i
                 
                
                
                 ^
                
               
               
                −
               
               
                
                 p
                
                
                 i
                
               
               
                )
               
              
              
               
                
                 p
                
                
                 i
                
               
               
                (
               
               
                1
               
               
                −
               
               
                
                 p
                
                
                 i
                
               
               
                )
               
              
             
            
           
          
         
         
          
           
            
             
              
               
                σ
               
               
                l
               
               
                n
               
               
                L
               
               
                (
               
               
                
                 p
                
                
                 i
                
               
               
                ,
               
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
               
                )
               
              
              
               
                σ
               
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
              
             
             
              =
             
             
              
               
                
                 n
                
                
                 i
                
               
               
                (
               
               
                
                 
                  p
                 
                 
                  
                   i
                  
                  
                   +
                  
                  
                   1
                  
                 
                
                
                 ^
                
               
               
                −
               
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
               
                )
               
              
              
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
               
                (
               
               
                1
               
               
                −
               
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
               
                )
               
              
             
            
           
          
         
         
          
           
            
             
              
               
                σ
               
               
                l
               
               
                n
               
               
                L
               
               
                (
               
               
                
                 p
                
                
                 i
                
               
               
                ,
               
               
                
                 p
                
                
                 
                  i
                 
                 
                  +
                 
                 
                  1
                 
                
               
               
                )
               
              
              
               
                σ
               
               
                λ
               
              
             
             
              =
             
             
              
               p
              
              
               
                i
               
               
                +
               
               
                1
               
              
             
             
              −
             
             
              
               p
              
              
               i
              
             
            
           
          
         
        
       
       
         \left\{ \begin{aligned} \cfrac{\sigma lnL(p_i,p_{i+1})}{\sigma p_i}=\cfrac{n_i(\hat{p_i}-p_i)}{p_i(1-p_i)} \\ \cfrac{\sigma lnL(p_i,p_{i+1})}{\sigma p_{i+1}}=\cfrac{n_i(\hat{p_{i+1}}-p_{i+1})}{p_{i+1}(1-p_{i+1})} \\ \cfrac{\sigma lnL(p_i,p_{i+1})}{\sigma \lambda}=p_{i+1}-p_i \end{aligned} \right. 
       
      
     ⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧σpiσlnL(pi,pi+1)=pi(1−pi)ni(pi^−pi)σpi+1σlnL(pi,pi+1)=pi+1(1−pi+1)ni(pi+1^−pi+1)σλσlnL(pi,pi+1)=pi+1−pi
求解方程可得, p i = p i + 1 = n i p i + n i + 1 p i + 1 n i + n i + 1 p_i=p_{i+1}=\cfrac{n_ip_i+n_{i+1}p_{i+1}}{n_i+n_{i+1}} pi=pi+1=ni+ni+1nipi+ni+1pi+1时,似然函数取最大值。
有了这两种局部情况,我们就可以一步步的讲不保序的序列转换为保序的序列,并得到最终的回归分析。
三、部分性质
 

在sklearn的实例中,我们可以看到,保序回归和由一般最小二乘估计的线性回归在后期差别并不大,只是做了保序的约束。
保序回归得到的结果,是局部线性的。










