【问题标题】:Compute interval score for interval predictions in R计算 R 中区间预测的区间分数
【发布时间】:2020-08-17 14:35:15
【问题描述】:

在 stackexchange 的线程中:“forecast-accuracy-metric-that-involves-prediction-intervals”有关更多详细信息,请参阅link,其中显示了预测间隔的质量度量。

我想在 R 中计算质量度量:

library(quantreg)

## Split data 
smp_size <- floor(0.75 * nrow(iris))
set.seed(123)

train_ind <- sample(seq_len(nrow(iris)), size = smp_size)
train <- iris[train_ind, ]
test <- iris[-train_ind, ]

# Training model for prediction intervals, lw(lower) and up(upper) intervals
model_lw <- rq(Sepal.Length~Petal.Length+Petal.Width, data= train, tau = 0.1)
model_up <- rq(Sepal.Length~Petal.Length+Petal.Width, data= train, tau = 0.9)

# Interval Predictions, lw(lower) and up(upper) intervals
pred_lw <- predict(model_lw, test)
pred_up <- predict(model_up, test) 

通过使用产品:

pred_lw,pred_up & test$Sepal.Length

目标

  • 可以计算区间质量度量。我想找到一个用于区间预测评估的实现库。

  • 另一种解决方案可能是计算“预测区间的覆盖范围和长度”或任何其他评估指标。

对这个实现有帮助吗?

【问题讨论】:

  • 你看过 quantreg 的vignette 吗?在我看来,它们的分析非常完整……恕我直言,硬编码有点太多了,但它可以完成工作。我认为正确的错误评估取决于您的业务目标,这超出了 StackOverflow 的目标。 PS:我建议你使用tau = c(0.1,0.9)而不是两行代码。
  • 我在文档中没有发现任何有用的东西,有什么建议可以以某种方式评估间隔吗?

标签: r prediction quantile-regression


【解决方案1】:

对于 quantle 回归的评估预测区间,找到了两个实现解决方案,任何其他指标包括 scoringutilsgreybox

解决方案

library(scoringutils)
# Scoring Rule to score quantile predictions, (Gneiting & Raftery, 2007)
mean(interval_score(true_values = test$Sepal.Length, 
               lower = pred_lw, 
               upper = pred_up, 
               interval_range = 80))

library(greybox)
# Mean Interval Score (Gneiting & Raftery, 2007),
MIS(actual = test$Sepal.Length, 
    lower = pred_lw, 
    upper = pred_up, 
    level = 0.80)

# interval range or level -> 0.9 - 0.1 = 0.8 (80) 

在第二个包中,可以使用对称和相对分数度量,应进行进一步研究以了解该度量与其他一些统计数据的偏差和应用。

希望这对社区有所帮助

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2015-04-30
    • 2021-05-18
    • 2021-01-24
    • 2019-03-29
    • 1970-01-01
    相关资源
    最近更新 更多