看板 R_Language 關於我們 聯絡資訊
1. 套件名稱: MuMIn 2. 套件主要用途: "Model selection and model averaging based on information criteria (AICc and alike)" 此套件最主要的工作: 線性模型的變數選擇提供很暴力或彈性的解決方案。 預設的選擇指標是 AICc 值,但可以自行選用其它常見的指標。 3. 套件主要函數列表: a. dredge(full_model) 對 full_model 以特定的準則進行可能的 reduced model 之評量。 例如,full_model 有 3 個自變數, 則可以一次比較所有 7 個可能模型的 AICc 值, 幫助你選出最佳模型,而不是按傳統的 step() 來進行。 b. get.models(dredge 的回傳物件) 可以按特定的規則提取出經 dredge() 的較優良的模型。 會回傳一個 list,之內每項為 model 同樣物件。 c. importance(dredge 的回傳物件) 取得各自變數「綜合各模型」的重要性。 d. model.avg(dredge 或 get.models 的回傳物件) 計算數個模型根據優良程度「加權平均」之係數, 分成 full average 和 conditional average 二類, 在 help(model.avg) 中有更多說明其不同之處。 在你無法選出一個最佳模型的時候會有作用。 4. 分享內容: library(MuMIn) # 建立一個一般線性模型 y ~ x1 + x2 + x3 + x4 + x5 # x1 到 x3 對 y 的重要性越來越低,x4 和 x5 是冗餘的 N <- 100 set.seed(123) dt <- data.frame( x1 = runif(N), x2 = runif(N), x3 = runif(N), x4 = runif(N), x5 = runif(N) ) dt$y <- dt$x1 * rnorm(N, mean = 5, sd = 0.1) + dt$x2 * rnorm(N, mean = 20, sd = 5) + dt$x3 * rnorm(N, mean = 30, sd = 20) + rnorm(N) full.model <- lm( y ~ x1 + x2 + x3 + x4 + x5, data = dt, na.action = "na.fail" # 在有缺失值時可避免不全相同資料 ) dd1 <- dredge(full.model) dd1 # 暴力解所有可能模型 dd2 <- subset(dd1, delta < 4) dd2 # 只看 AICc 與最小 AICc 模型的差 4 之內的模型 get.models(dd1, delta < 4) # 同上,但回傳的是 lm 物件 importance(dd2) # 在 dd2 各模型中自變數「累積」的重要性 model.avg(dd2) # 取得 dd2 之下的「平均模型」, # 另見手冊中對「average」與「subset」之說明 5. 備註 我並不支持變數選擇僅靠單一的指標進行, 所以對我來說這只是個參考工具。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.110.74 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1480027332.A.E1A.html ※ 編輯: andrew43 (220.135.110.74), 11/25/2016 06:42:57
cywhale: 推~ 感謝分享~~ 11/25 16:22