假设我们想使用收入、年轻人、城市和地区作为回归变量来模拟美国公立学校的支出(教育)。欲了解更多信息:?Anscombe
模型:教育〜(收入+年轻+城市)*地区
library(car)
library(leaps)
#Loading Data
data(Anscombe)
data(state)
stateinfo <- data.frame(region=state.region,row.names=state.abb)
datamodel <- data.frame(merge(stateinfo,Anscombe,by="row.names"),row.names=1)
head(datamodel)
region education income young urban
AK West 372 4146 439.7 484
AL South 112 2337 362.2 584
AR South 134 2322 351.9 500
AZ West 207 3027 387.5 796
CA West 273 3968 348.4 909
CO West 192 3340 358.1 785
#Saturated Model
MOD1 <- lm(education~(.-region)*region,datamodel)
summary(MOD1)
#anova(MOD1)
#Look for the "best" model
MOD1.subset <- regsubsets(education~(.-region)*region,datamodel,nvmax=15)
plot(MOD1.subset)
具有 3 个变量和 1 个交互作用(教育~收入+年轻+城市+RegionWest:young)的模型在 BIC 方面似乎是最好的。
coef(MOD1.subset,4)
问题是,如何在不手动编写公式的情况下从该模型中获取 ML 对象?
在发布之前,我发现包 HH 具有一些有趣的 regsubsets 对象功能,例如summaryHH
和lm.regsubsets
。
library(HH)
summaryHH(MOD1.subset)[4,]
lm.regsubsets(MOD1.subset,4)
lm.regsubsets
做我想要的,但我认为解析交互有一些问题,还有其他选择吗?