step_impute_roll()
创建配方步骤的规范,该步骤将通过移动窗口内的位置测量(例如中位数)来替换数值变量的缺失值。
用法
step_impute_roll(
recipe,
...,
role = NA,
trained = FALSE,
columns = NULL,
statistic = median,
window = 5,
skip = FALSE,
id = rand_id("impute_roll")
)
step_rollimpute(
recipe,
...,
role = NA,
trained = FALSE,
columns = NULL,
statistic = median,
window = 5,
skip = FALSE,
id = rand_id("impute_roll")
)
参数
- recipe
-
一个菜谱对象。该步骤将添加到此配方的操作序列中。
- ...
-
一个或多个选择器函数来选择要估算的变量;这些列必须是非整数(即双精度)。有关更多详细信息,请参阅
selections()
。 - role
-
由于没有创建新变量,因此此步骤未使用。
- trained
-
指示预处理数量是否已估计的逻辑。
- columns
-
所选变量名称的字符串。该字段是一个占位符,一旦使用
prep()
就会被填充。 - statistic
-
具有单个数据参数的函数,用于计算估算值。只有完整的值才会传递给函数,并且它应该返回双精度值。
- window
-
要估算的点周围的窗口大小。应该是大于 1 的奇数。有关本系列末尾要点的讨论,请参阅下面的详细信息。
- skip
-
一个合乎逻辑的。当
bake()
烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在prep()
运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE
时应小心,因为它可能会影响后续操作的计算。 - id
-
该步骤特有的字符串,用于标识它。
细节
在尾部,窗口向两端移动。例如,对于 5 点窗口,前四个点的窗口为 1:5
、 1:5
、 1:5
,然后是 2:6
。
当窗口中存在缺失数据时,它们不会传递给函数。如果窗口中的所有数据均缺失,则返回缺失值。
统计数据是根据插补之前的训练集值计算的。这意味着,如果窗口内的先前数据丢失,则它们的估算值不会包含在用于插补的窗口数据中。换句话说,每个插补对当前点之前的系列中的先前插补一无所知。
从 recipes
0.1.16 开始,该函数名称从 step_rollimpute()
更改为 step_impute_roll()
。
整理
当您 tidy()
这一步时,将返回一个包含列 terms
(选择的选择器或变量)和 window
(窗口大小)的 tibble。
也可以看看
其他插补步骤: step_impute_bag()
、 step_impute_knn()
、 step_impute_linear()
、 step_impute_lower()
、 step_impute_mean()
、 step_impute_median()
、 step_impute_mode()
其他行操作步骤:step_arrange()
、step_filter()
、step_lag()
、step_naomit()
、step_sample()
、step_shuffle()
、step_slice()
例子
library(lubridate)
set.seed(145)
example_data <-
data.frame(
day = ymd("2012-06-07") + days(1:12),
x1 = round(runif(12), 2),
x2 = round(runif(12), 2),
x3 = round(runif(12), 2)
)
example_data$x1[c(1, 5, 6)] <- NA
example_data$x2[c(1:4, 10)] <- NA
library(recipes)
seven_pt <- recipe(~., data = example_data) %>%
update_role(day, new_role = "time_index") %>%
step_impute_roll(all_numeric_predictors(), window = 7) %>%
prep(training = example_data)
# The training set:
bake(seven_pt, new_data = NULL)
#> # A tibble: 12 × 4
#> day x1 x2 x3
#> <date> <dbl> <dbl> <dbl>
#> 1 2012-06-08 0.89 0.79 0.58
#> 2 2012-06-09 0.53 0.79 0.45
#> 3 2012-06-10 0.86 0.79 0.67
#> 4 2012-06-11 0.92 0.79 0.05
#> 5 2012-06-12 0.86 0.88 0.27
#> 6 2012-06-13 0.86 0.6 0.13
#> 7 2012-06-14 0.97 0.79 0.67
#> 8 2012-06-15 0.85 0.27 0.16
#> 9 2012-06-16 0.86 0.11 0.36
#> 10 2012-06-17 0.96 0.435 0.09
#> 11 2012-06-18 0.91 0.16 0.76
#> 12 2012-06-19 0.07 0.86 0.74
相关用法
- R recipes step_impute_knn 通过 k 最近邻进行插补
- R recipes step_impute_mean 使用平均值估算数值数据
- R recipes step_impute_mode 使用最常见的值估算名义数据
- R recipes step_impute_lower 估算低于测量阈值的数值数据
- R recipes step_impute_bag 通过袋装树进行插补
- R recipes step_impute_median 使用中位数估算数值数据
- R recipes step_impute_linear 通过线性模型估算数值变量
- R recipes step_inverse 逆变换
- R recipes step_ica ICA 信号提取
- R recipes step_indicate_na 创建缺失数据列指示器
- R recipes step_integer 将值转换为预定义的整数
- R recipes step_intercept 添加截距(或常数)列
- R recipes step_interact 创建交互变量
- R recipes step_invlogit 逆 Logit 变换
- R recipes step_isomap 等位图嵌入
- R recipes step_unknown 将缺失的类别分配给“未知”
- R recipes step_relu 应用(平滑)修正线性变换
- R recipes step_poly_bernstein 广义伯恩斯坦多项式基
- R recipes step_pls 偏最小二乘特征提取
- R recipes step_ratio 比率变量创建
- R recipes step_geodist 两个地点之间的距离
- R recipes step_nzv 近零方差滤波器
- R recipes step_nnmf 非负矩阵分解信号提取
- R recipes step_normalize 中心和比例数值数据
- R recipes step_depth 数据深度
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Impute numeric data using a rolling window statistic。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。