Set up

knitr::opts_chunk$set(echo = TRUE)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.6.3
library(tidyr)
## Warning: package 'tidyr' was built under R version 3.6.3
library(car)
## Warning: package 'car' was built under R version 3.6.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 3.6.3

Importing

den_eff <- read.csv("density_effects.csv")
low_per <- read.csv("lowest_persistence.csv")
res_over <- read.csv("resource_overlap.csv")
stor_eff <- read.csv("storage_effects.csv")
summary(low_per)
##     ï..Test          X0.75             X0.8         X0.85     
##  Min.   : 1.00   Min.   :   0.0   Min.   :  0   Min.   :   0  
##  1st Qu.: 8.25   1st Qu.:  75.0   1st Qu.:  0   1st Qu.:   0  
##  Median :15.50   Median : 212.5   Median :200   Median : 225  
##  Mean   :15.50   Mean   : 324.2   Mean   :325   Mean   : 411  
##  3rd Qu.:22.75   3rd Qu.: 568.8   3rd Qu.:650   3rd Qu.: 775  
##  Max.   :30.00   Max.   :1050.0   Max.   :950   Max.   :1100  
##       X0.9             X0.95       
##  Min.   :   0.00   Min.   :   0.0  
##  1st Qu.:  11.25   1st Qu.:   0.0  
##  Median : 245.00   Median : 150.0  
##  Mean   : 382.50   Mean   : 365.8  
##  3rd Qu.: 693.75   3rd Qu.: 700.0  
##  Max.   :1100.00   Max.   :1100.0

Tidying Data

low_per_t <- low_per %>% 
  pivot_longer(X0.75:X0.95, names_to = "setting", values_to = "output")

stor_eff_t <- stor_eff %>% 
  pivot_longer(X10_1_1000:X1000_500_150, names_to = "setting", values_to = "output")

den_eff_t <- den_eff %>% 
  pivot_longer(none:X7_15_two, names_to = "setting", values_to = "output")

res_over_t <- res_over %>% 
  pivot_longer(X0_10:X10_0_rem, names_to = "setting", values_to = "output")

Lowest Persistence Tests

bar_low <- bartlett.test(output ~ setting, data = low_per_t)
bar_low
## 
##  Bartlett test of homogeneity of variances
## 
## data:  output by setting
## Bartlett's K-squared = 2.4366, df = 4, p-value = 0.656
leveneTest(output ~ setting, data = low_per_t)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value Pr(>F)
## group   4  0.9131 0.4581
##       145
ggplot(low_per_t) + 
  geom_violin(aes(x = setting, y = output)) +
  geom_boxplot(aes(x = setting, y = output), alpha = 0.5, width = 0.05) +
  geom_jitter(aes(x = setting, y = output), alpha = 0.5, width = 0.2) +
  theme_bw() +
  theme(panel.grid.major.x = element_blank(),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.minor.y = element_blank()) +
  ylab("Population Level")+
  xlab("Resource Growth and Depletion Setting")+
  labs(title = "Resource Growth to Population Level", subtitle = "Determining the minimum persistence level with the highest population")

aov_low <- aov(output ~ setting, data = low_per_t)
summary(aov_low)
##              Df   Sum Sq Mean Sq F value Pr(>F)
## setting       4   169076   42269   0.306  0.873
## Residuals   145 20005866  137971

Storage Effects

leveneTest(output ~ setting, data = stor_eff_t)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value Pr(>F)
## group   3  0.2123 0.8877
##       116
aov_stor <- aov(output ~ setting, data = stor_eff_t)
summary(aov_stor)
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## setting       3   8.49  2.8306   8.121 5.91e-05 ***
## Residuals   116  40.43  0.3486                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov_stor)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = output ~ setting, data = stor_eff_t)
## 
## $setting
##                                  diff        lwr          upr     p adj
## X100_10_500-X10_1_1000     0.23333333 -0.1640232  0.630689871 0.4226215
## X1000_500_150-X10_1_1000  -0.40000000 -0.7973565 -0.002643462 0.0478424
## X500_50_200-X10_1_1000     0.26666667 -0.1306899  0.664023204 0.3032216
## X1000_500_150-X100_10_500 -0.63333333 -1.0306899 -0.235976796 0.0003607
## X500_50_200-X100_10_500    0.03333333 -0.3640232  0.430689871 0.9962891
## X500_50_200-X1000_500_150  0.66666667  0.2693101  1.064023204 0.0001562
plot(TukeyHSD(aov_stor, conf.level=0.95), las = 2)

stor_mini <- read.csv("storage_mini_graph.csv")

stor_mini$Type <- factor(stor_mini$Type, levels = stor_mini$Type)


ggplot(data = stor_mini, aes(x = Type, y = ï..Chance, label = ï..Chance)) + 
  geom_point(stat='identity', fill = "black", size = 10) +
  geom_segment(aes(y = 1,
                   x = Type,
                   yend = ï..Chance,
                   xend = Type),
               color = "black") +
  geom_text(color = "white", size = 3) +
  labs(title = "Resource-use Efficiency Composition Patterns",
       subtitle = "Measures storage effect deviation from null model or average exclusion of 1.0.") +
  ylim (0, 2) +
  coord_flip() +
  ylab("Composition Pattern \n (0 = extinction, 1 = exclusion, 2 = coexistence)") +
  xlab("Test Category \n (Food energy - Breed energy - Death limit)") +
  theme_bw() +
  theme(panel.grid.major.x = element_blank(),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.x = element_blank()) +
  geom_hline(yintercept = 1, linetype = "dashed")

Density Effects

leveneTest(output ~ setting, data = den_eff_t)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value Pr(>F)
## group   4  0.8826  0.476
##       145
aov_den <- aov(output ~ setting, data = den_eff_t)
summary(aov_den)
##              Df Sum Sq Mean Sq F value Pr(>F)
## setting       4   1.91  0.4767    1.34  0.258
## Residuals   145  51.57  0.3556
TukeyHSD(aov_den)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = output ~ setting, data = den_eff_t)
## 
## $setting
##                              diff        lwr       upr     p adj
## X2_5_one-none        1.000000e-01 -0.3253460 0.5253460 0.9665035
## X2_5_two-none        3.000000e-01 -0.1253460 0.7253460 0.2968227
## X7_15_one-none       1.000000e-01 -0.3253460 0.5253460 0.9665035
## X7_15_two-none       2.666667e-01 -0.1586794 0.6920127 0.4178061
## X2_5_two-X2_5_one    2.000000e-01 -0.2253460 0.6253460 0.6923163
## X7_15_one-X2_5_one   2.220446e-16 -0.4253460 0.4253460 1.0000000
## X7_15_two-X2_5_one   1.666667e-01 -0.2586794 0.5920127 0.8153387
## X7_15_one-X2_5_two  -2.000000e-01 -0.6253460 0.2253460 0.6923163
## X7_15_two-X2_5_two  -3.333333e-02 -0.4586794 0.3920127 0.9995067
## X7_15_two-X7_15_one  1.666667e-01 -0.2586794 0.5920127 0.8153387
plot(TukeyHSD(aov_den, conf.level=0.95), las = 2)

den_mini <- read.csv("density_mini_graph.csv")

den_mini$Type <- factor(den_mini$Type, levels = den_mini$Type)


ggplot(data = den_mini, aes(x = Type, y = ï..Chance, label = ï..Chance)) + 
  geom_point(stat='identity', fill = "black", size = 10) +
  geom_segment(aes(y = 1,
                   x = Type,
                   yend = ï..Chance,
                   xend = Type),
               color = "black") +
  geom_text(color = "white", size = 3) +
  labs(title = "Density Effects Composition Patterns",
       subtitle = "Measures the swarming effect deviation from null model or average exclusion of 1.0.") +
  ylim (0, 2) +
  coord_flip() +
  ylab("Composition Pattern \n (0 = extinction, 1 = exclusion, 2 = coexistence)") +
  xlab("Test Category \n (Peak effect 1 / Peak effect 2 - # of species swarming)") +
  theme_bw() +
  theme(panel.grid.major.x = element_blank(),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.x = element_blank()) +
  geom_hline(yintercept = 1, linetype = "dashed")

Resource Overlap

leveneTest(output ~ setting, data = res_over_t)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value  Pr(>F)  
## group   6  2.1596 0.04835 *
##       203                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
aov_res <- aov(output ~ setting, data = res_over_t)
summary(aov_res)
##              Df Sum Sq Mean Sq F value Pr(>F)  
## setting       6   4.00  0.6667   2.173  0.047 *
## Residuals   203  62.27  0.3067                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov_res)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = output ~ setting, data = res_over_t)
## 
## $setting
##                          diff         lwr       upr     p adj
## X1_9-X0_10       1.666667e-01 -0.25920656 0.5925399 0.9061888
## X10_0-X0_10     -3.333333e-02 -0.45920656 0.3925399 0.9999864
## X10_0_rem-X0_10  1.776357e-15 -0.42587323 0.4258732 1.0000000
## X5_5-X0_10       3.666667e-01 -0.05920656 0.7925399 0.1427548
## X7_3-X0_10       2.333333e-01 -0.19253989 0.6592066 0.6619771
## X9_1-X0_10       2.000000e-01 -0.22587323 0.6258732 0.8021090
## X10_0-X1_9      -2.000000e-01 -0.62587323 0.2258732 0.8021090
## X10_0_rem-X1_9  -1.666667e-01 -0.59253989 0.2592066 0.9061888
## X5_5-X1_9        2.000000e-01 -0.22587323 0.6258732 0.8021090
## X7_3-X1_9        6.666667e-02 -0.35920656 0.4925399 0.9992178
## X9_1-X1_9        3.333333e-02 -0.39253989 0.4592066 0.9999864
## X10_0_rem-X10_0  3.333333e-02 -0.39253989 0.4592066 0.9999864
## X5_5-X10_0       4.000000e-01 -0.02587323 0.8258732 0.0811127
## X7_3-X10_0       2.666667e-01 -0.15920656 0.6925399 0.5060946
## X9_1-X10_0       2.333333e-01 -0.19253989 0.6592066 0.6619771
## X5_5-X10_0_rem   3.666667e-01 -0.05920656 0.7925399 0.1427548
## X7_3-X10_0_rem   2.333333e-01 -0.19253989 0.6592066 0.6619771
## X9_1-X10_0_rem   2.000000e-01 -0.22587323 0.6258732 0.8021090
## X7_3-X5_5       -1.333333e-01 -0.55920656 0.2925399 0.9669073
## X9_1-X5_5       -1.666667e-01 -0.59253989 0.2592066 0.9061888
## X9_1-X7_3       -3.333333e-02 -0.45920656 0.3925399 0.9999864
plot(TukeyHSD(aov_res, conf.level=0.95), las = 2)

res_mini <- read.csv("resource_mini_graph.csv")

res_mini$Type <- factor(res_mini$Type, levels = res_mini$Type)


ggplot(data = res_mini, aes(x = Type, y = Chance, label = Chance)) + 
  geom_point(stat='identity', fill = "black", size = 10) +
  geom_segment(aes(y = 1,
                   x = Type,
                   yend = Chance,
                   xend = Type),
               color = "black") +
  geom_text(color = "white", size = 3) +
  labs(title = "Resource Overlap Composition Patterns",
       subtitle = "Measures the deviation from null model or average exclusion of 1.0.") +
  ylim (0, 2) +
  coord_flip() +
  ylab("Composition Pattern \n (0 = extinction, 1 = exclusion, 2 = coexistence)") +
  xlab("Test Category \n (Own resource - Shared resource)") +
  theme_bw() +
  theme(panel.grid.major.x = element_blank(),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.x = element_blank()) +
  geom_hline(yintercept = 1, linetype = "dashed")