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.