了解R中的lrm系数的格式以进行序数/多类回归

时间:2018-08-03 18:06:43

标签: r logistic-regression ordinal

我正在尝试从头开始在python中实现R代码之一,它涉及逻辑回归。

据我了解的逻辑回归(使用梯度下降执行一个vs全部)时,我认为如果有F个特征和L个标记,则我们有M x F个系数。基本上,对于M个标签中的每个标签,我们有F个不同的向量,然后为传入的输入X计算S形函数,无论哪个Vector给出的最大值都是预测的类。

R中的逻辑回归函数:

try_lrm<-function(datadf, tol=1e-10, maxit=1e6){
  try({ lrm(y~x, data=datadf, penalty=0, x=TRUE, y=TRUE, tol=tol, maxit=maxit) })
}

但是对于以下数据帧的序数回归:

    x       y
24.03673    2   
14.63598    2  
26.85079    2  
53.45076    1  
36.8322     1  
42.10773    1  
39.68833    1    
104.64827   0  
114.97038   0   
60.8128     0   
59.67947    0   

我得到以下系数:

      y>=1       y>=2       x 
131.440196  75.784904  -2.324528 

当我尝试从头开始实现所有功能时,我正在尝试使用渐变下降。

那么应该如何解释呢?我想弄清楚S型函数的外观,但是我不确定为什么每个类别的x系数都只有一个系数。那些拦截器是什么?

这是否意味着S型函数看起来像这样:

(让我们将系数x0,k1,k2称为x,y> = 1和y> = 2)

对于y = 0,
p = 1 /(1 + e ^-(k0 * x))

对于y = 1,
p = 1 /(1 + e ^-(k0 * x + k1))

对于y = 2,
p = 1 /(1 + e ^-(k0 * x + k1 + k2))

并预测最大p类?

1 个答案:

答案 0 :(得分:1)

这似乎主要是一个统计问题-R代码没有任何明显错误。如所报告的那样,x的系数应该只有一个。有关R中序数逻辑回归的示例,请参见https://stats.idre.ucla.edu/r/dae/ordinal-logistic-regression/。它使用的软件包与您尝试使用的软件包不同,但是它遍历了统计信息以及R代码。