计算 R 中区间预测的区间分数

Compute interval score for interval predictions in R

在 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

目标

对此实施有任何帮助吗?

对于分位数回归的评估预测区间,找到了两个实施方案,包括任何其他指标 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) 

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

希望这对社区有所帮助