當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。