R语言,如何使用bootstraps生成最大似然和AICc?

R language, how to use bootstraps to generate maximum likelihood and AICc?

抱歉问了一个很愚蠢的问题。我正在通过自举数据的相关性对形态特征进行多重比较。我很好奇这种多重比较是否会影响我的推理水平,以及我数据中潜在多重共线性的影响。也许,一个合理的选择是使用我的引导程序来生成最大似然,然后生成 AICc-s 来与我的所有参数进行比较,看看最重要的是什么......问题是虽然我有(更多或不太清楚)方式,我不知道如何在 R 中实现这一点。任何人都可以为我提供一些启示吗? 到目前为止,这里有一个示例(使用 R 语言,但不是我的数据):

   library(boot)
   data(iris)
   head(iris)
   # The function
   pearson <- function(data, indices){
      dt<-data[indices,]
      c(
      cor(dt[,1], dt[,2], method='p'),
      median(dt[,1]),
      median(dt[,2])
      )
   }
   # One example: iris$Sepal.Length ~ iris$Sepal.Width
   # I calculate the r-squared with 1000 replications
   set.seed(12345)
   dat <- iris[,c(1,2)]
   dat <- na.omit(dat)
   results <- boot(dat, statistic=pearson, R=1000)
   # 95% CIs
   boot.ci(results, type="bca")
   BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
   Based on 1000 bootstrap replicates

   CALL : 
   boot.ci(boot.out = results, type = "bca")

   Intervals : 
   Level       BCa          
   95%   (-0.2490,  0.0423 )  
   Calculations and Intervals on Original Scale

   plot(results)

我还有几对比较

更多的是交叉验证问题。

如果您只是评估两个变量之间的关系(在您的案例中是相关性),那么多重共线性应该不是问题。只有在拟合模型时,多重共线性才会成为问题,例如多元回归,具有几个高度相关的预测变量。

虽然多重比较总是一个问题,因为它会增加您的 I 型错误。解决这个问题的方法是进行多重比较校正,例如Bonferroni-Holm 或不太保守的 FDR。不过这也有它的缺点,特别是如果你有很多预测变量和很少的观察结果——它可能会大大降低你的功效,以至于你无法找到任何效果,无论它有多大。

在这样的高维环境中,最好的选择可能是使用某种正则化回归方法。使用正则化,您可以立即将所有预测变量放入您的模型中,类似于进行多元回归,但是,诀窍在于您限制模型,以便所有回归斜率都被拉向零,因此只有那些具有大影响的回归斜率"survive"。正则化回归的机器学习版本称为 ridge、LASSO 和弹性网,它们可以使用 glmnet package. There is also Bayesian equivalents in so-called shrinkage priors, such as horseshoe (see e.g. https://avehtari.github.io/modelselection/regularizedhorseshoe_slides.pdf) 进行拟合。您可以使用 brms 包拟合贝叶斯正则化回归。