library(logmult)
## Loading required package: gnm
##
## Attaching package: 'logmult'
## The following object is masked from 'package:gnm':
##
## se
data(criminal )
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
(a) Use loglm() to test whether there is an association between Year and Age. Is there evidence that dropping of charges in relation to age changed over the years recorded here?
library(MASS)
logcrime = loglm(~Age + Year, data=criminal, fitted=TRUE)
logcrime
## Call:
## loglm(formula = ~Age + Year, data = criminal, fitted = TRUE)
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 38.24466 12 0.0001400372
## Pearson 38.41033 12 0.0001315495
residuals(logcrime)
## Age
## Year 15 16 17 18 19
## 1955 -1.47267865 -1.84466541 -1.15884421 1.49552255 2.05240492
## 1956 -1.23369909 -1.44995672 0.03292566 1.48282105 0.49553595
## 1957 0.70126832 0.44733154 1.22306238 -0.83812308 -1.17518982
## 1958 1.70597396 2.48410907 -0.20538951 -1.97471596 -1.23179240
For different ages in different years, crimes had have changed. For example in ages 15 and 16 over years from 1955-1958 crime charge is increasing and even in age 16 in 1958 (2.48410907) the rate of crime increasing is more than age 15 in 1958 ( 1.70597396)
(b) Use mosaic() with the option shade=TRUE to display the pattern of signs and magnitudes of the residuals. Compare this with the result of mosaic() using “Friendly shading,”from the option gp=shading_Friendly. Describe verbally what you see in each regarding the pattern of association in this table.
library(vcd)
## Loading required package: grid
##
## Attaching package: 'vcd'
## The following object is masked from 'package:logmult':
##
## assoc
par(mfrow=c(1,2))
mosaic(logcrime, shade=TRUE ,labeling = labeling_residuals)

mosaic(logcrime, shade=TRUE , gp=shading_Friendly ,labeling = labeling_residuals,suppress=0)

Both mosaic plots show the associaton of age and year along with changes of the crime rate. In first one the blue one squares show the strong association and weak or no association has shown with gray color. In second one we can see where the association is strong and where we have negative associan of rating crime along with changing of years and ages
library(vcdExtra)
data("Accident", package="vcdExtra")
Accident
## age result mode gender Freq
## 1 50+ Died Pedestrian Male 704
## 2 50+ Died Pedestrian Female 378
## 3 50+ Died Bicycle Male 396
## 4 50+ Died Bicycle Female 56
## 5 50+ Died Motorcycle Male 742
## 6 50+ Died Motorcycle Female 78
## 7 50+ Died 4-Wheeled Male 513
## 8 50+ Died 4-Wheeled Female 253
## 9 50+ Injured Pedestrian Male 5206
## 10 50+ Injured Pedestrian Female 5449
## 11 50+ Injured Bicycle Male 3863
## 12 50+ Injured Bicycle Female 1030
## 13 50+ Injured Motorcycle Male 8597
## 14 50+ Injured Motorcycle Female 1387
## 15 50+ Injured 4-Wheeled Male 7423
## 16 50+ Injured 4-Wheeled Female 5552
## 17 30-49 Died Pedestrian Male 223
## 18 30-49 Died Pedestrian Female 49
## 19 30-49 Died Bicycle Male 146
## 20 30-49 Died Bicycle Female 24
## 21 30-49 Died Motorcycle Male 889
## 22 30-49 Died Motorcycle Female 98
## 23 30-49 Died 4-Wheeled Male 720
## 24 30-49 Died 4-Wheeled Female 199
## 25 30-49 Injured Pedestrian Male 3178
## 26 30-49 Injured Pedestrian Female 1814
## 27 30-49 Injured Bicycle Male 3024
## 28 30-49 Injured Bicycle Female 1118
## 29 30-49 Injured Motorcycle Male 18909
## 30 30-49 Injured Motorcycle Female 3664
## 31 30-49 Injured 4-Wheeled Male 15086
## 32 30-49 Injured 4-Wheeled Female 7712
## 33 20-29 Died Pedestrian Male 78
## 34 20-29 Died Pedestrian Female 24
## 35 20-29 Died Bicycle Male 55
## 36 20-29 Died Bicycle Female 10
## 37 20-29 Died Motorcycle Male 660
## 38 20-29 Died Motorcycle Female 82
## 39 20-29 Died 4-Wheeled Male 353
## 40 20-29 Died 4-Wheeled Female 107
## 41 20-29 Injured Pedestrian Male 1521
## 42 20-29 Injured Pedestrian Female 864
## 43 20-29 Injured Bicycle Male 1565
## 44 20-29 Injured Bicycle Female 609
## 45 20-29 Injured Motorcycle Male 18558
## 46 20-29 Injured Motorcycle Female 4010
## 47 20-29 Injured 4-Wheeled Male 9084
## 48 20-29 Injured 4-Wheeled Female 4361
## 49 10-19 Died Pedestrian Male 70
## 50 10-19 Died Pedestrian Female 28
## 51 10-19 Died Bicycle Male 76
## 52 10-19 Died Bicycle Female 31
## 53 10-19 Died Motorcycle Male 362
## 54 10-19 Died Motorcycle Female 54
## 55 10-19 Died 4-Wheeled Male 150
## 56 10-19 Died 4-Wheeled Female 61
## 57 10-19 Injured Pedestrian Male 1827
## 58 10-19 Injured Pedestrian Female 1495
## 59 10-19 Injured Bicycle Male 3407
## 60 10-19 Injured Bicycle Female 7218
## 61 10-19 Injured Motorcycle Male 12311
## 62 10-19 Injured Motorcycle Female 3587
## 63 10-19 Injured 4-Wheeled Male 3543
## 64 10-19 Injured 4-Wheeled Female 2593
## 65 0-9 Died Pedestrian Male 150
## 66 0-9 Died Pedestrian Female 89
## 67 0-9 Died Bicycle Male 26
## 68 0-9 Died Bicycle Female 5
## 69 0-9 Died Motorcycle Male 6
## 70 0-9 Died Motorcycle Female 6
## 71 0-9 Died 4-Wheeled Male 70
## 72 0-9 Died 4-Wheeled Female 65
## 73 0-9 Injured Pedestrian Male 3341
## 74 0-9 Injured Pedestrian Female 1967
## 75 0-9 Injured Bicycle Male 378
## 76 0-9 Injured Bicycle Female 126
## 77 0-9 Injured Motorcycle Male 181
## 78 0-9 Injured Motorcycle Female 131
## 79 0-9 Injured 4-Wheeled Male 1593
## 80 0-9 Injured 4-Wheeled Female 1362
str(Accident,vec.len=2 )
## 'data.frame': 80 obs. of 5 variables:
## $ age : Ord.factor w/ 5 levels "0-9"<"10-19"<..: 5 5 5 5 5 ...
## $ result: Factor w/ 2 levels "Died","Injured": 1 1 1 1 1 ...
## $ mode : Factor w/ 4 levels "4-Wheeled","Bicycle",..: 4 4 2 2 3 ...
## $ gender: Factor w/ 2 levels "Female","Male": 2 1 2 1 2 ...
## $ Freq : int 704 378 396 56 742 ...
(a) Use loglm() to fit the model of mutual independence, Freq ~ age+mode+gender+result to this data set.
logaccident =loglm(Freq ~ age+mode+gender+result,data=Accident)
logaccident
## 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
(b) Use mosaic() to produce an interpretable mosaic plot of the associations among all variables under the model of mutual independence. Try different orders of the variables in the mosaic. (Hint: the abbreviate component of the labeling_args argument to mosaic() will be useful to avoid some overlap of the category labels.)
mosaic(Freq ~ age+mode+gender+result,data=Accident, shade=TRUE ,labeling = labeling_residuals)

mosaic(Freq ~ mode+age+gender+result,data=Accident, shade=TRUE ,labeling = labeling_residuals)

mosaic(Freq ~ mode+age+result+gender,data=Accident, shade=TRUE ,labeling = labeling_residuals)

mosaic(Freq ~ result+gender+mode+age,data=Accident, shade=TRUE ,labeling = labeling_residuals,gp = shading_Friendly )

(c) Treat result (“Died” vs. “Injured”) as the response variable, and fit the model Freq ~ agemodegender + result that asserts independence of result from all others jointly.
model=loglm(Freq ~ age*mode*gender + result,data=Accident)
model
## 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
residuals(model)
## Re-fitting to get frequencies and fitted values
## , , gender = Female, result = Died
##
## mode
## age 4-Wheeled Bicycle Motorcycle Pedestrian
## 0-9 0.4044372 -0.2883238 0.02764696 -0.003318171
## 10-19 -5.5295555 -20.5492812 -9.57139708 -5.284510981
## 20-29 -6.7968227 -3.7268627 -8.00153039 -2.505948867
## 30-49 -8.4237158 -4.0252558 -5.49582146 -3.805972645
## 50+ 0.1023905 1.2698211 1.76414829 7.362385302
##
## , , gender = Male, result = Died
##
## mode
## age 4-Wheeled Bicycle Motorcycle Pedestrian
## 0-9 -0.2383503 1.8952415 -0.7730127 -0.09539242
## 10-19 -0.7926576 -6.7432276 -8.5051755 -1.37536300
## 20-29 -2.8193083 -1.8807442 -6.1952065 1.03143082
## 30-49 1.3473326 0.7373355 1.0755386 5.79508969
## 50+ 8.5067763 13.4931983 15.0163987 22.99148063
##
## , , gender = Female, result = Injured
##
## mode
## age 4-Wheeled Bicycle Motorcycle Pedestrian
## 0-9 -0.08681334 0.06003717 -0.005893555 0.0007059028
## 10-19 1.06644600 3.37443045 1.747870190 0.9899511481
## 20-29 1.31828709 0.68732538 1.515375278 0.4944770837
## 30-49 1.64513071 0.76706481 1.078683644 0.7480450695
## 50+ -0.02180822 -0.27877320 -0.389615068 -1.6895637615
##
## , , gender = Male, result = Injured
##
## mode
## age 4-Wheeled Bicycle Motorcycle Pedestrian
## 0-9 0.05046081 -0.4342379 0.1565267 0.02026744
## 10-19 0.16679001 1.2914245 1.6919847 0.28479530
## 20-29 0.58510138 0.3842333 1.2679923 -0.22414064
## 30-49 -0.28921038 -0.1585823 -0.2302833 -1.33276013
## 50+ -1.95080463 -3.3438141 -3.5943846 -6.04042077
(d) Construct a mosaic display for the residual associations in this model. Which combinations of the predictor factors are more likely to result in death?
mosaic(model,data=Accident, shade=TRUE ,labeling = labeling_residuals,gp=shading_Friendly ,suppress=0)

The combination of being man and pedestrian ang age 50+ are more likely to result in death.