Учитывая пример данных dat
ниже, я был бы признателен за любую помощь:
(1) проверьте, верен ли мой подход, приведенный ниже после виньетки ботинка, для вычисления основанных на бутстрэпе прогнозов по логистической регрессии, и помогите исправить, если в моем подходе есть какая-либо ошибка.
(2) рассчитать
основанные на начальной загрузке p-значения, сравнивающие наблюдаемую вероятность и предсказанную вероятность.
# мои образцы данных:
ldose <- rep(0:5, 2)
numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16)
sex <- factor(rep(c("M", "F"), c(6, 6)))
SF <- cbind(numdead, numalive = 20-numdead)
dat<-data.frame(ldose, numdead, sex, SF)
tibble::rowid_to_column(dat, "indices")
new.data <- data.frame(ldose = 20, sex = "F")
# делает начальную загрузку:
#Here I would appreciate any correction if something is not correct in my approach
temp.out<-function(dat, indices, new.data) {
d<-dat[indices, ]
fit1<- glm(SF ~ sex*ldose, family = binomial (link = logit), data = d)
return(predict(fit1, new.data, type="response"))
}
results <- boot::boot(dat, temp.out, 1000, sim = "permutation")
boot::boot.ci(results, conf = 0.95, type = "all") #this fails
Error in model.frame.default(formula = SF ~ sex * ldose, data = d, drop.unused.levels = TRUE) :
variable lengths differ (found for 'sex')
boot::boot.ci(results, conf = c(0.90, 0.95), type = c("perc")) #this works
# вычисление p-значения на основе начальной загрузки, сравнивая наблюдаемую вероятность (например, 0,45) и прогнозируемые вероятности (на основе алгоритма начальной загрузки):
#Here I would appreciate any help to calculate the p-value
Заранее спасибо за любую помощь. Если есть что-то непонятное, пожалуйста, дайте мне знать.