在 R 中引导

问题描述 投票:0回答:0

我在理解引导过程时遇到问题。

首先,我创建了 24 个时间序列样本除以每小时(NL_hourly)。

NL_hourly <- NL %>%
  mutate(hour = hour(datetime), hour1 = hour(datetime)) %>% 
  group_by(hour) %>% 
  nest() %>% 
  mutate(data = map(data, ~.x %>% select(-datetime))) %>% 
  ungroup() 

然后我运行 24 小时 x 3 分位数 = 72 个模型(作为 24 个列表)存储在 NL_hourly_quantreg 数据框中。

quantreg_fn <- function(data, tau_vals) {
  map(tau_vals, ~ rq(price_NO2 ~ cons + NO2 + precip*temp + price_NG + price_cert + 
                      factor(month) + weekend + is_holiday + trend_time +
                      price_l2 + price_l3, data = data, tau = .x))
}

#run regression for each hour and quantile
tau_vals <- seq(0.1, 0.9, by = 0.4)
NL_hourly_quantreg <- NL_hourly %>% 
  mutate(model = map(data, ~quantreg_fn(.x, tau_vals)))

此外,我定义了一个函数来从分位数回归模型中提取系数估计值,并使用 100 个重采样运行启动。

coef_fn <- function(data, indices, tau_vals) {
  models <- quantreg_fn(data[indices, ], tau_vals)
  coef_list <- lapply(models, coef)
  coef_df <- do.call(rbind, coef_list)
  return(coef_df)
}

# Set the number of bootstrap replicates
n_boot <- 100

# Run the bootstrap
set.seed(123) # for reproducibility

NL_hourly_boot <- NL_hourly_quantreg %>% 
  mutate(boot = map(data, ~boot(data = .x, statistic = coef_fn, tau_vals = tau_vals, R = n_boot, sim = "ordinary", parallel = "multicore")))

然后我想访问我认为是自举系数(?)的“t”。

t_values <- lapply(NL_hourly_boot$boot, function(x) x$t)

#exctract the results from the bootstrap
coef_tbl_boot <- as.data.frame(t_values)

head(coef_tbl_boot, 5)

所以我的问题是:下一步是什么?我只是想像任何其他回归分析一样获得系数。

r bootstrapping quantile
© www.soinside.com 2019 - 2024. All rights reserved.