library(logmult)
## Warning: package 'logmult' was built under R version 3.3.3
## Loading required package: gnm
##
## Attaching package: 'logmult'
## The following object is masked from 'package:gnm':
##
## se
library(vcd)
## Warning: package 'vcd' was built under R version 3.3.3
## Loading required package: grid
##
## Attaching package: 'vcd'
## The following object is masked from 'package:logmult':
##
## assoc
library(vcdExtra)
## Warning: package 'vcdExtra' was built under R version 3.3.3
library(MASS)
## Warning: package 'MASS' was built under R version 3.3.3
data("criminal",package="logmult")
criminal
## Age
## Year 15 16 17 18 19
## 1955 141 285 320 441 427
## 1956 144 292 342 441 396
## 1957 196 380 424 462 427
## 1958 212 424 399 442 430
loglm(~Year + Age, data = criminal)
## Call:
## loglm(formula = ~Year + Age, data = criminal)
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 38.24466 12 0.0001400372
## Pearson 38.41033 12 0.0001315495
p-value is very small, so it suggest that there might be relation. However, chi square is also very small, so there is not enough relation.
mosaic(criminal, shade = TRUE,labeling = labeling_residuals)
mosaic(criminal, gp = shading_Friendly,labeling = labeling_residuals)
Using “Friendly shading”, it is easier to see a pattern. The most related ones are age 19 in year 1955 and age 16 in year 1958.
data("Accident",package="vcdExtra")
str(Accident)
## 'data.frame': 80 obs. of 5 variables:
## $ age : Ord.factor w/ 5 levels "0-9"<"10-19"<..: 5 5 5 5 5 5 5 5 5 5 ...
## $ result: Factor w/ 2 levels "Died","Injured": 1 1 1 1 1 1 1 1 2 2 ...
## $ mode : Factor w/ 4 levels "4-Wheeled","Bicycle",..: 4 4 2 2 3 3 1 1 4 4 ...
## $ gender: Factor w/ 2 levels "Female","Male": 2 1 2 1 2 1 2 1 2 1 ...
## $ Freq : int 704 378 396 56 742 78 513 253 5206 5449 ...
loglm(Freq~ age + mode + gender + result, data=Accident)
## Call:
## loglm(formula = Freq ~ age + mode + gender + result, data = Accident)
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 60320.05 70 0
## Pearson 76865.31 70 0
levels(Accident$mode)
## [1] "4-Wheeled" "Bicycle" "Motorcycle" "Pedestrian"
Accident$mode <- ordered(Accident$mode, levels=levels(Accident$mode)[c(1,3,2,4)])
mosaic(loglm(Freq ~ age + mode + gender + result, data = Accident), labeling_args = list(abbreviate=c(mode=3,gender=1,result=3)))
loglm(Freq ~ age * mode * gender + result, data = Accident)
## Call:
## loglm(formula = Freq ~ age * mode * gender + result, data = Accident)
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 2217.72 39 0
## Pearson 2347.60 39 0
mosaic(loglm(Freq ~ age * mode * gender + result, data = Accident), gp = shading_Friendly, labeling = labeling_residuals)
From the mosaic display, we can tell that 50+ year old male pedestrian is mostly likely to result in death in a traffic accident.