Блок начальной загрузки для AUC в R - PullRequest
0 голосов
/ 03 июня 2019

Я хочу рассчитать AUC, а также границы доверительного интервала 90%, 95% и 99% на основе процентилей распределения выборки с начальной загрузкой блока статистики AUC. В качестве блочной процедуры начальной загрузки я хочу использовать «стационарную начальную загрузку», разработанную Politis и Romano (1994).

У меня есть один временной ряд, который дает вероятности между 0 и 1, и другой временной ряд, который имеет 0 или 1 в качестве значений.

Я пытаюсь сделать это в R, и это то, что я сделал до сих пор:

library(pROC)
library(boot)
# set the number of replications for the block bootstrap:
reps <- 1000
# set the block length:
block_length <- 96
# write the AUC function for the block boostrap command:
block.boot.function <- function(x){
  auc(roc(data_ROC$Date,x))
}

# block bootstrap for AUC:
auc_block_boot <- tsboot(tseries = data_ROC$y , statistic = block.boot.function, R = reps, l = block_length, sim = "geom")

> auc_block_boot

STATIONARY BOOTSTRAP FOR TIME SERIES

Average Block Length of 96 

Call:
tsboot(tseries = data_ROC$y, statistic = block.boot.function, 
    R = reps, l = block_length, sim = "geom")


Bootstrap Statistics :
     original     bias    std. error
t1* 0.9694139 -0.3090732   0.1147533

# Confidence intervals based on the percentiles: 
auc_block_boot_CI <- boot.ci(auc_block_boot, conf = c(0.9, 0.95, 0.99), type = c("perc"))
> auc_block_boot_CI
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 1000 bootstrap replicates

CALL : 
boot.ci(boot.out = auc_block_boot, conf = c(0.9, 0.95, 0.99), 
    type = c("perc"))

Intervals : 
Level     Percentile     
90%   ( 0.4945,  0.8667 )   
95%   ( 0.4723,  0.9018 )   
99%   ( 0.4421,  0.9506 ) 
Calculations and Intervals on Original Scale
Some percentile intervals may be unstable

Я не уверен, воспроизводит ли код то, что я описал в начале. Относительно большой уклон -0.3090732 заставляет меня скептически относиться к тому, что результаты в порядке. Исходное значение AUC 0.9694139 также находится вне доверительных интервалов. Это ошибка, которая показывает, что код неверен, или это возможно с процентилями?

Буду рад любой помощи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...