housing {MASS}R Documentation

Frequency Table from a Copenhagen Housing Conditions Survey.

Description

The housing data frame has 72 rows and variables.

Arguments

Sat Satisfaction of householders with their present housing circumstances, (High, Medium or Low).
Infl Percieved degree of influence householders have on the management of the property (High, Medium, Low).
Type Type of rental accommodation, (Tower, Atrium, Apartment, Terrace).
Cont Contact residents are afforded with other residents, (Low, High).
Freq Frequencies: the numbers of residents in each class.

Format

Source

Madsen, M. (1976) Statistical analysis of multiple contingency tables. Two examples. Scand. J. Statist., 3, 97-106.

Cox, D. R. and Snell, E. J. (1984) Applied Statistics, Principles and Examples, Chapman & Hall.

Examples

data(housing)
options(contrasts=c("contr.treatment", "contr.poly"))

# Surrogate Poisson models
house.glm0 <- glm(Freq ~ Infl*Type*Cont + Sat, family=poisson, 
                   data=housing)
summary(house.glm0, cor=FALSE)

addterm(house.glm0, ~. + Sat:(Infl+Type+Cont), test="Chisq")

house.glm1 <- update(house.glm0, . ~ . + Sat*(Infl+Type+Cont))
summary(house.glm1, cor=FALSE)

1 - pchisq(deviance(house.glm1), house.glm1$df.resid)

dropterm(house.glm1, test="Chisq")

addterm(house.glm1, ~. + Sat:(Infl+Type+Cont)^2, test = "Chisq")

hnames <- lapply(housing[, -5], levels) # omit Freq
house.pm <- predict(house.glm1, expand.grid(hnames),
                   type = "response")  # poisson means
house.pm <- matrix(house.pm, ncol=3, byrow=TRUE, 
                  dimnames=list(NULL, hnames[[1]]))
house.pr <- house.pm/drop(house.pm %*% rep(1, 3))
cbind(expand.grid(hnames[-1]), round(house.pr, 2))

# Iterative proportional scaling
loglm(Freq ~ Infl*Type*Cont + Sat*(Infl+Type+Cont), data=housing)

# multinomial model
library(nnet)
house.mult<- multinom(Sat ~ Infl + Type + Cont, weights=Freq,
                       data=housing)
house.mult
house.mult2 <- multinom(Sat ~ Infl*Type*Cont, weights=Freq,
                         data=housing)
anova(house.mult, house.mult2)

house.pm <- predict(house.mult, expand.grid(hnames[-1]),
                    type = "probs")
cbind(expand.grid(hnames[-1]), round(house.pm, 2))


# proportional odds model
house.cpr <- apply(house.pr, 1, cumsum)
logit <- function(x) log(x/(1-x))
house.ld <- logit(house.cpr[2, ]) - logit(house.cpr[1, ])
sort(drop(house.ld))
mean(.Last.value)

house.plr <- polr(Sat ~ Infl + Type + Cont, 
               data = housing, weights = Freq)
house.plr

house.pr1 <- predict(house.plr, expand.grid(hnames[-1]),
                   type = "probs")
cbind(expand.grid(hnames[-1]), round(house.pr1, 2))

Fr <- matrix(housing$Freq, ncol = 3, byrow=TRUE)
2*sum(Fr*log(house.pr/house.pr1))

house.plr2 <- stepAIC(house.plr, ~.^2)
house.plr2$anova


[Package Contents]