Data Exercise

Data exercise to generate synthetic data.

Load the required packages:

library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(ggplot2)
library(patchwork)

We are looking to generate a synthetic dataset that evaluates the relationship between vaccination status and history of disease within and to compare thi between different cattle breeds (beef vs dairy breeds). We are going to generate a dataset with 330 individual animals from the age of 6 months to 3 years. Since females are found in higher numbers in cattle production systems we are generating the dataset with 70% females (30% males). We are looking at vaccination as yes or no without specifying specific diseases or vaccines. We will generate columns for history of respiratory disease and history of diarrheal disease (either yes or no).

We first need to set the seed to that our random generation of variables is repeatable

set.seed(123)

We will start to generate our dataset as described:

#Start by assigning the number of cattle (observations)
n <- 330

#We will assign ages to the animals between 6 months and 3 years (18 months). Age can only be integers (whole numbers in months)
age <- sample(6:36, n, replace = TRUE)

#we will assign the sex with 70% as females as mentioned
sex <- sample(c("Female", "Male"), n, replace= TRUE, prob = c(0.7, 0.3))

#We will assign the cattle breeds with an equal split using Angus as the beef breed and Holstein as the dairy breed
breed <- sample(c("Angus", "Holstein"), n, replace = TRUE)

#We will classify these breeds to help with further interpretation and analysis downstream. This would be particularly helpful if we had multiple different breeds for each category in the dataset. We will use the if else function in R.
breed_type <- ifelse(breed=="Angus", "Beef", "Dairy")

#Double check that our breed data worked
View(breed_type)
print(breed_type)
  [1] "Beef"  "Beef"  "Beef"  "Dairy" "Dairy" "Dairy" "Dairy" "Beef"  "Dairy"
 [10] "Beef"  "Beef"  "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Beef"  "Dairy"
 [19] "Beef"  "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Dairy" "Dairy" "Dairy"
 [28] "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Beef"  "Dairy" "Beef"  "Beef" 
 [37] "Beef"  "Dairy" "Dairy" "Beef"  "Dairy" "Beef"  "Dairy" "Beef"  "Dairy"
 [46] "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Dairy" "Dairy" "Dairy"
 [55] "Beef"  "Beef"  "Dairy" "Beef"  "Dairy" "Beef"  "Beef"  "Beef"  "Beef" 
 [64] "Beef"  "Dairy" "Dairy" "Beef"  "Dairy" "Beef"  "Beef"  "Beef"  "Dairy"
 [73] "Beef"  "Beef"  "Beef"  "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Dairy"
 [82] "Beef"  "Beef"  "Beef"  "Dairy" "Dairy" "Beef"  "Dairy" "Beef"  "Dairy"
 [91] "Beef"  "Dairy" "Dairy" "Dairy" "Dairy" "Dairy" "Dairy" "Dairy" "Dairy"
[100] "Beef"  "Beef"  "Dairy" "Beef"  "Beef"  "Dairy" "Beef"  "Beef"  "Dairy"
[109] "Dairy" "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Dairy" "Dairy"
[118] "Dairy" "Dairy" "Beef"  "Dairy" "Beef"  "Dairy" "Beef"  "Beef"  "Beef" 
[127] "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Beef"  "Beef" 
[136] "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Dairy"
[145] "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Beef"  "Dairy" "Dairy" "Beef" 
[154] "Beef"  "Dairy" "Dairy" "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Dairy"
[163] "Beef"  "Beef"  "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Beef" 
[172] "Dairy" "Dairy" "Dairy" "Dairy" "Beef"  "Dairy" "Dairy" "Beef"  "Beef" 
[181] "Dairy" "Dairy" "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef" 
[190] "Beef"  "Beef"  "Beef"  "Dairy" "Beef"  "Beef"  "Beef"  "Dairy" "Dairy"
[199] "Dairy" "Dairy" "Dairy" "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Dairy"
[208] "Dairy" "Beef"  "Dairy" "Beef"  "Beef"  "Beef"  "Beef"  "Beef"  "Beef" 
[217] "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Beef"  "Beef"  "Beef" 
[226] "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Dairy"
[235] "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Beef"  "Beef"  "Beef" 
[244] "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Beef"  "Beef"  "Dairy" "Beef" 
[253] "Dairy" "Beef"  "Beef"  "Dairy" "Dairy" "Beef"  "Dairy" "Dairy" "Dairy"
[262] "Dairy" "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Dairy" "Beef"  "Dairy"
[271] "Dairy" "Beef"  "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Beef"  "Beef" 
[280] "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Dairy" "Beef"  "Beef"  "Beef" 
[289] "Beef"  "Beef"  "Beef"  "Beef"  "Dairy" "Dairy" "Dairy" "Beef"  "Beef" 
[298] "Beef"  "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Beef"  "Beef"  "Dairy"
[307] "Beef"  "Dairy" "Beef"  "Dairy" "Dairy" "Dairy" "Beef"  "Dairy" "Beef" 
[316] "Beef"  "Dairy" "Dairy" "Dairy" "Beef"  "Dairy" "Beef"  "Dairy" "Beef" 
[325] "Beef"  "Dairy" "Dairy" "Dairy" "Dairy" "Beef" 

We must now generate the vaccination and disease history data before we can produce our dataframe.

We will make the incidence of respiratory disease slightly higher in beef animals than in dairy animals, and the opposite (slightly higher incidence of diarrheal disease in dairy animals than beef animals).

#We will assign vaccination status (yes/no) randomly
vaccination <- sample (c("Yes","No"), n, replace = TRUE)

#Assign history of diseases based on our assumptions
#Start by generating a vector for the history of disease - diarrhea or respiratory
history_diarrhea <- rep("No", n)
history_respiratory <- rep("No", n)

#Using a loop function to change the incidence of the different diseases in beef and dairy breeds as mentioned above
#I had chatGPT help me to generate the code for this

for (i in 1:n) {
  if (breed[i] == "Holstein") {
    if (runif(1) < 0.35) history_diarrhea[i] <- "Yes"
    if (runif(1) < 0.25) history_respiratory[i] <- "Yes"
  } else {
    if (runif(1) < 0.30) history_diarrhea[i] <- "Yes"
    if (runif(1) < 0.35) history_respiratory[i] <- "Yes"
  }
}

#We are applying the conditions above if the breed is Holstein and if it is not then we apply the conditions below the else.


#We now want to make sure that animals that are not vaccinated have a higher incidence of disease (vaccination is correlated with freedom from or reduced incidence of disease)
#We will use another loop funciton for this.
# I had ChatGPT assist with this code for the loop

for (i in 1:n) {
  if (vaccination[i] == "No" && history_diarrhea[i] == "No" && history_respiratory[i] == "No") {
    if (runif(1) < 0.5) {
      history_diarrhea[i] <- "Yes"
    } else {
      history_respiratory[i] <- "Yes"
    }
  }
}

We want to make four different categories that will help us to evaluate the different disease states that are possible. Different states are “Respiratory disease”, “Diarrhea disease”, “Both diseases”, and “No disease”. We will create an additional column for this to make it easier for us to call back to this for later models and plots. This could have been done as a second or separate dataframe without including it in the main datframe if we preferred. For ease it has been done now for less separate steps.

Create disease history classification:

disease_history <- case_when(history_respiratory == "Yes" & history_diarrhea == "No" ~ "Respiratory Only", history_respiratory == "No" & history_diarrhea == "Yes" ~ "Diarrhea Only", history_respiratory == "yes" & history_diarrhea == "Yes" ~ "Both Diseases", TRUE ~ "No Disease")

We then create a dataframe with all of these variables that we have assigned. We will call this cattle_data. We change the font of the column names to help use define searches and functions more directly.

cattle_data <- data.frame(Age = age, Sex = sex, Breed = breed, Breed_Type = breed_type, Vaccination = vaccination, History_Diarrhea = history_diarrhea, History_Respiratory = history_respiratory, Disease_History = factor(disease_history, levels = c("No Disease", "Respiratory Only", "Diarrhea Only", "Both Diseases")))

summary(cattle_data)
      Age            Sex               Breed            Breed_Type       
 Min.   : 6.00   Length:330         Length:330         Length:330        
 1st Qu.:14.00   Class :character   Class :character   Class :character  
 Median :22.00   Mode  :character   Mode  :character   Mode  :character  
 Mean   :21.84                                                           
 3rd Qu.:30.00                                                           
 Max.   :36.00                                                           
 Vaccination        History_Diarrhea   History_Respiratory
 Length:330         Length:330         Length:330         
 Class :character   Class :character   Class :character   
 Mode  :character   Mode  :character   Mode  :character   
                                                          
                                                          
                                                          
         Disease_History
 No Disease      :111   
 Respiratory Only:102   
 Diarrhea Only   :117   
 Both Diseases   :  0   
                        
                        
print(cattle_data)
    Age    Sex    Breed Breed_Type Vaccination History_Diarrhea
1    36 Female    Angus       Beef          No              Yes
2    20 Female    Angus       Beef          No               No
3    24 Female    Angus       Beef         Yes              Yes
4    19 Female Holstein      Dairy          No              Yes
5     8 Female Holstein      Dairy         Yes               No
6    15   Male Holstein      Dairy         Yes               No
7    23 Female Holstein      Dairy          No              Yes
8    27 Female    Angus       Beef          No               No
9    16 Female Holstein      Dairy         Yes               No
10   10 Female    Angus       Beef         Yes               No
11   25   Male    Angus       Beef          No              Yes
12   19 Female    Angus       Beef          No              Yes
13   27 Female Holstein      Dairy         Yes               No
14   30 Female    Angus       Beef          No               No
15   31   Male Holstein      Dairy         Yes               No
16   32 Female Holstein      Dairy         Yes              Yes
17   10 Female    Angus       Beef         Yes               No
18   24 Female Holstein      Dairy          No              Yes
19   32   Male    Angus       Beef          No               No
20   30 Female Holstein      Dairy         Yes              Yes
21   33 Female    Angus       Beef         Yes              Yes
22   30   Male    Angus       Beef          No              Yes
23   14 Female Holstein      Dairy         Yes               No
24   34 Female Holstein      Dairy          No               No
25    8   Male Holstein      Dairy          No               No
26   13 Female Holstein      Dairy          No              Yes
27   31 Female Holstein      Dairy         Yes              Yes
28   12 Female Holstein      Dairy         Yes              Yes
29   15 Female Holstein      Dairy         Yes               No
30   14 Female Holstein      Dairy          No              Yes
31   35 Female    Angus       Beef          No               No
32   24   Male    Angus       Beef          No              Yes
33    9 Female    Angus       Beef         Yes               No
34   19 Female Holstein      Dairy          No               No
35   22   Male    Angus       Beef          No              Yes
36   16   Male    Angus       Beef         Yes              Yes
37   12 Female    Angus       Beef         Yes               No
38   26 Female Holstein      Dairy         Yes               No
39   17   Male Holstein      Dairy         Yes               No
40   20 Female    Angus       Beef         Yes               No
41   15   Male Holstein      Dairy         Yes               No
42   18 Female    Angus       Beef         Yes              Yes
43   12   Male Holstein      Dairy          No              Yes
44   14 Female    Angus       Beef          No              Yes
45   14   Male Holstein      Dairy          No              Yes
46   15 Female Holstein      Dairy          No              Yes
47   28 Female Holstein      Dairy          No              Yes
48   32 Female    Angus       Beef         Yes              Yes
49   33 Female    Angus       Beef         Yes               No
50   26   Male Holstein      Dairy          No               No
51   12 Female Holstein      Dairy          No              Yes
52   26   Male Holstein      Dairy          No              Yes
53   32   Male Holstein      Dairy         Yes               No
54   11 Female Holstein      Dairy          No               No
55   30 Female    Angus       Beef         Yes               No
56    7 Female    Angus       Beef          No               No
57   34 Female Holstein      Dairy          No              Yes
58   10 Female    Angus       Beef          No               No
59   13   Male Holstein      Dairy          No              Yes
60   17   Male    Angus       Beef          No              Yes
61   36 Female    Angus       Beef         Yes               No
62   18   Male    Angus       Beef         Yes              Yes
63   23 Female    Angus       Beef         Yes               No
64    6 Female    Angus       Beef          No              Yes
65   30 Female Holstein      Dairy          No              Yes
66   32   Male Holstein      Dairy          No              Yes
67   30 Female    Angus       Beef         Yes              Yes
68   11 Female Holstein      Dairy         Yes               No
69   26 Female    Angus       Beef         Yes              Yes
70   20 Female    Angus       Beef          No               No
71   14   Male    Angus       Beef         Yes              Yes
72   20 Female Holstein      Dairy          No              Yes
73   31 Female    Angus       Beef         Yes               No
74   33 Female    Angus       Beef         Yes               No
75   36 Female    Angus       Beef          No               No
76   21   Male    Angus       Beef          No              Yes
77   25 Female Holstein      Dairy         Yes               No
78   35 Female    Angus       Beef         Yes              Yes
79   11 Female Holstein      Dairy          No               No
80   16 Female Holstein      Dairy          No               No
81   13 Female Holstein      Dairy         Yes              Yes
82   27 Female    Angus       Beef         Yes               No
83   27 Female    Angus       Beef         Yes               No
84   12   Male    Angus       Beef          No              Yes
85   36 Female Holstein      Dairy         Yes               No
86   21 Female Holstein      Dairy         Yes               No
87   22 Female    Angus       Beef         Yes              Yes
88   27 Female Holstein      Dairy         Yes               No
89   23   Male    Angus       Beef          No               No
90   22   Male Holstein      Dairy         Yes               No
91    7 Female    Angus       Beef          No              Yes
92    9 Female Holstein      Dairy         Yes              Yes
93   18   Male Holstein      Dairy          No               No
94   10 Female Holstein      Dairy         Yes               No
95   27 Female Holstein      Dairy          No              Yes
96   36 Female Holstein      Dairy          No              Yes
97   24 Female Holstein      Dairy         Yes               No
98   30 Female Holstein      Dairy          No              Yes
99   25 Female Holstein      Dairy          No               No
100  27 Female    Angus       Beef         Yes              Yes
101  30 Female    Angus       Beef         Yes               No
102  19   Male Holstein      Dairy         Yes               No
103  30 Female    Angus       Beef         Yes              Yes
104  28   Male    Angus       Beef          No              Yes
105   8   Male Holstein      Dairy          No               No
106  13   Male    Angus       Beef         Yes               No
107  21 Female    Angus       Beef         Yes               No
108  35 Female Holstein      Dairy         Yes              Yes
109  17 Female Holstein      Dairy         Yes               No
110  36 Female    Angus       Beef          No              Yes
111  30 Female    Angus       Beef         Yes              Yes
112  19 Female    Angus       Beef          No              Yes
113  35 Female    Angus       Beef          No              Yes
114   8 Female    Angus       Beef          No              Yes
115  19   Male    Angus       Beef         Yes               No
116  34   Male Holstein      Dairy          No              Yes
117  12   Male Holstein      Dairy          No              Yes
118   8 Female Holstein      Dairy          No              Yes
119  28 Female Holstein      Dairy          No               No
120  27   Male    Angus       Beef         Yes               No
121  31 Female Holstein      Dairy          No              Yes
122  20 Female    Angus       Beef         Yes               No
123  26 Female Holstein      Dairy         Yes               No
124  10 Female    Angus       Beef          No               No
125  13 Female    Angus       Beef          No               No
126  24 Female    Angus       Beef         Yes              Yes
127  15 Female Holstein      Dairy         Yes              Yes
128  23 Female Holstein      Dairy         Yes               No
129  15   Male Holstein      Dairy         Yes               No
130  17 Female    Angus       Beef         Yes               No
131   7   Male    Angus       Beef         Yes               No
132  15 Female Holstein      Dairy         Yes               No
133  27   Male Holstein      Dairy          No              Yes
134  36 Female    Angus       Beef          No              Yes
135  17 Female    Angus       Beef         Yes              Yes
136  25 Female    Angus       Beef         Yes              Yes
137  19 Female    Angus       Beef          No              Yes
138  22 Female    Angus       Beef         Yes              Yes
139  35   Male    Angus       Beef         Yes              Yes
140  19 Female    Angus       Beef         Yes               No
141  27   Male    Angus       Beef          No               No
142   8 Female    Angus       Beef         Yes               No
143  13 Female    Angus       Beef          No              Yes
144  19   Male Holstein      Dairy          No              Yes
145  24 Female    Angus       Beef          No              Yes
146  35 Female Holstein      Dairy          No              Yes
147  20 Female    Angus       Beef          No              Yes
148  29 Female Holstein      Dairy          No              Yes
149  22   Male Holstein      Dairy          No              Yes
150  28   Male    Angus       Beef         Yes               No
151  16 Female Holstein      Dairy          No               No
152  12 Female Holstein      Dairy         Yes               No
153  34   Male    Angus       Beef         Yes               No
154  20 Female    Angus       Beef          No              Yes
155  28   Male Holstein      Dairy          No               No
156  31 Female Holstein      Dairy         Yes               No
157  11 Female    Angus       Beef          No               No
158  19 Female Holstein      Dairy         Yes               No
159  36   Male    Angus       Beef         Yes               No
160  12 Female Holstein      Dairy          No              Yes
161  32 Female Holstein      Dairy          No              Yes
162  15 Female Holstein      Dairy         Yes               No
163  10 Female    Angus       Beef          No               No
164  11 Female    Angus       Beef         Yes               No
165  21 Female Holstein      Dairy          No               No
166  29 Female Holstein      Dairy         Yes              Yes
167  26 Female Holstein      Dairy         Yes               No
168  28   Male    Angus       Beef          No               No
169  16 Female    Angus       Beef          No               No
170   9 Female Holstein      Dairy          No              Yes
171  17 Female    Angus       Beef          No               No
172  19   Male Holstein      Dairy          No               No
173  33 Female Holstein      Dairy          No               No
174  34   Male Holstein      Dairy          No              Yes
175  24 Female Holstein      Dairy          No              Yes
176  30 Female    Angus       Beef          No              Yes
177  12   Male Holstein      Dairy          No              Yes
178  27 Female Holstein      Dairy         Yes              Yes
179  31   Male    Angus       Beef         Yes               No
180  14 Female    Angus       Beef         Yes               No
181  12 Female Holstein      Dairy         Yes              Yes
182   7 Female Holstein      Dairy         Yes               No
183  21 Female    Angus       Beef         Yes               No
184  18 Female    Angus       Beef         Yes               No
185  24 Female    Angus       Beef          No              Yes
186  29   Male    Angus       Beef          No              Yes
187  25 Female    Angus       Beef          No               No
188  20   Male    Angus       Beef         Yes               No
189  12 Female    Angus       Beef         Yes               No
190   9   Male    Angus       Beef          No               No
191   6 Female    Angus       Beef          No              Yes
192  13 Female    Angus       Beef         Yes               No
193  35   Male Holstein      Dairy          No               No
194  35 Female    Angus       Beef         Yes               No
195  25   Male    Angus       Beef         Yes              Yes
196  30 Female    Angus       Beef         Yes               No
197  21   Male Holstein      Dairy          No              Yes
198  29 Female Holstein      Dairy         Yes               No
199  27 Female Holstein      Dairy         Yes               No
200  16   Male Holstein      Dairy         Yes              Yes
201  21 Female Holstein      Dairy          No               No
202  25   Male Holstein      Dairy          No               No
203  13 Female Holstein      Dairy         Yes               No
204   8   Male Holstein      Dairy         Yes               No
205  34   Male    Angus       Beef         Yes               No
206   9 Female    Angus       Beef          No               No
207  25   Male Holstein      Dairy         Yes              Yes
208  17   Male Holstein      Dairy         Yes              Yes
209  27 Female    Angus       Beef         Yes               No
210  22 Female Holstein      Dairy         Yes               No
211  15 Female    Angus       Beef         Yes               No
212  32 Female    Angus       Beef          No               No
213  25   Male    Angus       Beef         Yes               No
214  16 Female    Angus       Beef          No              Yes
215  30 Female    Angus       Beef         Yes               No
216  28 Female    Angus       Beef         Yes              Yes
217  13 Female Holstein      Dairy          No              Yes
218  19 Female Holstein      Dairy          No              Yes
219  26 Female    Angus       Beef          No               No
220  18 Female    Angus       Beef          No               No
221   7   Male Holstein      Dairy          No               No
222  16   Male Holstein      Dairy          No               No
223  18 Female    Angus       Beef          No               No
224  19 Female    Angus       Beef         Yes              Yes
225  11 Female    Angus       Beef         Yes               No
226  30 Female Holstein      Dairy          No              Yes
227  13   Male    Angus       Beef          No               No
228  17 Female    Angus       Beef         Yes              Yes
229  31   Male Holstein      Dairy          No               No
230   9 Female Holstein      Dairy          No               No
231  18   Male Holstein      Dairy         Yes              Yes
232  34 Female    Angus       Beef         Yes               No
233  19 Female    Angus       Beef          No              Yes
234  26   Male Holstein      Dairy          No              Yes
235  21   Male Holstein      Dairy          No               No
236  28 Female Holstein      Dairy          No               No
237  34 Female    Angus       Beef          No              Yes
238   6 Female    Angus       Beef          No              Yes
239  13 Female Holstein      Dairy         Yes               No
240  13   Male Holstein      Dairy         Yes               No
241  15   Male    Angus       Beef          No               No
242  30   Male    Angus       Beef          No              Yes
243  13 Female    Angus       Beef          No               No
244  23   Male Holstein      Dairy         Yes               No
245  34 Female Holstein      Dairy          No              Yes
246  26 Female    Angus       Beef         Yes               No
247  14 Female    Angus       Beef         Yes               No
248  12   Male Holstein      Dairy         Yes               No
249  12 Female    Angus       Beef         Yes               No
250  31 Female    Angus       Beef          No              Yes
251  34 Female Holstein      Dairy         Yes               No
252  33   Male    Angus       Beef         Yes              Yes
253  15 Female Holstein      Dairy          No              Yes
254  29 Female    Angus       Beef         Yes               No
255  36   Male    Angus       Beef         Yes               No
256  27 Female Holstein      Dairy         Yes               No
257  28 Female Holstein      Dairy         Yes               No
258  31   Male    Angus       Beef         Yes              Yes
259  16 Female Holstein      Dairy         Yes              Yes
260   6 Female Holstein      Dairy         Yes              Yes
261  30 Female Holstein      Dairy          No               No
262  34 Female Holstein      Dairy          No              Yes
263  34 Female Holstein      Dairy         Yes               No
264  24 Female Holstein      Dairy         Yes              Yes
265  15   Male Holstein      Dairy         Yes               No
266  26 Female    Angus       Beef         Yes               No
267  27   Male    Angus       Beef         Yes               No
268  18 Female Holstein      Dairy         Yes              Yes
269  16 Female    Angus       Beef          No              Yes
270  16 Female Holstein      Dairy         Yes               No
271  30 Female Holstein      Dairy         Yes               No
272  25 Female    Angus       Beef         Yes               No
273  31   Male    Angus       Beef          No               No
274  12 Female Holstein      Dairy          No              Yes
275  30   Male    Angus       Beef          No               No
276  28   Male Holstein      Dairy         Yes              Yes
277  31   Male Holstein      Dairy          No              Yes
278  25   Male    Angus       Beef          No               No
279  34 Female    Angus       Beef         Yes               No
280  29   Male    Angus       Beef         Yes               No
281  30   Male Holstein      Dairy          No               No
282  14   Male    Angus       Beef          No               No
283  14 Female Holstein      Dairy          No              Yes
284  10 Female Holstein      Dairy          No               No
285  28 Female Holstein      Dairy          No               No
286  19 Female    Angus       Beef          No              Yes
287  19   Male    Angus       Beef          No               No
288  11 Female    Angus       Beef          No               No
289  32 Female    Angus       Beef         Yes               No
290   6   Male    Angus       Beef         Yes               No
291  31   Male    Angus       Beef          No              Yes
292  15 Female    Angus       Beef         Yes               No
293  22   Male Holstein      Dairy          No              Yes
294  31 Female Holstein      Dairy         Yes               No
295  22 Female Holstein      Dairy         Yes              Yes
296  34   Male    Angus       Beef          No              Yes
297  31   Male    Angus       Beef          No              Yes
298  32   Male    Angus       Beef         Yes               No
299  26 Female    Angus       Beef          No              Yes
300  12 Female Holstein      Dairy         Yes               No
301  33   Male    Angus       Beef         Yes               No
302  26   Male Holstein      Dairy          No              Yes
303  31 Female Holstein      Dairy          No              Yes
304  14 Female    Angus       Beef          No               No
305  25 Female    Angus       Beef          No              Yes
306  11   Male Holstein      Dairy          No              Yes
307  23 Female    Angus       Beef          No               No
308  35 Female Holstein      Dairy         Yes               No
309  36 Female    Angus       Beef         Yes               No
310  34   Male Holstein      Dairy          No              Yes
311  22   Male Holstein      Dairy         Yes               No
312  10 Female Holstein      Dairy         Yes              Yes
313  30 Female    Angus       Beef          No               No
314  25   Male Holstein      Dairy         Yes               No
315   8   Male    Angus       Beef         Yes              Yes
316  30   Male    Angus       Beef          No              Yes
317  19 Female Holstein      Dairy         Yes              Yes
318   6 Female Holstein      Dairy         Yes               No
319   7 Female Holstein      Dairy          No              Yes
320   9   Male    Angus       Beef          No               No
321  15   Male Holstein      Dairy         Yes               No
322   6 Female    Angus       Beef          No               No
323  10   Male Holstein      Dairy          No               No
324  26 Female    Angus       Beef          No              Yes
325  30 Female    Angus       Beef         Yes              Yes
326  13   Male Holstein      Dairy          No               No
327  28 Female Holstein      Dairy          No              Yes
328  30 Female Holstein      Dairy          No              Yes
329  26 Female Holstein      Dairy          No               No
330  18 Female    Angus       Beef         Yes              Yes
    History_Respiratory  Disease_History
1                    No    Diarrhea Only
2                   Yes Respiratory Only
3                    No    Diarrhea Only
4                    No    Diarrhea Only
5                    No       No Disease
6                    No       No Disease
7                    No    Diarrhea Only
8                   Yes Respiratory Only
9                    No       No Disease
10                  Yes Respiratory Only
11                  Yes       No Disease
12                  Yes       No Disease
13                  Yes Respiratory Only
14                  Yes Respiratory Only
15                   No       No Disease
16                   No    Diarrhea Only
17                  Yes Respiratory Only
18                  Yes       No Disease
19                  Yes Respiratory Only
20                   No    Diarrhea Only
21                   No    Diarrhea Only
22                   No    Diarrhea Only
23                   No       No Disease
24                  Yes Respiratory Only
25                  Yes Respiratory Only
26                   No    Diarrhea Only
27                   No    Diarrhea Only
28                  Yes       No Disease
29                  Yes Respiratory Only
30                   No    Diarrhea Only
31                  Yes Respiratory Only
32                   No    Diarrhea Only
33                   No       No Disease
34                  Yes Respiratory Only
35                  Yes       No Disease
36                  Yes       No Disease
37                  Yes Respiratory Only
38                   No       No Disease
39                  Yes Respiratory Only
40                   No       No Disease
41                   No       No Disease
42                  Yes       No Disease
43                   No    Diarrhea Only
44                   No    Diarrhea Only
45                   No    Diarrhea Only
46                   No    Diarrhea Only
47                   No    Diarrhea Only
48                   No    Diarrhea Only
49                   No       No Disease
50                  Yes Respiratory Only
51                   No    Diarrhea Only
52                   No    Diarrhea Only
53                   No       No Disease
54                  Yes Respiratory Only
55                  Yes Respiratory Only
56                  Yes Respiratory Only
57                   No    Diarrhea Only
58                  Yes Respiratory Only
59                   No    Diarrhea Only
60                   No    Diarrhea Only
61                   No       No Disease
62                   No    Diarrhea Only
63                  Yes Respiratory Only
64                   No    Diarrhea Only
65                   No    Diarrhea Only
66                   No    Diarrhea Only
67                  Yes       No Disease
68                   No       No Disease
69                   No    Diarrhea Only
70                  Yes Respiratory Only
71                   No    Diarrhea Only
72                   No    Diarrhea Only
73                   No       No Disease
74                   No       No Disease
75                  Yes Respiratory Only
76                   No    Diarrhea Only
77                   No       No Disease
78                   No    Diarrhea Only
79                  Yes Respiratory Only
80                  Yes Respiratory Only
81                   No    Diarrhea Only
82                  Yes Respiratory Only
83                   No       No Disease
84                   No    Diarrhea Only
85                   No       No Disease
86                   No       No Disease
87                   No    Diarrhea Only
88                   No       No Disease
89                  Yes Respiratory Only
90                   No       No Disease
91                   No    Diarrhea Only
92                   No    Diarrhea Only
93                  Yes Respiratory Only
94                   No       No Disease
95                   No    Diarrhea Only
96                   No    Diarrhea Only
97                   No       No Disease
98                  Yes       No Disease
99                  Yes Respiratory Only
100                  No    Diarrhea Only
101                  No       No Disease
102                  No       No Disease
103                  No    Diarrhea Only
104                  No    Diarrhea Only
105                 Yes Respiratory Only
106                 Yes Respiratory Only
107                  No       No Disease
108                 Yes       No Disease
109                  No       No Disease
110                  No    Diarrhea Only
111                  No    Diarrhea Only
112                  No    Diarrhea Only
113                  No    Diarrhea Only
114                  No    Diarrhea Only
115                  No       No Disease
116                  No    Diarrhea Only
117                  No    Diarrhea Only
118                 Yes       No Disease
119                 Yes Respiratory Only
120                 Yes Respiratory Only
121                  No    Diarrhea Only
122                 Yes Respiratory Only
123                 Yes Respiratory Only
124                 Yes Respiratory Only
125                 Yes Respiratory Only
126                 Yes       No Disease
127                  No    Diarrhea Only
128                  No       No Disease
129                  No       No Disease
130                  No       No Disease
131                  No       No Disease
132                  No       No Disease
133                  No    Diarrhea Only
134                  No    Diarrhea Only
135                  No    Diarrhea Only
136                 Yes       No Disease
137                  No    Diarrhea Only
138                  No    Diarrhea Only
139                  No    Diarrhea Only
140                  No       No Disease
141                 Yes Respiratory Only
142                  No       No Disease
143                  No    Diarrhea Only
144                  No    Diarrhea Only
145                 Yes       No Disease
146                 Yes       No Disease
147                  No    Diarrhea Only
148                  No    Diarrhea Only
149                  No    Diarrhea Only
150                  No       No Disease
151                 Yes Respiratory Only
152                  No       No Disease
153                 Yes Respiratory Only
154                 Yes       No Disease
155                 Yes Respiratory Only
156                  No       No Disease
157                 Yes Respiratory Only
158                  No       No Disease
159                  No       No Disease
160                  No    Diarrhea Only
161                  No    Diarrhea Only
162                 Yes Respiratory Only
163                 Yes Respiratory Only
164                 Yes Respiratory Only
165                 Yes Respiratory Only
166                  No    Diarrhea Only
167                  No       No Disease
168                 Yes Respiratory Only
169                 Yes Respiratory Only
170                  No    Diarrhea Only
171                 Yes Respiratory Only
172                 Yes Respiratory Only
173                 Yes Respiratory Only
174                  No    Diarrhea Only
175                 Yes       No Disease
176                  No    Diarrhea Only
177                  No    Diarrhea Only
178                  No    Diarrhea Only
179                  No       No Disease
180                  No       No Disease
181                  No    Diarrhea Only
182                  No       No Disease
183                  No       No Disease
184                  No       No Disease
185                  No    Diarrhea Only
186                  No    Diarrhea Only
187                 Yes Respiratory Only
188                 Yes Respiratory Only
189                  No       No Disease
190                 Yes Respiratory Only
191                 Yes       No Disease
192                  No       No Disease
193                 Yes Respiratory Only
194                  No       No Disease
195                  No    Diarrhea Only
196                  No       No Disease
197                 Yes       No Disease
198                 Yes Respiratory Only
199                  No       No Disease
200                  No    Diarrhea Only
201                 Yes Respiratory Only
202                 Yes Respiratory Only
203                  No       No Disease
204                  No       No Disease
205                 Yes Respiratory Only
206                 Yes Respiratory Only
207                 Yes       No Disease
208                  No    Diarrhea Only
209                  No       No Disease
210                  No       No Disease
211                  No       No Disease
212                 Yes Respiratory Only
213                  No       No Disease
214                  No    Diarrhea Only
215                  No       No Disease
216                 Yes       No Disease
217                  No    Diarrhea Only
218                  No    Diarrhea Only
219                 Yes Respiratory Only
220                 Yes Respiratory Only
221                 Yes Respiratory Only
222                 Yes Respiratory Only
223                 Yes Respiratory Only
224                  No    Diarrhea Only
225                 Yes Respiratory Only
226                  No    Diarrhea Only
227                 Yes Respiratory Only
228                  No    Diarrhea Only
229                 Yes Respiratory Only
230                 Yes Respiratory Only
231                  No    Diarrhea Only
232                  No       No Disease
233                  No    Diarrhea Only
234                  No    Diarrhea Only
235                 Yes Respiratory Only
236                 Yes Respiratory Only
237                  No    Diarrhea Only
238                  No    Diarrhea Only
239                  No       No Disease
240                  No       No Disease
241                 Yes Respiratory Only
242                  No    Diarrhea Only
243                 Yes Respiratory Only
244                  No       No Disease
245                  No    Diarrhea Only
246                 Yes Respiratory Only
247                  No       No Disease
248                 Yes Respiratory Only
249                  No       No Disease
250                  No    Diarrhea Only
251                  No       No Disease
252                 Yes       No Disease
253                  No    Diarrhea Only
254                  No       No Disease
255                 Yes Respiratory Only
256                  No       No Disease
257                  No       No Disease
258                  No    Diarrhea Only
259                  No    Diarrhea Only
260                  No    Diarrhea Only
261                 Yes Respiratory Only
262                  No    Diarrhea Only
263                  No       No Disease
264                  No    Diarrhea Only
265                  No       No Disease
266                 Yes Respiratory Only
267                  No       No Disease
268                  No    Diarrhea Only
269                  No    Diarrhea Only
270                  No       No Disease
271                 Yes Respiratory Only
272                 Yes Respiratory Only
273                 Yes Respiratory Only
274                  No    Diarrhea Only
275                 Yes Respiratory Only
276                  No    Diarrhea Only
277                 Yes       No Disease
278                 Yes Respiratory Only
279                 Yes Respiratory Only
280                  No       No Disease
281                 Yes Respiratory Only
282                 Yes Respiratory Only
283                  No    Diarrhea Only
284                 Yes Respiratory Only
285                 Yes Respiratory Only
286                 Yes       No Disease
287                 Yes Respiratory Only
288                 Yes Respiratory Only
289                  No       No Disease
290                 Yes Respiratory Only
291                  No    Diarrhea Only
292                  No       No Disease
293                 Yes       No Disease
294                  No       No Disease
295                  No    Diarrhea Only
296                  No    Diarrhea Only
297                  No    Diarrhea Only
298                  No       No Disease
299                  No    Diarrhea Only
300                  No       No Disease
301                 Yes Respiratory Only
302                 Yes       No Disease
303                  No    Diarrhea Only
304                 Yes Respiratory Only
305                  No    Diarrhea Only
306                 Yes       No Disease
307                 Yes Respiratory Only
308                 Yes Respiratory Only
309                  No       No Disease
310                 Yes       No Disease
311                 Yes Respiratory Only
312                  No    Diarrhea Only
313                 Yes Respiratory Only
314                  No       No Disease
315                  No    Diarrhea Only
316                 Yes       No Disease
317                  No    Diarrhea Only
318                  No       No Disease
319                  No    Diarrhea Only
320                 Yes Respiratory Only
321                  No       No Disease
322                 Yes Respiratory Only
323                 Yes Respiratory Only
324                  No    Diarrhea Only
325                  No    Diarrhea Only
326                 Yes Respiratory Only
327                  No    Diarrhea Only
328                  No    Diarrhea Only
329                 Yes Respiratory Only
330                  No    Diarrhea Only

We want to changed the categorical variables (most of our variables) to factors

cattle_data$Vaccination <- as.factor(cattle_data$Vaccination)
cattle_data$History_Diarrhea <- as.factor(cattle_data$History_Diarrhea)
cattle_data$History_Respiratory <- as.factor(cattle_data$History_Respiratory)
cattle_data$Breed <- as.factor(cattle_data$Breed)

We will now use logistic regression models to evaluate our data and hopefully see the patterns that we expect. We will also produce some plots to evaluate the data.

First model: geometric logistic regression to test the association between vaccination and disease history (our main association of interest)

model1 <- glm(Vaccination ~ Disease_History + Breed, data = cattle_data, family = binomial)
summary(model1)

Call:
glm(formula = Vaccination ~ Disease_History + Breed, family = binomial, 
    data = cattle_data)

Coefficients:
                                Estimate Std. Error z value Pr(>|z|)    
(Intercept)                       1.7733     0.2925   6.062 1.35e-09 ***
Disease_HistoryRespiratory Only  -2.4618     0.3363  -7.321 2.47e-13 ***
Disease_HistoryDiarrhea Only     -2.2069     0.3193  -6.911 4.82e-12 ***
BreedHolstein                    -0.3552     0.2543  -1.397    0.162    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 457.47  on 329  degrees of freedom
Residual deviance: 376.50  on 326  degrees of freedom
AIC: 384.5

Number of Fisher Scoring iterations: 4

From the results of this model we can see that the absence of vaccination is strongly and statistically associated with the presence of both respiratory and diarrheal disease in caatle in the dataset. However there is not a statistically significant association/effect between breed and vaccination.

Second model: geometric logistic regression to test the effect of breed on respiratory disease (we expect beef breeds to have a higher incidence than dairy)

Logistic regression testing the effect of breed on disease history. We would need to use a multinomial regression here if we want to test disease history with both respiratory and diarrheal disease in the same model, so instead we will evaluate diarrheal disease and respiratory disease separately using binomial models.

Second model: Geometric logistic regression testing the effect of breed on respiratory disease history (we expect respiratory disease to be slightly higher in beef breeds).

model2 <- glm(History_Respiratory ~ Breed + Age, data = cattle_data, family = binomial)
summary(model2)

Call:
glm(formula = History_Respiratory ~ Breed + Age, family = binomial, 
    data = cattle_data)

Coefficients:
              Estimate Std. Error z value Pr(>|z|)  
(Intercept)    0.08072    0.33356   0.242   0.8088  
BreedHolstein -0.44122    0.22784  -1.937   0.0528 .
Age           -0.01319    0.01319  -1.000   0.3172  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 443.36  on 329  degrees of freedom
Residual deviance: 438.85  on 327  degrees of freedom
AIC: 444.85

Number of Fisher Scoring iterations: 4

Third model: geometric logistic regression to test the effect of breed on diarrhea disease (we expect dairy breeds to have a higher incidence than beef)

model3 <- glm(History_Diarrhea ~ Breed + Age, data = cattle_data, family = binomial)
summary(model3)

Call:
glm(formula = History_Diarrhea ~ Breed + Age, family = binomial, 
    data = cattle_data)

Coefficients:
              Estimate Std. Error z value Pr(>|z|)  
(Intercept)   -0.79869    0.33562  -2.380   0.0173 *
BreedHolstein  0.24110    0.22365   1.078   0.2810  
Age            0.02044    0.01304   1.568   0.1169  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 453.09  on 329  degrees of freedom
Residual deviance: 449.69  on 327  degrees of freedom
AIC: 455.69

Number of Fisher Scoring iterations: 4

Fourth model: linear logistic regression to test age differences across vaccination status (we do not expect correlation in our dataset)

model4 <- lm(Age ~ Vaccination, data = cattle_data)
summary(model4)

Call:
lm(formula = Age ~ Vaccination, data = cattle_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-16.1402  -7.5482   0.1558   7.8598  14.4518 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)     21.5482     0.6701  32.155   <2e-16 ***
VaccinationYes   0.5921     0.9506   0.623    0.534    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.634 on 328 degrees of freedom
Multiple R-squared:  0.001181,  Adjusted R-squared:  -0.001864 
F-statistic: 0.3879 on 1 and 328 DF,  p-value: 0.5338

Fifth model: linear logistic regression to test age differences across disease history (we do not expect correlation in our dataset)

model5 <- lm(Age ~ Disease_History, data = cattle_data)
summary(model5)

Call:
lm(formula = Age ~ Disease_History, data = cattle_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-16.4615  -7.4615   0.2255   7.5385  15.2255 

Coefficients:
                                Estimate Std. Error t value Pr(>|t|)    
(Intercept)                      22.1712     0.8183  27.093   <2e-16 ***
Disease_HistoryRespiratory Only  -1.3967     1.1825  -1.181    0.238    
Disease_HistoryDiarrhea Only      0.2904     1.1424   0.254    0.800    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.622 on 327 degrees of freedom
Multiple R-squared:  0.007074,  Adjusted R-squared:  0.001001 
F-statistic: 1.165 on 2 and 327 DF,  p-value: 0.3133

Plotting our graphs to see how they compare with our associations seen in the linear regression models

First plot: Violin plot to compare disease history with the vaccination status per breed

p1 <- ggplot(cattle_data, aes(x = Disease_History, y = Vaccination, fill = Breed)) +
  geom_violin() +
  labs(x = "Disease History", y = "Vaccination Status", fill = "Breed") +
  theme_minimal()

print(p1)

This violin plot doesn’t really display this data well. We will produce a bar plot instead.

Generate a bar plot to evaluate the relationship between vaccination status and disease history by comparing the proportions of animals with history of disease and vaccination status. We are working with proportion instead of count to make interpretation easier.

p2 <- ggplot(cattle_data, aes(x = Disease_History, fill = Vaccination)) +
    geom_bar(position = "fill") +  
    labs(x = "Disease History", y = "Proportion", fill = "Vaccination Status") +
    theme_minimal()

print(p2)

Third plot: Scatter plot of age vs vaccination status

p3 <- ggplot(cattle_data, aes(x = Vaccination, y = Age, color = Vaccination)) +
  geom_jitter(width = 0.2, alpha = 0.6) +
  labs(x = "Vaccination Status", y = "Age (Months)") +
  theme_minimal()

print(p3)

Vaccination status does not show any obvious relationship with age.

Fourth plot: Scatter plot of age vs History of infection (respiratory and diarrheal)

p4 <- ggplot(cattle_data, aes(x = Disease_History, y = Age, color = Disease_History)) +
  geom_jitter(width = 0.2, alpha = 0.6) +
  labs(x = "History of Disease", y = "Age (Months)", color = "Disease History") +
  theme_minimal()

print(p4)

Fifth plot: Bar plot comparing disease history across all breeds

p5 <- ggplot(cattle_data, aes(x = Breed, fill = Disease_History)) +
  geom_bar(position = "dodge") +
  labs(x = "Breed", y = "Count", fill = "History of Disease") +
  theme_minimal()

print(p5)

From the graphs we once again see that there is no obvious relationship between disease status and age (as we created in the synthetic data, which might differ from real life evaluations). We do see that there is slightly higher incidence of respiratory disease in beef animals, and diarrhea disease in dairy animals.

In summary, our models used for evalaution work well and we produce the expected results from this synthetic dataset. There are some aspects of the synthetic dataset that could be worked on further to make it more closely resemble and model a real-world situation, and then we might need more evaluation. However, as a proof of concept this is helpful at this stage.