假设我们想使用收入、年轻人口、城市化程度和地区作为回归变量来模拟美国州公立学校的支出(教育)。有关更多信息:?Anscombe
模型:education ~ (income+young+urban)*region
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)
在BIC方面,具有3个变量和1个交互作用的模型(教育程度~收入+年轻+城市+西部地区:年轻)似乎是最好的。
coef(MOD1.subset,4)
问题是,我如何在不手动编写公式的情况下从该模型中获取ML对象?
在发布之前,我发现了HH包,它有一些有趣的函数适用于regsubsets对象,例如summaryHH和lm.regsubsets。
library(HH)
summaryHH(MOD1.subset)[4,]
lm.regsubsets(MOD1.subset,4)
lm.regsubsets
可以实现我想要的功能,但我认为在解析交互作用方面存在一些问题,是否有其他替代方法?