[英]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.