setwd("/Users/subasishdas1/Dropbox/---- TRB_2017 ----/SHRP2 Inclement")
aa <- read.csv("FINAL_5a.csv")
names(aa)
##  [1] "CR.A.AMSHNUM_AG" "ID_A"            "CRASHNUM1"      
##  [4] "DataType"        "HIGHESTINJ"      "Category"       
##  [7] "Category1"       "Vis_Score"       "SKIDNUMBER"     
## [10] "RCISLDWTH1"      "RCISLDWTH2"      "AVG_SH_WID"     
## [13] "RCIAADT"         "RCIAVGTFCT"      "RCIMAXSPD"      
## [16] "LIGHTCOND"       "WEATHCOND"       "DIV_UNDIV"      
## [19] "AGE_DRPED"       "RDSURFCOND"      "YEAR"           
## [22] "CNTOFVEH"        "ID"              "Airport_Na"     
## [25] "Airport_Nu"      "LATITUDE"        "LONGITUDE"      
## [28] "CRSHCAUSE1"      "CNTOFINJ"        "CNTOFFATL"      
## [31] "CNTOFSVINJ"      "RCIFUNCLAS"      "RCIACC"         
## [34] "CR_LATITUDE"     "CR_LONGITUDE"    "RCISLDWTH3"     
## [37] "RCIMEDWDTH"      "StartDate"       "Start_Time"     
## [40] "End_Date"        "End_Time"        "Duration"       
## [43] "HIGHESTINJ1"     "Vis_Score1"      "SKIDNUMBER1"    
## [46] "RCIAADT1"        "RCIAVGTFCT1"     "RCIMAXSPD1"     
## [49] "LIGHTCOND1"      "WEATHCOND1"      "DIV_UNDIV1"     
## [52] "AGE_DRPED1"      "RDSURFCOND1"     "CNTOFVEH1"      
## [55] "RCIFUNCLAS1"     "RCIMEDWDTH1"
aa1 <- aa[c(44, 43, 15, 13, 9, 12, 19, 14, 48, 46, 45, 49, 51, 52)]
names(aa1)
##  [1] "Vis_Score1"  "HIGHESTINJ1" "RCIMAXSPD"   "RCIAADT"     "SKIDNUMBER" 
##  [6] "AVG_SH_WID"  "AGE_DRPED"   "RCIAVGTFCT"  "RCIMAXSPD1"  "RCIAADT1"   
## [11] "SKIDNUMBER1" "LIGHTCOND1"  "DIV_UNDIV1"  "AGE_DRPED1"
summary(aa1)
##                 Vis_Score1       HIGHESTINJ1      RCIMAXSPD    
##  Excellent Visibility:11666   Fatal    :  181   Min.   :25.00  
##  Medium Visibility   : 9815   Injury   :11293   1st Qu.:40.00  
##  Poor Visibility     : 2138   No Injury:12145   Median :45.00  
##                                                 Mean   :45.25  
##                                                 3rd Qu.:50.00  
##                                                 Max.   :70.00  
##                                                                
##     RCIAADT         SKIDNUMBER      AVG_SH_WID       AGE_DRPED     
##  Min.   :     0   Min.   : 0.00   Min.   : 0.000   Min.   : 15.00  
##  1st Qu.: 26000   1st Qu.:33.00   1st Qu.: 1.000   1st Qu.: 25.00  
##  Median : 40500   Median :36.00   Median : 3.000   Median : 38.00  
##  Mean   : 60909   Mean   :35.29   Mean   : 3.844   Mean   : 39.57  
##  3rd Qu.: 60500   3rd Qu.:40.00   3rd Qu.: 6.000   3rd Qu.: 51.00  
##  Max.   :304000   Max.   :62.00   Max.   :19.500   Max.   :108.00  
##                                                                    
##    RCIAVGTFCT     RCIMAXSPD1              RCIAADT1    SKIDNUMBER1  
##  Min.   : 0.000   >60  : 2600   >124,999      :3131   > 50 :  250  
##  1st Qu.: 3.300   0-30 : 1827   0-9999        : 871   20-30: 1738  
##  Median : 4.530   30-45:15013   10,000-34,999 :8127   30-40:15920  
##  Mean   : 5.171   45-60: 4179   35,000-54,999 :7226   40-50: 4702  
##  3rd Qu.: 6.260                 55,000-124,999:4050   NA's : 1009  
##  Max.   :31.770                 NA's          : 214                
##                                                                    
##                  LIGHTCOND1        DIV_UNDIV1      AGE_DRPED1  
##  Dark(No Street light):  818   divided  :16111   20-29  :6190  
##  Dark(Street Light)   : 6417   undivided: 7192   30-39  :4555  
##  Dawn/Dusk            : 1195   unknown  :  316   40-49  :4358  
##  Daylight             :15189                     50-59  :3455  
##                                                  60-69  :1914  
##                                                  (Other):2686  
##                                                  NA's   : 461
aa2 <- aa1[c(1:8)]
names(aa2)
## [1] "Vis_Score1"  "HIGHESTINJ1" "RCIMAXSPD"   "RCIAADT"     "SKIDNUMBER" 
## [6] "AVG_SH_WID"  "AGE_DRPED"   "RCIAVGTFCT"
library(ordinal) 
m1 <- clm(Vis_Score1 ~HIGHESTINJ1+ RCIMAXSPD+ RCIAADT+ SKIDNUMBER+ RCIAVGTFCT+
            AVG_SH_WID+ AGE_DRPED,  data = aa2)
## Warning: (2) Model is nearly unidentifiable: very large eigenvalue
##  - Rescale variables? 
## In addition: Absolute and relative convergence criteria were met
summary(m1) 
## formula: 
## Vis_Score1 ~ HIGHESTINJ1 + RCIMAXSPD + RCIAADT + SKIDNUMBER + RCIAVGTFCT + AVG_SH_WID + AGE_DRPED
## data:    aa2
## 
##  link  threshold nobs  logLik    AIC      niter max.grad cond.H 
##  logit flexible  23619 -21934.08 43888.17 7(0)  6.38e-07 4.6e+12
## 
## Coefficients:
##                        Estimate Std. Error z value Pr(>|z|)    
## HIGHESTINJ1Injury     2.651e-01  1.515e-01   1.750   0.0801 .  
## HIGHESTINJ1No Injury  2.630e-01  1.514e-01   1.736   0.0825 .  
## RCIMAXSPD             8.029e-03  1.984e-03   4.048 5.17e-05 ***
## RCIAADT              -7.073e-07  2.789e-07  -2.536   0.0112 *  
## SKIDNUMBER           -6.498e-03  1.544e-03  -4.209 2.56e-05 ***
## RCIAVGTFCT            9.086e-04  4.623e-03   0.197   0.8442    
## AVG_SH_WID            2.722e-03  5.076e-03   0.536   0.5918    
## AGE_DRPED            -5.583e-03  7.675e-04  -7.273 3.50e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##                                        Estimate Std. Error z value
## Excellent Visibility|Medium Visibility   0.1235     0.1710   0.722
## Medium Visibility|Poor Visibility        2.4617     0.1721  14.305
anova(m1, update(m1, scale = ~.-(RCIAVGTFCT+AVG_SH_WID)))
## Warning: (-2) Model failed to converge: degenerate Hessian with 1 negative eigenvalues 
## In addition: maximum number of consecutive Newton modifications reached
## Likelihood ratio tests of cumulative link models:
##  
##                                                    formula:                                                                                         
## m1                                                 Vis_Score1 ~ HIGHESTINJ1 + RCIMAXSPD + RCIAADT + SKIDNUMBER + RCIAVGTFCT + AVG_SH_WID + AGE_DRPED
## update(m1, scale = ~. - (RCIAVGTFCT + AVG_SH_WID)) Vis_Score1 ~ HIGHESTINJ1 + RCIMAXSPD + RCIAADT + SKIDNUMBER + RCIAVGTFCT + AVG_SH_WID + AGE_DRPED
##                                                    scale:                        
## m1                                                 ~1                            
## update(m1, scale = ~. - (RCIAVGTFCT + AVG_SH_WID)) ~. - (RCIAVGTFCT + AVG_SH_WID)
##                                                    link: threshold:
## m1                                                 logit flexible  
## update(m1, scale = ~. - (RCIAVGTFCT + AVG_SH_WID)) logit flexible  
## 
##                                                    no.par   AIC logLik
## m1                                                     10 43888 -21934
## update(m1, scale = ~. - (RCIAVGTFCT + AVG_SH_WID))     18 34803 -17383
##                                                    LR.stat df Pr(>Chisq)
## m1                                                                      
## update(m1, scale = ~. - (RCIAVGTFCT + AVG_SH_WID))  9101.6  8  < 2.2e-16
##                                                       
## m1                                                    
## update(m1, scale = ~. - (RCIAVGTFCT + AVG_SH_WID)) ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
m2 <- clm(Vis_Score1 ~HIGHESTINJ1+ RCIMAXSPD+ RCIAADT+ SKIDNUMBER+ AGE_DRPED,  data = aa2)
## Warning: (2) Model is nearly unidentifiable: very large eigenvalue
##  - Rescale variables? 
## In addition: Absolute and relative convergence criteria were met
summary(m2) 
## formula: 
## Vis_Score1 ~ HIGHESTINJ1 + RCIMAXSPD + RCIAADT + SKIDNUMBER + AGE_DRPED
## data:    aa2
## 
##  link  threshold nobs  logLik    AIC      niter max.grad cond.H 
##  logit flexible  23619 -21934.26 43884.53 6(0)  6.71e-07 4.6e+12
## 
## Coefficients:
##                        Estimate Std. Error z value Pr(>|z|)    
## HIGHESTINJ1Injury     2.650e-01  1.515e-01   1.750  0.08017 .  
## HIGHESTINJ1No Injury  2.626e-01  1.514e-01   1.734  0.08289 .  
## RCIMAXSPD             8.688e-03  1.638e-03   5.305 1.13e-07 ***
## RCIAADT              -7.113e-07  2.727e-07  -2.609  0.00909 ** 
## SKIDNUMBER           -6.786e-03  1.467e-03  -4.627 3.72e-06 ***
## AGE_DRPED            -5.578e-03  7.675e-04  -7.268 3.65e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##                                        Estimate Std. Error z value
## Excellent Visibility|Medium Visibility   0.1277     0.1707   0.748
## Medium Visibility|Poor Visibility        2.4658     0.1718  14.352
library(MASS)
m <- polr(Vis_Score1 ~HIGHESTINJ1+ RCIMAXSPD+ RCIAADT+ SKIDNUMBER+ RCIAVGTFCT+ AVG_SH_WID+ AGE_DRPED,  data = aa2, na.action = na.omit, Hess=TRUE)
m
## Call:
## polr(formula = Vis_Score1 ~ HIGHESTINJ1 + RCIMAXSPD + RCIAADT + 
##     SKIDNUMBER + RCIAVGTFCT + AVG_SH_WID + AGE_DRPED, data = aa2, 
##     na.action = na.omit, Hess = TRUE)
## 
## Coefficients:
##    HIGHESTINJ1Injury HIGHESTINJ1No Injury            RCIMAXSPD 
##         2.651082e-01         2.629668e-01         8.029317e-03 
##              RCIAADT           SKIDNUMBER           RCIAVGTFCT 
##        -7.072602e-07        -6.497780e-03         9.085730e-04 
##           AVG_SH_WID            AGE_DRPED 
##         2.721568e-03        -5.582666e-03 
## 
## Intercepts:
## Excellent Visibility|Medium Visibility 
##                              0.1235173 
##      Medium Visibility|Poor Visibility 
##                              2.4616696 
## 
## Residual Deviance: 43868.17 
## AIC: 43888.17
newdat <- cbind(aa1, predict(m, aa2[c(2:8)], type = "probs"))
head(newdat)
##             Vis_Score1 HIGHESTINJ1 RCIMAXSPD RCIAADT SKIDNUMBER AVG_SH_WID
## 1 Excellent Visibility   No Injury        35   34000         36        4.5
## 2 Excellent Visibility      Injury        30   21000         44        1.0
## 3 Excellent Visibility      Injury        30   21000         44        1.0
## 4 Excellent Visibility      Injury        45   22500         33        7.5
## 5 Excellent Visibility   No Injury        45   22500         33        6.0
## 6 Excellent Visibility   No Injury        45   22500         33        6.0
##   AGE_DRPED RCIAVGTFCT RCIMAXSPD1      RCIAADT1 SKIDNUMBER1
## 1        31       8.35      30-45 10,000-34,999       30-40
## 2        55       8.35       0-30 10,000-34,999       40-50
## 3        47       8.35       0-30 10,000-34,999       40-50
## 4        44       8.33      30-45 10,000-34,999       30-40
## 5        32       8.33      30-45 10,000-34,999       30-40
## 6        40       8.33      30-45 10,000-34,999       30-40
##              LIGHTCOND1 DIV_UNDIV1 AGE_DRPED1 Excellent Visibility
## 1 Dark(No Street light)  undivided      30-39            0.4976801
## 2    Dark(Street Light)  undivided      50-59            0.5535496
## 3    Dark(Street Light)  undivided      40-49            0.5424877
## 4              Daylight    divided      40-49            0.4862752
## 5              Daylight    divided      30-39            0.4711119
## 6              Daylight    divided      40-49            0.4822525
##   Medium Visibility Poor Visibility
## 1         0.4135601      0.08875980
## 2         0.3742370      0.07221346
## 3         0.3822488      0.07526348
## 4         0.4212042      0.09252061
## 5         0.4311374      0.09775064
## 6         0.4238656      0.09388186
names(newdat)
##  [1] "Vis_Score1"           "HIGHESTINJ1"          "RCIMAXSPD"           
##  [4] "RCIAADT"              "SKIDNUMBER"           "AVG_SH_WID"          
##  [7] "AGE_DRPED"            "RCIAVGTFCT"           "RCIMAXSPD1"          
## [10] "RCIAADT1"             "SKIDNUMBER1"          "LIGHTCOND1"          
## [13] "DIV_UNDIV1"           "AGE_DRPED1"           "Excellent Visibility"
## [16] "Medium Visibility"    "Poor Visibility"
library(reshape2)
library(ggplot2)
lnewdat <- melt(newdat, id.vars = c("Vis_Score1",  "HIGHESTINJ1", "RCIMAXSPD",   "RCIAADT",     "SKIDNUMBER", "AVG_SH_WID",  "AGE_DRPED",   "RCIAVGTFCT",  "RCIMAXSPD1",  "RCIAADT1",   "SKIDNUMBER1", "LIGHTCOND1",  "DIV_UNDIV1",  "AGE_DRPED1"), variable.name = "Level", value.name="Probability")
head(lnewdat)
##             Vis_Score1 HIGHESTINJ1 RCIMAXSPD RCIAADT SKIDNUMBER AVG_SH_WID
## 1 Excellent Visibility   No Injury        35   34000         36        4.5
## 2 Excellent Visibility      Injury        30   21000         44        1.0
## 3 Excellent Visibility      Injury        30   21000         44        1.0
## 4 Excellent Visibility      Injury        45   22500         33        7.5
## 5 Excellent Visibility   No Injury        45   22500         33        6.0
## 6 Excellent Visibility   No Injury        45   22500         33        6.0
##   AGE_DRPED RCIAVGTFCT RCIMAXSPD1      RCIAADT1 SKIDNUMBER1
## 1        31       8.35      30-45 10,000-34,999       30-40
## 2        55       8.35       0-30 10,000-34,999       40-50
## 3        47       8.35       0-30 10,000-34,999       40-50
## 4        44       8.33      30-45 10,000-34,999       30-40
## 5        32       8.33      30-45 10,000-34,999       30-40
## 6        40       8.33      30-45 10,000-34,999       30-40
##              LIGHTCOND1 DIV_UNDIV1 AGE_DRPED1                Level
## 1 Dark(No Street light)  undivided      30-39 Excellent Visibility
## 2    Dark(Street Light)  undivided      50-59 Excellent Visibility
## 3    Dark(Street Light)  undivided      40-49 Excellent Visibility
## 4              Daylight    divided      40-49 Excellent Visibility
## 5              Daylight    divided      30-39 Excellent Visibility
## 6              Daylight    divided      40-49 Excellent Visibility
##   Probability
## 1   0.4976801
## 2   0.5535496
## 3   0.5424877
## 4   0.4862752
## 5   0.4711119
## 6   0.4822525
names(lnewdat)[2] <- "Severity"
head(lnewdat)
##             Vis_Score1  Severity RCIMAXSPD RCIAADT SKIDNUMBER AVG_SH_WID
## 1 Excellent Visibility No Injury        35   34000         36        4.5
## 2 Excellent Visibility    Injury        30   21000         44        1.0
## 3 Excellent Visibility    Injury        30   21000         44        1.0
## 4 Excellent Visibility    Injury        45   22500         33        7.5
## 5 Excellent Visibility No Injury        45   22500         33        6.0
## 6 Excellent Visibility No Injury        45   22500         33        6.0
##   AGE_DRPED RCIAVGTFCT RCIMAXSPD1      RCIAADT1 SKIDNUMBER1
## 1        31       8.35      30-45 10,000-34,999       30-40
## 2        55       8.35       0-30 10,000-34,999       40-50
## 3        47       8.35       0-30 10,000-34,999       40-50
## 4        44       8.33      30-45 10,000-34,999       30-40
## 5        32       8.33      30-45 10,000-34,999       30-40
## 6        40       8.33      30-45 10,000-34,999       30-40
##              LIGHTCOND1 DIV_UNDIV1 AGE_DRPED1                Level
## 1 Dark(No Street light)  undivided      30-39 Excellent Visibility
## 2    Dark(Street Light)  undivided      50-59 Excellent Visibility
## 3    Dark(Street Light)  undivided      40-49 Excellent Visibility
## 4              Daylight    divided      40-49 Excellent Visibility
## 5              Daylight    divided      30-39 Excellent Visibility
## 6              Daylight    divided      40-49 Excellent Visibility
##   Probability
## 1   0.4976801
## 2   0.5535496
## 3   0.5424877
## 4   0.4862752
## 5   0.4711119
## 6   0.4822525
## Max Speed
library(ggplot2)
m1 <- ggplot(lnewdat, aes(x = RCIMAXSPD, y = Probability, colour = Level)) +
  geom_point(alpha = 1/50, size=1) + facet_grid(~ Severity, labeller="label_both")+theme_bw()+
  aes(colour = Level) + stat_smooth()+labs(x="Max. Speed (mph) \n (a)")+
  theme(legend.position="none")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 

## AADT
library(ggplot2)
m2 <- ggplot(lnewdat, aes(x = RCIAADT, y = Probability, colour = Level)) +
  geom_point(alpha = 1/50, size=1) + facet_grid(~ Severity, labeller="label_both")+theme_bw()+
  aes(colour = Level) + stat_smooth()+labs(x="AADT (vpd) \n (b)")+
  theme(legend.position="none")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 



## SKIDNUMBER
library(ggplot2)
m3 <- ggplot(lnewdat, aes(x = SKIDNUMBER, y = Probability, colour = Level)) +
  geom_point(alpha = 1/50, size=1) + facet_grid(~ Severity, labeller="label_both")+theme_bw()+
  aes(colour = Level) + stat_smooth()+ labs(x="Skid Number \n (c)")+
  theme(legend.position="none")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 



## Age
library(ggplot2)
m4 <- ggplot(lnewdat, aes(x = AGE_DRPED, y = Probability, colour = Level)) +
  geom_point(alpha = 1/50, size=1) + facet_grid(~ Severity, labeller="label_both")+theme_bw()+
  aes(colour = Level) + stat_smooth()+ labs(x="Driver Age \n (d)")+
theme(legend.position="bottom", legend.text=element_text(size=20))+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
library(grid)
grid.newpage()
pushViewport(viewport(layout = grid.layout(4, 1)))
vplayout <- function(x, y)
  viewport(layout.pos.row = x, layout.pos.col = y)
print(m1, vp = vplayout(1, 1))
## Warning: Computation failed in `stat_smooth()`:
## x has insufficient unique values to support 10 knots: reduce k.
print(m2, vp = vplayout(2, 1))
print(m3, vp = vplayout(3, 1))
print(m4, vp = vplayout(4, 1))

setwd("/Users/subasishdas1/Dropbox/---- TRB_2017 ----/SHRP2 Inclement")
aa <- read.csv("FINAL_5a.csv")
names(aa)
##  [1] "CR.A.AMSHNUM_AG" "ID_A"            "CRASHNUM1"      
##  [4] "DataType"        "HIGHESTINJ"      "Category"       
##  [7] "Category1"       "Vis_Score"       "SKIDNUMBER"     
## [10] "RCISLDWTH1"      "RCISLDWTH2"      "AVG_SH_WID"     
## [13] "RCIAADT"         "RCIAVGTFCT"      "RCIMAXSPD"      
## [16] "LIGHTCOND"       "WEATHCOND"       "DIV_UNDIV"      
## [19] "AGE_DRPED"       "RDSURFCOND"      "YEAR"           
## [22] "CNTOFVEH"        "ID"              "Airport_Na"     
## [25] "Airport_Nu"      "LATITUDE"        "LONGITUDE"      
## [28] "CRSHCAUSE1"      "CNTOFINJ"        "CNTOFFATL"      
## [31] "CNTOFSVINJ"      "RCIFUNCLAS"      "RCIACC"         
## [34] "CR_LATITUDE"     "CR_LONGITUDE"    "RCISLDWTH3"     
## [37] "RCIMEDWDTH"      "StartDate"       "Start_Time"     
## [40] "End_Date"        "End_Time"        "Duration"       
## [43] "HIGHESTINJ1"     "Vis_Score1"      "SKIDNUMBER1"    
## [46] "RCIAADT1"        "RCIAVGTFCT1"     "RCIMAXSPD1"     
## [49] "LIGHTCOND1"      "WEATHCOND1"      "DIV_UNDIV1"     
## [52] "AGE_DRPED1"      "RDSURFCOND1"     "CNTOFVEH1"      
## [55] "RCIFUNCLAS1"     "RCIMEDWDTH1"
aa1 <- aa[c(44, 43, 15, 13, 9, 12, 19, 14, 48, 46, 45, 49, 51, 52)]
names(aa1)
##  [1] "Vis_Score1"  "HIGHESTINJ1" "RCIMAXSPD"   "RCIAADT"     "SKIDNUMBER" 
##  [6] "AVG_SH_WID"  "AGE_DRPED"   "RCIAVGTFCT"  "RCIMAXSPD1"  "RCIAADT1"   
## [11] "SKIDNUMBER1" "LIGHTCOND1"  "DIV_UNDIV1"  "AGE_DRPED1"
ex <- subset(aa1, Vis_Score1=="Excellent Visibility")
md <- subset(aa1, Vis_Score1=="Medium Visibility")
pr <- subset(aa1, Vis_Score1=="Poor Visibility")

dim(ex)
## [1] 11666    14
dim(md)
## [1] 9815   14
dim(pr)
## [1] 2138   14
names(ex)
##  [1] "Vis_Score1"  "HIGHESTINJ1" "RCIMAXSPD"   "RCIAADT"     "SKIDNUMBER" 
##  [6] "AVG_SH_WID"  "AGE_DRPED"   "RCIAVGTFCT"  "RCIMAXSPD1"  "RCIAADT1"   
## [11] "SKIDNUMBER1" "LIGHTCOND1"  "DIV_UNDIV1"  "AGE_DRPED1"
table(ex$Vis_Score1)
## 
## Excellent Visibility    Medium Visibility      Poor Visibility 
##                11666                    0                    0
hist(ex$RCIAADT)

library(scales)
library(ggplot2)
m1 <-ggplot(ex, aes(x=SKIDNUMBER)) + geom_histogram(colour = "#4E2A1E", fill = "#046C9A")+theme_bw()+scale_y_continuous(limits=c(0,2200))+labs(title="Excellent Visibility")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m2 <- ggplot(md, aes(x=SKIDNUMBER)) + geom_histogram(colour = "#4E2A1E", fill = "#5BBCD6")+theme_bw()+scale_y_continuous(limits=c(0,2200))+labs(title="Medium Visibility")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m3 <- ggplot(pr, aes(x=SKIDNUMBER)) + geom_histogram(colour = "#4E2A1E", fill = "#3F5151")+theme_bw()+scale_y_continuous(limits=c(0,2200))+labs(title="Poor Visibility")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 

ex0 <- subset(ex, RCIAADT > 5000)
dim(ex0)
## [1] 11430    14
dim(ex)
## [1] 11666    14
md0 <- subset(md, RCIAADT > 500)
pr0 <- subset(pr, RCIAADT > 500)

ex1 <- ggplot(ex, aes(x=RCIAADT))
md1 <- ggplot(md, aes(x=RCIAADT))
pr1 <- ggplot(pr, aes(x=RCIAADT))
m01 <- ex1+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#046C9A", breaks=c(0, 50000, 100000, 150000, 200000, 250000, 300000))+ scale_y_continuous(labels=percent, limits=c(0,0.7))+
  labs(x=" \n (d)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m02 <- md1+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#5BBCD6", breaks=c(0, 50000, 100000, 150000, 200000, 250000, 300000))+ scale_y_continuous(labels=percent, limits=c(0,0.7))+
  labs(x="AADT (vpd) \n (e)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
  
m03 <- pr1+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#C93312", breaks=c(0, 50000, 100000, 150000, 200000, 250000, 300000))+ scale_y_continuous(labels=percent, limits=c(0,0.7))+
  labs(x=" \n (f)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 





ex1 <- ggplot(ex, aes(x=RCIMAXSPD))
md1 <- ggplot(md, aes(x=RCIMAXSPD))
pr1 <- ggplot(pr, aes(x=RCIMAXSPD))
m1 <- ex1+ geom_bar(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#046C9A")+ scale_y_continuous(labels=percent, limits=c(0,0.15))+
  labs(x=" \n (a)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(title="Excellent Visibility")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m2 <- md1+ geom_bar(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#5BBCD6")+ scale_y_continuous(labels=percent, limits=c(0,0.15))+
  labs(x="Max. Speed (mph) \n (b)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+labs(title="Medium Visibility")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m3 <- pr1+ geom_bar(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#C93312")+ scale_y_continuous(labels=percent, limits=c(0,0.15))+
  labs(x=" \n (c)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+labs(title="Poor Visibility")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 

exx <- subset(ex, SKIDNUMBER >20)
mdd <- subset(md, SKIDNUMBER >20)
prr <- subset(pr, SKIDNUMBER >20)
ex3 <- ggplot(exx, aes(x=SKIDNUMBER))
md3 <- ggplot(mdd, aes(x=SKIDNUMBER))
pr3 <- ggplot(prr, aes(x=SKIDNUMBER))
m4 <- ex3+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#046C9A")+ scale_y_continuous(labels=percent, limits=c(0,0.20))+
  labs(x=" \n (g)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m5 <- md3+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#5BBCD6")+ scale_y_continuous(labels=percent, limits=c(0,0.20))+
  labs(x="Skid Number \n (h)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m6 <- pr3+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#C93312")+ scale_y_continuous(labels=percent, limits=c(0,0.20))+
  labs(x=" \n (i)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 

ex3 <- ggplot(ex, aes(x=AGE_DRPED))
md3 <- ggplot(md, aes(x=AGE_DRPED))
pr3 <- ggplot(pr, aes(x=AGE_DRPED))
m4a <- ex3+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#046C9A")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x=" \n (j)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m5a <- md3+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#5BBCD6")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x="Driver Age \n (k)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m6a <- pr3+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#C93312")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x=" \n (l)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 

ex4 <- ggplot(ex, aes(x=RCIAVGTFCT))
md4 <- ggplot(md, aes(x=RCIAVGTFCT))
pr4 <- ggplot(pr, aes(x=RCIAVGTFCT))
m4b <- ex4+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#046C9A")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x=" \n (m)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m5b <- md4+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#5BBCD6")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x="Percentage of Trucks \n (n)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m6b <- pr4+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#C93312")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x=" \n (o)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 

ex4t <- ggplot(ex, aes(x=AVG_SH_WID))
md4t <- ggplot(md, aes(x=AVG_SH_WID))
pr4t <- ggplot(pr, aes(x=AVG_SH_WID))
m4c <- ex4t+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#046C9A")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x=" \n (p)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m5c <- md4t+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#5BBCD6")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x="Avg. Shoulder Width (ft.) \n (q)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 
m6c <- pr4t+ geom_histogram(aes(y = (..count..)/sum(..count..)), colour = "#4E2A1E",   fill = "#C93312")+ scale_y_continuous(labels=percent, limits=c(0,0.125))+
  labs(x=" \n (r)", y="Percentage") +
  theme(text = element_text(size=30)) + theme_bw()+labs(y=" ")+theme(text = element_text(size=16), axis.text = element_text(size = 16), strip.text = element_text(size = 17, colour = "#550307")) 



library(grid)
grid.newpage()
pushViewport(viewport(layout = grid.layout(6, 3)))
vplayout <- function(x, y)
  viewport(layout.pos.row = x, layout.pos.col = y)
print(m1, vp = vplayout(1, 1))
print(m2, vp = vplayout(1, 2))
print(m3, vp = vplayout(1, 3))
print(m01, vp = vplayout(2, 1))
print(m02, vp = vplayout(2, 2))
print(m03, vp = vplayout(2, 3))
print(m4, vp = vplayout(3, 1))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m5, vp = vplayout(3, 2))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m6, vp = vplayout(3, 3))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m4a, vp = vplayout(4, 1))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m5a, vp = vplayout(4, 2))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m6a, vp = vplayout(4, 3))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m4b, vp = vplayout(5, 1))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m5b, vp = vplayout(5, 2))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m6b, vp = vplayout(5, 3))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m4c, vp = vplayout(6, 1))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m5c, vp = vplayout(6, 2))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
print(m6c, vp = vplayout(6, 3))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.