当数据集具有很强的时间成分时,这种重采样方法非常有用。重新采样不是随机的,并且包含连续值的数据点。该函数假设原始数据集按时间顺序排序。
参数
- data
-
一个 DataFrame 。
- initial
-
初始重采样中用于分析/建模的样本数量。
- assess
-
每次评估重新抽样所使用的样本数量。
- cumulative
-
一个合乎逻辑的。每次重新采样时分析重新采样是否会超出
initial
指定的大小? - skip
-
一个整数,指示要跳过多少次附加重采样(如果有)以精简分析重采样中的数据点总量。请参阅下面的示例。
- lag
-
包含评估和分析集之间的滞后的值。如果在训练和测试期间使用滞后预测变量,这非常有用。
- ...
-
这些点用于将来的扩展,并且必须为空。
值
带有类 rolling_origin
、 rset
、 tbl_df
、 tbl
和 data.frame
的 tibble。结果包括数据分割对象的列和名为 id
的列,其中包含带有重采样标识符的字符串。
细节
主要选项 initial
和 assess
分别控制分析和评估集中原始数据的数据点数量。当 cumulative = TRUE
时,分析集将随着重采样的继续而增长,而评估集大小将始终保持静态。 skip
使函数能够不使用重采样中的每个数据点。当 skip = 0
时,重采样数据集将增加一位。假设数据集的行是连续的天。使用skip = 6
将使分析数据集运行数周而不是数天。评估集大小不受此选项的影响。
也可以看看
sliding_window()
、 sliding_index()
和 sliding_period()
用于附加基于时间的重采样函数。
例子
set.seed(1131)
ex_data <- data.frame(row = 1:20, some_var = rnorm(20))
dim(rolling_origin(ex_data))
#> [1] 15 2
dim(rolling_origin(ex_data, skip = 2))
#> [1] 5 2
dim(rolling_origin(ex_data, skip = 2, cumulative = FALSE))
#> [1] 5 2
# You can also roll over calendar periods by first nesting by that period,
# which is especially useful for irregular series where a fixed window
# is not useful. This example slides over 5 years at a time.
library(dplyr)
library(tidyr)
data(drinks, package = "modeldata")
drinks_annual <- drinks %>%
mutate(year = as.POSIXlt(date)$year + 1900) %>%
nest(data = c(-year))
multi_year_roll <- rolling_origin(drinks_annual, cumulative = FALSE)
analysis(multi_year_roll$splits[[1]])
#> # A tibble: 5 × 2
#> year data
#> <dbl> <list>
#> 1 1992 <tibble [12 × 2]>
#> 2 1993 <tibble [12 × 2]>
#> 3 1994 <tibble [12 × 2]>
#> 4 1995 <tibble [12 × 2]>
#> 5 1996 <tibble [12 × 2]>
assessment(multi_year_roll$splits[[1]])
#> # A tibble: 1 × 2
#> year data
#> <dbl> <list>
#> 1 1997 <tibble [12 × 2]>
相关用法
- R rsample rset_reconstruct 使用新的 rset 子类扩展 rsample
- R rsample reverse_splits 反转分析和评估集
- R rsample reg_intervals 具有线性参数模型的置信区间的便捷函数
- R rsample reshuffle_rset “重新洗牌”一个 rset 以重新生成具有相同参数的新 rset
- R rsample validation_set 创建验证拆分以进行调整
- R rsample initial_split 简单的训练/测试集分割
- R rsample populate 添加评估指标
- R rsample int_pctl 自举置信区间
- R rsample vfold_cv V 折交叉验证
- R rsample group_mc_cv 小组蒙特卡罗交叉验证
- R rsample group_vfold_cv V 组交叉验证
- R rsample group_bootstraps 团体自举
- R rsample labels.rset 从 rset 对象中查找标签
- R rsample get_fingerprint 获取重采样的标识符
- R rsample bootstraps 引导抽样
- R rsample validation_split 创建验证集
- R rsample clustering_cv 集群交叉验证
- R rsample initial_validation_split 创建初始训练/验证/测试拆分
- R rsample get_rsplit 从 rset 中检索单个 rsplit 对象
- R rsample loo_cv 留一交叉验证
- R rsample complement 确定评估样本
- R rsample slide-resampling 基于时间的重采样
- R rsample as.data.frame.rsplit 将 rsplit 对象转换为 DataFrame
- R rsample labels.rsplit 从 rsplit 对象中查找标签
- R rsample mc_cv 蒙特卡罗交叉验证
注:本文由纯净天空筛选整理自Hannah Frick等大神的英文原创作品 Rolling Origin Forecast Resampling。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。