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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。