Comparative Analysis of the Bureau of Land Managements Wild Horse/Burro and Grazing Programs

There is a large amount of controversy online and in the media about the plight of wild horse on Federal lands and their care as prescribed to the Bureau of Land Management under the 1971 Wild Horse and Burro Protection Act.

The Program sets forth the requirement that wild horses and burros on BLM land are protected insofar as their presence does not cause undue environmental damage. The data analyzed in this project utilizes information about the Acceptable Management Level (AML) statistic from the BLM itself and is compared to datasets related to Grazing by private citiens on Grazing Allotment Areas which are leased to livestock owners and have a requirement of management by the lease holders.

I was unable to find the standard by which the High and Low AML fiqgures were arrived at in any capacity or particularly to the specfic Horse Management Areas (HMA) referenced. Nor was I able to find specific data as to the particular or general standards for Acceptable Management Levels (AML) for grazing allotments or even estimates of livestock populations allowed or actual on those allotments.

Boxplot of Square Mileage: Grazing Program

blm_graze_df %>%
  filter(!admin_st == "" & !admin_st == " ") %>%
  ggplot(aes(gis_miles, fill = admin_st)) +
  geom_boxplot() +
  theme_bw()

Boxplot of Square Mileage: HMA Program

blm_hb_df %>%
  ggplot(aes(total_miles, fill = admin_st)) +
  geom_boxplot() +
  theme_bw()

Boxplot of HMA Horse Populations by state

blm_hb_df %>%
  ggplot(aes(est_horse_pop, fill =  admin_st)) +
  geom_boxplot() +
  labs(title = "Total estimated Horse Distribution Summary by State",
       x = "Estimated Horse Population",
       y  = "State") +
  theme_bw()

Total # of HMAs per state

hb_df  <- blm_hb_df %>%
  group_by(admin_st) %>%
  summarise(Num_HMAs = n(),
            all_hb_miles = sum(total_miles))


  
hb_df %>%
  filter(!admin_st == "" & !admin_st == " ") %>%
  ggplot(aes(admin_st, Num_HMAs, fill = admin_st)) +
  geom_col() +
  theme_bw() +
  labs(title = "Number of HMAs per State", x = "State", y = " # of HMAs")

Total Horse Population by State

blm_hb_df %>%
  group_by(admin_st) %>%
  summarise(total_pop = sum(est_horse_pop)) %>%
  ggplot(aes(admin_st, total_pop, fill = admin_st)) +
  geom_col() +
  labs(title = "Total Horses per by State", x = "State", y = "Total Estimated Horse Population")

Mean Horse Population per Square Mile by State

blm_hb_df %>%
  group_by(admin_st) %>%
  summarise(mean_pop_mile = mean(est_horse_pop/total_miles)) %>%
  ggplot(aes(admin_st, mean_pop_mile, fill = admin_st)) +
  geom_col() +
  labs(title = "Mean Horses per Square Mile by State", x = "State", y = "Mean Horse Population")

Correlation of Horse Population to HMA Area by State

blm_hb_df %>%
  ggplot(aes(x = total_miles, y = est_horse_pop, color =  admin_st)) +
  geom_smooth(method = lm, se = FALSE) +
  labs(title = "Correlation of Horse Population to HMA Square Miles",
       y = "Estimated Horse Population",
       x = "HMA Total Square Miles")
## `geom_smooth()` using formula = 'y ~ x'

Correlation of AML to HMA Area by State

blm_hb_df %>%
  ggplot(aes(x = total_miles, y = horse_aml_high, color =  admin_st)) +
  geom_smooth(method = lm, se = FALSE) +
  labs(title = "Correlation of AML Upper limit to HMA Square Miles",
       y = "Horse AML Upper",
       x = "HMA Total Square Miles")
## `geom_smooth()` using formula = 'y ~ x'

Total # of BLM Grazing Allotments per State

gr_df  <- blm_graze_df %>%
  filter(!admin_st == "" & !admin_st == " ") %>%
  group_by(admin_st) %>%
  summarise(Num_allots = n(),
            all_graze_miles = sum(gis_miles))
#Plot
gr_df %>%
  ggplot(aes(admin_st, Num_allots, fill = admin_st)) +
  geom_col() +
  theme_bw() +
  labs(title = "Number of Grazing Allotments per State",
       x = "State",
       y = " # of Grazing Allotments")

Total # of BLM Horse Management Areas per State

df <- left_join(hb_df, gr_df, by = "admin_st")
df %>%
  ggplot(aes(x = admin_st, fill = admin_st, alpha = 0.5)) +
  geom_col(aes(y = Num_allots)) +
  geom_col(aes(y = Num_HMAs)) +
  geom_point(aes(y = Num_HMAs)) +
  labs(title = "Number of Allotments v. HMAs per State",
       x = "State",
       y = "Total Allotments/HMAs")

## Total Areas in Square Miles Appropriated by State

df %>%
  ggplot(aes(x = admin_st, fill = admin_st, alpha = 0.5)) +
  geom_col(aes(y = all_graze_miles)) +
  geom_col(aes(y = all_hb_miles)) +
  geom_point(aes(y = all_hb_miles)) +
  labs(title = "Grazing Miles v. HMA miles",
       x = "State", y = "Total Square Miles")

Conclusion

Without further data it is impossible to make a comparision or recommendation as to a solution for the apparent overcrowding of wild horse on BLM land. It is however evident that the amount of land available under the BLM’s management is disproportionaly skewed to Grazing over the Wild Horse and Burro Program. In order to more clearly recommend a process moving forward more data and transparency needs to be available regarding sustainable populations and available areas to expand horses and burros into.