step_BoxCox() 带有负数据

问题描述

我的理解是 step_BoxCox() 需要一个严格的正变量。但是,我尝试对具有一些负值的数据应用该步骤,但没有收到错误或警告。输出没有 NA 值。
我不知道出了什么问题,如果我的理解有缺陷,或者我使用了错误的语法或其他什么。

library(recipes)
library(skimr)

# create dummy data
set.seed(123)
n <- 2e3
x1 <- rpois(n,lambda = 5) # has some zero vals
x2 <- rnorm(n) # has some -ve vals
x3 <- x1 + 10 # is strictly positive
y <- x1 + x2
data <- tibble(x1,x2,x3,y)

# a BocCox recipe
rec <- recipe(y ~ .,data = data) %>% 
  step_BoxCox(all_predictors())
rec
#> Data Recipe
#> 
#> Inputs:
#> 
#>       role #variables
#>    outcome          1
#>  predictor          3
#> 
#> Operations:
#> 
#> Box-Cox transformation on all_predictors()

# bake
processed <- rec %>% 
  prep() %>% 
  bake(new_data = NULL)

# check output
summary(data)
#>        x1               x2                  x3              y         
#>  Min.   : 0.000   Min.   :-3.047861   Min.   :10.00   Min.   :-2.048  
#>  1st Qu.: 3.000   1st Qu.:-0.654767   1st Qu.:13.00   1st Qu.: 3.349  
#>  Median : 5.000   Median :-0.007895   Median :15.00   Median : 4.843  
#>  Mean   : 4.981   Mean   : 0.011176   Mean   :14.98   Mean   : 4.993  
#>  3rd Qu.: 6.000   3rd Qu.: 0.688699   3rd Qu.:16.00   3rd Qu.: 6.486  
#>  Max.   :14.000   Max.   : 3.421095   Max.   :24.00   Max.   :15.225
summary(processed)
#>        x1               x2                  x3              y         
#>  Min.   : 0.000   Min.   :-3.047861   Min.   :2.076   Min.   :-2.048  
#>  1st Qu.: 3.000   1st Qu.:-0.654767   1st Qu.:2.285   1st Qu.: 3.349  
#>  Median : 5.000   Median :-0.007895   Median :2.398   Median : 4.843  
#>  Mean   : 4.981   Mean   : 0.011176   Mean   :2.388   Mean   : 4.993  
#>  3rd Qu.: 6.000   3rd Qu.: 0.688699   3rd Qu.:2.448   3rd Qu.: 6.486  
#>  Max.   :14.000   Max.   : 3.421095   Max.   :2.756   Max.   :15.225
sum(is.na(processed$x2))
#> [1] 0
skim(processed)

reprex package (v0.3.0) 于 2021 年 4 月 29 日创建

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...