Logistic回归 - 解决变量交互的多种模型

时间:2018-03-26 16:24:03

标签: r logistic-regression ensemble-learning

我正在尝试开发一个模型,以使用逻辑回归预测结构火灾导致死亡的可能性。这是大约1/100的事件。

我面临的问题是,在预测变量时似乎没有考虑变量之间的相互作用。

例如。考虑到整个数据集,火灾在冬季会更加致命。然而,电器是根本原因的火灾没有这样的趋势。下面是烹饪与家电火灾的一个例子(我相信这些是每1000次火灾造成的死亡事故)。 x轴是1到12个月。

https://i.imgur.com/nTnnfg6.png?1

当试图预测导致死亡的可能性时,我会在夏季降低值,并在冬季增加值,尽管这种趋势显然不是如上所述的器具火灾。

我的问题是:

  1. 创建条件模型是否可以成为一个很好的解决方案?即 为每个原因分配数据,并为每个原因创建单独的模型 子集。我担心的是,这可能过于复杂而且我是 确定它违反了某些地方的某些规则。
  2. 有没有比创建这些条件模型更好的解决方案?
  3. 将在此逻辑之间创建一个集合模型(简单平均值) 回归模型和随机森林模型是一个有效的解决方案?我的 随机森林模型存在缺陷,因为他们预测了太多的案例 值为100%或0%。
  4. 可以通过这些变量交互的方式重写公式 被考虑在内?即Fatality ~ month * Cause
  5. 奖金:解决此问题的任何其他建议。
  6. 我的训练数据如下:

    > str(train_val)
    'data.frame':   154178 obs. of  13 variables:
     $ month     : Factor w/ 12 levels "1","2","3","4",..: 4 7 7 8 8 11 7 10 6 3 ...
     $ weekday   : Factor w/ 7 levels "Friday","Monday",..: 3 7 2 5 4 3 6 1 5 3 ...
     $ RT        : num  420 480 300 360 600 420 120 240 420 120 ...
     $ CAUSE_CODE: Factor w/ 16 levels "1","2","3","4",..: 6 5 1 7 13 15 16 13 9 15 ...
     $ FIRST_IGN : Factor w/ 11 levels "00","10","12",..: 11 3 10 10 8 10 11 5 5 3 ...
     $ AREA_ORIG : Factor w/ 11 levels "14","21","24",..: 10 10 10 4 3 1 5 10 6 6 ...
     $ HEAT_SOURC: Factor w/ 11 levels "00","10","11",..: 11 2 11 2 2 11 11 11 10 11 ...
     $ INC_TYPE  : Factor w/ 7 levels "110","111","112",..: 2 2 2 2 2 2 2 2 2 2 ...
     $ HUM_FAC_1 : Factor w/ 9 levels "0","1","2","3",..: 9 9 3 9 9 3 9 9 2 9 ...
     $ ALARMS_YN : Factor w/ 3 levels "N","O","Y": 3 3 3 3 3 3 1 1 3 3 ...
     $ losscat   : Factor w/ 4 levels "Minor_Loss","Med_Loss",..: 1 3 1 2 1 1 4 2 2 1 ...
     $ daycat    : Factor w/ 5 levels "Aft-Noon","Evening",..: 1 5 1 5 2 4 2 4 5 5 ...
     $ Fatality  : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
    

    模型公式和结果如下:

    > summary(log.mod)
    
    Call:
    glm(formula = Fatality ~ ., family = binomial(link = logit), 
        data = train_val)
    
    Deviance Residuals: 
        Min       1Q   Median       3Q      Max  
    -1.6507  -0.1691  -0.0886  -0.0487   4.0763  
    
    Coefficients:
                        Estimate Std. Error z value Pr(>|z|)    
    (Intercept)       -3.060e+01  4.532e+03  -0.007 0.994612    
    month2            -4.069e-02  9.474e-02  -0.430 0.667545    
    month3            -1.077e-01  9.638e-02  -1.117 0.263997    
    month4            -3.045e-01  1.056e-01  -2.883 0.003945 ** 
    month5            -4.459e-01  1.126e-01  -3.962 7.45e-05 ***
    month6            -5.637e-01  1.191e-01  -4.734 2.20e-06 ***
    month7            -5.853e-01  1.173e-01  -4.989 6.06e-07 ***
    month8            -4.610e-01  1.160e-01  -3.976 7.02e-05 ***
    month9            -5.055e-01  1.195e-01  -4.230 2.33e-05 ***
    month10           -2.619e-01  1.073e-01  -2.440 0.014676 *  
    month11           -1.167e-01  9.830e-02  -1.187 0.235065    
    month12           -2.634e-01  1.021e-01  -2.579 0.009902 ** 
    weekdayMonday     -1.440e-01  9.117e-02  -1.580 0.114177    
    weekdaySaturday   -4.038e-04  8.616e-02  -0.005 0.996261    
    weekdaySunday     -5.934e-02  8.778e-02  -0.676 0.499077    
    weekdayThursday    1.360e-02  8.754e-02   0.155 0.876560    
    weekdayTuesday    -6.722e-02  8.948e-02  -0.751 0.452512    
    weekdayWednesday  -3.070e-02  8.843e-02  -0.347 0.728421    
    RT                 1.994e-05  2.222e-05   0.898 0.369388    
    CAUSE_CODE2       -4.331e-01  3.336e-01  -1.298 0.194277    
    CAUSE_CODE3        7.813e-01  2.773e-01   2.817 0.004844 ** 
    CAUSE_CODE4       -8.593e-02  1.808e-01  -0.475 0.634692    
    CAUSE_CODE5        5.543e-02  1.927e-01   0.288 0.773622    
    CAUSE_CODE6        5.294e-02  1.777e-01   0.298 0.765724    
    CAUSE_CODE7       -3.656e-01  2.201e-01  -1.661 0.096714 .  
    CAUSE_CODE8       -3.122e-01  1.874e-01  -1.666 0.095691 .  
    CAUSE_CODE9        9.558e-02  2.044e-01   0.468 0.639972    
    CAUSE_CODE10       1.818e-01  2.634e-01   0.690 0.490167    
    CAUSE_CODE11      -1.198e+00  3.951e-01  -3.031 0.002436 ** 
    CAUSE_CODE12      -1.632e+00  4.607e-01  -3.542 0.000397 ***
    CAUSE_CODE13       2.235e-01  1.162e-01   1.923 0.054482 .  
    CAUSE_CODE14      -4.895e-01  2.653e-01  -1.845 0.064979 .  
    CAUSE_CODE15      -2.877e-01  1.362e-01  -2.113 0.034595 *  
    CAUSE_CODE16       7.487e-01  1.373e-01   5.451 5.01e-08 ***
    FIRST_IGN10       -6.033e-01  3.100e-01  -1.946 0.051673 .  
    FIRST_IGN12       -1.639e+00  4.875e-01  -3.362 0.000774 ***
    FIRST_IGN15       -6.184e-01  2.788e-01  -2.218 0.026529 *  
    FIRST_IGN17       -5.808e-01  2.431e-01  -2.389 0.016911 *  
    FIRST_IGN18       -1.280e+01  1.068e+02  -0.120 0.904587    
    FIRST_IGN21        7.630e-01  2.049e-01   3.724 0.000196 ***
    FIRST_IGN76       -5.524e-01  2.513e-01  -2.198 0.027916 *  
    FIRST_IGN81       -2.210e-01  2.618e-01  -0.844 0.398660    
    FIRST_IGNOther     7.508e-02  1.881e-01   0.399 0.689780    
    FIRST_IGNUU        2.367e-01  1.887e-01   1.254 0.209663    
    AREA_ORIG21       -5.657e-01  8.059e-02  -7.019 2.24e-12 ***
    AREA_ORIG24       -7.024e-01  9.924e-02  -7.078 1.46e-12 ***
    AREA_ORIG26       -1.923e+00  2.536e-01  -7.584 3.36e-14 ***
    AREA_ORIG47       -2.114e+00  1.996e-01 -10.593  < 2e-16 ***
    AREA_ORIG72       -1.795e+00  2.292e-01  -7.831 4.83e-15 ***
    AREA_ORIG74       -2.271e+00  2.604e-01  -8.722  < 2e-16 ***
    AREA_ORIG75       -1.454e+00  2.562e-01  -5.674 1.39e-08 ***
    AREA_ORIG76       -2.450e+00  4.177e-01  -5.866 4.46e-09 ***
    AREA_ORIGOther    -9.926e-01  7.631e-02 -13.008  < 2e-16 ***
    AREA_ORIGUU       -1.067e+00  8.522e-02 -12.526  < 2e-16 ***
    HEAT_SOURC10      -4.244e-01  1.972e-01  -2.152 0.031368 *  
    HEAT_SOURC11      -3.284e-01  2.533e-01  -1.296 0.194851    
    HEAT_SOURC12      -1.106e-01  1.834e-01  -0.603 0.546424    
    HEAT_SOURC13      -2.146e-01  2.053e-01  -1.045 0.295942    
    HEAT_SOURC40      -5.954e-01  2.675e-01  -2.226 0.026036 *  
    HEAT_SOURC43      -3.533e-01  2.753e-01  -1.283 0.199414    
    HEAT_SOURC60       4.204e-02  2.375e-01   0.177 0.859472    
    HEAT_SOURC61      -2.616e-02  3.182e-01  -0.082 0.934494    
    HEAT_SOURCOther   -2.552e-01  1.827e-01  -1.397 0.162513    
    HEAT_SOURCUU      -4.886e-02  1.550e-01  -0.315 0.752669    
    INC_TYPE111        1.325e+01  1.007e+03   0.013 0.989507    
    INC_TYPE112        1.268e+01  1.007e+03   0.013 0.989956    
    INC_TYPE120        1.333e+01  1.007e+03   0.013 0.989436    
    INC_TYPE121        1.305e+01  1.007e+03   0.013 0.989662    
    INC_TYPE122        1.331e+01  1.007e+03   0.013 0.989459    
    INC_TYPE123       -9.385e-01  1.375e+03  -0.001 0.999456    
    HUM_FAC_11         1.343e+01  4.419e+03   0.003 0.997575    
    HUM_FAC_12         1.338e+01  4.419e+03   0.003 0.997585    
    HUM_FAC_13         1.181e+01  4.419e+03   0.003 0.997867    
    HUM_FAC_14         1.365e+01  4.419e+03   0.003 0.997536    
    HUM_FAC_15         1.528e+01  4.419e+03   0.003 0.997241    
    HUM_FAC_16         1.271e+01  4.419e+03   0.003 0.997706    
    HUM_FAC_17         1.292e+01  4.419e+03   0.003 0.997667    
    HUM_FAC_1N         1.224e+01  4.419e+03   0.003 0.997790    
    ALARMS_YNO        -1.552e-01  7.111e-02  -2.182 0.029104 *  
    ALARMS_YNY         3.230e-03  6.400e-02   0.050 0.959746    
    losscatMed_Loss    1.281e+00  1.012e-01  12.660  < 2e-16 ***
    losscatMajor_Loss  1.910e+00  1.032e-01  18.500  < 2e-16 ***
    losscatTotal_Loss  2.197e+00  1.003e-01  21.904  < 2e-16 ***
    daycatEvening      2.340e-01  9.753e-02   2.400 0.016406 *  
    daycatMid-Day      3.360e-01  1.104e-01   3.044 0.002334 ** 
    daycatMorning      7.029e-01  8.020e-02   8.764  < 2e-16 ***
    daycatNight        6.102e-01  7.431e-02   8.211  < 2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    (Dispersion parameter for binomial family taken to be 1)
    
        Null deviance: 20315  on 154177  degrees of freedom
    Residual deviance: 16919  on 154091  degrees of freedom
    AIC: 17093
    
    Number of Fisher Scoring iterations: 17
    

1 个答案:

答案 0 :(得分:1)

我会非常小心你如何使用逻辑回归。将“厨房水槽”投入模型通常会产生一些异常结果。我首先考虑的是重要的不同变量,并且只与那些提供相关信息的变量一起使用。拟合回归模型并不是要将所有变量抛入并寻找什么样的变量,而是考虑哪些变量是重要的,并使用一些逐步方法来找到重要的协变量。这本身就可以解决您提到的有关系数方向的问题。

对于因子变量,您始终可以重新编码它们,以便您只处理重要因素。例如,您可以month1-month12代替month4-month9, other。如果所有月份都不重要,则不必每个月有单独的系数。

就互动而言,您当然可以指定与month:cause的互动。谨慎使用交互,只有在有意义的情况下才应添加交互。

我不建议使用条件模型,因为这会显着降低您的自由度。添加交互可以实现与条件模型相同的影响,但在单个模型中。

如果你知道你的模型是有效的,我真的只会使用整体模型。平均2个不良模型将无法提供更好的结果。

我希望这有帮助!