Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:使用rms:bootcov on caret模型和glm模型计算引导估计_R_Logistic Regression_Statistics Bootstrap - Fatal编程技术网

R:使用rms:bootcov on caret模型和glm模型计算引导估计

R:使用rms:bootcov on caret模型和glm模型计算引导估计,r,logistic-regression,statistics-bootstrap,R,Logistic Regression,Statistics Bootstrap,如何使用包rms中的函数bootcov计算回归系数的bootstrap估计值?我使用示例数据集尝试了以下操作,但出现错误: library(mlbench) data(PimaIndiansDiabetes) library(caret) trControl <- trainControl(method = "repeatedcv", repeats = 3, classProbs =

如何使用包
rms
中的函数
bootcov
计算回归系数的bootstrap估计值?我使用示例数据集尝试了以下操作,但出现错误:

library(mlbench)
data(PimaIndiansDiabetes)

library(caret)
trControl <- trainControl(method = "repeatedcv",
                          repeats = 3,
                          classProbs = TRUE,
                          number = 10, 
                          savePredictions = TRUE,
                          summaryFunction = twoClassSummary)

caret_model <- train(diabetes~., 
                     data=PimaIndiansDiabetes, 
                     method="glm", 
                     trControl=trControl)

library(rms)
set.seed(1234)
reduced_model_bootcov <- bootcov(caret_model$finalModel, B=100)
但我又犯了一个不同的错误:

bootcov(型号,B=100)中出错:装配工无效


事实证明,rms中有一个名为Glm的fitting函数,它是Glm的包装器,但如果您对使用bootcov感兴趣,也可以使用它。因此,为了让bootcov发挥作用:

library(mlbench)
library(rms)
data(PimaIndiansDiabetes)

model <- rms::Glm(diabetes~., 
             data=PimaIndiansDiabetes, 
             family=binomial,
             x=TRUE, y=TRUE)
model_bootcov <- bootcov(model, B=1000)

嘿,bootcov不能接受glm对象,根据其渐晕图,它用于“ols、lrm、cph、psm、Rq和任何其他拟合的回归系数集,其中x=TRUE,y=TRUE”我想你可以使用包boot来计算回归系数的自举估计数?@StupidWolf。谢谢你的回复。我不熟悉这项技术。你能在我的数据集
PimaIndiansDiabetes
上发布一个工作示例吗?当然没问题。是否可以从
caret
中使用模型来执行此操作?因为我想在使用插入符号构建时利用
列车控制
(特别是,我希望重复进行K-折叠交叉验证,如我问题的第一部分)。谢谢您使用交叉验证来获取拟合参数。最后,在整个数据集上拟合数据,请参见长度(插入符号模型$finalModel$y)以获取示例结果与仅拟合glm相同,因为没有针对glm训练的超参数?我建议只使用glm拟合。我还想绘制
插入符号$pred
中包含的AUC。我猜是因为我想用一种方法实现很多事情……一旦你有了预测和概率来绘制AUC,你就可以使用ROCR软件包
library(mlbench)
library(rms)
data(PimaIndiansDiabetes)

model <- rms::Glm(diabetes~., 
             data=PimaIndiansDiabetes, 
             family=binomial,
             x=TRUE, y=TRUE)
model_bootcov <- bootcov(model, B=1000)
library(boot)
glm.fun <- function(dat, inds){
  fit <- glm(diabetes~.,family=binomial,data=dat[inds,])
      coef(fit)
     }
model_boot <- boot(PimaIndiansDiabetes, glm.fun, R = 1000)
library(tidyr)
library(dplyr)
library(ggplot2)

melt_matrix = function(mat,NAMES,X){
colnames(mat) = NAMES
data.frame(mat) %>% 
tibble::rownames_to_column("B") %>% 
pivot_longer(-B) %>%
mutate(type=X)
}

VAR = names(coef(model))

plotdf = rbind(
melt_matrix(model_boot$t,VAR,"boot"),
melt_matrix(model_bootcov$boot.Coef,VAR,"bootcov")
)

ggplot(plotdf,aes(x=type,y=value))+ geom_violin() + facet_wrap(~name,scale="free_y")