二元逻辑回归 - 模型选择基础

时间:2018-04-23 11:00:21

标签: r logistic-regression polynomials

我有二元结果变量和4个预测变量:2个二进制1和2个连续(截断到整数)。我有1158个观察结果,分析的目的是预测二元结果(感染)的概率,检查拟合优度和最终模型的预测质量。

>   str(data)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   1158 obs. of  5 variables:
 $ age   : num  25 49 41 19 55 37 30 31 52 37 ...
 $ gender: num  1 1 1 0 0 0 1 0 1 1 ...
 $ var1  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ y     : num  1 0 0 1 1 0 1 1 0 1 ...
 $ var2  : num  26 33 25 30 28 20 28 21 17 25 ...

我已经看到数据有时分为2:测试和训练数据集,但并非总是如此。 我认为这取决于原始样本量?是否可以拆分数据进行分析?

目前,我没有拆分数据。我进行了varius变量选择程序:

  • 基于LRT的手动后退选择手册
  • 基于LRT的前向选择自动化
  • 基于LRT的向后选择
  • AIC后退选择程序
  • AIC前瞻性选择程序

所有这些都导致相同的结果:只有年龄和性别应该包含在我的模型中。

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.2716  -0.8767  -0.7361   1.3008   1.9353



Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.785753   0.238634   3.293 0.000992 ***
age         -0.031504   0.004882  -6.453  1.1e-10 ***
gender      -0.223195   0.129774  -1.720 0.085455 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1444.9  on 1157  degrees of freedom
Residual deviance: 1398.7  on 1155  degrees of freedom
AIC: 1404.7

现在,我想知道是否有任何交互或多项式是重要的。点(。)表示具有4个预测变量的完整模型。

  full.twoway <- glm(y ~ (.)^2 , family = binomial, data=data)  # includes 2-way interactions
  summary(full.twoway)

  model.aic.backward_2w <- step(full.twoway, direction = "backward", trace = 1)
  summary(model.aic.backward_2w)

  full.treeway <- glm(y ~ (.)^3 , family = binomial, data=data) # includes 3-way interactions
  summary(full.treeway)

full.treeway <- glm(reject ~ (.)^3 , family = binomial, data=renal) # includes 3-way interactions
  summary(full.treeway)
  # significant interaction: age:male:cardio at 0.5
model.aic.backward_3w <- step(full.treeway, direction = "backward", trace = 1)
  summary(model.aic.backward_3w)

    # polynomials
    model.polynomial  <- glm(y ~ age + gender + I(age^2), family = binomial, data=data)  
    # only age, gender significant

此外,只有年龄和性别才有意义。这对我来说似乎很奇怪。我原以为某些交互或多项式项是重要的。 我做错了吗? 还有其他一些变量选择技巧吗?

修改: 我已经在训练和测试中对数据集进行了分区。训练数据集包含868个观测值。选择过程的结果表明现在只有变量age很重要......

0 个答案:

没有答案