我有二元结果变量和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变量选择程序:
所有这些都导致相同的结果:只有年龄和性别应该包含在我的模型中。
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
很重要......