簡體   English   中英

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。 但這也有其缺點,特別是如果您有很多預測變量和很少的觀察結果 - 它可能會大大降低您的功效,以至於您無法找到任何效果,無論它有多大。

在像這樣的高維環境中,最好的選擇可能是使用某種正則化回歸方法。 通過正則化,您可以立即將所有預測變量放入您的模型中,類似於進行多元回歸,但是,訣竅在於您可以約束模型,以便所有回歸斜率都被拉向零,因此只有具有大影響的那些“存活”。 正則化回歸的機器學習版本稱為 ridge、LASSO 和 elastic net,它們可以使用glmnet包進行擬合。 在所謂的收縮先驗中也有貝葉斯等價物,例如馬蹄鐵(參見例如https://avehtari.github.io/modelselection/regularizedhorseshoe_slides.pdf )。 您可以使用brms包擬合貝葉斯正則化回歸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM