Load packages and data
library(vcd)
library(car) # for Anova()
library(MASS) # for polr()
library(effects) # effect plots
data(Arthritis, package = "vcd")
Fit the proportional odds model
arth.polr <- polr(Improved ~ Sex + Treatment + Age, data=Arthritis)
summary(arth.polr)
## Call:
## polr(formula = Improved ~ Sex + Treatment + Age, data = Arthritis)
##
## Coefficients:
## Value Std. Error t value
## SexMale -1.2517 0.5464 -2.29
## TreatmentTreated 1.7453 0.4759 3.67
## Age 0.0382 0.0184 2.07
##
## Intercepts:
## Value Std. Error t value
## None|Some 2.532 1.057 2.395
## Some|Marked 3.431 1.091 3.144
##
## Residual Deviance: 145.46
## AIC: 155.46
Anova(arth.polr) # Type II tests
## Analysis of Deviance Table (Type II tests)
##
## Response: Improved
## LR Chisq Df Pr(>Chisq)
## Sex 5.69 1 0.01708 *
## Treatment 14.71 1 0.00013 ***
## Age 4.57 1 0.03251 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
arth.effects <- allEffects(arth.polr, xlevels=list(age=seq(15,45,5)) )
plot(arth.effects) # visualize all main effects

plot terms not in model
plot(effect("Sex:Age", arth.polr))

plot(effect("Treatment:Age", arth.polr))

IycgLS0tDQojJyB0aXRsZTogIkFydGhyaXRpcyBkYXRhOiBQcm9wb3J0aW9uYWwgb2RkcyBtb2RlbCINCiMnIGF1dGhvcjogIk1pY2hhZWwgRnJpZW5kbHkiDQojJyBkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCkpYCINCiMnIG91dHB1dDoNCiMnICAgaHRtbF9kb2N1bWVudDoNCiMnICAgICB0aGVtZTogcmVhZGFibGUNCiMnICAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQojJyAtLS0NCg0KIysgZWNobz1GQUxTRQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICB3YXJuaW5nID0gRkFMU0UsICAgIyBhdm9pZCB3YXJuaW5ncyBhbmQgbWVzc2FnZXMgaW4gdGhlIG91dHB1dA0KICBtZXNzYWdlID0gRkFMU0UNCikNCg0KIycgIyMgTG9hZCBwYWNrYWdlcyBhbmQgZGF0YQ0KIycgDQpsaWJyYXJ5KHZjZCkNCmxpYnJhcnkoY2FyKSAgICAgICAgICMgZm9yIEFub3ZhKCkNCmxpYnJhcnkoTUFTUykgICAgICAgICMgZm9yIHBvbHIoKQ0KbGlicmFyeShlZmZlY3RzKSAgICAgIyBlZmZlY3QgcGxvdHMNCg0KZGF0YShBcnRocml0aXMsIHBhY2thZ2UgPSAidmNkIikNCg0KIycgIyMgRml0IHRoZSBwcm9wb3J0aW9uYWwgb2RkcyBtb2RlbA0KIycgDQphcnRoLnBvbHIgPC0gcG9scihJbXByb3ZlZCB+IFNleCArIFRyZWF0bWVudCArIEFnZSwgZGF0YT1BcnRocml0aXMpDQpzdW1tYXJ5KGFydGgucG9scikNCkFub3ZhKGFydGgucG9scikgICAgICAjIFR5cGUgSUkgdGVzdHMNCg0KYXJ0aC5lZmZlY3RzIDwtIGFsbEVmZmVjdHMoYXJ0aC5wb2xyLCB4bGV2ZWxzPWxpc3QoYWdlPXNlcSgxNSw0NSw1KSkgKQ0KcGxvdChhcnRoLmVmZmVjdHMpICAjIHZpc3VhbGl6ZSBhbGwgbWFpbiBlZmZlY3RzDQoNCiMnICMjIHBsb3QgdGVybXMgbm90IGluIG1vZGVsDQpwbG90KGVmZmVjdCgiU2V4OkFnZSIsIGFydGgucG9scikpDQpwbG90KGVmZmVjdCgiVHJlYXRtZW50OkFnZSIsIGFydGgucG9scikpDQoNCg0K