可以使用 Romano 等人 (2019) 说明的分割共形推理方法来计算拟合回归工作流对象的非参数预测区间。为了计算分位数,此函数使用分位数随机森林而不是经典的分位数回归。
用法
int_conformal_quantile(object, ...)
# S3 method for workflow
int_conformal_quantile(object, train_data, cal_data, level = 0.95, ...)
参数
- object
-
一个合适的
workflows::workflow()
对象。 - ...
-
传递给
quantregForest::quantregForest()
的选项(例如树的数量)。 - train_data, cal_data
-
包含预测变量和结果数据的 DataFrame 。
train_data
应该与用于生成object
的数据相同,而cal_data
用于生成预测(和残差)。如果工作流程使用配方,这些数据应该是配方的输入数据(而不是配方的产品)。 - level
-
区间的置信水平。
值
类 "int_conformal_quantile"
的对象,包含创建间隔的信息(包括 object
)。 predict()
方法用于生成间隔。
细节
请注意,应在此函数中指定显著性级别(而不是 predict()
方法)。
cal_data
应足够大,以便能够很好地估计极端分位数(例如,95% 间隔的第 95 个),并且不应包含原始训练集中的行。
请注意,由于用于构造区间的方法,预测区间可能不包括预测值。
例子
library(workflows)
library(dplyr)
library(parsnip)
library(rsample)
library(tune)
library(modeldata)
set.seed(2)
sim_train <- sim_regression(500)
sim_cal <- sim_regression(200)
sim_new <- sim_regression( 5) %>% select(-outcome)
# We'll use a neural network model
mlp_spec <-
mlp(hidden_units = 5, penalty = 0.01) %>%
set_mode("regression")
mlp_wflow <-
workflow() %>%
add_model(mlp_spec) %>%
add_formula(outcome ~ .)
mlp_fit <- fit(mlp_wflow, data = sim_train)
mlp_int <- int_conformal_quantile(mlp_fit, sim_train, sim_cal,
level = 0.90)
mlp_int
#> Split Conformal inference via Quantile Regression
#> preprocessor: formula
#> model: mlp (engine = nnet)
#> calibration set size: 200
#> confidence level: 0.9
#>
#> Use `predict(object, new_data)` to compute prediction intervals
predict(mlp_int, sim_new)
#> # A tibble: 5 × 3
#> .pred .pred_lower .pred_upper
#> <dbl> <dbl> <dbl>
#> 1 4.46 -14.1 29.7
#> 2 5.83 -14.1 50.2
#> 3 9.27 -11.3 36.1
#> 4 1.50 1.67 46.8
#> 5 9.68 -15.6 19.8
相关用法
- R probably int_conformal_split 通过分割共形推理预测区间
- R probably int_conformal_cv 通过保形推理 CV+ 预测区间
- R probably is_class_pred 测试对象是否继承自class_pred
- R probably append_class_pred 添加 class_pred 列
- R probably cal_plot_logistic 通过逻辑回归绘制概率校准图
- R probably class_pred 创建类别预测对象
- R probably cal_plot_breaks 通过分箱绘制概率校准图
- R probably cal_estimate_multinomial 使用多项校准模型来计算新的概率
- R probably cal_validate_logistic 使用和不使用逻辑校准来测量性能
- R probably cal_validate_isotonic_boot 使用和不使用袋装等渗回归校准来测量性能
- R probably threshold_perf 生成跨概率阈值的性能指标
- R probably cal_estimate_beta 使用 Beta 校准模型来计算新概率
- R probably cal_plot_regression 回归校准图
- R probably as_class_pred 强制转换为 class_pred 对象
- R probably levels.class_pred 提取class_pred级别
- R probably cal_estimate_isotonic 使用等渗回归模型来校准模型预测。
- R probably locate-equivocal 找到模棱两可的值
- R probably cal_estimate_logistic 使用逻辑回归模型来校准概率
- R probably cal_validate_multinomial 使用和不使用多项式校准来测量性能
- R probably make_class_pred 根据类概率创建 class_pred 向量
- R probably cal_apply 对一组现有预测应用校准
- R probably reportable_rate 计算报告率
- R probably cal_validate_linear 使用和不使用线性回归校准来测量性能
- R probably cal_estimate_isotonic_boot 使用引导等渗回归模型来校准概率
- R probably cal_plot_windowed 通过移动窗口绘制概率校准图
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Prediction intervals via conformal inference and quantile regression。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。