R_blogger提供以下代码,我的添加内容被注释掉,因为它们不起作用;我正在寻找一种方法来保存迭代逻辑回归中的系数向量和p值,这样我就可以修剪一直没有得分的变量。
predictions <- foreach(m=1:iterations,.combine=cbind) %do% {
training_positions <- sample(nrow(training2), size=floor((nrow(training2)/length_divisor)))
train_pos<-1:nrow(training2) %in% training_positions
glm_fit <- glm(default~. ,data=training2[train_pos,],family=binomial(logit),
type=response, control = list(maxit = 25))
predict(glm_fit,newdata=testing)
#pvalues <- summary(glm_fit)$coeff[-1,4] < 0.0001
#coeffs <- summary(glm_fit)$coeff[-1,3]
}
probs <- rowMeans(predictions)
我希望能够检索与预测类似的系数和p值的对象
答案 0 :(得分:1)
NB 此回复已根据评论中的交换进行了修改。
所以这里有几件事情。
training
应与代码中的training2
相同。此数据集中的第一列是id,您的代码将包含该值作为拟合中的参数。这就是你想要的吗?nrow(training2)
之间的整数样本,并从中生成带length=nrow(training2)
的逻辑向量。您不需要这样做:只需使用整数向量来索引training2。它的很多更快,特别是对于这么大的数据集。glm(...)
似乎想要对均值进行初始估计。我没有把时间花在上面,而是将模型限制在前9个参数中(第2:10列)。type=predict
的调用中使用glm(..)
会影响权重的使用方式。您没有使用权重,因此此参数不执行任何操作。predict(...)
时, 需要指定type="predict"
。maxit = 25
通常意味着拟合没有收敛,因此您需要对此进行试验。p<0.0001
,所以我为了这个例子而将截止值改为0.1。return(list(...))
,并将.combine=cbind
更改为.combine=rbind
,返回一个列表对象数组,其中每个行对应于迭代,第1列具有该迭代的预测向量,第2列具有该迭代的p值向量,第3列具有该迭代的系数向量。以下是代码:
library(foreach)
set.seed(1)
training2 <- training
length_divisor <- 1000
iterations <- 5
predictions <- foreach(m=1:iterations,.combine=rbind) %do% {
training_positions <- sample(nrow(training2),
size=floor((nrow(training2)/length_divisor)))
# train_pos<-1:nrow(training2) %in% training_positions
glm_fit <- glm(default~ . ,
data=training2[training_positions,c(2:10,ncol(training2))],
family=binomial(logit),
control = list(maxit = 25))
pr <- predict(glm_fit,
newdata=training2[sample(1:nrow(training2),10),],
type="response")
s <- summary(glm_fit)
p <- s$coeff[,4]
c <- s$coeff[,1]
pvalues <- p[p<0.1]
coeffs <- c[p<0.1]
return(list(pr,pvalues,coeffs))
}
predictions
# [,1] [,2] [,3]
# result.1 Numeric,10 Numeric,0 Numeric,0
# result.2 Numeric,10 Numeric,0 Numeric,0
# result.3 Numeric,10 Numeric,2 Numeric,2
# result.4 Numeric,10 Numeric,0 Numeric,0
# result.5 Numeric,10 Numeric,0 Numeric,0
因此,在此安排中,predictions[,1]
是所有预测向量的列表,prediction[,2]
是每个迭代的所有p值<0.1的列表,prediction[,3]
是每次迭代的p值<0.1的所有系数的列表。