*Building models

In R building and changing a model is an interactive and iterative process.

Assume that we start with this model

model1 <- lm(infmor ~ urb + gnpcap + doct)store it as a object we will modify later using appropriate functions
summary(model1)Display the regression table

infmor ~ urb + gnpcap + doct) is a formula (click on the link if you do not know what this means, as this is essential for what follows.

Adding and removing terms from a regression

Nested/hierarchical regression is not implemented as a specific method, you simply add or remove variables you consider as "blocks" to be dealt together simultaneously.

model2 = update(model1, .~.,-doct)Take the initial model and remove doct. .~. this syntax means the same dependent and independents (dot means the same
model3=update(model1,log(.)~.)Same model, but log of dependent
model4=update(model1,~.~,+lit - gnpcap) Add lit and remove gnpcap
Stepwise regression

Stepwise regression as well works from a model you have already defined as above.

There are two basic functions add1 and drop1 to add and remove variables from a model of type lm or glm. step calls these functions repeatedly

step(model1, direction="backward")
step(model1, direction="forward")
step(model1)

Other variable selection functions are available

Package {MASS}

model <- lm(infmor~urb+gnpcap+lit,data=world)Model as usual
model1 <- stepAIC(model, direction="both")Use stepAIC()
summary(model1) Display regression table

All Subsets regression: Package {leaps}

model<-regsubsets(infmor~urb+gnpcap+lit+gnpagr+doct,data=world,nbest=10)
summary(model)Display results
plot(model,scale="r2")table of models, ordered by r2
subsets(leaps, statistic="rsq") {car} alternative model plots from {car}
See also