Executive Summary

This analysis examines southern sea otter (Enhydra lutris nereis) stranding data from Monterey County, California (2019-2024) to compare natural predation (shark bite) versus anthropogenic (human-caused) trauma. The primary research question is: How do strandings attributed to natural predation compare to strandings attributed to direct human-related trauma in Monterey County?

Hypothesis: Shark bite strandings occur more frequently than anthropogenic strandings, reflecting the persistent influence of natural predators relative to episodic human interactions.


1. Data Import and Cleaning

# Load required packages
library(tidyverse)
library(readxl)
library(ggplot2)
library(knitr)
library(kableExtra)
library(scales)
library(gt)
# Import the sea otter stranding dataset
sea_otter_data <- read_excel("Downloads/Sea_Otter_Strandings.xlsx")

# Display dataset structure
cat("Dataset contains", nrow(sea_otter_data), "total records with",
    ncol(sea_otter_data), "variables.\n")
## Dataset contains 2036 total records with 9 variables.

Data Cleaning Steps

The following data cleaning procedures were implemented to ensure data quality and consistency:

  1. Standardize county names to uppercase
  2. Fix abbreviated terms (e.g., “MISC.” to “MISC”)
  3. Ensure year values are numeric
  4. Filter for study period (2019-2024)
# Clean and prepare the data
otter_clean <- sea_otter_data %>%
  # Standardize county names to uppercase
  mutate(COUNTY = toupper(COUNTY)) %>%
  # Fix "MISC." to "MISC" in COS CATEGORY
  mutate(`COS CATEGORY` = str_replace(`COS CATEGORY`, "MISC\\.", "MISC")) %>%
  # Ensure year is numeric
  mutate(YEAR = as.numeric(YEAR)) %>%
  # Filter for years 2019-2024
  filter(YEAR >= 2019 & YEAR <= 2024)

cat("After filtering for 2019-2024:", nrow(otter_clean), "records\n")
## After filtering for 2019-2024: 2036 records

2. Monterey County Focus

For this analysis, we focus exclusively on strandings in Monterey County, which represents a core area of the southern sea otter’s current range.

# Filter for Monterey County only
monterey_data <- otter_clean %>%
  filter(COUNTY == "MONTEREY")

# Calculate key metrics
total_monterey <- nrow(monterey_data)
total_statewide <- nrow(otter_clean)
monterey_percent <- round((total_monterey / total_statewide) * 100, 1)

Key Finding: Monterey County accounted for 764 strandings out of 2036 statewide (37.5% of all California strandings during 2019-2024).


3. Summary of All Stranding Causes

Before examining shark bite and anthropogenic strandings specifically, we first characterize the full distribution of cause of stranding (COS) categories in Monterey County.

# Create summary of all COS categories
cos_summary <- monterey_data %>%
  group_by(`COS CATEGORY`) %>%
  summarise(
    Total_Strandings = n(),
    Percent = round((n() / nrow(monterey_data)) * 100, 1)
  ) %>%
  arrange(desc(Total_Strandings))

# Display formatted table
cos_summary %>%
  gt() %>%
  tab_header(
    title = "Table 1: All Cause of Stranding Categories",
    subtitle = "Monterey County, California (2019-2024)"
  ) %>%
  cols_label(
    `COS CATEGORY` = "Cause of Stranding",
    Total_Strandings = "Total Strandings",
    Percent = "Percent (%)"
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "#E8F4F8"),
      cell_text(weight = "bold")
    ),
    locations = cells_body(
      rows = `COS CATEGORY` %in% c("SHARK BITE", "ANTHROPOGENIC")
    )
  ) %>%
  grand_summary_rows(
    columns = Total_Strandings,
    fns = list(Total = ~sum(.)),
    fmt = ~ fmt_number(., decimals = 0)
  )
Table 1: All Cause of Stranding Categories
Monterey County, California (2019-2024)
Cause of Stranding Total Strandings Percent (%)
UNKNOWN 193 25.3
SHARK BITE 191 25.0
DEPENDENT ANIMAL 145 19.0
MISC 114 14.9
UNKNOWN, NO TRAUMA 73 9.6
UNKNOWN, WITH TRAUMA 39 5.1
ANTHROPOGENIC 8 1.0
UNUSUAL CIRCUMSTANCE 1 0.1
Total 764

Notable Pattern: UNKNOWN and SHARK BITE are the two most frequent categories, each accounting for approximately 25% of all strandings. ANTHROPOGENIC represents only 1.0% of strandings.


4. Shark Bite vs Anthropogenic: Primary Comparison

This section directly addresses the research question by comparing shark bite and anthropogenic strandings.

# Calculate shark bite vs anthropogenic statistics
trauma_comparison <- monterey_data %>%
  filter(`COS CATEGORY` %in% c("SHARK BITE", "ANTHROPOGENIC")) %>%
  group_by(`COS CATEGORY`) %>%
  summarise(
    Total = n(),
    Percent_of_Trauma = round((n() / sum(n())) * 100, 1)
  )

# Extract values for inline reporting
shark_n <- trauma_comparison %>% filter(`COS CATEGORY` == "SHARK BITE") %>% pull(Total)
anthro_n <- trauma_comparison %>% filter(`COS CATEGORY` == "ANTHROPOGENIC") %>% pull(Total)
ratio <- round(shark_n / anthro_n, 1)

Key Statistics

  • Shark Bite Strandings: 191 (96.0% of confirmed trauma cases)
  • Anthropogenic Strandings: 8 (4.0% of confirmed trauma cases)
  • Ratio: 23.9:1 (shark bite to anthropogenic)
# Display comparison table
trauma_comparison %>%
  gt() %>%
  tab_header(
    title = "Table 2: Shark Bite vs Anthropogenic Strandings",
    subtitle = "Monterey County, California (2019-2024)"
  ) %>%
  cols_label(
    `COS CATEGORY` = "Cause of Stranding",
    Total = "Total Cases",
    Percent_of_Trauma = "% of Trauma Cases"
  ) %>%
  tab_style(
    style = cell_fill(color = "#0072B2", alpha = 0.3),
    locations = cells_body(rows = `COS CATEGORY` == "SHARK BITE")
  ) %>%
  tab_style(
    style = cell_fill(color = "#D55E00", alpha = 0.3),
    locations = cells_body(rows = `COS CATEGORY` == "ANTHROPOGENIC")
  )
Table 2: Shark Bite vs Anthropogenic Strandings
Monterey County, California (2019-2024)
Cause of Stranding Total Cases % of Trauma Cases
ANTHROPOGENIC 8 100
SHARK BITE 191 100

5. Figure 1: Total Comparison

# Prepare data for Figure 1
fig1_data <- monterey_data %>%
  filter(`COS CATEGORY` %in% c("SHARK BITE", "ANTHROPOGENIC")) %>%
  group_by(`COS CATEGORY`) %>%
  summarise(Total = n())

# Create Figure 1
ggplot(fig1_data, aes(x = `COS CATEGORY`, y = Total, fill = `COS CATEGORY`)) +
  geom_bar(stat = "identity", width = 0.6) +
  geom_text(aes(label = Total), vjust = -0.5, size = 6, fontface = "bold") +
  scale_fill_manual(
    values = c("ANTHROPOGENIC" = "#D55E00", "SHARK BITE" = "#0072B2")
  ) +
  labs(
    title = "Shark Bite vs Anthropogenic Strandings",
    subtitle = "Southern Sea Otters, Monterey County (2019-2024)",
    x = "Cause of Stranding",
    y = "Total Number of Strandings"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 18, hjust = 0.5),
    plot.subtitle = element_text(size = 13, hjust = 0.5, color = "gray30"),
    axis.title = element_text(face = "bold", size = 13),
    axis.text.x = element_text(size = 12),
    legend.position = "none",
    panel.grid.major.x = element_blank(),
    panel.grid.minor = element_blank()
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.1)),
    breaks = seq(0, 200, 25)
  )
**Figure 1.** Comparison of total shark bite and anthropogenic strandings in Monterey County, California from 2019-2024. Shark bite strandings (n=191) far exceeded anthropogenic strandings (n=8), representing a ratio of approximately 24:1.

Figure 1. Comparison of total shark bite and anthropogenic strandings in Monterey County, California from 2019-2024. Shark bite strandings (n=191) far exceeded anthropogenic strandings (n=8), representing a ratio of approximately 24:1.

Interpretation: Figure 1 provides stark visual evidence supporting the hypothesis. Shark bite strandings vastly outnumber anthropogenic strandings, indicating that natural predation represents a far more significant source of trauma-related mortality than direct human-caused physical injury in Monterey County during this period.


7. Figure 2: Annual Comparison

# Prepare data for Figure 2
fig2_data <- monterey_data %>%
  filter(`COS CATEGORY` %in% c("SHARK BITE", "ANTHROPOGENIC")) %>%
  group_by(YEAR, `COS CATEGORY`) %>%
  summarise(Count = n(), .groups = 'drop')

# Create Figure 2
ggplot(fig2_data, aes(x = factor(YEAR), y = Count, fill = `COS CATEGORY`)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
  geom_text(
    aes(label = Count),
    position = position_dodge(width = 0.8),
    vjust = -0.5,
    size = 4,
    fontface = "bold"
  ) +
  scale_fill_manual(
    values = c("ANTHROPOGENIC" = "#D55E00", "SHARK BITE" = "#0072B2"),
    labels = c("Anthropogenic", "Shark Bite")
  ) +
  labs(
    title = "Annual Trends in Stranding Causes",
    subtitle = "Southern Sea Otters, Monterey County (2019-2024)",
    x = "Year",
    y = "Number of Strandings",
    fill = "Cause of Stranding"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 18, hjust = 0.5),
    plot.subtitle = element_text(size = 13, hjust = 0.5, color = "gray30"),
    axis.title = element_text(face = "bold", size = 13),
    legend.title = element_text(face = "bold", size = 12),
    legend.position = "bottom",
    legend.text = element_text(size = 11),
    panel.grid.major.x = element_blank(),
    panel.grid.minor = element_blank()
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.15)),
    breaks = seq(0, 50, 5)
  )
**Figure 2.** Annual comparison of shark bite (blue) and anthropogenic (orange) strandings from 2019-2024. Shark bite consistently exceeded anthropogenic strandings across all six years, with annual shark bite cases ranging from 22-41 individuals.

Figure 2. Annual comparison of shark bite (blue) and anthropogenic (orange) strandings from 2019-2024. Shark bite consistently exceeded anthropogenic strandings across all six years, with annual shark bite cases ranging from 22-41 individuals.

Temporal Pattern: The consistent annual occurrence of shark bite mortality (22-41 cases per year) contrasts with the episodic, sporadic nature of anthropogenic strandings (0-2 cases per year). This supports characterizing natural predation as a persistent threat and anthropogenic trauma as intermittent.


8. Figure 3: Proportional Contribution

To provide context for how shark bite and anthropogenic strandings fit within the broader mortality picture, we examine their proportional contributions relative to all other causes.

# Prepare data for Figure 3
fig3_data <- monterey_data %>%
  mutate(Category_Group = case_when(
    `COS CATEGORY` == "SHARK BITE" ~ "Shark Bite",
    `COS CATEGORY` == "ANTHROPOGENIC" ~ "Anthropogenic",
    TRUE ~ "Other Causes"
  )) %>%
  group_by(Category_Group) %>%
  summarise(Count = n()) %>%
  mutate(
    Percent = round((Count / sum(Count)) * 100, 1),
    Label = paste0(Count, "\n(", Percent, "%)")
  ) %>%
  # Order for display
  mutate(Category_Group = factor(Category_Group,
                                 levels = c("Shark Bite", "Anthropogenic", "Other Causes")))

# Create Figure 3
ggplot(fig3_data, aes(x = Category_Group, y = Count, fill = Category_Group)) +
  geom_bar(stat = "identity", width = 0.65) +
  geom_text(aes(label = Label), vjust = -0.5, size = 5.5, fontface = "bold") +
  scale_fill_manual(
    values = c(
      "Shark Bite" = "#0072B2",
      "Anthropogenic" = "#D55E00",
      "Other Causes" = "#999999"
    )
  ) +
  labs(
    title = "Proportional Contribution of Stranding Causes",
    subtitle = "Southern Sea Otters, Monterey County (2019-2024)",
    x = "Cause Category",
    y = "Number of Strandings"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 18, hjust = 0.5),
    plot.subtitle = element_text(size = 13, hjust = 0.5, color = "gray30"),
    axis.title = element_text(face = "bold", size = 13),
    axis.text.x = element_text(size = 12),
    legend.position = "none",
    panel.grid.major.x = element_blank(),
    panel.grid.minor = element_blank()
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.12)),
    breaks = seq(0, 600, 100)
  )
**Figure 3.** Proportional contribution of different stranding cause categories in Monterey County (2019-2024). Shark bite accounted for 25% of all strandings (n=191), anthropogenic for 1% (n=8), and other causes for 74% (n=565).

Figure 3. Proportional contribution of different stranding cause categories in Monterey County (2019-2024). Shark bite accounted for 25% of all strandings (n=191), anthropogenic for 1% (n=8), and other causes for 74% (n=565).

Context: While shark bite is the single largest identified mortality cause (25%), the majority of strandings (74%) are attributed to unknown causes, dependent animal status, or miscellaneous factors. This highlights the importance of continued necropsy and diagnostic work to better characterize mortality sources.


9. Demographic Analysis: Shark Bite Victims

Understanding which demographic groups are most affected by shark predation provides insights into vulnerability patterns and potential population-level consequences.

9.1 Age Class Distribution

# Analyze age class distribution of shark bite victims
shark_bite_age <- monterey_data %>%
  filter(`COS CATEGORY` == "SHARK BITE") %>%
  group_by(`AGE CLASS`) %>%
  summarise(
    Count = n(),
    Percent = round((n() / sum(n())) * 100, 1)
  ) %>%
  arrange(desc(Count))

# Display table
shark_bite_age %>%
  gt() %>%
  tab_header(
    title = "Table 4: Age Class Distribution of Shark Bite Victims",
    subtitle = "n = 191 shark bite strandings"
  ) %>%
  cols_label(
    `AGE CLASS` = "Age Class",
    Count = "Number",
    Percent = "Percentage (%)"
  ) %>%
  tab_style(
    style = cell_fill(color = "#E3F2FD"),
    locations = cells_body(rows = `AGE CLASS` %in% c("SUBADULT", "ADULT"))
  ) %>%
  grand_summary_rows(
    columns = Count,
    fns = list(Total = ~sum(.)),
    fmt = ~ fmt_number(., decimals = 0)
  )
Table 4: Age Class Distribution of Shark Bite Victims
n = 191 shark bite strandings
Age Class Number Percentage (%)
SUBADULT 78 100
ADULT 76 100
IMMATURE 26 100
AGED ADULT 10 100
PUP 1 100
Total 191
# Create age class visualization
ggplot(shark_bite_age, aes(x = reorder(`AGE CLASS`, -Count), y = Count, fill = `AGE CLASS`)) +
  geom_bar(stat = "identity", width = 0.7) +
  geom_text(aes(label = paste0(Count, "\n(", Percent, "%)")),
            vjust = -0.3, size = 4, fontface = "bold") +
  scale_fill_brewer(palette = "Set2") +
  labs(
    title = "Age Class Distribution of Shark Bite Victims",
    subtitle = "Monterey County, California (2019-2024)",
    x = "Age Class",
    y = "Number of Individuals"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
    plot.subtitle = element_text(size = 12, hjust = 0.5, color = "gray30"),
    axis.title = element_text(face = "bold", size = 12),
    legend.position = "none",
    panel.grid.major.x = element_blank()
  ) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15)))
**Figure 4.** Age class distribution of shark bite victims. Subadults (40.8%) and adults (39.8%) comprise the vast majority of shark bite cases, while pups are rarely affected (0.5%).

Figure 4. Age class distribution of shark bite victims. Subadults (40.8%) and adults (39.8%) comprise the vast majority of shark bite cases, while pups are rarely affected (0.5%).

Finding: Subadults and adults collectively account for 80.6% of shark bite victims, indicating that predation primarily affects reproductively active or near-reproductive age classes.

9.2 Sex Distribution

# Analyze sex distribution of shark bite victims
shark_bite_sex <- monterey_data %>%
  filter(`COS CATEGORY` == "SHARK BITE") %>%
  group_by(SEX) %>%
  summarise(
    Count = n(),
    Percent = round((n() / sum(n())) * 100, 1)
  ) %>%
  arrange(desc(Count))

# Calculate male:female ratio
male_n <- shark_bite_sex %>% filter(SEX == "M") %>% pull(Count)
female_n <- shark_bite_sex %>% filter(SEX == "F") %>% pull(Count)
sex_ratio <- round(male_n / female_n, 1)

Key Finding: A pronounced male bias is observed among shark bite victims. Of 191 cases, 140 were males (73.3%) and 51 were females (26.7%), yielding a male-to-female ratio of 2.7:1.

# Display sex distribution table
shark_bite_sex %>%
  gt() %>%
  tab_header(
    title = "Table 5: Sex Distribution of Shark Bite Victims",
    subtitle = "n = 191 shark bite strandings"
  ) %>%
  cols_label(
    SEX = "Sex",
    Count = "Number",
    Percent = "Percentage (%)"
  ) %>%
  tab_style(
    style = cell_fill(color = "#E8EAF6"),
    locations = cells_body(rows = SEX == "M")
  ) %>%
  tab_footnote(
    footnote = "Male-to-female ratio = 2.7:1",
    locations = cells_column_labels(columns = SEX)
  )
Table 5: Sex Distribution of Shark Bite Victims
n = 191 shark bite strandings
Sex1 Number Percentage (%)
M 140 100
F 51 100
1 Male-to-female ratio = 2.7:1
# Create sex distribution visualization
ggplot(shark_bite_sex, aes(x = SEX, y = Count, fill = SEX)) +
  geom_bar(stat = "identity", width = 0.5) +
  geom_text(aes(label = paste0(Count, "\n(", Percent, "%)")),
            vjust = -0.3, size = 5, fontface = "bold") +
  scale_fill_manual(
    values = c("M" = "#4A90E2", "F" = "#E24A90"),
    labels = c("M" = "Male", "F" = "Female")
  ) +
  labs(
    title = "Sex Distribution of Shark Bite Victims",
    subtitle = "Male-biased predation pattern (2.7:1 ratio)",
    x = "Sex",
    y = "Number of Individuals",
    fill = "Sex"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
    plot.subtitle = element_text(size = 12, hjust = 0.5, color = "gray30"),
    axis.title = element_text(face = "bold", size = 12),
    legend.position = "bottom",
    panel.grid.major.x = element_blank()
  ) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15))) +
  scale_x_discrete(labels = c("F" = "Female", "M" = "Male"))
**Figure 5.** Sex distribution of shark bite victims showing pronounced male bias. Males accounted for 73.3% of shark bite strandings (n=140) compared to 26.7% females (n=51).

Figure 5. Sex distribution of shark bite victims showing pronounced male bias. Males accounted for 73.3% of shark bite strandings (n=140) compared to 26.7% females (n=51).

Ecological Interpretation: The male bias may reflect behavioral differences, with male sea otters typically occupying more exposed coastal areas and venturing into deeper water compared to females with dependent pups, potentially increasing encounter rates with white sharks.


10. Condition at Stranding

Examining the condition of carcasses at recovery provides insights into the timing and detectability of shark bite mortality events.

# Analyze condition at stranding for shark bite victims
shark_bite_condition <- monterey_data %>%
  filter(`COS CATEGORY` == "SHARK BITE") %>%
  group_by(CONDITION) %>%
  summarise(
    Count = n(),
    Percent = round((n() / sum(n())) * 100, 1)
  ) %>%
  arrange(desc(Count))

# Display condition table
shark_bite_condition %>%
  gt() %>%
  tab_header(
    title = "Table 6: Condition at Stranding for Shark Bite Victims",
    subtitle = "n = 191 shark bite cases"
  ) %>%
  cols_label(
    CONDITION = "Carcass Condition",
    Count = "Number",
    Percent = "Percentage (%)"
  ) %>%
  tab_style(
    style = cell_fill(color = "#F1F8E9"),
    locations = cells_body(rows = CONDITION %in% c("FRESH", "ALIVE"))
  )
Table 6: Condition at Stranding for Shark Bite Victims
n = 191 shark bite cases
Carcass Condition Number Percentage (%)
FRESH 87 100
ALIVE 44 100
MODERATE 39 100
ADVANCED 21 100

Finding: The majority of shark bite victims were recovered in fresh condition (45.5%) or alive (23.0%), indicating relatively rapid detection and recovery. This suggests shark-otter interactions often occur in nearshore areas with high detection probability.


11. Summary Statistics

# Create comprehensive summary
summary_stats <- monterey_data %>%
  summarise(
    Total_Strandings = n(),
    Shark_Bite = sum(`COS CATEGORY` == "SHARK BITE"),
    Anthropogenic = sum(`COS CATEGORY` == "ANTHROPOGENIC"),
    Other_Causes = sum(!`COS CATEGORY` %in% c("SHARK BITE", "ANTHROPOGENIC")),
    Shark_Bite_Percent = round((Shark_Bite / Total_Strandings) * 100, 1),
    Anthropogenic_Percent = round((Anthropogenic / Total_Strandings) * 100, 1),
    Ratio = round(Shark_Bite / Anthropogenic, 1),
    Years_Shark_Exceeds = 6,  # All 6 years
    Male_Shark_Victims = sum(`COS CATEGORY` == "SHARK BITE" & SEX == "M"),
    Male_Percent = round((Male_Shark_Victims / Shark_Bite) * 100, 1)
  )

# Display summary
summary_stats %>%
  pivot_longer(everything(), names_to = "Metric", values_to = "Value") %>%
  gt() %>%
  tab_header(
    title = "Table 7: Summary Statistics",
    subtitle = "Key findings from Monterey County analysis (2019-2024)"
  ) %>%
  cols_label(
    Metric = "Metric",
    Value = "Value"
  ) %>%
  tab_style(
    style = cell_fill(color = "#FFF9C4"),
    locations = cells_body(rows = Metric %in% c("Ratio", "Shark_Bite_Percent", "Male_Percent"))
  )
Table 7: Summary Statistics
Key findings from Monterey County analysis (2019-2024)
Metric Value
Total_Strandings 764.0
Shark_Bite 191.0
Anthropogenic 8.0
Other_Causes 565.0
Shark_Bite_Percent 25.0
Anthropogenic_Percent 1.0
Ratio 23.9
Years_Shark_Exceeds 6.0
Male_Shark_Victims 140.0
Male_Percent 73.3

12. Discussion and Conclusions

Hypothesis Support

The data strongly support the hypothesis that shark bite strandings occur more frequently than anthropogenic strandings in Monterey County. With a ratio of approximately 24:1 and shark predation exceeding anthropogenic trauma in all six years examined, natural predation by white sharks clearly represents a more persistent and numerically significant mortality source than direct human-caused physical trauma.

Key Findings

  1. Magnitude of Difference: Shark bite strandings (n=191) vastly outnumbered anthropogenic strandings (n=8) over the six-year period.

  2. Temporal Consistency: Shark bite exceeded anthropogenic mortality in every single year from 2019-2024, with no exceptions.

  3. Demographic Selectivity: Shark predation disproportionately affects males (73.3%) and prime-age individuals (subadults and adults = 80.6%).

  4. Proportional Impact: Shark bite represents 25% of all Monterey County strandings, making it the single largest identified mortality source.

  5. Episodic vs. Persistent: Anthropogenic trauma appears episodic (0-2 cases/year), while shark predation is persistent (22-41 cases/year).

Conservation Implications

While these findings demonstrate that direct anthropogenic trauma is numerically minor compared to natural predation, several important considerations for conservation management emerge:

  1. Success of Protection Measures: The low frequency of anthropogenic strandings may reflect effective enforcement of the Marine Mammal Protection Act and Endangered Species Act protections. Continued compliance is essential.

  2. Indirect Anthropogenic Impacts: This analysis captures only direct physical trauma. Indirect human impacts from disease, pollution, and climate change are not included but may be substantial.

  3. Natural Predation Management: Unlike anthropogenic threats that can be mitigated through regulation, natural predation presents complex management challenges and cannot be eliminated without disrupting ecosystem function.

  4. Population-Level Consequences: The male bias and prime-age focus of shark predation warrant demographic modeling to assess whether these patterns significantly constrain population growth.

  5. Individual Value: Even though anthropogenic cases are rare, each represents a preventable loss in a threatened population with slow reproductive rates.

Study Limitations

  • Stranding data represent minimum mortality estimates (not all carcasses recovered)
  • Advanced decomposition may prevent definitive cause determination
  • Category excludes indirect anthropogenic impacts (disease, pollution-related mortality)
  • Six-year timeframe may not capture longer-term fluctuations
  • Monterey County patterns may not represent entire subspecies range

Future Research Directions

  • Population modeling to assess demographic impacts of male-biased predation
  • Spatial analysis to identify high-risk areas and potential predation refugia
  • Behavioral studies on otter responses to shark presence
  • Quantification of indirect anthropogenic mortality from disease and toxins
  • Climate change effects on predator-prey spatial overlap

13. References

  1. Tinker, M. T., Hatfield, B. B., Harris, M. D., & Ames, J. A. (2016). Dramatic increase in sea otter mortality from white sharks in California. Marine Mammal Science, 32(1), 309-326.

  2. Jorgensen, S. J., Anderson, S., Ferretti, F., Tietz, J. R., et al. (2019). Killer whales redistribute white shark foraging pressure on seals. Scientific Reports, 9(1), 6153.

  3. Kreuder, C., Miller, M. A., Jessup, D. A., et al. (2003). Patterns of mortality in southern sea otters (Enhydra lutris nereis) from 1998-2001. Journal of Wildlife Diseases, 39(3), 495-509.

  4. Estes, J. A., & Palmisano, J. F. (1974). Sea otters: their role in structuring nearshore communities. Science, 185(4156), 1058-1060.

  5. U.S. Fish and Wildlife Service. (2023). Southern Sea Otter (Enhydra lutris nereis) 5-Year Review: Summary and Evaluation.


Appendix: Data Export

# Export summary tables for further use
write_csv(cos_summary, "monterey_all_cos_categories.csv")
write_csv(annual_comparison, "annual_shark_anthropogenic_comparison.csv")
write_csv(shark_bite_age, "shark_bite_age_distribution.csv")
write_csv(shark_bite_sex, "shark_bite_sex_distribution.csv")

cat("Data tables exported successfully!\n")

Document Information: - Analysis completed: 2025-12-13 - R version: R version 4.5.2 (2025-10-31) - Dataset: California Department of Fish and Wildlife Sea Otter Stranding Data (2019-2024) - Analysis focus: Monterey County, California - Total strandings analyzed: 764


This analysis was conducted for ESPM C103 Conservation Biology at UC Berkeley.