2014-03-30 51 views
1

我想運行logistic迴歸(在我的數據集中爲:dat$admit)的因變量與所有可用變量,每個迴歸具有自己的獨立變量變量與因變量。我想回歸的結果是每個迴歸總結的列表:coeff,p值,AUC。使用下面提交的數據集應該有3個迴歸。循環將對所有獨立變量進行邏輯迴歸,並呈現AUC和

下面是一個簡單的數據集(其中承認是邏輯迴歸因變量):

>dat <- read.table(text = " female apcalc admit  num 
+ 0  0  0   7 
+ 0  0  1   1 
+ 0  1  0   3 
+ 0  1  1   7 
+ 1  0  0   5 
+ 1  0  1   1 
+ 1  1  0   0 
+ 1  1  1   6", 
+     header = TRUE) 

我有這個功能目前每個迴歸和COEF的列表,但我沒有找到一個方法也結合AUC和p值。 下面是代碼:

t(sapply(setdiff(names(dat),"admit"), function(x) coef(glm(reformulate(x,response="admit"), data=dat,family=binomial)))) 

任何想法如何創建這個列表? 謝謝你,羅恩

回答

2

嘗試

library(caTools) 
ResFunc <- function(x) { 
    temp <- glm(reformulate(x,response="admit"), data=dat,family=binomial) 
    c(summary(temp)$coefficients[,1], 
    summary(temp)$coefficients[,4], 
    colAUC(predict(temp, type = "response"), dat$admit)) 
} 

temp <- as.data.frame(t(sapply(setdiff(names(dat),"admit"), ResFunc))) 
colnames(temp) <- c("Intercept", "Estimate", "P-Value (Intercept)", "P-Value (Estimate)", "AUC") 
temp 

#   Intercept  Estimate P-Value (Intercept) P-Value (Estimate) AUC 
# female 0.000000e+00 0.000000e+00     1     1 0.5 
# apcalc 0.000000e+00 0.000000e+00     1     1 0.5 
# num 5.177403e-16 -1.171295e-16     1     1 0.5 
+0

感謝戴夫,我不知道我怎樣才能與列名稱適用它,而不是使用列佔位符(或位置)? – mql4beginner

+1

我已編輯答案,參見上面 –

+0

謝謝戴夫,請問「重新配置」是什麼意思? - 我試圖谷歌它,但沒有任何幫助。另外,彙總(temp)$係數[,1],彙總(temp)$係數[,4]的含義是什麼? – mql4beginner