stepAIC
位於 MASS
包(package)。 說明
通過 AIC 執行逐步模型選擇。
用法
stepAIC(object, scope, scale = 0,
direction = c("both", "backward", "forward"),
trace = 1, keep = NULL, steps = 1000, use.start = FALSE,
k = 2, ...)
參數
object |
代表適當類的模型的對象。這用作逐步搜索中的初始模型。 |
scope |
定義逐步搜索中檢查的模型範圍。這應該是單個公式,或者是包含組件 |
scale |
用於定義模型選擇的 AIC 統計量,目前僅適用於 |
direction |
逐步搜索的模式,可以是 |
trace |
如果為正,則在 |
keep |
一個過濾函數,其輸入是擬合模型對象和關聯的 |
steps |
要考慮的最大步驟數。默認值為 1000(本質上是需要的數量)。它通常用於提前停止該過程。 |
use.start |
如果為 true,則從當前所選模型的線性預測器開始完成更新的擬合。這可能會加快迭代計算速度 |
k |
用於懲罰的自由度數的倍數。隻有 |
... |
|
細節
搜索的模型集由 scope
參數確定。其lower
組件的右側始終包含在模型中,模型的右側包含在upper
組件中。如果scope
是單個公式,則它指定upper
組件,並且lower
模型為空。如果scope
缺失,則初始模型將用作upper
模型。
scope
指定的模型可以作為更新 object
的模板,如 update.formula
使用的那樣。
使用 glm
與變量 scale
配合存在潛在問題,因為在這種情況下,偏差不僅僅與最大化對數似然相關。 extractAIC
的 glm
方法對 gaussian
係列進行了適當的調整,但可能需要針對其他情況進行修改。 (binomial
和 poisson
係列默認修複了 scale
,並且不對應於變量 scale
的特定 maximum-likelihood 問題。)
如果存在常規偏差(例如,lm
、aov
和 glm
適合),則會在方差分析表中引用:它是未縮放偏差。
值
返回逐步選擇的模型,最多帶有兩個附加組件。有一個 "anova"
組件對應於搜索中采取的步驟,如果在調用中提供了 keep=
參數,則還有一個 "keep"
組件。偏差表分析的 "Resid. Dev"
列是指一個常數減去兩倍最大對數似然:僅在明確定義飽和模型的情況下才會出現偏差(因此不包括 lm
、 aov
和 survreg
)。
注意
模型擬合必須將模型應用到同一數據集。如果存在缺失值和na.action
以外na.fail
使用(就像默認的R)。我們建議您先刪除缺失值。
例子
quine.hi <- aov(log(Days + 2.5) ~ .^4, quine)
quine.nxt <- update(quine.hi, . ~ . - Eth:Sex:Age:Lrn)
quine.stp <- stepAIC(quine.nxt,
scope = list(upper = ~Eth*Sex*Age*Lrn, lower = ~1),
trace = FALSE)
quine.stp$anova
cpus1 <- cpus
for(v in names(cpus)[2:7])
cpus1[[v]] <- cut(cpus[[v]], unique(quantile(cpus[[v]])),
include.lowest = TRUE)
cpus0 <- cpus1[, 2:8] # excludes names, authors' predictions
cpus.samp <- sample(1:209, 100)
cpus.lm <- lm(log10(perf) ~ ., data = cpus1[cpus.samp,2:8])
cpus.lm2 <- stepAIC(cpus.lm, trace = FALSE)
cpus.lm2$anova
example(birthwt)
birthwt.glm <- glm(low ~ ., family = binomial, data = bwt)
birthwt.step <- stepAIC(birthwt.glm, trace = FALSE)
birthwt.step$anova
birthwt.step2 <- stepAIC(birthwt.glm, ~ .^2 + I(scale(age)^2)
+ I(scale(lwt)^2), trace = FALSE)
birthwt.step2$anova
quine.nb <- glm.nb(Days ~ .^4, data = quine)
quine.nb2 <- stepAIC(quine.nb)
quine.nb2$anova
參考
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.
也可以看看
相關用法
- R steam 飽和蒸汽壓力數據
- R stormer Stormer 粘度計數據
- R studres 從線性模型中提取學生化殘差
- R stdres 從線性模型中提取標準化殘差
- R summary.rlm 魯棒線性模型的總結方法
- R summary.negbin 類“negbin”對象的摘要方法函數
- R shoes Box、Hunter、Hunter的鞋穿數據
- R sammon Sammon 非線性映射
- R ships 船舶損壞數據
- R survey 學生調查數據
- R shrimp 蝦雞尾酒中蝦的百分比
- R snails 蝸牛死亡率數據
- R shuttle 航天飛機自動著陸器問題
- R summary.loglm 類“loglm”對象的摘要方法函數
- R synth.tr 綜合分類問題
- R ginv 廣義逆矩陣
- R housing 哥本哈根住房條件調查的頻率表
- R biopsy 乳腺癌患者的活檢數據
- R predict.qda 根據二次判別分析進行分類
- R contr.sdif 連續差異對比編碼
- R Melanoma 惡性黑色素瘤的生存率
- R boxcox 線性模型的 Box-Cox 變換
- R predict.glmmPQL glmmPQL 擬合的預測方法
- R ucv 帶寬選擇的無偏交叉驗證
- R theta.md 估計負二項式的 theta
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Choose a model by AIC in a Stepwise Algorithm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。