当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R probably int_conformal_split 通过分割共形推理预测区间


可以使用 Lei 等人 (2018) 说明的分割共形推理方法来计算拟合回归工作流对象的非参数预测区间。

用法

int_conformal_split(object, ...)

# S3 method for default
int_conformal_split(object, ...)

# S3 method for workflow
int_conformal_split(object, cal_data, ...)

参数

object

一个合适的 workflows::workflow() 对象。

...

目前未使用。

cal_data

包含原始预测变量和用于生成预测(和残差)的结果数据的 DataFrame 。如果工作流程使用配方,则这应该是配方的输入数据(而不是配方的产品)。

"int_conformal_split" 的对象,包含创建间隔的信息(包括 object )。 predict() 方法用于生成间隔。

细节

该函数实现了通常所说的“分割共形推理”(参见 Lei et al (2018) 中的算法 1)。

该函数为间隔计算准备统计数据。 predict() 方法计算新数据的间隔并在那里指定显著性级别。

cal_data 应足够大,以便能够很好地估计极端分位数(例如,95% 间隔的第 95 个),并且不应包含原始训练集中的行。

参考

雷静等人。 “Distribution-free 回归预测推理。”美国统计协会杂志 113.523(2018):1094-1111。

例子

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_split(mlp_fit, sim_cal)
mlp_int
#> Split Conformal inference
#> preprocessor: formula 
#> model: mlp (engine = nnet) 
#> calibration set size: 200 
#> 
#> Use `predict(object, new_data, level)` to compute prediction intervals

predict(mlp_int, sim_new, level = 0.90)
#> # A tibble: 5 × 3
#>   .pred .pred_lower .pred_upper
#>   <dbl>       <dbl>       <dbl>
#> 1  4.46       -27.5        36.4
#> 2  5.83       -26.1        37.8
#> 3  9.27       -22.7        41.2
#> 4  1.50       -30.4        33.4
#> 5  9.68       -22.3        41.6

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Prediction intervals via split conformal inference。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。