如何在R中找到逻辑回归模型的brier分数?

时间:2014-08-05 21:56:48

标签: r logistic-regression

我创建了一个Logistic回归模型并用它来预测出勤率:

LogModel <- glm(formula = Attended ~ City + Duration, 
                family = binomial(logit), data = MyData)
prediction <- predict(LogModel, MyData, type = "response")

我在brierscore()函数中使用的参数应该是什么才能获得brier得分?

2 个答案:

答案 0 :(得分:4)

请注意,对于glm拟合,fit$residuals将返回工作残差,而不是预测的概率。可以使用residuals(fit,type='response')获得预测概率。有关glm fit中剩余类型的帖子,请参阅herehere

以下是使用mtcars数据集计算Brier分数的示例:

fit <- glm(am~hp+wt,data=mtcars,family='binomial')
pred.prob <- predict(fit,type='response')
brierScore <- mean((pred.prob-mtcars$am)^2)
# 0.04659236

以下是关于如何计算Brier分数的another post

答案 1 :(得分:1)

Brier分数实际上是残差平方的平均值。残差存储在每个glm模型输出中。所以你可以手工完成:

# Create some data (from ?profile.glm)
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)
# Run a model
budworm.lg0 <- glm(SF ~ sex + ldose - 1, family = binomial)
# Brier score
mean(budworm.lg0$residuals^2)