Part 1 - Introduction

As infrastructure and buildings continue to be constructed, we need to address the impact it can have on the environment, specifically, on birds. Birds are important as they eat insects and dispense seeds of various plants (O’Toole, 2024). If these seeds were not dispersed, this would allow for wind-pollinated invasive plant species to overrun (O’Toole, 2024). The data collection is using 40 years of building collision records of birds from Chicago, Illinois, and Cleveland, Ohio (Winger, et al., 2019). Data was collected manually by walking around buildings in Spring and late Autumn to recover the corpses of the birds from building collisions (Winger, et al., 2019). In Ohio, this was done with a focus on migratory birds during a migratory period (Winger, et al., 2019). This was done by various volunteer organizations and museums to monitor the rate of collisions to advocate for change (Winger, et al., 2019).

“This is an image of the Zonotrichia albicollis, better known as white-throated sparrow (All About Birds, 2025). This species had the highest collision rate of any species observed in this data set.”
“This is an image of the Zonotrichia albicollis, better known as white-throated sparrow (All About Birds, 2025). This species had the highest collision rate of any species observed in this data set.”

Are some species of birds more susceptible to collisions than other species of birds with buildings in Chicago and Cleveland?

Information About Our Data Set: The categorical variable we are exploring is the species of birds found after collision. We are comparing the distribution of how many birds from each species experienced collisions with buildings. From this we hope to determine if there is a difference in the collision rate per species.

Part 2 - Exploring the Data (Descriptive Statistics)

Calling in the data set and grouping genus and species for a full scientific name.

#View the structure of the dataset
head(bird_collisions)
## # A tibble: 6 × 8
##   genus       species     date       locality family flight_call habitat stratum
##   <chr>       <chr>       <date>     <chr>    <chr>  <chr>       <chr>   <chr>  
## 1 Passerculus sandwichen… 1978-10-27 MP       Passe… Yes         Open    Lower  
## 2 Passerculus sandwichen… 1979-10-23 MP       Passe… Yes         Open    Lower  
## 3 Passerculus sandwichen… 1980-04-19 MP       Passe… Yes         Open    Lower  
## 4 Passerculus sandwichen… 1981-09-23 MP       Passe… Yes         Open    Lower  
## 5 Passerculus sandwichen… 1982-05-20 MP       Passe… Yes         Open    Lower  
## 6 Passerculus sandwichen… 1982-09-18 MP       Passe… Yes         Open    Lower
#Bind the genus and species for a full scientific species name
df_united <- unite(bird_collisions, species_name, genus, species, sep = " ")

#View the altered data set
View(df_united)

Creating a table for our updated data set with columns for species name, family, habitat, number of collisions, and the frequency rate for number of collisions per the entire data set.

# Making a data table
bird_table<-df_united%>%
  group_by(species_name) %>%
  select(species_name,family,habitat)%>%
  mutate(species_count=n())%>%
  arrange(desc(species_count))
bird_table
## # A tibble: 69,695 × 4
## # Groups:   species_name [88]
##    species_name           family        habitat species_count
##    <chr>                  <chr>         <chr>           <int>
##  1 Zonotrichia albicollis Passerellidae Forest          10133
##  2 Zonotrichia albicollis Passerellidae Forest          10133
##  3 Zonotrichia albicollis Passerellidae Forest          10133
##  4 Zonotrichia albicollis Passerellidae Forest          10133
##  5 Zonotrichia albicollis Passerellidae Forest          10133
##  6 Zonotrichia albicollis Passerellidae Forest          10133
##  7 Zonotrichia albicollis Passerellidae Forest          10133
##  8 Zonotrichia albicollis Passerellidae Forest          10133
##  9 Zonotrichia albicollis Passerellidae Forest          10133
## 10 Zonotrichia albicollis Passerellidae Forest          10133
## # ℹ 69,685 more rows
bird_table1<-aggregate(x = list(Count = bird_table$species_name),
                       by = list(Species = bird_table$species_name,
                                 Family = bird_table$family,
                                 Habitat = bird_table$habitat),
                       FUN = length)
bird_table1<-bird_table1[order(bird_table1$Species), ]
bird_table1
##                      Species        Family Habitat Count
## 79     Ammodramus savannarum Passerellidae    Open   106
## 36     Cardellina canadensis     Parulidae  Forest   241
## 8         Cardellina pusilla     Parulidae    Edge   185
## 63       Catharus fuscescens      Turdidae  Forest   727
## 64         Catharus guttatus      Turdidae  Forest  3729
## 65          Catharus minimus      Turdidae  Forest   822
## 66        Catharus ustulatus      Turdidae  Forest  2331
## 35         Certhia americana    Certhiidae  Forest  2676
## 85     Cistothorus palustris Troglodytidae    Open    91
## 86     Cistothorus platensis Troglodytidae    Open    60
## 28          Contopus cooperi    Tyrannidae    Edge     4
## 68           Contopus virens    Tyrannidae  Forest    70
## 6     Dumetella carolinensis       Mimidae    Edge   599
## 69    Empidonax flaviventris    Tyrannidae  Forest    68
## 29         Empidonax minimus    Tyrannidae    Edge    96
## 87        Empidonax traillii    Tyrannidae    Open   177
## 70       Empidonax virescens    Tyrannidae  Forest     7
## 37        Geothlypis formosa     Parulidae  Forest    16
## 9    Geothlypis philadelphia     Parulidae    Edge   430
## 78        Geothlypis trichas     Parulidae    Open  1555
## 67      Hylocichla mustelina      Turdidae  Forest   500
## 5             Icteria virens    Icteriidae    Edge    15
## 3            Icterus galbula     Icteridae    Edge    83
## 4            Icterus spurius     Icteridae    Edge     6
## 18            Junco hyemalis Passerellidae    Edge  6303
## 77          Lanius excubitor      Laniidae    Open     1
## 80       Melospiza georgiana Passerellidae    Open  4910
## 19       Melospiza lincolnii Passerellidae    Edge  2029
## 20         Melospiza melodia Passerellidae    Edge  5124
## 38           Mniotilta varia     Parulidae  Forest   620
## 30        Myiarchus crinitus    Tyrannidae    Edge    28
## 39          Oporornis agilis     Parulidae  Forest   365
## 10        Oreothlypis celata     Parulidae    Edge   227
## 11     Oreothlypis peregrina     Parulidae    Edge  2515
## 40   Oreothlypis ruficapilla     Parulidae  Forest  1690
## 41        Parkesia motacilla     Parulidae  Forest    15
## 42   Parkesia noveboracensis     Parulidae  Forest   916
## 81 Passerculus sandwichensis Passerellidae    Open   274
## 21         Passerella iliaca Passerellidae    Edge  2443
## 1         Passerina caerulea  Cardinalidae    Edge     1
## 2           Passerina cyanea  Cardinalidae    Edge   725
## 32   Pheucticus ludovicianus  Cardinalidae  Forest   397
## 22   Pipilo erythrophthalmus Passerellidae    Edge    82
## 33          Piranga olivacea  Cardinalidae  Forest   127
## 34             Piranga rubra  Cardinalidae  Forest     9
## 58       Polioptila caerulea Polioptilidae  Forest     6
## 82       Pooecetes gramineus Passerellidae    Open    10
## 43       Protonotaria citrea     Parulidae  Forest     6
## 59         Regulus calendula     Regulidae  Forest   416
## 60           Regulus satrapa     Regulidae  Forest  1029
## 31           Sayornis phoebe    Tyrannidae    Edge    24
## 44       Seiurus aurocapilla     Parulidae  Forest  4580
## 45       Setophaga americana     Parulidae  Forest    59
## 46    Setophaga caerulescens     Parulidae  Forest   183
## 47        Setophaga castanea     Parulidae  Forest   287
## 48         Setophaga cerulea     Parulidae  Forest     3
## 49         Setophaga citrina     Parulidae  Forest     5
## 50        Setophaga coronata     Parulidae  Forest   887
## 51           Setophaga fusca     Parulidae  Forest   201
## 52        Setophaga magnolia     Parulidae  Forest  1224
## 12        Setophaga palmarum     Parulidae    Edge   694
## 13    Setophaga pensylvanica     Parulidae    Edge   303
## 14        Setophaga petechia     Parulidae    Edge    77
## 53           Setophaga pinus     Parulidae  Forest    49
## 15       Setophaga ruticilla     Parulidae    Edge   868
## 54         Setophaga striata     Parulidae  Forest   787
## 55         Setophaga tigrina     Parulidae  Forest   182
## 56          Setophaga virens     Parulidae  Forest   223
## 61          Sitta canadensis      Sittidae  Forest   260
## 83          Spizella pallida Passerellidae    Open    50
## 23        Spizella passerina Passerellidae    Edge    68
## 84          Spizella pusilla Passerellidae    Open   325
## 24      Spizelloides arborea Passerellidae    Edge  1262
## 76           Sturnella magna     Icteridae    Open    13
## 7            Toxostoma rufum       Mimidae    Edge   166
## 27         Troglodytes aedon Troglodytidae    Edge   104
## 62      Troglodytes hiemalis Troglodytidae  Forest   474
## 88         Tyrannus tyrannus    Tyrannidae    Open     4
## 16     Vermivora chrysoptera     Parulidae    Edge    53
## 17      Vermivora cyanoptera     Parulidae    Edge    16
## 71          Vireo flavifrons    Vireonidae  Forest    12
## 72              Vireo gilvus    Vireonidae  Forest     2
## 73           Vireo olivaceus    Vireonidae  Forest   133
## 74      Vireo philadelphicus    Vireonidae  Forest    12
## 75          Vireo solitarius    Vireonidae  Forest    18
## 57    Zonotrichia albicollis Passerellidae  Forest 10133
## 25    Zonotrichia leucophrys Passerellidae    Edge  1090
## 26       Zonotrichia querula Passerellidae    Edge     2
#Calculating proportions
per_species <- df_united%>% group_by(species_name) %>% tally()
per_species
## # A tibble: 88 × 2
##    species_name              n
##    <chr>                 <int>
##  1 Ammodramus savannarum   106
##  2 Cardellina canadensis   241
##  3 Cardellina pusilla      185
##  4 Catharus fuscescens     727
##  5 Catharus guttatus      3729
##  6 Catharus minimus        822
##  7 Catharus ustulatus     2331
##  8 Certhia americana      2676
##  9 Cistothorus palustris    91
## 10 Cistothorus platensis    60
## # ℹ 78 more rows
freq_species<-((per_species$n)/69695)
freq_species
##  [1] 1.520913e-03 3.457924e-03 2.654423e-03 1.043116e-02 5.350456e-02
##  [6] 1.179425e-02 3.344573e-02 3.839587e-02 1.305689e-03 8.608939e-04
## [11] 5.739293e-05 1.004376e-03 8.594591e-03 9.756797e-04 1.377430e-03
## [16] 2.539637e-03 1.004376e-04 2.295717e-04 6.169740e-03 2.231150e-02
## [21] 7.174116e-03 2.152235e-04 1.190903e-03 8.608939e-05 9.043690e-02
## [26] 1.434823e-05 7.044982e-02 2.911256e-02 7.352034e-02 8.895904e-03
## [31] 4.017505e-04 5.237105e-03 3.257049e-03 3.608580e-02 2.424851e-02
## [36] 2.152235e-04 1.314298e-02 3.931415e-03 3.505273e-02 1.434823e-05
## [41] 1.040247e-02 5.696248e-03 1.176555e-03 1.822225e-03 1.291341e-04
## [46] 8.608939e-05 1.434823e-04 8.608939e-05 5.968864e-03 1.476433e-02
## [51] 3.443576e-04 6.571490e-02 8.465457e-04 2.625726e-03 4.117942e-03
## [56] 4.304469e-05 7.174116e-05 1.272688e-02 2.883995e-03 1.756224e-02
## [61] 9.957673e-03 4.347514e-03 1.104814e-03 7.030633e-04 1.245427e-02
## [66] 1.129206e-02 2.611378e-03 3.199656e-03 3.730540e-03 7.174116e-04
## [71] 9.756797e-04 4.663175e-03 1.810747e-02 1.865270e-04 2.381806e-03
## [76] 1.492216e-03 6.801062e-03 5.739293e-05 7.604563e-04 2.295717e-04
## [81] 1.721788e-04 2.869646e-05 1.908315e-03 1.721788e-04 2.582682e-04
## [86] 1.453906e-01 1.563957e-02 2.869646e-05
#Adding the proportions as a column
bird_table3<-bird_table1%>%
  mutate(freq_species)
bird_table3
##                      Species        Family Habitat Count freq_species
## 79     Ammodramus savannarum Passerellidae    Open   106 1.520913e-03
## 36     Cardellina canadensis     Parulidae  Forest   241 3.457924e-03
## 8         Cardellina pusilla     Parulidae    Edge   185 2.654423e-03
## 63       Catharus fuscescens      Turdidae  Forest   727 1.043116e-02
## 64         Catharus guttatus      Turdidae  Forest  3729 5.350456e-02
## 65          Catharus minimus      Turdidae  Forest   822 1.179425e-02
## 66        Catharus ustulatus      Turdidae  Forest  2331 3.344573e-02
## 35         Certhia americana    Certhiidae  Forest  2676 3.839587e-02
## 85     Cistothorus palustris Troglodytidae    Open    91 1.305689e-03
## 86     Cistothorus platensis Troglodytidae    Open    60 8.608939e-04
## 28          Contopus cooperi    Tyrannidae    Edge     4 5.739293e-05
## 68           Contopus virens    Tyrannidae  Forest    70 1.004376e-03
## 6     Dumetella carolinensis       Mimidae    Edge   599 8.594591e-03
## 69    Empidonax flaviventris    Tyrannidae  Forest    68 9.756797e-04
## 29         Empidonax minimus    Tyrannidae    Edge    96 1.377430e-03
## 87        Empidonax traillii    Tyrannidae    Open   177 2.539637e-03
## 70       Empidonax virescens    Tyrannidae  Forest     7 1.004376e-04
## 37        Geothlypis formosa     Parulidae  Forest    16 2.295717e-04
## 9    Geothlypis philadelphia     Parulidae    Edge   430 6.169740e-03
## 78        Geothlypis trichas     Parulidae    Open  1555 2.231150e-02
## 67      Hylocichla mustelina      Turdidae  Forest   500 7.174116e-03
## 5             Icteria virens    Icteriidae    Edge    15 2.152235e-04
## 3            Icterus galbula     Icteridae    Edge    83 1.190903e-03
## 4            Icterus spurius     Icteridae    Edge     6 8.608939e-05
## 18            Junco hyemalis Passerellidae    Edge  6303 9.043690e-02
## 77          Lanius excubitor      Laniidae    Open     1 1.434823e-05
## 80       Melospiza georgiana Passerellidae    Open  4910 7.044982e-02
## 19       Melospiza lincolnii Passerellidae    Edge  2029 2.911256e-02
## 20         Melospiza melodia Passerellidae    Edge  5124 7.352034e-02
## 38           Mniotilta varia     Parulidae  Forest   620 8.895904e-03
## 30        Myiarchus crinitus    Tyrannidae    Edge    28 4.017505e-04
## 39          Oporornis agilis     Parulidae  Forest   365 5.237105e-03
## 10        Oreothlypis celata     Parulidae    Edge   227 3.257049e-03
## 11     Oreothlypis peregrina     Parulidae    Edge  2515 3.608580e-02
## 40   Oreothlypis ruficapilla     Parulidae  Forest  1690 2.424851e-02
## 41        Parkesia motacilla     Parulidae  Forest    15 2.152235e-04
## 42   Parkesia noveboracensis     Parulidae  Forest   916 1.314298e-02
## 81 Passerculus sandwichensis Passerellidae    Open   274 3.931415e-03
## 21         Passerella iliaca Passerellidae    Edge  2443 3.505273e-02
## 1         Passerina caerulea  Cardinalidae    Edge     1 1.434823e-05
## 2           Passerina cyanea  Cardinalidae    Edge   725 1.040247e-02
## 32   Pheucticus ludovicianus  Cardinalidae  Forest   397 5.696248e-03
## 22   Pipilo erythrophthalmus Passerellidae    Edge    82 1.176555e-03
## 33          Piranga olivacea  Cardinalidae  Forest   127 1.822225e-03
## 34             Piranga rubra  Cardinalidae  Forest     9 1.291341e-04
## 58       Polioptila caerulea Polioptilidae  Forest     6 8.608939e-05
## 82       Pooecetes gramineus Passerellidae    Open    10 1.434823e-04
## 43       Protonotaria citrea     Parulidae  Forest     6 8.608939e-05
## 59         Regulus calendula     Regulidae  Forest   416 5.968864e-03
## 60           Regulus satrapa     Regulidae  Forest  1029 1.476433e-02
## 31           Sayornis phoebe    Tyrannidae    Edge    24 3.443576e-04
## 44       Seiurus aurocapilla     Parulidae  Forest  4580 6.571490e-02
## 45       Setophaga americana     Parulidae  Forest    59 8.465457e-04
## 46    Setophaga caerulescens     Parulidae  Forest   183 2.625726e-03
## 47        Setophaga castanea     Parulidae  Forest   287 4.117942e-03
## 48         Setophaga cerulea     Parulidae  Forest     3 4.304469e-05
## 49         Setophaga citrina     Parulidae  Forest     5 7.174116e-05
## 50        Setophaga coronata     Parulidae  Forest   887 1.272688e-02
## 51           Setophaga fusca     Parulidae  Forest   201 2.883995e-03
## 52        Setophaga magnolia     Parulidae  Forest  1224 1.756224e-02
## 12        Setophaga palmarum     Parulidae    Edge   694 9.957673e-03
## 13    Setophaga pensylvanica     Parulidae    Edge   303 4.347514e-03
## 14        Setophaga petechia     Parulidae    Edge    77 1.104814e-03
## 53           Setophaga pinus     Parulidae  Forest    49 7.030633e-04
## 15       Setophaga ruticilla     Parulidae    Edge   868 1.245427e-02
## 54         Setophaga striata     Parulidae  Forest   787 1.129206e-02
## 55         Setophaga tigrina     Parulidae  Forest   182 2.611378e-03
## 56          Setophaga virens     Parulidae  Forest   223 3.199656e-03
## 61          Sitta canadensis      Sittidae  Forest   260 3.730540e-03
## 83          Spizella pallida Passerellidae    Open    50 7.174116e-04
## 23        Spizella passerina Passerellidae    Edge    68 9.756797e-04
## 84          Spizella pusilla Passerellidae    Open   325 4.663175e-03
## 24      Spizelloides arborea Passerellidae    Edge  1262 1.810747e-02
## 76           Sturnella magna     Icteridae    Open    13 1.865270e-04
## 7            Toxostoma rufum       Mimidae    Edge   166 2.381806e-03
## 27         Troglodytes aedon Troglodytidae    Edge   104 1.492216e-03
## 62      Troglodytes hiemalis Troglodytidae  Forest   474 6.801062e-03
## 88         Tyrannus tyrannus    Tyrannidae    Open     4 5.739293e-05
## 16     Vermivora chrysoptera     Parulidae    Edge    53 7.604563e-04
## 17      Vermivora cyanoptera     Parulidae    Edge    16 2.295717e-04
## 71          Vireo flavifrons    Vireonidae  Forest    12 1.721788e-04
## 72              Vireo gilvus    Vireonidae  Forest     2 2.869646e-05
## 73           Vireo olivaceus    Vireonidae  Forest   133 1.908315e-03
## 74      Vireo philadelphicus    Vireonidae  Forest    12 1.721788e-04
## 75          Vireo solitarius    Vireonidae  Forest    18 2.582682e-04
## 57    Zonotrichia albicollis Passerellidae  Forest 10133 1.453906e-01
## 25    Zonotrichia leucophrys Passerellidae    Edge  1090 1.563957e-02
## 26       Zonotrichia querula Passerellidae    Edge     2 2.869646e-05
#Adding a name to the column
colnames(bird_table3)[names(bird_table3)=="freq_species"]<-"species collisions per population"
bird_table3
##                      Species        Family Habitat Count
## 79     Ammodramus savannarum Passerellidae    Open   106
## 36     Cardellina canadensis     Parulidae  Forest   241
## 8         Cardellina pusilla     Parulidae    Edge   185
## 63       Catharus fuscescens      Turdidae  Forest   727
## 64         Catharus guttatus      Turdidae  Forest  3729
## 65          Catharus minimus      Turdidae  Forest   822
## 66        Catharus ustulatus      Turdidae  Forest  2331
## 35         Certhia americana    Certhiidae  Forest  2676
## 85     Cistothorus palustris Troglodytidae    Open    91
## 86     Cistothorus platensis Troglodytidae    Open    60
## 28          Contopus cooperi    Tyrannidae    Edge     4
## 68           Contopus virens    Tyrannidae  Forest    70
## 6     Dumetella carolinensis       Mimidae    Edge   599
## 69    Empidonax flaviventris    Tyrannidae  Forest    68
## 29         Empidonax minimus    Tyrannidae    Edge    96
## 87        Empidonax traillii    Tyrannidae    Open   177
## 70       Empidonax virescens    Tyrannidae  Forest     7
## 37        Geothlypis formosa     Parulidae  Forest    16
## 9    Geothlypis philadelphia     Parulidae    Edge   430
## 78        Geothlypis trichas     Parulidae    Open  1555
## 67      Hylocichla mustelina      Turdidae  Forest   500
## 5             Icteria virens    Icteriidae    Edge    15
## 3            Icterus galbula     Icteridae    Edge    83
## 4            Icterus spurius     Icteridae    Edge     6
## 18            Junco hyemalis Passerellidae    Edge  6303
## 77          Lanius excubitor      Laniidae    Open     1
## 80       Melospiza georgiana Passerellidae    Open  4910
## 19       Melospiza lincolnii Passerellidae    Edge  2029
## 20         Melospiza melodia Passerellidae    Edge  5124
## 38           Mniotilta varia     Parulidae  Forest   620
## 30        Myiarchus crinitus    Tyrannidae    Edge    28
## 39          Oporornis agilis     Parulidae  Forest   365
## 10        Oreothlypis celata     Parulidae    Edge   227
## 11     Oreothlypis peregrina     Parulidae    Edge  2515
## 40   Oreothlypis ruficapilla     Parulidae  Forest  1690
## 41        Parkesia motacilla     Parulidae  Forest    15
## 42   Parkesia noveboracensis     Parulidae  Forest   916
## 81 Passerculus sandwichensis Passerellidae    Open   274
## 21         Passerella iliaca Passerellidae    Edge  2443
## 1         Passerina caerulea  Cardinalidae    Edge     1
## 2           Passerina cyanea  Cardinalidae    Edge   725
## 32   Pheucticus ludovicianus  Cardinalidae  Forest   397
## 22   Pipilo erythrophthalmus Passerellidae    Edge    82
## 33          Piranga olivacea  Cardinalidae  Forest   127
## 34             Piranga rubra  Cardinalidae  Forest     9
## 58       Polioptila caerulea Polioptilidae  Forest     6
## 82       Pooecetes gramineus Passerellidae    Open    10
## 43       Protonotaria citrea     Parulidae  Forest     6
## 59         Regulus calendula     Regulidae  Forest   416
## 60           Regulus satrapa     Regulidae  Forest  1029
## 31           Sayornis phoebe    Tyrannidae    Edge    24
## 44       Seiurus aurocapilla     Parulidae  Forest  4580
## 45       Setophaga americana     Parulidae  Forest    59
## 46    Setophaga caerulescens     Parulidae  Forest   183
## 47        Setophaga castanea     Parulidae  Forest   287
## 48         Setophaga cerulea     Parulidae  Forest     3
## 49         Setophaga citrina     Parulidae  Forest     5
## 50        Setophaga coronata     Parulidae  Forest   887
## 51           Setophaga fusca     Parulidae  Forest   201
## 52        Setophaga magnolia     Parulidae  Forest  1224
## 12        Setophaga palmarum     Parulidae    Edge   694
## 13    Setophaga pensylvanica     Parulidae    Edge   303
## 14        Setophaga petechia     Parulidae    Edge    77
## 53           Setophaga pinus     Parulidae  Forest    49
## 15       Setophaga ruticilla     Parulidae    Edge   868
## 54         Setophaga striata     Parulidae  Forest   787
## 55         Setophaga tigrina     Parulidae  Forest   182
## 56          Setophaga virens     Parulidae  Forest   223
## 61          Sitta canadensis      Sittidae  Forest   260
## 83          Spizella pallida Passerellidae    Open    50
## 23        Spizella passerina Passerellidae    Edge    68
## 84          Spizella pusilla Passerellidae    Open   325
## 24      Spizelloides arborea Passerellidae    Edge  1262
## 76           Sturnella magna     Icteridae    Open    13
## 7            Toxostoma rufum       Mimidae    Edge   166
## 27         Troglodytes aedon Troglodytidae    Edge   104
## 62      Troglodytes hiemalis Troglodytidae  Forest   474
## 88         Tyrannus tyrannus    Tyrannidae    Open     4
## 16     Vermivora chrysoptera     Parulidae    Edge    53
## 17      Vermivora cyanoptera     Parulidae    Edge    16
## 71          Vireo flavifrons    Vireonidae  Forest    12
## 72              Vireo gilvus    Vireonidae  Forest     2
## 73           Vireo olivaceus    Vireonidae  Forest   133
## 74      Vireo philadelphicus    Vireonidae  Forest    12
## 75          Vireo solitarius    Vireonidae  Forest    18
## 57    Zonotrichia albicollis Passerellidae  Forest 10133
## 25    Zonotrichia leucophrys Passerellidae    Edge  1090
## 26       Zonotrichia querula Passerellidae    Edge     2
##    species collisions per population
## 79                      1.520913e-03
## 36                      3.457924e-03
## 8                       2.654423e-03
## 63                      1.043116e-02
## 64                      5.350456e-02
## 65                      1.179425e-02
## 66                      3.344573e-02
## 35                      3.839587e-02
## 85                      1.305689e-03
## 86                      8.608939e-04
## 28                      5.739293e-05
## 68                      1.004376e-03
## 6                       8.594591e-03
## 69                      9.756797e-04
## 29                      1.377430e-03
## 87                      2.539637e-03
## 70                      1.004376e-04
## 37                      2.295717e-04
## 9                       6.169740e-03
## 78                      2.231150e-02
## 67                      7.174116e-03
## 5                       2.152235e-04
## 3                       1.190903e-03
## 4                       8.608939e-05
## 18                      9.043690e-02
## 77                      1.434823e-05
## 80                      7.044982e-02
## 19                      2.911256e-02
## 20                      7.352034e-02
## 38                      8.895904e-03
## 30                      4.017505e-04
## 39                      5.237105e-03
## 10                      3.257049e-03
## 11                      3.608580e-02
## 40                      2.424851e-02
## 41                      2.152235e-04
## 42                      1.314298e-02
## 81                      3.931415e-03
## 21                      3.505273e-02
## 1                       1.434823e-05
## 2                       1.040247e-02
## 32                      5.696248e-03
## 22                      1.176555e-03
## 33                      1.822225e-03
## 34                      1.291341e-04
## 58                      8.608939e-05
## 82                      1.434823e-04
## 43                      8.608939e-05
## 59                      5.968864e-03
## 60                      1.476433e-02
## 31                      3.443576e-04
## 44                      6.571490e-02
## 45                      8.465457e-04
## 46                      2.625726e-03
## 47                      4.117942e-03
## 48                      4.304469e-05
## 49                      7.174116e-05
## 50                      1.272688e-02
## 51                      2.883995e-03
## 52                      1.756224e-02
## 12                      9.957673e-03
## 13                      4.347514e-03
## 14                      1.104814e-03
## 53                      7.030633e-04
## 15                      1.245427e-02
## 54                      1.129206e-02
## 55                      2.611378e-03
## 56                      3.199656e-03
## 61                      3.730540e-03
## 83                      7.174116e-04
## 23                      9.756797e-04
## 84                      4.663175e-03
## 24                      1.810747e-02
## 76                      1.865270e-04
## 7                       2.381806e-03
## 27                      1.492216e-03
## 62                      6.801062e-03
## 88                      5.739293e-05
## 16                      7.604563e-04
## 17                      2.295717e-04
## 71                      1.721788e-04
## 72                      2.869646e-05
## 73                      1.908315e-03
## 74                      1.721788e-04
## 75                      2.582682e-04
## 57                      1.453906e-01
## 25                      1.563957e-02
## 26                      2.869646e-05
#Table of top 10 species represented in the data set
top10_species_table<-filter(bird_table3,per_species$n>2100)
top10_species_table
##                   Species        Family Habitat Count
## 1       Catharus guttatus      Turdidae  Forest  3729
## 2      Catharus ustulatus      Turdidae  Forest  2331
## 3       Certhia americana    Certhiidae  Forest  2676
## 4          Junco hyemalis Passerellidae    Edge  6303
## 5     Melospiza georgiana Passerellidae    Open  4910
## 6       Melospiza melodia Passerellidae    Edge  5124
## 7   Oreothlypis peregrina     Parulidae    Edge  2515
## 8       Passerella iliaca Passerellidae    Edge  2443
## 9     Seiurus aurocapilla     Parulidae  Forest  4580
## 10 Zonotrichia albicollis Passerellidae  Forest 10133
##    species collisions per population
## 1                         0.05350456
## 2                         0.03344573
## 3                         0.03839587
## 4                         0.09043690
## 5                         0.07044982
## 6                         0.07352034
## 7                         0.03608580
## 8                         0.03505273
## 9                         0.06571490
## 10                        0.14539063
#Table with vectors per species and frequency of the species
bird_table2<-top10_species_table%>%
  select(Species,Count,`species collisions per population`)
bird_table2
##                   Species Count species collisions per population
## 1       Catharus guttatus  3729                        0.05350456
## 2      Catharus ustulatus  2331                        0.03344573
## 3       Certhia americana  2676                        0.03839587
## 4          Junco hyemalis  6303                        0.09043690
## 5     Melospiza georgiana  4910                        0.07044982
## 6       Melospiza melodia  5124                        0.07352034
## 7   Oreothlypis peregrina  2515                        0.03608580
## 8       Passerella iliaca  2443                        0.03505273
## 9     Seiurus aurocapilla  4580                        0.06571490
## 10 Zonotrichia albicollis 10133                        0.14539063
#Table ordered in descending count
Table.Desc <- bird_table2 %>% arrange(desc(`species collisions per population`))
Table.Desc
##                   Species Count species collisions per population
## 1  Zonotrichia albicollis 10133                        0.14539063
## 2          Junco hyemalis  6303                        0.09043690
## 3       Melospiza melodia  5124                        0.07352034
## 4     Melospiza georgiana  4910                        0.07044982
## 5     Seiurus aurocapilla  4580                        0.06571490
## 6       Catharus guttatus  3729                        0.05350456
## 7       Certhia americana  2676                        0.03839587
## 8   Oreothlypis peregrina  2515                        0.03608580
## 9       Passerella iliaca  2443                        0.03505273
## 10     Catharus ustulatus  2331                        0.03344573

Part 3 - Statistical Test (Inferential Statistics)

An X^2 goodness-of-fit test was used to compare each bird’s species with the number of building collisions they had. This statistical test was used as we were comparing the distribution of a categorical variable. The assumptions for this test are randomly sampled data, no category with an expected frequency less than one, and no more than 20% of the categories having an expected frequency less than 5 (Whitlock & Schluter, 2015).

H0: The rate of building collisions across different species of birds is the same. HA: The rate of building collisions across different species of birds is not the same.

The relevant statistic for a X^2 goodness-of-fit test is X^2. We are using a p-value of 0.05.

#Observed frequencies of building collisions per bird species
observedfreq<-top10_species_table$Count
observedfreq
##  [1]  3729  2331  2676  6303  4910  5124  2515  2443  4580 10133
#Expected frequencies if there is not a difference between species, all added together should equal 1
expectedfreq<-c(0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1)

#Running an X^2 goodness of fit test
chisq.test(x=observedfreq, p=expectedfreq, correct = FALSE)
## 
##  Chi-squared test for given probabilities
## 
## data:  observedfreq
## X-squared = 11697, df = 9, p-value < 2.2e-16
#Making a table of observed vs. expected frequencies
challengebird<-data.frame(observedfreq, expectedfreq)
challengebird
##    observedfreq expectedfreq
## 1          3729          0.1
## 2          2331          0.1
## 3          2676          0.1
## 4          6303          0.1
## 5          4910          0.1
## 6          5124          0.1
## 7          2515          0.1
## 8          2443          0.1
## 9          4580          0.1
## 10        10133          0.1
rownames(challengebird)<- top10_species_table$species

Bar graph of the data set in descending order of number of collisions per bird species.

#Bar plot color coded by bird species in order of descending count
ggplot(Table.Desc, aes(x= reorder(Species,-Count),y = Count, fill = Species)) +
  geom_bar(stat = "identity") +
  labs(x = "Species", y = "Count", fill = "Species")+
  theme_classic()+
  theme(
    axis.text.x=element_blank(),
    axis.ticks.x=element_blank())+
  ggtitle("Top 10 Species Collision Count")

Part 4 - Conclusion

Based on the super low p-value, we can reject the null hypothesis, meaning that different species of birds collide with buildings in Chicago and Cleveland at different rates (X^2 = 11635, df=9, p=2.2e-16).

This is important in knowing which species are more vulnerable to colliding with buildings, because if a species is more prone to collisions, more measures should be adopted to lessen this. In the case of the species with the highest number of collisions, Zonotrichia albicollis or white-throated sparrow, they migrate at night and tend to be drawn to tall, lighted structures, hence, causing more collisions from these birds (All About Birds, 2020). In fact, 1 out of every 3 of these birds have disappeared since 1970 and a huge factor of this is high mortality from building collisions (All About Birds, 2020). They are also the most common species in bird collisions from some studies in Toronto and Manhattan (Fritts, 2022). Moving forward to reduce bird collisions, building updates could include using bird friendly materials, using decals and paint on windows, and turning off lights that are non essential at night (Fritts, 2022).

Some limitations on the analysis is that we only used the top 10 species represented in the data set for clarity. The data was collected from over 40 years in Chicago and Cleveland, so it cannot be applied outside of that city. The data also is birds found dead from collisions around buildings, so if the bird survived or was not reported, it would not make it into the data set.

Overall, our data did match with previous studies involving Zonotrichia albicollis or white-throated sparrows. They tend to have a higher number of collisions than other bird species which was evident in our data table, bar graph, and is supported by our X^2 statistic and p-value.

References

Fritts, Rachel. (2022, March 16). These Seven Bird Species are Most Likely to Collide with Windows. American Bird Conservancy. https://abcbirds.org/blog/frequent-colliders/.

O’Toole, Hillarie. (2024, August 7). Bird Collisions: The Impact of “One”. NYC Bird Alliance. https://nycbirdalliance.org/blog/bird-collisions-the-impact-of-one.

Whitlock, M., & Schluter, D. (2015). The Analysis of Biological Data. Roberts and Company Publishers.

Winger BM, Weeks BC, Farnsworth A, Jones AW, Hennen M, Willard DE. (2019). Nocturnal flight-calling behaviour predicts vulnerability to artificial light in migratory birds. Proceedings of the Royal Society B 286(1900): 20190364. https://doi.org/10.1098/rspb.2019.0364.

(2025). White-throated Sparrow. All About Birds. https://www.allaboutbirds.org/guide/White-throated_Sparrow/photo-gallery/64980381.

(2020, September). Bird Profile: White-Throated Sparrow. All About Birds. https://www.allaboutbirds.org/news/bird-profile-white-throated-sparrow/#:~:text=Population%20Trends,efforts%20in%20other%20major%20cities.