Code
library(here)
library(glmmTMB)
library(tidyr)
library(tidyverse)
library(corrplot)
library(Hmisc)
library(ggeffects)
library(tinytable)
library(emmeans)
library(ggpp)
library(gtools)
library(DescTools)
library(here)
library(glmmTMB)
library(tidyr)
library(tidyverse)
library(corrplot)
library(Hmisc)
library(ggeffects)
library(tinytable)
library(emmeans)
library(ggpp)
library(gtools)
library(DescTools)
<- read.csv(here("Data/MPA.csv"))
MPA_data names(MPA_data)
[1] "fid"
[2] "WDPAID"
[3] "DESIG_TYPE"
[4] "IUCN_CAT"
[5] "NO_TK_AREA"
[6] "GOV_TYPE"
[7] "OWN_TYPE"
[8] "ISO3"
[9] "ADM0_A3"
[10] "INCOME_GRP"
[11] "ECONOMY"
[12] "CONTINENT"
[13] "SUBREGION"
[14] "REGION_WB"
[15] "removal_of_marine_life_is_prohibited"
[16] "category_name"
[17] "protection_focus"
[18] "designation"
[19] "lat"
[20] "lon"
[21] "pop_power_transform"
[22] "pop_raw"
[23] "mig_power_transform"
[24] "mig_raw"
[25] "gdp_power_transform"
[26] "gdp_raw"
[27] "age_power_transform"
[28] "age_raw"
[29] "fh_power_transform"
[30] "fh_raw"
[31] "GIS_M_AREA_power_transform"
[32] "GIS_M_AREA_raw"
[33] "directional_balance_index"
[34] "signed_magnitude_index"
<- MPA_data %>%
MPA_data mutate(Population = pop_power_transform,
Migration = mig_power_transform,
GDP = gdp_power_transform,
Age = age_power_transform,
Fishing_hours = fh_power_transform,
MPA_area = GIS_M_AREA_raw,
SMI = signed_magnitude_index,
DBI = directional_balance_index)
Little data descriptor:
IUCN_CAT: I = more restrictive VI = less restrictive
DBI: +1 = change in the positive direction -1 ~ change in the negative direction
SMI: +1 = change is positive (e.g., values increased in magnitude) -1 = change is negative (e.g., values decreased in magnitude)
<- MPA_data %>%
MPA_data mutate_if(is.character, as.factor)
<- sapply(MPA_data,class)
categorical_variables <- categorical_variables[which(categorical_variables=="factor")]
categorical_variables <- names(categorical_variables)
categorical_variables
lapply(categorical_variables, function(x){
%>%
MPA_data group_by(!!sym(x)) %>%
tally()
})
[[1]]
# A tibble: 4 × 2
DESIG_TYPE n
<fct> <int>
1 International 78
2 National 3654
3 Not Applicable 15
4 Regional 1055
[[2]]
# A tibble: 10 × 2
IUCN_CAT n
<fct> <int>
1 Ia 487
2 Ib 63
3 II 198
4 III 189
5 IV 1310
6 Not Applicable 20
7 Not Assigned 353
8 Not Reported 1419
9 V 399
10 VI 364
[[3]]
# A tibble: 10 × 2
GOV_TYPE n
<fct> <int>
1 Collaborative governance 282
2 Federal or national ministry or agency 2921
3 Government-delegated management 14
4 Indigenous peoples 34
5 Individual landowners 10
6 Joint governance 39
7 Local communities 29
8 Non-profit organisations 143
9 Not Reported 302
10 Sub-national ministry or agency 1028
[[4]]
# A tibble: 7 × 2
OWN_TYPE n
<fct> <int>
1 Communal 11
2 Individual landowners 44
3 Joint ownership 19
4 Multiple ownership 43
5 Non-profit organisations 130
6 Not Reported 3473
7 State 1082
[[5]]
# A tibble: 134 × 2
ISO3 n
<fct> <int>
1 AGO 1
2 AIA 2
3 ALA 6
4 ALB 2
5 ARE 7
6 ARG 10
7 ASM 6
8 ATG 7
9 AUS 292
10 AZE 1
# ℹ 124 more rows
[[6]]
# A tibble: 125 × 2
ADM0_A3 n
<fct> <int>
1 "" 71
2 "AGO" 1
3 "AIA" 2
4 "ALB" 2
5 "ARE" 7
6 "ARG" 10
7 "ASM" 6
8 "ATG" 7
9 "AUS" 292
10 "AZE" 1
# ℹ 115 more rows
[[7]]
# A tibble: 6 × 2
INCOME_GRP n
<fct> <int>
1 "" 71
2 "1. High income: OECD" 3777
3 "2. High income: nonOECD" 189
4 "3. Upper middle income" 472
5 "4. Lower middle income" 234
6 "5. Low income" 59
[[8]]
# A tibble: 8 × 2
ECONOMY n
<fct> <int>
1 "" 71
2 "1. Developed region: G7" 1540
3 "2. Developed region: nonG7" 2241
4 "3. Emerging region: BRIC" 46
5 "4. Emerging region: MIKT" 240
6 "5. Emerging region: G20" 158
7 "6. Developing region" 414
8 "7. Least developed region" 92
[[9]]
# A tibble: 8 × 2
CONTINENT n
<fct> <int>
1 "" 71
2 "Africa" 157
3 "Asia" 474
4 "Europe" 2375
5 "North America" 1016
6 "Oceania" 606
7 "Seven seas (open ocean)" 29
8 "South America" 74
[[10]]
# A tibble: 23 × 2
SUBREGION n
<fct> <int>
1 "" 1
2 "Australia and New Zealand" 479
3 "Caribbean" 189
4 "Central America" 66
5 "Central Asia" 4
6 "Eastern Africa" 99
7 "Eastern Asia" 273
8 "Eastern Europe" 42
9 "Melanesia" 66
10 "Micronesia" 33
# ℹ 13 more rows
[[11]]
# A tibble: 8 × 2
REGION_WB n
<fct> <int>
1 "" 71
2 "East Asia & Pacific" 1037
3 "Europe & Central Asia" 2357
4 "Latin America & Caribbean" 290
5 "Middle East & North Africa" 70
6 "North America" 800
7 "South Asia" 9
8 "Sub-Saharan Africa" 168
[[12]]
# A tibble: 9 × 2
category_name n
<fct> <int>
1 "" 14
2 "Fisheries Management Area" 1692
3 "IUCN MPA" 1487
4 "Jurisdictional Authority Area" 1158
5 "OECM" 20
6 "Other" 346
7 "Recreational Area" 28
8 "Vessel Restricted Area" 45
9 "Water Quality/Human Health Area" 12
[[13]]
# A tibble: 12 × 2
protection_focus n
<fct> <int>
1 "" 21
2 "Biodiversity Protection" 21
3 "Cultural Heritage" 11
4 "Ecosystem" 3750
5 "Ecosystem " 9
6 "Ecosystem and Cultural Heritage" 1
7 "Ecosystem, focal species" 3
8 "Ecosysytem" 16
9 "Ecosytem" 2
10 "Focal species" 191
11 "Focal Species" 751
12 "Sovereignty" 26
[[14]]
# A tibble: 310 × 2
designation n
<fct> <int>
1 "" 14
2 "Absolute Nature Reserve" 1
3 "Aquatic National Park" 1
4 "Aquatic Nature Sanctuary" 5
5 "Aquatic Nature Sanctuary - Sustainable Fisheries Zone" 1
6 "Aquatic Park" 3
7 "Aquatic Reserve" 12
8 "Aquatic Tourism Park" 7
9 "Area Marina Protetta" 1
10 "Area Marina Protetta; Riserva Naturale Marina e Aree Naturali Marine … 1
# ℹ 300 more rows
Why there are so few MPAs in Brazil?
# classify IUCN_CAT
table(MPA_data$IUCN_CAT)
Ia Ib II III IV
487 63 198 189 1310
Not Applicable Not Assigned Not Reported V VI
20 353 1419 399 364
$IUCN_CAT <- factor(MPA_data$IUCN_CAT, levels = c("Ia","Ib","II","III","IV","V","VI"))
MPA_data
ggplot(MPA_data %>%
group_by(IUCN_CAT) %>%
tally(),
aes(x = IUCN_CAT, y = n)) +
geom_bar(stat = "identity") +
labs(x = "IUCN category of MPA", y = "Count")+
theme_classic()
# classify income group
%>%
MPA_data group_by(INCOME_GRP) %>%
tally()
# A tibble: 6 × 2
INCOME_GRP n
<fct> <int>
1 "" 71
2 "1. High income: OECD" 3777
3 "2. High income: nonOECD" 189
4 "3. Upper middle income" 472
5 "4. Lower middle income" 234
6 "5. Low income" 59
<- sapply(as.character(MPA_data$INCOME_GRP), function(x){
INCOME_GRP <- strsplit(x,":",fixed = TRUE)[[1]][1]
tmp strsplit(tmp,". ",fixed = TRUE)[[1]][2]
})
$INCOME_GRP <- factor(INCOME_GRP, levels = c("High income","Upper middle income","Lower middle income","Low income"))
MPA_datatable(MPA_data$INCOME_GRP)
High income Upper middle income Lower middle income Low income
3966 472 234 59
ggplot(MPA_data %>%
group_by(INCOME_GRP) %>%
tally(),
aes(x = INCOME_GRP, y = n)) +
geom_bar(stat = "identity") +
labs(x = "IUCN category of MPA", y = "Count")+
theme_classic()
Why there are so many MPAs in the high income group?
# make continuous protection category
<- MPA_data %>%
MPA_data mutate(IUCN_CONT = case_when(
== "Ia" ~ 1,
IUCN_CAT == "Ib" ~ 1,
IUCN_CAT == "II" ~ 2,
IUCN_CAT == "III" ~ 3,
IUCN_CAT == "IV" ~ 4,
IUCN_CAT == "VI" ~ 5,
IUCN_CAT ))
hist(MPA_data$GIS_M_AREA_raw)
hist(MPA_data$GIS_M_AREA_raw)
hist(log(MPA_data$GIS_M_AREA_raw))
# log area
<- MPA_data %>%
MPA_data mutate(MPA_area_log = log(GIS_M_AREA_raw))
Category | Name | Objective |
---|---|---|
Ia | Strict Nature Reserve | Strict protection for biodiversity and geological/geomorphological features. |
Ib | Wilderness Area | Large unmodified areas with no permanent human habitation; preserved in natural state. |
II | National Park | Ecosystem protection and recreation; may allow visitor use and education. |
III | Natural Monument or Feature | Protection of specific natural monuments (e.g., landforms, seamounts, geological features). |
IV | Habitat/Species Management Area | Active management for conservation through intervention (e.g., habitat restoration). |
V | Protected Landscape/Seascape | Protection of areas where interaction of people and nature has produced distinct character. |
VI | Protected Area with Sustainable Use of Natural Resources | Conservation with sustainable use of natural resources; may support local livelihoods. |
<- data.frame(MPA_data[,
subset_data c("Population", "Migration", "GDP", "Age", "Fishing_hours", "MPA_area", "SMI","DBI","IUCN_CONT")])
str(subset_data)
'data.frame': 4802 obs. of 9 variables:
$ Population : num 0.129 0.114 -0.107 -0.229 -0.2 ...
$ Migration : num -0.0849 0.2312 -0.282 0.4405 0.4576 ...
$ GDP : num 0.114 0.231 -0.105 0.624 0.624 ...
$ Age : num -0.482 -0.326 -0.492 -0.492 -0.492 ...
$ Fishing_hours: num 0 0 0 0 0 0 0 0 0 0 ...
$ MPA_area : num 0.04504 0.00788 0.00388 0.00102 0.02278 ...
$ SMI : num -0.0723 0.1821 -0.471 0.0683 0.0794 ...
$ DBI : num 0 0.314 -0.632 0 0 ...
$ IUCN_CONT : num 3 1 3 3 3 3 3 3 3 3 ...
<- cor(subset_data, method = 'spearman', use = "pairwise.complete.obs")
c_df
::corrplot(c_df,
corrplotmethod = 'color',
addCoef.col = 'black',
insig='blank',
diag = FALSE,
number.cex = 0.5,
type='lower')
This is very similar to the values on the presentation that Florin shared with me!
Based on correlations, SMI and DBI primarily reflect patterns of population and migration, but to a lesser extent also capture variation related to GDP and age.
Start of with a model including IUCN category, MPA area and Income group
<- MPA_data |>
subdata select("DBI", "SMI", "IUCN_CAT", "MPA_area_log", "INCOME_GRP", "ADM0_A3", "REGION_WB") |>
na.omit()
# DBI
<- glm(DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP,
mod_DBI_1 data = subdata)
::vif(mod_DBI_1) car
GVIF Df GVIF^(1/(2*Df))
IUCN_CAT 1.360731 6 1.026001
MPA_area_log 1.308204 1 1.143768
INCOME_GRP 1.202883 3 1.031266
# SMI
<- glm(SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP,
mod_SMI_1 data = subdata)
::vif(mod_SMI_1) car
GVIF Df GVIF^(1/(2*Df))
IUCN_CAT 1.360731 6 1.026001
MPA_area_log 1.308204 1 1.143768
INCOME_GRP 1.202883 3 1.031266
VIF values are acceptable (VIF < 3) in both models. So we keep all variables.
Here we test what is the best random structure: country or region. The random intercept on country controls for regional variability (economy, climate and potentially other stuff I have to think more about). In contrast, the random intercept on region controls for effects at a coarser scales, potentially representing socioeconomic related grouping.
# country
<- glmmTMB(DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1|ADM0_A3),
mod_DBI_c data = subdata)
summary(mod_DBI_c)
Family: gaussian ( identity )
Formula: DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1 | ADM0_A3)
Data: subdata
AIC BIC logLik deviance df.resid
611.3 689.2 -292.6 585.3 2937
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
ADM0_A3 (Intercept) 0.04736 0.2176
Residual 0.06702 0.2589
Number of obs: 2950, groups: ADM0_A3, 100
Dispersion estimate for gaussian family (sigma^2): 0.067
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.078211 0.041291 -1.894 0.05821 .
IUCN_CATIb 0.009268 0.038063 0.244 0.80762
IUCN_CATII 0.045144 0.026658 1.694 0.09037 .
IUCN_CATIII 0.039867 0.027011 1.476 0.13997
IUCN_CATIV 0.048163 0.017315 2.782 0.00541 **
IUCN_CATV -0.017335 0.020746 -0.836 0.40340
IUCN_CATVI 0.028867 0.022028 1.310 0.19003
MPA_area_log -0.001754 0.001465 -1.197 0.23133
INCOME_GRPUpper middle income 0.075380 0.057440 1.312 0.18941
INCOME_GRPLower middle income 0.064236 0.073190 0.878 0.38013
INCOME_GRPLow income 0.259120 0.121437 2.134 0.03286 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# region
<- glmmTMB(DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1|REGION_WB),
mod_DBI_r data = subdata)
summary(mod_DBI_r)
Family: gaussian ( identity )
Formula: DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1 | REGION_WB)
Data: subdata
AIC BIC logLik deviance df.resid
1363.5 1441.4 -668.8 1337.5 2937
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
REGION_WB (Intercept) 0.02317 0.1522
Residual 0.09133 0.3022
Number of obs: 2950, groups: REGION_WB, 7
Dispersion estimate for gaussian family (sigma^2): 0.0913
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.006146 0.062485 0.098 0.921651
IUCN_CATIb -0.108699 0.040794 -2.665 0.007708 **
IUCN_CATII 0.043102 0.027458 1.570 0.116473
IUCN_CATIII 0.003695 0.026751 0.138 0.890132
IUCN_CATIV -0.050782 0.016206 -3.134 0.001727 **
IUCN_CATV -0.072326 0.021200 -3.412 0.000646 ***
IUCN_CATVI -0.037369 0.022700 -1.646 0.099716 .
MPA_area_log -0.002018 0.001509 -1.338 0.181026
INCOME_GRPUpper middle income 0.034743 0.023585 1.473 0.140724
INCOME_GRPLower middle income 0.242807 0.028405 8.548 < 2e-16 ***
INCOME_GRPLow income 0.332976 0.096031 3.467 0.000526 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# compare
AIC(mod_DBI_c, mod_DBI_r)
df AIC
mod_DBI_c 13 611.287
mod_DBI_r 13 1363.537
# country
<- glmmTMB(SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1|ADM0_A3),
mod_SMI_c data = subdata)
summary(mod_SMI_c)
Family: gaussian ( identity )
Formula: SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1 | ADM0_A3)
Data: subdata
AIC BIC logLik deviance df.resid
-391.4 -313.5 208.7 -417.4 2937
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
ADM0_A3 (Intercept) 0.03948 0.1987
Residual 0.04751 0.2180
Number of obs: 2950, groups: ADM0_A3, 100
Dispersion estimate for gaussian family (sigma^2): 0.0475
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.092710 0.037026 -2.504 0.012282 *
IUCN_CATIb 0.026205 0.032096 0.816 0.414241
IUCN_CATII 0.042046 0.022486 1.870 0.061499 .
IUCN_CATIII 0.037579 0.022770 1.650 0.098863 .
IUCN_CATIV 0.051836 0.014594 3.552 0.000382 ***
IUCN_CATV 0.008025 0.017487 0.459 0.646306
IUCN_CATVI 0.030582 0.018569 1.647 0.099567 .
MPA_area_log -0.002865 0.001236 -2.318 0.020453 *
INCOME_GRPUpper middle income 0.044639 0.051676 0.864 0.387693
INCOME_GRPLower middle income 0.031153 0.065553 0.475 0.634627
INCOME_GRPLow income 0.248028 0.107955 2.298 0.021590 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
::r.squaredGLMM(mod_SMI_c) MuMIn
R2m R2c
[1,] 0.01121088 0.4599492
# region
<- glmmTMB(SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1|REGION_WB),
mod_SMI_r data = subdata)
summary(mod_SMI_r)
Family: gaussian ( identity )
Formula: SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + (1 | REGION_WB)
Data: subdata
AIC BIC logLik deviance df.resid
523.5 601.3 -248.7 497.5 2937
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
REGION_WB (Intercept) 0.01761 0.1327
Residual 0.06870 0.2621
Number of obs: 2950, groups: REGION_WB, 7
Dispersion estimate for gaussian family (sigma^2): 0.0687
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.021553 0.054416 -0.396 0.6920
IUCN_CATIb -0.070782 0.035380 -2.001 0.0454 *
IUCN_CATII 0.046088 0.023815 1.935 0.0530 .
IUCN_CATIII -0.006727 0.023200 -0.290 0.7718
IUCN_CATIV -0.031106 0.014055 -2.213 0.0269 *
IUCN_CATV -0.025835 0.018386 -1.405 0.1600
IUCN_CATVI -0.026295 0.019688 -1.336 0.1817
MPA_area_log -0.003032 0.001308 -2.317 0.0205 *
INCOME_GRPUpper middle income 0.019194 0.020467 0.938 0.3483
INCOME_GRPLower middle income 0.226968 0.024637 9.212 <2e-16 ***
INCOME_GRPLow income 0.335104 0.083512 4.013 6e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
::r.squaredGLMM(mod_SMI_r) MuMIn
R2m R2c
[1,] 0.03650178 0.2330538
# compare
AIC(mod_SMI_c, mod_SMI_r)
df AIC
mod_SMI_c 13 -391.3503
mod_SMI_r 13 523.4757
In terms of AIC and BIC, for both for DBI and SMI, the models including country in the random intercept are better than the models including region.
Note that: 1) Country captures a lot of variance as provided by conditional R2. 2) However, R2 conditional is higher for models including region as the random intercept. Therefore, even though models including country in as range intercept are better in terms of AIC, the variance explained the fixed effects is greater in the models including region in as random intercept.
# IUCN cat
<- emmeans(mod_DBI_c,
emmeans_DBI type = "response",
specs = "IUCN_CAT") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
# Income
<- emmeans(mod_DBI_c,
emmeans_DBI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
# Area
<- ggeffects::ggeffect(
preds
mod_DBI_c, terms = "MPA_area_log")
# reverse the log
# preds$x <- exp(preds$x)
<- summary(mod_DBI_c)
sig_tmp <- sig_tmp$coefficients$cond
sig_tmp <- sig_tmp["MPA_area_log","Pr(>|z|)"]
sig_tmp $sig <- ifelse(sig_tmp <= 0.05,"significant","non-significant")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "DBI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()
No significant effects of DBI using country as random effect…
# IUCN cat
<- emmeans(mod_SMI_c,
emmeans_SMI type = "response",
specs = "IUCN_CAT") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
# Income
<- emmeans(mod_SMI_c,
emmeans_SMI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
# Area
<- ggeffects::ggeffect(
preds
mod_SMI_c, terms = "MPA_area_log")
# reverse the log
# preds$x <- exp(preds$x)
<- summary(mod_SMI_c)
sig_tmp <- sig_tmp$coefficients$cond
sig_tmp <- sig_tmp["MPA_area_log","Pr(>|z|)"]
sig_tmp $sig <- ifelse(sig_tmp <= 0.05,"significant","non-significant")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "SMI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()
No significant effects of SMI using country as random effect…
# IUCN cat
<- emmeans(mod_DBI_r,
emmeans_DBI type = "response",
specs = "IUCN_CAT") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
# Income
<- emmeans(mod_DBI_r,
emmeans_DBI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
# Area
<- ggeffects::ggeffect(
preds
mod_DBI_r, terms = "MPA_area_log")
# reverse the log
# preds$x <- exp(preds$x)
<- summary(mod_DBI_r)
sig_tmp <- sig_tmp$coefficients$cond
sig_tmp <- sig_tmp["MPA_area_log","Pr(>|z|)"]
sig_tmp $sig <- ifelse(sig_tmp <= 0.05,"significant","non-significant")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "DBI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()
Significant effects using region as random intercept…
Protected areas in categories more strict protection models (Ia, II and III) show positive DBIs.
Protected areas in middle to low and low income countries show positive DBIs.
# IUCN cat
<- emmeans(mod_SMI_r,
emmeans_SMI type = "response",
specs = "IUCN_CAT") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
# Income
<- emmeans(mod_SMI_r,
emmeans_SMI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
# Area
<- ggeffects::ggeffect(
preds
mod_SMI_r, terms = "MPA_area_log")
# reverse the log
# preds$x <- exp(preds$x)
<- summary(mod_SMI_r)
sig_tmp <- sig_tmp$coefficients$cond
sig_tmp <- sig_tmp["MPA_area_log","Pr(>|z|)"]
sig_tmp $sig <- ifelse(sig_tmp <= 0.05,"significant","non-significant")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "SMI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()
Same results when using SMI… Protected areas in categories more strict protection models (Ia, II and III) show positive SMIs.
Protected areas in middle-low and low income countries show positive SMIs.
The models with country never provide significant relationships for DBI or SMI, even though they perform better in terms of AIC. However, the models with region as random intercept do provide some significant results. This can be because there is too much noise at the country level that the models cannot make sense of (variability in DBI/SMI values is not structured at the country level). However, this variability is better represented by regions. A model can have a better AIC if it captures more of the total variance, even if individual predictors are not statistically significant, especially if the added random effects increase uncertainty around fixed effect estimates.
I discussed the results with Mona, and this is what we think:
1) MPAs in more strictly protected categories tend to show more positive DBI and SMI values. Stricter MPAs often reflect more political or institutional commitment, which may be linked to areas with stronger planning capacity or more involvement from national or international organizations. These places may be better at attracting people, investments, or offering economic opportunities. That could explain why we see higher population growth, migration, and GDP trends (positive DBI and SMI) in these areas. In other words, stricter MPAs might be located in more dynamic or developing places, at least socio-economically.
2) MPAs located in lower and lower-middle income countries also show more positive DBI and SMI.
This might sound surprising at first, but many MPAs in lower-income countries are located in fast-changing regions, where population is growing quickly, migration is high, and economies are expanding. Even if the country is classified as lower-income overall, these coastal areas might be socio-economic hotspots. So DBI and SMI could be picking up high local growth rates, especially in terms of demographics (young and growing populations) and urban or economic expansion around MPAs.
3) Large MPAs show more negative DBI and SMI.
It is possible that large MPAs are often established in remote oceanic regions, far from dense population centers. These areas may have demographic or economic decline or imbalance relative to small MPAs.
The results are interesting so far. We found MPAs in low income countries show more positive DBI/SMI, but they do so across all protection categories? Also, MPAs in low income countries perform well across all sizes? We can test that adding interaction terms to the model.
# country
<- glmmTMB(DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP +
mod_DBI_c_i : INCOME_GRP +
IUCN_CAT : INCOME_GRP + (1|ADM0_A3),
MPA_area_log data = subdata)
dropping columns from rank-deficient conditional model: IUCN_CATIb:INCOME_GRPLow income, IUCN_CATIII:INCOME_GRPLow income, IUCN_CATVI:INCOME_GRPLow income
summary(mod_DBI_c_i)
Family: gaussian ( identity )
Formula:
DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + IUCN_CAT:INCOME_GRP +
MPA_area_log:INCOME_GRP + (1 | ADM0_A3)
Data: subdata
AIC BIC logLik deviance df.resid
625.7 811.4 -281.8 563.7 2919
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
ADM0_A3 (Intercept) 0.04621 0.215
Residual 0.06656 0.258
Number of obs: 2950, groups: ADM0_A3, 100
Dispersion estimate for gaussian family (sigma^2): 0.0666
Conditional model:
Estimate Std. Error z value
(Intercept) -0.082182 0.041083 -2.000
IUCN_CATIb -0.009069 0.039739 -0.228
IUCN_CATII 0.075520 0.031575 2.392
IUCN_CATIII 0.058448 0.029033 2.013
IUCN_CATIV 0.053500 0.018068 2.961
IUCN_CATV -0.018134 0.021796 -0.832
IUCN_CATVI 0.026065 0.024511 1.063
MPA_area_log -0.002327 0.001564 -1.489
INCOME_GRPUpper middle income 0.131150 0.083716 1.567
INCOME_GRPLower middle income 0.072565 0.119754 0.606
INCOME_GRPLow income 0.104599 0.266682 0.392
IUCN_CATIb:INCOME_GRPUpper middle income 0.263981 0.171972 1.535
IUCN_CATII:INCOME_GRPUpper middle income -0.154017 0.079923 -1.927
IUCN_CATIII:INCOME_GRPUpper middle income -0.181180 0.096074 -1.886
IUCN_CATIV:INCOME_GRPUpper middle income -0.061791 0.072636 -0.851
IUCN_CATV:INCOME_GRPUpper middle income -0.048877 0.084278 -0.580
IUCN_CATVI:INCOME_GRPUpper middle income -0.061487 0.075509 -0.814
IUCN_CATIb:INCOME_GRPLower middle income 0.132952 0.212091 0.627
IUCN_CATII:INCOME_GRPLower middle income -0.046468 0.133812 -0.347
IUCN_CATIII:INCOME_GRPLower middle income -0.019915 0.142447 -0.140
IUCN_CATIV:INCOME_GRPLower middle income -0.078187 0.115606 -0.676
IUCN_CATV:INCOME_GRPLower middle income -0.003182 0.133660 -0.024
IUCN_CATVI:INCOME_GRPLower middle income 0.073199 0.110653 0.661
IUCN_CATIb:INCOME_GRPLow income NA NA NA
IUCN_CATII:INCOME_GRPLow income 0.168828 0.164063 1.029
IUCN_CATIII:INCOME_GRPLow income NA NA NA
IUCN_CATIV:INCOME_GRPLow income 0.278923 0.335550 0.831
IUCN_CATV:INCOME_GRPLow income 0.375985 0.232553 1.617
IUCN_CATVI:INCOME_GRPLow income NA NA NA
MPA_area_log:INCOME_GRPUpper middle income 0.004791 0.005466 0.877
MPA_area_log:INCOME_GRPLower middle income 0.001004 0.008061 0.125
MPA_area_log:INCOME_GRPLow income 0.002007 0.041558 0.048
Pr(>|z|)
(Intercept) 0.04546 *
IUCN_CATIb 0.81949
IUCN_CATII 0.01677 *
IUCN_CATIII 0.04410 *
IUCN_CATIV 0.00307 **
IUCN_CATV 0.40541
IUCN_CATVI 0.28760
MPA_area_log 0.13660
INCOME_GRPUpper middle income 0.11721
INCOME_GRPLower middle income 0.54455
INCOME_GRPLow income 0.69489
IUCN_CATIb:INCOME_GRPUpper middle income 0.12478
IUCN_CATII:INCOME_GRPUpper middle income 0.05397 .
IUCN_CATIII:INCOME_GRPUpper middle income 0.05932 .
IUCN_CATIV:INCOME_GRPUpper middle income 0.39494
IUCN_CATV:INCOME_GRPUpper middle income 0.56195
IUCN_CATVI:INCOME_GRPUpper middle income 0.41547
IUCN_CATIb:INCOME_GRPLower middle income 0.53075
IUCN_CATII:INCOME_GRPLower middle income 0.72839
IUCN_CATIII:INCOME_GRPLower middle income 0.88881
IUCN_CATIV:INCOME_GRPLower middle income 0.49883
IUCN_CATV:INCOME_GRPLower middle income 0.98100
IUCN_CATVI:INCOME_GRPLower middle income 0.50828
IUCN_CATIb:INCOME_GRPLow income NA
IUCN_CATII:INCOME_GRPLow income 0.30346
IUCN_CATIII:INCOME_GRPLow income NA
IUCN_CATIV:INCOME_GRPLow income 0.40584
IUCN_CATV:INCOME_GRPLow income 0.10593
IUCN_CATVI:INCOME_GRPLow income NA
MPA_area_log:INCOME_GRPUpper middle income 0.38069
MPA_area_log:INCOME_GRPLower middle income 0.90086
MPA_area_log:INCOME_GRPLow income 0.96148
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# region
<- glmmTMB(DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP +
mod_DBI_r_i : INCOME_GRP +
IUCN_CAT : INCOME_GRP + (1|REGION_WB),
MPA_area_log data = subdata)
dropping columns from rank-deficient conditional model: IUCN_CATIb:INCOME_GRPLow income, IUCN_CATIII:INCOME_GRPLow income, IUCN_CATVI:INCOME_GRPLow income
summary(mod_DBI_r_i)
Family: gaussian ( identity )
Formula:
DBI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + IUCN_CAT:INCOME_GRP +
MPA_area_log:INCOME_GRP + (1 | REGION_WB)
Data: subdata
AIC BIC logLik deviance df.resid
1348.2 1533.9 -643.1 1286.2 2919
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
REGION_WB (Intercept) 0.02081 0.1443
Residual 0.08978 0.2996
Number of obs: 2950, groups: REGION_WB, 7
Dispersion estimate for gaussian family (sigma^2): 0.0898
Conditional model:
Estimate Std. Error z value
(Intercept) -0.0002873 0.0598752 -0.005
IUCN_CATIb -0.1202639 0.0427973 -2.810
IUCN_CATII 0.0983339 0.0339609 2.896
IUCN_CATIII 0.0329437 0.0288124 1.143
IUCN_CATIV -0.0466687 0.0166843 -2.797
IUCN_CATV -0.0726841 0.0222881 -3.261
IUCN_CATVI -0.0660255 0.0250589 -2.635
MPA_area_log -0.0033272 0.0016344 -2.036
INCOME_GRPUpper middle income 0.0430461 0.0686671 0.627
INCOME_GRPLower middle income 0.1738389 0.1082448 1.606
INCOME_GRPLow income 0.1894255 0.2130960 0.889
IUCN_CATIb:INCOME_GRPUpper middle income 0.2946576 0.1714974 1.718
IUCN_CATII:INCOME_GRPUpper middle income -0.1414139 0.0799385 -1.769
IUCN_CATIII:INCOME_GRPUpper middle income -0.2133204 0.0955891 -2.232
IUCN_CATIV:INCOME_GRPUpper middle income -0.0379870 0.0737030 -0.515
IUCN_CATV:INCOME_GRPUpper middle income -0.0134026 0.0831148 -0.161
IUCN_CATVI:INCOME_GRPUpper middle income 0.1167096 0.0806892 1.446
IUCN_CATIb:INCOME_GRPLower middle income -0.0616567 0.2111392 -0.292
IUCN_CATII:INCOME_GRPLower middle income -0.0858502 0.1461623 -0.587
IUCN_CATIII:INCOME_GRPLower middle income -0.0319881 0.1540440 -0.208
IUCN_CATIV:INCOME_GRPLower middle income 0.0405864 0.1184397 0.343
IUCN_CATV:INCOME_GRPLower middle income 0.0154672 0.1325288 0.117
IUCN_CATVI:INCOME_GRPLower middle income 0.1693519 0.1211960 1.397
IUCN_CATIb:INCOME_GRPLow income NA NA NA
IUCN_CATII:INCOME_GRPLow income 0.0509339 0.1769980 0.288
IUCN_CATIII:INCOME_GRPLow income NA NA NA
IUCN_CATIV:INCOME_GRPLow income 0.2402776 0.3347080 0.718
IUCN_CATV:INCOME_GRPLow income 0.3526911 0.2308645 1.528
IUCN_CATVI:INCOME_GRPLow income NA NA NA
MPA_area_log:INCOME_GRPUpper middle income 0.0133263 0.0049818 2.675
MPA_area_log:INCOME_GRPLower middle income 0.0043720 0.0076394 0.572
MPA_area_log:INCOME_GRPLow income 0.0059557 0.0379492 0.157
Pr(>|z|)
(Intercept) 0.99617
IUCN_CATIb 0.00495 **
IUCN_CATII 0.00379 **
IUCN_CATIII 0.25288
IUCN_CATIV 0.00516 **
IUCN_CATV 0.00111 **
IUCN_CATVI 0.00842 **
MPA_area_log 0.04178 *
INCOME_GRPUpper middle income 0.53074
INCOME_GRPLower middle income 0.10828
INCOME_GRPLow income 0.37405
IUCN_CATIb:INCOME_GRPUpper middle income 0.08577 .
IUCN_CATII:INCOME_GRPUpper middle income 0.07689 .
IUCN_CATIII:INCOME_GRPUpper middle income 0.02564 *
IUCN_CATIV:INCOME_GRPUpper middle income 0.60627
IUCN_CATV:INCOME_GRPUpper middle income 0.87189
IUCN_CATVI:INCOME_GRPUpper middle income 0.14806
IUCN_CATIb:INCOME_GRPLower middle income 0.77027
IUCN_CATII:INCOME_GRPLower middle income 0.55696
IUCN_CATIII:INCOME_GRPLower middle income 0.83550
IUCN_CATIV:INCOME_GRPLower middle income 0.73184
IUCN_CATV:INCOME_GRPLower middle income 0.90709
IUCN_CATVI:INCOME_GRPLower middle income 0.16231
IUCN_CATIb:INCOME_GRPLow income NA
IUCN_CATII:INCOME_GRPLow income 0.77353
IUCN_CATIII:INCOME_GRPLow income NA
IUCN_CATIV:INCOME_GRPLow income 0.47284
IUCN_CATV:INCOME_GRPLow income 0.12659
IUCN_CATVI:INCOME_GRPLow income NA
MPA_area_log:INCOME_GRPUpper middle income 0.00747 **
MPA_area_log:INCOME_GRPLower middle income 0.56712
MPA_area_log:INCOME_GRPLow income 0.87529
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC(mod_DBI_c,
mod_DBI_c_i,
mod_DBI_r, mod_DBI_r_i)
df AIC
mod_DBI_c 13 611.287
mod_DBI_c_i 31 625.700
mod_DBI_r 13 1363.537
mod_DBI_r_i 31 1348.238
In terms of AIC, including interactions in the models doesn’t improve the model fit as much relative to the ones without interactions. However, note that the regional model show a slight improvement.
# country
<- glmmTMB(SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP +
mod_SMI_c_i : INCOME_GRP +
IUCN_CAT : INCOME_GRP + (1|ADM0_A3),
MPA_area_log data = subdata)
dropping columns from rank-deficient conditional model: IUCN_CATIb:INCOME_GRPLow income, IUCN_CATIII:INCOME_GRPLow income, IUCN_CATVI:INCOME_GRPLow income
summary(mod_SMI_c_i)
Family: gaussian ( identity )
Formula:
SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + IUCN_CAT:INCOME_GRP +
MPA_area_log:INCOME_GRP + (1 | ADM0_A3)
Data: subdata
AIC BIC logLik deviance df.resid
-381.5 -195.8 221.7 -443.5 2919
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
ADM0_A3 (Intercept) 0.03852 0.1963
Residual 0.04711 0.2170
Number of obs: 2950, groups: ADM0_A3, 100
Dispersion estimate for gaussian family (sigma^2): 0.0471
Conditional model:
Estimate Std. Error z value
(Intercept) -0.097023 0.036805 -2.636
IUCN_CATIb 0.010787 0.033452 0.322
IUCN_CATII 0.069930 0.026587 2.630
IUCN_CATIII 0.053136 0.024436 2.174
IUCN_CATIV 0.056725 0.015211 3.729
IUCN_CATV 0.011759 0.018344 0.641
IUCN_CATVI 0.025032 0.020635 1.213
MPA_area_log -0.002952 0.001316 -2.243
INCOME_GRPUpper middle income 0.111139 0.072884 1.525
INCOME_GRPLower middle income 0.051884 0.103300 0.502
INCOME_GRPLow income 0.136853 0.233435 0.586
IUCN_CATIb:INCOME_GRPUpper middle income 0.187430 0.146655 1.278
IUCN_CATII:INCOME_GRPUpper middle income -0.142903 0.067512 -2.117
IUCN_CATIII:INCOME_GRPUpper middle income -0.171559 0.081239 -2.112
IUCN_CATIV:INCOME_GRPUpper middle income -0.059142 0.061407 -0.963
IUCN_CATV:INCOME_GRPUpper middle income -0.080967 0.071326 -1.135
IUCN_CATVI:INCOME_GRPUpper middle income -0.064129 0.063704 -1.007
IUCN_CATIb:INCOME_GRPLower middle income 0.161860 0.179528 0.902
IUCN_CATII:INCOME_GRPLower middle income -0.070650 0.113030 -0.625
IUCN_CATIII:INCOME_GRPLower middle income -0.009574 0.120512 -0.079
IUCN_CATIV:INCOME_GRPLower middle income -0.080710 0.097853 -0.825
IUCN_CATV:INCOME_GRPLower middle income -0.028320 0.113145 -0.250
IUCN_CATVI:INCOME_GRPLower middle income 0.088638 0.093442 0.949
IUCN_CATIb:INCOME_GRPLow income NA NA NA
IUCN_CATII:INCOME_GRPLow income 0.151378 0.139383 1.086
IUCN_CATIII:INCOME_GRPLow income NA NA NA
IUCN_CATIV:INCOME_GRPLow income 0.088465 0.286368 0.309
IUCN_CATV:INCOME_GRPLow income 0.337278 0.197473 1.708
IUCN_CATVI:INCOME_GRPLow income NA NA NA
MPA_area_log:INCOME_GRPUpper middle income 0.002142 0.004641 0.462
MPA_area_log:INCOME_GRPLower middle income -0.002924 0.006842 -0.427
MPA_area_log:INCOME_GRPLow income -0.001030 0.035876 -0.029
Pr(>|z|)
(Intercept) 0.008387 **
IUCN_CATIb 0.747103
IUCN_CATII 0.008532 **
IUCN_CATIII 0.029669 *
IUCN_CATIV 0.000192 ***
IUCN_CATV 0.521502
IUCN_CATVI 0.225100
MPA_area_log 0.024916 *
INCOME_GRPUpper middle income 0.127290
INCOME_GRPLower middle income 0.615481
INCOME_GRPLow income 0.557703
IUCN_CATIb:INCOME_GRPUpper middle income 0.201237
IUCN_CATII:INCOME_GRPUpper middle income 0.034284 *
IUCN_CATIII:INCOME_GRPUpper middle income 0.034705 *
IUCN_CATIV:INCOME_GRPUpper middle income 0.335486
IUCN_CATV:INCOME_GRPUpper middle income 0.256307
IUCN_CATVI:INCOME_GRPUpper middle income 0.314096
IUCN_CATIb:INCOME_GRPLower middle income 0.367276
IUCN_CATII:INCOME_GRPLower middle income 0.531934
IUCN_CATIII:INCOME_GRPLower middle income 0.936679
IUCN_CATIV:INCOME_GRPLower middle income 0.409477
IUCN_CATV:INCOME_GRPLower middle income 0.802358
IUCN_CATVI:INCOME_GRPLower middle income 0.342830
IUCN_CATIb:INCOME_GRPLow income NA
IUCN_CATII:INCOME_GRPLow income 0.277451
IUCN_CATIII:INCOME_GRPLow income NA
IUCN_CATIV:INCOME_GRPLow income 0.757382
IUCN_CATV:INCOME_GRPLow income 0.087642 .
IUCN_CATVI:INCOME_GRPLow income NA
MPA_area_log:INCOME_GRPUpper middle income 0.644417
MPA_area_log:INCOME_GRPLower middle income 0.669160
MPA_area_log:INCOME_GRPLow income 0.977094
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# region
<- glmmTMB(SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP +
mod_SMI_r_i : INCOME_GRP +
IUCN_CAT : INCOME_GRP + (1|REGION_WB),
MPA_area_log data = subdata)
dropping columns from rank-deficient conditional model: IUCN_CATIb:INCOME_GRPLow income, IUCN_CATIII:INCOME_GRPLow income, IUCN_CATVI:INCOME_GRPLow income
summary(mod_SMI_r_i)
Family: gaussian ( identity )
Formula:
SMI ~ IUCN_CAT + MPA_area_log + INCOME_GRP + IUCN_CAT:INCOME_GRP +
MPA_area_log:INCOME_GRP + (1 | REGION_WB)
Data: subdata
AIC BIC logLik deviance df.resid
502.4 688.1 -220.2 440.4 2919
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
REGION_WB (Intercept) 0.01549 0.1244
Residual 0.06740 0.2596
Number of obs: 2950, groups: REGION_WB, 7
Dispersion estimate for gaussian family (sigma^2): 0.0674
Conditional model:
Estimate Std. Error z value
(Intercept) -0.0290754 0.0516658 -0.563
IUCN_CATIb -0.0832589 0.0370817 -2.245
IUCN_CATII 0.0942689 0.0294260 3.204
IUCN_CATIII 0.0188204 0.0249652 0.754
IUCN_CATIV -0.0248210 0.0144559 -1.717
IUCN_CATV -0.0224417 0.0193111 -1.162
IUCN_CATVI -0.0590832 0.0217128 -2.721
MPA_area_log -0.0036223 0.0014161 -2.558
INCOME_GRPUpper middle income 0.0559720 0.0595165 0.940
INCOME_GRPLower middle income 0.1856455 0.0937998 1.979
INCOME_GRPLow income 0.2607575 0.1847848 1.411
IUCN_CATIb:INCOME_GRPUpper middle income 0.2576340 0.1485665 1.734
IUCN_CATII:INCOME_GRPUpper middle income -0.1407196 0.0692604 -2.032
IUCN_CATIII:INCOME_GRPUpper middle income -0.2141296 0.0828381 -2.585
IUCN_CATIV:INCOME_GRPUpper middle income -0.0692035 0.0638614 -1.084
IUCN_CATV:INCOME_GRPUpper middle income -0.0409085 0.0720146 -0.568
IUCN_CATVI:INCOME_GRPUpper middle income 0.0911260 0.0699095 1.303
IUCN_CATIb:INCOME_GRPLower middle income -0.0370602 0.1829408 -0.203
IUCN_CATII:INCOME_GRPLower middle income -0.1216633 0.1266221 -0.961
IUCN_CATIII:INCOME_GRPLower middle income -0.0091558 0.1334788 -0.069
IUCN_CATIV:INCOME_GRPLower middle income -0.0085441 0.1026039 -0.083
IUCN_CATV:INCOME_GRPLower middle income -0.0305323 0.1148295 -0.266
IUCN_CATVI:INCOME_GRPLower middle income 0.1793807 0.1050126 1.708
IUCN_CATIb:INCOME_GRPLow income NA NA NA
IUCN_CATII:INCOME_GRPLow income 0.0459240 0.1533638 0.299
IUCN_CATIII:INCOME_GRPLow income NA NA NA
IUCN_CATIV:INCOME_GRPLow income 0.0655205 0.2900108 0.226
IUCN_CATV:INCOME_GRPLow income 0.2923805 0.2000361 1.462
IUCN_CATVI:INCOME_GRPLow income NA NA NA
MPA_area_log:INCOME_GRPUpper middle income 0.0082916 0.0043194 1.920
MPA_area_log:INCOME_GRPLower middle income 0.0013268 0.0066177 0.200
MPA_area_log:INCOME_GRPLow income -0.0005159 0.0328810 -0.016
Pr(>|z|)
(Intercept) 0.57360
IUCN_CATIb 0.02475 *
IUCN_CATII 0.00136 **
IUCN_CATIII 0.45093
IUCN_CATIV 0.08598 .
IUCN_CATV 0.24519
IUCN_CATVI 0.00651 **
MPA_area_log 0.01053 *
INCOME_GRPUpper middle income 0.34699
INCOME_GRPLower middle income 0.04780 *
INCOME_GRPLow income 0.15820
IUCN_CATIb:INCOME_GRPUpper middle income 0.08289 .
IUCN_CATII:INCOME_GRPUpper middle income 0.04218 *
IUCN_CATIII:INCOME_GRPUpper middle income 0.00974 **
IUCN_CATIV:INCOME_GRPUpper middle income 0.27852
IUCN_CATV:INCOME_GRPUpper middle income 0.57000
IUCN_CATVI:INCOME_GRPUpper middle income 0.19241
IUCN_CATIb:INCOME_GRPLower middle income 0.83946
IUCN_CATII:INCOME_GRPLower middle income 0.33663
IUCN_CATIII:INCOME_GRPLower middle income 0.94531
IUCN_CATIV:INCOME_GRPLower middle income 0.93363
IUCN_CATV:INCOME_GRPLower middle income 0.79032
IUCN_CATVI:INCOME_GRPLower middle income 0.08760 .
IUCN_CATIb:INCOME_GRPLow income NA
IUCN_CATII:INCOME_GRPLow income 0.76460
IUCN_CATIII:INCOME_GRPLow income NA
IUCN_CATIV:INCOME_GRPLow income 0.82126
IUCN_CATV:INCOME_GRPLow income 0.14384
IUCN_CATVI:INCOME_GRPLow income NA
MPA_area_log:INCOME_GRPUpper middle income 0.05491 .
MPA_area_log:INCOME_GRPLower middle income 0.84109
MPA_area_log:INCOME_GRPLow income 0.98748
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC(mod_SMI_c,
mod_SMI_c_i,
mod_SMI_r, mod_SMI_r_i)
df AIC
mod_SMI_c 13 -391.3503
mod_SMI_c_i 31 -381.4574
mod_SMI_r 13 523.4757
mod_SMI_r_i 31 502.3934
Same here… In terms of AIC, including interactions in the models doesn’t improve the model fit as much relative to the ones without interactions. However, note that the regional model show a slight improvement.
# IUCN cat x INCOME_GRP
<- emmeans(mod_DBI_c_i,
emmeans_DBI type = "response",
specs = c("IUCN_CAT","INCOME_GRP")) %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~INCOME_GRP)
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).
# Income vs Area
<- ggeffects::ggeffect(
preds
mod_DBI_c, terms = c("MPA_area_log","INCOME_GRP"))
<- data.frame(preds)
preds
# reverse the log
# preds$x <- exp(preds$x)
<- data.frame(emtrends(object = mod_DBI_c_i,
sig_tmp specs = "INCOME_GRP",
var = "MPA_area_log"))
$sig <- ifelse(sign(sig_tmp$lower.CL)==sign(sig_tmp$upper.CL),
sig_tmp"significant","non-significant")
<- merge(preds, sig_tmp, by.x = "group", by.y = "INCOME_GRP")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "DBI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~group, nrow = 1)
# IUCN cat x INCOME_GRP
<- emmeans(mod_SMI_c_i,
emmeans_SMI type = "response",
specs = c("IUCN_CAT","INCOME_GRP")) %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~INCOME_GRP)
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).
# Income vs Area
<- ggeffects::ggeffect(
preds
mod_DBI_c, terms = c("MPA_area_log","INCOME_GRP"))
<- data.frame(preds)
preds
# reverse the log
# preds$x <- exp(preds$x)
<- data.frame(emtrends(object = mod_SMI_c_i,
sig_tmp specs = "INCOME_GRP",
var = "MPA_area_log"))
$sig <- ifelse(sign(sig_tmp$lower.CL)==sign(sig_tmp$upper.CL),
sig_tmp"significant","non-significant")
<- merge(preds, sig_tmp, by.x = "group", by.y = "INCOME_GRP")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "SMI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~group, nrow = 1)
No significant effects of SMI using country as random effect…
# IUCN cat x INCOME_GRP
<- emmeans(mod_DBI_r_i,
emmeans_DBI type = "response",
specs = c("IUCN_CAT","INCOME_GRP")) %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~INCOME_GRP)
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).
# Income vs Area
<- ggeffects::ggeffect(
preds
mod_DBI_c, terms = c("MPA_area_log","INCOME_GRP"))
<- data.frame(preds)
preds
# reverse the log
# preds$x <- exp(preds$x)
<- data.frame(emtrends(object = mod_DBI_r_i,
sig_tmp specs = "INCOME_GRP",
var = "MPA_area_log"))
$sig <- ifelse(sign(sig_tmp$lower.CL)==sign(sig_tmp$upper.CL),
sig_tmp"significant","non-significant")
<- merge(preds, sig_tmp, by.x = "group", by.y = "INCOME_GRP")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "DBI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~group, nrow = 1)
# IUCN cat x INCOME_GRP
<- emmeans(mod_SMI_r_i,
emmeans_SMI type = "response",
specs = c("IUCN_CAT","INCOME_GRP")) %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = IUCN_CAT, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~INCOME_GRP)
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).
# Income vs Area
<- ggeffects::ggeffect(
preds
mod_DBI_c, terms = c("MPA_area_log","INCOME_GRP"))
<- data.frame(preds)
preds
# reverse the log
# preds$x <- exp(preds$x)
<- data.frame(emtrends(object = mod_SMI_r_i,
sig_tmp specs = "INCOME_GRP",
var = "MPA_area_log"))
$sig <- ifelse(sign(sig_tmp$lower.CL)==sign(sig_tmp$upper.CL),
sig_tmp"significant","non-significant")
<- merge(preds, sig_tmp, by.x = "group", by.y = "INCOME_GRP")
preds
ggplot(preds, aes(x = x, y = predicted))+
geom_line(aes(linetype = as.factor(sig)), linewidth = 1) +
scale_linetype_manual(values = c("non-significant"="dashed",
"significant"="solid")) +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha = .3) +
labs(x = "MPA area (log)",
y = "SMI",
linetype = "Test")+
geom_hline(yintercept = 0)+
theme_classic()+
facet_wrap(.~group, nrow = 1)
My interpretation is that the interactions we test doesn’t help explain the patterns on income group.
Now run similar models using a simplified IUCN classification scheme by grouping some categories.
# create a more balanced
# Merge categories Ia - III (high protection)
# Keep category IV as middle term protection
# Merge V and IV (sustainable use)
<- subdata %>%
subdata mutate(IUCN_CAT_simple = case_when(IUCN_CAT == "Ia" ~ "Strict protection",
== "Ib" ~ "Strict protection",
IUCN_CAT == "II" ~ "Strict protection",
IUCN_CAT == "III" ~ "Strict protection",
IUCN_CAT == "IV" ~ "Allow management",
IUCN_CAT == "V" ~ "Allow management",
IUCN_CAT == "VI" ~ "Sustainable use"))
IUCN_CAT
$IUCN_CAT_simple <- factor(subdata$IUCN_CAT_simple,
subdatalevels = c("Strict protection","Allow management","Sustainable use"))
table(subdata$IUCN_CAT_simple)
Strict protection Allow management Sustainable use
937 1649 364
# country
<- glmmTMB(DBI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1|ADM0_A3),
mod_DBI_c data = subdata)
summary(mod_DBI_c)
Family: gaussian ( identity )
Formula:
DBI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1 | ADM0_A3)
Data: subdata
AIC BIC logLik deviance df.resid
618.3 672.2 -300.1 600.3 2941
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
ADM0_A3 (Intercept) 0.04781 0.2187
Residual 0.06735 0.2595
Number of obs: 2950, groups: ADM0_A3, 100
Dispersion estimate for gaussian family (sigma^2): 0.0674
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.056140 0.040144 -1.399 0.1620
IUCN_CAT_simpleAllow management 0.011561 0.012766 0.906 0.3651
IUCN_CAT_simpleSustainable use 0.005667 0.018992 0.298 0.7654
MPA_area_log -0.001411 0.001420 -0.994 0.3202
INCOME_GRPUpper middle income 0.074988 0.057630 1.301 0.1932
INCOME_GRPLower middle income 0.063263 0.073477 0.861 0.3892
INCOME_GRPLow income 0.261656 0.121683 2.150 0.0315 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# region
<- glmmTMB(DBI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1|REGION_WB),
mod_DBI_r data = subdata)
summary(mod_DBI_r)
Family: gaussian ( identity )
Formula:
DBI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1 | REGION_WB)
Data: subdata
AIC BIC logLik deviance df.resid
1368.6 1422.5 -675.3 1350.6 2941
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
REGION_WB (Intercept) 0.02200 0.1483
Residual 0.09175 0.3029
Number of obs: 2950, groups: REGION_WB, 7
Dispersion estimate for gaussian family (sigma^2): 0.0917
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.009754 0.060329 0.162 0.871552
IUCN_CAT_simpleAllow management -0.057042 0.012679 -4.499 6.83e-06 ***
IUCN_CAT_simpleSustainable use -0.041910 0.019907 -2.105 0.035266 *
MPA_area_log -0.001913 0.001449 -1.321 0.186637
INCOME_GRPUpper middle income 0.041598 0.023306 1.785 0.074278 .
INCOME_GRPLower middle income 0.240237 0.028443 8.446 < 2e-16 ***
INCOME_GRPLow income 0.336921 0.096011 3.509 0.000449 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# compare
AIC(mod_DBI_c, mod_DBI_r)
df AIC
mod_DBI_c 9 618.285
mod_DBI_r 9 1368.573
# country
<- glmmTMB(SMI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1|ADM0_A3),
mod_SMI_c data = subdata)
summary(mod_SMI_c)
Family: gaussian ( identity )
Formula:
SMI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1 | ADM0_A3)
Data: subdata
AIC BIC logLik deviance df.resid
-387.7 -333.8 202.8 -405.7 2941
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
ADM0_A3 (Intercept) 0.03953 0.1988
Residual 0.04770 0.2184
Number of obs: 2950, groups: ADM0_A3, 100
Dispersion estimate for gaussian family (sigma^2): 0.0477
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.071335 0.036013 -1.981 0.0476 *
IUCN_CAT_simpleAllow management 0.020879 0.010756 1.941 0.0522 .
IUCN_CAT_simpleSustainable use 0.008084 0.016004 0.505 0.6135
MPA_area_log -0.002570 0.001197 -2.148 0.0318 *
INCOME_GRPUpper middle income 0.045123 0.051675 0.873 0.3825
INCOME_GRPLower middle income 0.031330 0.065600 0.478 0.6329
INCOME_GRPLow income 0.251763 0.107876 2.334 0.0196 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# region
<- glmmTMB(SMI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1|REGION_WB),
mod_SMI_r data = subdata)
summary(mod_SMI_r)
Family: gaussian ( identity )
Formula:
SMI ~ IUCN_CAT_simple + MPA_area_log + INCOME_GRP + (1 | REGION_WB)
Data: subdata
AIC BIC logLik deviance df.resid
525.2 579.1 -253.6 507.2 2941
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
REGION_WB (Intercept) 0.01630 0.1277
Residual 0.06894 0.2626
Number of obs: 2950, groups: REGION_WB, 7
Dispersion estimate for gaussian family (sigma^2): 0.0689
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.016648 0.051956 -0.320 0.74864
IUCN_CAT_simpleAllow management -0.032643 0.010991 -2.970 0.00298 **
IUCN_CAT_simpleSustainable use -0.033267 0.017256 -1.928 0.05388 .
MPA_area_log -0.002589 0.001256 -2.062 0.03924 *
INCOME_GRPUpper middle income 0.025892 0.020215 1.281 0.20024
INCOME_GRPLower middle income 0.225445 0.024657 9.143 < 2e-16 ***
INCOME_GRPLow income 0.339839 0.083415 4.074 4.62e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# compare
AIC(mod_SMI_c, mod_SMI_r)
df AIC
mod_SMI_c 9 -387.6952
mod_SMI_r 9 525.2297
<- emmeans(mod_DBI_c,
emmeans_DBI type = "response",
specs = "IUCN_CAT_simple") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = IUCN_CAT_simple, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
<- emmeans(mod_DBI_c,
emmeans_DBI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
No significant effects for DBI in models using country as random intercept…
<- emmeans(mod_SMI_c,
emmeans_SMI type = "response",
specs = "IUCN_CAT_simple") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = IUCN_CAT_simple, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
<- emmeans(mod_SMI_c,
emmeans_SMI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
<- emmeans(mod_DBI_r,
emmeans_DBI type = "response",
specs = "IUCN_CAT_simple") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = IUCN_CAT_simple, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
<- emmeans(mod_DBI_r,
emmeans_DBI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_DBI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "DBI")+
geom_hline(yintercept = 0)+
theme_classic()
Significant effects using region as random intercept…
Protected areas in categories more strict protection models show positive DBIs.
Protected areas in middle to low and low income countries show positive DBIs.
<- emmeans(mod_SMI_r,
emmeans_SMI type = "response",
specs = "IUCN_CAT_simple") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = IUCN_CAT_simple, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "IUCN categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
<- emmeans(mod_SMI_r,
emmeans_SMI type = "response",
specs = "INCOME_GRP") %>%
as.data.frame() %>%
mutate(Test = ifelse(sign(lower.CL)==sign(upper.CL),"significant","non-significant"))
ggplot(emmeans_SMI, aes(x = INCOME_GRP, y = emmean, fill = Test)) +
scale_fill_manual(values = c("non-significant"="white","significant"="black")) +
geom_linerange(aes(ymin = lower.CL, ymax = upper.CL),
position = position_dodge(.5))+
geom_point(position = position_dodge(.5), size = 3, shape = 21) +
labs(x = "Income categoty", y = "SMI")+
geom_hline(yintercept = 0)+
theme_classic()
Same pattern for SMI.