逻辑回归 - 解决变量交互的多个模型

Logistic Regression - Multiple Models to Address Variable Interaction

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

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

例如。考虑到整个数据集,冬季月份的火灾更加致命。然而,以电器为根本原因的火灾则没有这种趋势。下面是烹饪火灾与电器火灾的示例(我相信这些是每 1000 起火灾造成的死亡人数)。 x 轴是第 1 个月到第 12 个月。

当试图预测因电器引起的死亡概率时,我得到的数值在夏季下降而在冬季上升,尽管这种趋势显然不是上述电器火灾的情况。

我的问题是:

  1. 创建条件模型是否是一个很好的解决方案? IE。 对每个原因的数据进行子集化,并为每个原因创建一个单独的模型 子集。我担心的是这可能过于复杂而且我 确定它在某处违反了某些规则。
  2. 有没有比创建这些条件模型更好的解决方案?
  3. 会在这个逻辑之间创建一个集成模型(简单平均) 回归模型和随机森林模型是有效的解决方案吗?我的 随机森林模型的缺陷在于它们预测了太多情况 值为 100% 或 0%。
  4. 能否重写公式,使这些变量相互作用 被考虑在内?即 Fatality ~ month * Cause
  5. 奖励:关于解决此问题的任何其他建议。

我的训练数据如下:

> 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

我会非常小心你如何使用逻辑回归。将 "the kitchen sink" 投入模型通常会产生一些异常结果。我会首先考虑重要的不同变量,并且只使用那些提供一些相关信息的变量。拟合回归模型并不是将所有变量都放入并寻找坚持的东西,而是考虑哪些变量是重要的并使用一些 step-wise 方法来找到重要的协变量。这本身可以解决您提到的有关系数方向的问题。

对于因子变量,您始终可以对其进行重新编码,以便只处理重要因子。例如,您可以 month4-month9, other 而不是 month1-month12。如果所有月份都不重要,则没有必要为每个月设置单独的系数。

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

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

如果你知道你的模型是有效的,我真的只会使用集成模型。平均 2 个较差的模型不会提供更好的结果。

希望对您有所帮助!