r-获得plsda中解释的方差与食谱的比例



我试图使用tidymodels框架计算PLSDA中每个组件解释的方差比例。

这是";金本位;mixOmics包的结果:

library(mixOmics)
mix_plsda <- plsda(X = iris[-5], Y = iris$Species, ncomp = 4)
mix_var_expl <- mix_plsda$prop_expl_var$X
mix_var_expl
#>       comp1       comp2       comp3       comp4 
#> 0.729028323 0.227891235 0.037817718 0.005262724
sum(mix_var_expl) # check
#> [1] 1

这里有recipes::step_pls():

library(recipes)
tidy_plsda <-
recipe(Species ~ ., data = iris) %>% 
step_pls(all_numeric_predictors(), outcome = "Species", num_comp = 4) %>% 
prep()
tidy_sd <- tidy_plsda$steps[[1]]$res$sd
tidy_sd
#> [1] 0.8280661 0.4358663 1.7652982 0.7622377
tidy_sd ^2 / sum(tidy_sd^2)
#> [1] 0.14994532 0.04154411 0.68145793 0.12705264

看起来最像解释方差的元素是sd,但正如你所看到的,这两个向量之间没有明显的关系。

如何从tidy_plsda获取mix_var_expl?谢谢

创建于2022-09-20由reprex包(v2.0.1(

配方对象不保存mixOmics模型;只是我们需要处理新数据的部分。sd对象是预测因子的标准差。目前还没有从对象中获取所需内容的方法。

我添加了一个GitHub问题,以便向结果中添加更多对象:https://github.com/tidymodels/recipes/issues/1038

相关内容

  • 没有找到相关文章

最新更新