当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R recipes step_YeoJohnson 杨约翰逊转变


step_YeoJohnson() 创建配方步骤的规范,该步骤将使用 Yeo-Johnson 转换来转换数据。

用法

step_YeoJohnson(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  lambdas = NULL,
  limits = c(-5, 5),
  num_unique = 5,
  na_rm = TRUE,
  skip = FALSE,
  id = rand_id("YeoJohnson")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

...

一个或多个选择器函数用于为此步骤选择变量。有关更多详细信息,请参阅selections()

role

由于没有创建新变量,因此此步骤未使用。

trained

指示预处理数量是否已估计的逻辑。

lambdas

变换值的数值向量。在由 prep() 计算之前,这是 NULL

limits

长度为 2 的数值向量,定义计算变换参数 lambda 的范围。

num_unique

一个整数,其中可能值较少的数据将不会被评估以进行转换。

na_rm

一个逻辑值,指示在计算期间是否应删除 NA 值。

skip

一个合乎逻辑的。当bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算。

id

该步骤特有的字符串,用于标识它。

recipe 的更新版本,将新步骤添加到任何现有操作的序列中。

细节

Yeo-Johnson 转换与 Box-Cox 非常相似,但不要求输入变量严格为正。在该包中,部分对数似然函数在一组合理的变换值(可由用户更改)内直接优化。

这种转换通常是使用统计模型(例如普通最小二乘法)的残差对结果变量进行的。这里,使用简单的空模型(仅截距)将变换单独应用于预测变量。这可以使变量分布更加对称。

如果估计变换参数非常接近边界,或者优化失败,则使用值 NA 并且不应用变换。

整理

当您 tidy() 此步骤时,将返回包含列 terms(选择的选择器或变量)和 value(lambda 估计值)的 tibble。

箱重

底层操作不允许使用案例权重。

参考

Yeo, I.K. 和 Johnson, R.A. (2000)。一系列新的幂变换,可改善正态性或对称性。生物计量学。

也可以看看

例子

data(biomass, package = "modeldata")

biomass_tr <- biomass[biomass$dataset == "Training", ]
biomass_te <- biomass[biomass$dataset == "Testing", ]

rec <- recipe(
  HHV ~ carbon + hydrogen + oxygen + nitrogen + sulfur,
  data = biomass_tr
)

yj_transform <- step_YeoJohnson(rec, all_numeric())

yj_estimates <- prep(yj_transform, training = biomass_tr)

yj_te <- bake(yj_estimates, biomass_te)

plot(density(biomass_te$sulfur), main = "before")

plot(density(yj_te$sulfur), main = "after")


tidy(yj_transform, number = 1)
#> # A tibble: 1 × 3
#>   terms         value id              
#>   <chr>         <dbl> <chr>           
#> 1 all_numeric()    NA YeoJohnson_A4Lkd
tidy(yj_estimates, number = 1)
#> # A tibble: 6 × 3
#>   terms      value id              
#>   <chr>      <dbl> <chr>           
#> 1 carbon   -0.0225 YeoJohnson_A4Lkd
#> 2 hydrogen  2.10   YeoJohnson_A4Lkd
#> 3 oxygen    1.78   YeoJohnson_A4Lkd
#> 4 nitrogen -0.830  YeoJohnson_A4Lkd
#> 5 sulfur   -4.09   YeoJohnson_A4Lkd
#> 6 HHV      -0.388  YeoJohnson_A4Lkd
源代码:R/YeoJohnson.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Yeo-Johnson Transformation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。