【问题标题】:Notation of categorical variables in regression analysis回归分析中分类变量的符号
【发布时间】:2019-02-27 17:35:48
【问题描述】:

在使用 carret 的 mdrr 数据研究逻辑回归的过程中,问题出现了。 我使用总共 19 个变量创建了一个完整模型,但我对分类变量的符号有疑问。

在我的回归模型中,分类变量是:

  • nDB:0 或 1 或 2

  • nR05 : 0 或 1

  • nR10 : 1 或 2

我使用glm创建了一个完整的模型,但我不知道为什么分类变量的名称有一个类别中的数字。

---------------------------------------------- --------------------------------

glm(formula = mdrrClass ~ ., family = binomial, data = train)

#Coefficients:
#(Intercept)         nDB1         nDB2           nX        nR051        nR101        nBnz2  
  #5.792e+00    5.287e-01   -3.103e-01   -2.532e-01   -9.291e-02    9.259e-01   -2.108e+00  
        #SPI          BLI          PW4         PJI2          Lop         BIC2         VRA1  
  #3.222e-05   -1.201e+01   -3.754e+01   -5.467e-01    1.010e+00   -5.712e+00   -2.424e-04  
       # PCR          H3D          FDI         PJI3        DISPm        DISPe      G.N..N.  
# -6.397e-02   -4.360e-04    3.458e+01   -6.579e+00   -5.690e-02    2.056e-01   -7.610e-03  

#Degrees of Freedom: 263 Total (i.e. Null);  243 Residual
#Null Deviance:     359.3 
#Residual Deviance: 232.6   AIC: 274.6

---------------------------------------------- --------------------------------

以上结果表明nDB是有编号的,nR05和nR10与类别相关。 我想知道为什么上面附有数字。

【问题讨论】:

    标签: r statistics regression logistic-regression


    【解决方案1】:

    当您在任何回归模型中都有分类预测变量时,您需要创建虚拟变量。 R 为您执行此操作,您看到的输出是对比

    您的变量 nDB 有 3 个级别:0、1、2

    需要选择其中一个作为参考水平(在这种情况下,R 为您选择了 0,但也可以手动指定)。然后创建虚拟变量以将每个其他级别与您的参考级别进行比较:0 vs 1 和 0 vs 2

    R 将这些虚拟变量命名为 nDB1nDB2nDB1 用于 0 vs 1 对比度,nDB2 用于 0 vs 2 对比度。变量名后面的数字只是为了表明您正在查看的对比度

    系数值被解释为第 0 组和第 1 组 (nDB1) 之间以及第 0 组和第 2 组 (nDB2) 之间的 y(结果)值的差异。换句话说,当从一组转移到另一组时,您期望结果会发生什么变化?

    您的其他分类变量有 2 个级别,只是上述情况的一个更简单的情况

    例如,nR05 只有 0 和 1 作为值。选择 0 作为您的参考,因为这里只有 1 个可能的对比,所以创建了一个比较 0 与 1 的虚拟变量。在输出中,该虚拟变量被称为 nR051

    【讨论】:

    • 回答我读得很好。我对捷径还有其他问题。首先,既然nDB有3个级别,那不是和1和2相加比较吗?其次,您说您可以手动调整比较,但如何?
    • 1) 虚拟编码是通过与参考进行比较来完成的,因此不幸的是它不会达到 1 对 2。 2)您可以重新调整因素以选择您的参考。在这里看到这个问题:stackoverflow.com/questions/3872070/…
    【解决方案2】:

    分类变量总是如此,尤其是当它们不是二进制时(如您的 nDB)。这样你就知道你有哪个值的系数。对于 nDB 变量,模型创建了两个新变量:nDB_1,如果 nDB=1,则等于 1;如果 nDB=0 或 nDB=2,则等于 0。

    【讨论】:

      【解决方案3】:

      要根据定量解释变量分析二元变量(其值为 TRUE / FALSE、0/1 或 YES / NO),可以使用逻辑回归。

      例如考虑以下数据,其中 x 是 40 人的年龄,y 是表示他们是否在过去 5 年内购买过死亡金属专辑的变量(如果“是”,则为 1,如果“否”,则为 0) 从图形上我们可以看出,年龄越大,购买死亡金属的可能性越大。

      逻辑回归是广义线性模型 (GLM) 的一个特例。 使用经典的线性回归模型,我们考虑以下模型:

      Y = αX + β

      因此预测 Y 的期望如下:

      E (Y) = αX + β

      这里,由于Y的二进制分布,上述关系不适用。为了“推广”线性模型,我们因此认为

      g (E (Y)) = αX + β

      其中 g 是链接函数。 在这种情况下,对于逻辑回归,链接函数对应于 logit 函数:

      logit (p) = log (p/(1-p))

      请注意,此 logit 函数将一个介于 0 和 1 之间的值 (p)(例如概率)转换为介于 -∞ 和 + ∞ 之间的值。 以下是如何在 R 下进行逻辑回归:

      myreg=glm(y~x, family=binomial(link=logit))
      summary(myreg)
      
      glm(formula = y ~ x, family = binomial(link = logit))
      ## 
      ## Deviance Residuals: 
      ##     Min       1Q   Median       3Q      Max  
      ## -1.8686  -0.7764   0.3801   0.8814   2.0253  
      ## 
      ## Coefficients:
      ##             Estimate Std. Error z value Pr(>|z|)   
      ## (Intercept)   5.9462     1.9599   3.034  0.00241 **
      ## x            -0.1156     0.0397  -2.912  0.00360 **
      ## ---
      ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
      ## 
      ## (Dispersion parameter for binomial family taken to be 1)
      ## 
      ##     Null deviance: 52.925  on 39  degrees of freedom
      ## Residual deviance: 39.617  on 38  degrees of freedom
      ## AIC: 43.617
      ## 
      ## Number of Fisher Scoring iterations: 5
      

      我们得到以下模型:

      logit (E (Y)) = - 0.12X + 5.95

      我们注意到年龄对购买死亡金属专辑的(负面)影响在 5% 的水平上是显着的(p(>[Z| ---->

      因此,逻辑回归通常用于带出风险因素(如年龄,还有 BMI、性别等……)

      【讨论】:

      • 这个答案根本没有解决这个问题。 OP 询问虚拟编码分类预测变量
      猜你喜欢
      • 2016-03-12
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 2019-10-09
      相关资源
      最近更新 更多