问题描述
我希望在R中运行一些相对简单的代码,以帮助根据logistic回归中的p值确定哪些自变量有意义。我知道SignifReg函数可以帮助确定lm对象的有意义的变量,但是是否存在用于logit的类似函数/程序包?谢谢!
SignifReg函数是SignifReg包的一部分,有关更多信息,请参见:https://www.rdocumentation.org/packages/SignifReg/versions/3.0/topics/SignifReg
解决方法
如果只需要p值,可以通过以下方法获取它们:
# building some data
df <- data.frame(response = rbinom(100,1,0.75),var1 = runif(100),var2 = rnorm(100),var3 = 1:100,var4 = rexp(100))
# making a model
mod <- glm(response ~ var1 + var2 + var3 + var4,data = df,family = "binomial")
您可以使用coef()
来补充模型系数估计值,标准误差和p值。您可以专门要求第四列获取p值。
coef(summary(mod))[,4]
(Intercept) var1 var2 var3 var4
0.05886951 0.21382708 0.41254249 0.16239709 0.80457330
,
软件包rms
具有函数fastbw
,该函数将模型作为逻辑模型,即coxph。它基于Lawless和Singhal(1978),“一阶近似比全向后选择具有更高的数值效率”。
例如:
Glmfullfit = Glm (Hypertension ~ .,family = binomial,data = mydata) #Glm from rms.
fastbw(Glmfullfit,rule= 'p',type='individual',sls=.1) #retention pvalue = 0.1.
在SAS中,等效代码为选择方法=向后(快速)[由于SAS云,我未尝试使用此代码)。由于fastbw中使用的方法,请勿使用来自fastbw结果的系数。取最后的幸存变量,并用glm拟合系数和其他参数。