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.25168    0.54636  -2.291
## TreatmentTreated  1.74529    0.47589   3.667
## Age               0.03816    0.01842   2.072
## 
## Intercepts:
##             Value   Std. Error t value
## None|Some    2.5319  1.0571     2.3952
## Some|Marked  3.4309  1.0912     3.1443
## 
## Residual Deviance: 145.4579 
## AIC: 155.4579
Anova(arth.polr)      # Type II tests
## Analysis of Deviance Table (Type II tests)
## 
## Response: Improved
##           LR Chisq Df Pr(>Chisq)    
## Sex         5.6880  1  0.0170812 *  
## Treatment  14.7095  1  0.0001254 ***
## Age         4.5715  1  0.0325081 *  
## ---
## 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