Presumed consent, also known as an opt-out policy, for organ donor designation is often referred to as a potential solution for low organ donation rates. The main objective of this study is to investigate if opt-out policies are significant on organ donor rates in 2021. If indeed significant, what aspects of opt-out policies are import for the difference in rates.
Presumed consent refers to any citizen 18+ is designated an organ donor. If they would like to NOT hold that designation, they would need to “opt-out”. First-person consent refers to any citizen 18+ wanting to be an organ donor must register. This is an “opt-in” system.
The dataset contains 27 opt-out countries and 27 opt-in countries (54 total). Predictor variables are LPI index scores (0-100), population (in millions), number of deceased donors, utilized donors, kidney+liver transplants from living donors, kidney+liver transplants from deceased donors. Variables were created for rates(ppm) of donors and transplants.
Response Variable = Rate of Deceased Donors per million (DD_Tot_rate)
head(df2)
## # A tibble: 6 × 6
## System POPULATION DD_Tot_rate Total_DD_Tx_rate Total_LD_Tx_rate score_2021
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 In 25.8 16.3 35.2 7.87 78.8
## 2 Out 9 20.2 46 5.67 79.7
## 3 Out 11.6 26.9 52.2 6.90 76.3
## 4 In 38.1 19.3 43.8 15.6 79.0
## 5 Out 19.2 7.66 15.7 3.59 69.0
## 6 Out 10.7 25.0 56.0 3.93 74.6
summary(df2)
## System POPULATION DD_Tot_rate Total_DD_Tx_rate Total_LD_Tx_rate
## In :27 Min. : 0.30 Min. : 0.000 Min. : 0.000 Min. : 0.000
## Out:27 1st Qu.: 5.50 1st Qu.: 4.175 1st Qu.: 8.216 1st Qu.: 2.337
## Median : 10.55 Median :11.902 Median :27.098 Median : 6.486
## Mean : 37.81 Mean :13.571 Mean :28.048 Mean : 9.684
## 3rd Qu.: 50.15 3rd Qu.:19.471 3rd Qu.:44.050 3rd Qu.:11.482
## Max. :332.90 Max. :41.643 Max. :84.668 Max. :52.518
## score_2021
## Min. :48.05
## 1st Qu.:61.15
## Median :71.97
## Mean :70.30
## 3rd Qu.:78.60
## Max. :83.86
The Population unit is in millions, and is heavily skewed, so the variables of interest should be measured in rates of parts per million(ppm) for comparison.
dotplot(df_2021$POPULATION, xlab = "POPULATION (in millions)")+
bwplot(df_2021$POPULATION)
Scatter plot shows the United States as an extreme for population and total number of deceased donors in this sample. Visible impact of population on total number of donors.
xyplot(`TOTAL Actual DD`~POPULATION, data = df_2021,RowNames=row.names(df_2021),
groups = System,
xlab = "POPULATION (in millions)",
ylab = "Total Deceased Donors (absolute number)",
panel=function(x, y, RowNames, ...) {
panel.xyplot(x, y, ...)
subs <- match(34, RowNames)
panel.text(x[subs], y[subs],
'USA', adj=1.5, cex=1.5)
},
aspect = 'fill', par.settings=list(superpose.symbol=list(pch=c(17,19))),
auto.key=list(space="right", border=TRUE))
Absolute number of Donors and Transplants skewed by population size.
df_splom<-df_2021 %>%
dplyr::select(`TOTAL Actual DD`,`Total Utilized DD`,Tot_DD_Tx,Tot_LD_Tx)
boxplot(df_splom)
Rates are more comparable and useful. Utilized rates comparable to donor rates, show Tx can be represented by donor rates.
df_splom_rates<-df_2021 %>%
dplyr::select(DD_Tot_rate,DD_Util_rate,Total_DD_Tx_rate,Total_LD_Tx_rate)
boxplot(df_splom_rates)
Relatively normal distribution of LPI scores for the sample.
LPI_Score <- df_2021$score_2021
hist(LPI_Score)
Strong Linear relation between the explanatory variable and Total Deceased Donor Transplant Rates.
splom(df2, aspect = 'fill')
Scatterplot Matrix comparison of Systems seperated.
splom(~df2[,c(2:6)]|df2$System, groups = df2$System, aspect = 'fill')
Population size by System: Population appears to be significantly larger for countries with opt-in
bwplot(POPULATION~System,data=df2,
panel=panel.bwplot.superpose, groups = System)
summary(aov(POPULATION~System,data=df2))
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 16224 16224 5.104 0.0281 *
## Residuals 52 165288 3179
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Deceased Donor Transplant rates by System: Deceased Donor Transplants appear to be significantly greater for opt-outs
bwplot(Total_DD_Tx_rate~System,data=df_2021,
panel=panel.bwplot.superpose, groups = System)
summary(aov(Total_DD_Tx_rate~System,data=df_2021))
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 3120 3120.0 7.875 0.00704 **
## Residuals 52 20603 396.2
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Living Donor Transplant rates by System: Living Donor Transplants appear to be significantly greater for opt-ins
bwplot(Total_LD_Tx_rate~System,data=df_2021,
panel=panel.bwplot.superpose, groups = System)
summary(aov(Total_LD_Tx_rate~System,data=df_2021))
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 837 837.4 6.882 0.0114 *
## Residuals 52 6327 121.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Total Transplants by System: Total number of Living Donor and Deceased Donor Transplant rates appear to be approximate between Systems
bwplot((Total_DD_Tx_rate+Total_LD_Tx_rate)~System, data = df_2021,
panel=panel.bwplot.superpose, groups = System)
summary(aov((Total_DD_Tx_rate+Total_LD_Tx_rate)~System,data=df_2021))
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 725 724.6 1.272 0.265
## Residuals 52 29631 569.8
LPI Scores by System: Approximate balance of LPI score between systems
bwplot(score_2021~System,data=df_2021,
panel=panel.bwplot.superpose, groups = System)
summary(aov(score_2021~System,data=df_2021))
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 60 59.54 0.658 0.421
## Residuals 52 4703 90.45
Significant F-value for Deceased Donor rates between Systems, meaning the true means are not equal between the groups.
anova(aov(DD_Tot_rate~System,data=df_2021))
## Analysis of Variance Table
##
## Response: DD_Tot_rate
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 521.7 521.74 5.0992 0.02816 *
## Residuals 52 5320.5 102.32
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Brown-Forsyth test shows variances are equal among the two groups (p-value = 0.84).
hovplotBF(DD_Tot_rate~System, data=df_2021)
hovBF(DD_Tot_rate~System, data=df_2021)
##
## hov: Brown-Forsyth
##
## data: DD_Tot_rate
## F = 0.043721, df:System = 1, df:Residuals = 52, p-value = 0.8352
## alternative hypothesis: variances are not identical
lm(DD_Tot_rate ~ System + POPULATION + Total_LD_Tx_rate + score_2021, data = df2)
# linear model of DD rate on population, system,
# living donor kidney + liver transplants, and LPI score
lm.one <- lm(DD_Tot_rate ~ System + POPULATION + Total_LD_Tx_rate + score_2021, data = df2)
summary(lm.one)
##
## Call:
## lm(formula = DD_Tot_rate ~ System + POPULATION + Total_LD_Tx_rate +
## score_2021, data = df2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.272 -4.835 -1.269 2.517 22.061
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -36.45585 8.46160 -4.308 7.89e-05 ***
## SystemOut 6.48011 2.40782 2.691 0.00971 **
## POPULATION 0.05797 0.01986 2.919 0.00529 **
## Total_LD_Tx_rate -0.05070 0.10152 -0.499 0.61972
## score_2021 0.64132 0.11825 5.423 1.78e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.981 on 49 degrees of freedom
## Multiple R-squared: 0.4658, Adjusted R-squared: 0.4222
## F-statistic: 10.68 on 4 and 49 DF, p-value: 2.644e-06
anova(lm.one)
## Analysis of Variance Table
##
## Response: DD_Tot_rate
## Df Sum Sq Mean Sq F value Pr(>F)
## System 1 521.74 521.74 8.1919 0.006173 **
## POPULATION 1 323.26 323.26 5.0754 0.028779 *
## Total_LD_Tx_rate 1 3.05 3.05 0.0480 0.827571
## score_2021 1 1873.37 1873.37 29.4138 1.784e-06 ***
## Residuals 49 3120.82 63.69
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Shapiro-Wilk test shows model is not within normality. As well, Q-Q plot does not look good for normality.
Variance Inflation Factor(VIF) shows all predictors are within acceptable ranges.
vif(lm.one)
## SystemOut POPULATION Total_LD_Tx_rate score_2021
## 1.228878 1.124017 1.159454 1.045687
# Shapiro-Wilk test shows model is not within normality
shapiro.test(lm.one$residuals)
##
## Shapiro-Wilk normality test
##
## data: lm.one$residuals
## W = 0.93581, p-value = 0.006257
# Q-Q plot does not look good for normality
lmplot(lm.one)
Population and Total Living Donor Rates appear skewed
residual.plots.lattice(lm.one, X=model.matrix(lm.one)[,-1],
pch=19, col=likertColor(2)[2])
obs 34 (USA) appears to have large impact on model
plot(case(lm.one),lm.one,par.strip.text=list(cex=1.2),
layout=c(3,3), main.cex=1.6, col=likertColor(2)[2], lwd=4)
## Noteworthy Observations
## Student del resid 14
## deleted std dev 14 18 29
## h 19 32 34 38
## Cook's distance
## dffits 14 18 29 34 41
## DFBETAS (Intercept) 14 18 34 41 42
## DFBETAS SystemOut 14 29
## DFBETAS POPULATION 14 18 34
## DFBETAS Total_LD_Tx_rate 14
## DFBETAS score_2021 14 18 34 41 42
The model shows system, population, and LPI score are significant variables. Living donor transplant rates do not appear to have an impact. There is a significant p-value < 0.05, and an R-squared value of 0.4222 Shapiro test of normality failed.
To improve this model, living donor transplants will be removed. LPI Score will be replaced with a subset pillar to further refine the importance. Replace Total LPI Score with subset pillars, then Lasso regression for variable selection.
The LPI score is the average of the LPI Pillars. See view below
# splom the subcategories of LPI score with DD_Rate:
# Lots of expected multicollinearity.
df_pillar_head<-df_2021 %>%
dplyr::select(score_2021,`Safety and Security`,`Personal Freedom`, Governance,
`Social Capital`,`Investment Environment`, `Enterprise Conditions`,
`Infrastructure and Market Access`, `Economic Quality`,`Living Conditions`
,Health,Education,`Natural Environment`)
names(df_pillar_head)
## [1] "score_2021" "Safety and Security"
## [3] "Personal Freedom" "Governance"
## [5] "Social Capital" "Investment Environment"
## [7] "Enterprise Conditions" "Infrastructure and Market Access"
## [9] "Economic Quality" "Living Conditions"
## [11] "Health" "Education"
## [13] "Natural Environment"
head(df_pillar_head)
## # A tibble: 6 × 13
## score_2021 `Safety and Security` `Personal Freedo… Governance `Social Capital`
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 78.8 86.5 85.4 85.6 70.0
## 2 79.7 90.8 86.0 84.0 67.6
## 3 76.3 85.2 84.3 82.5 54.6
## 4 79.0 88.4 88.2 85.2 67.6
## 5 69.0 67.4 74.9 72.7 51.5
## 6 74.6 90.7 79.3 71.1 55.2
## # … with 8 more variables: Investment Environment <dbl>,
## # Enterprise Conditions <dbl>, Infrastructure and Market Access <dbl>,
## # Economic Quality <dbl>, Living Conditions <dbl>, Health <dbl>,
## # Education <dbl>, Natural Environment <dbl>
The Lasso determined Personal Freedom, Living Conditions, and Education were the variables to enhance the model in place of LPI Score.
# LPI pillars Lasso
df_pillar_2021<-df_2021 %>%
dplyr::select(DD_Tot_rate,System,POPULATION,`Safety and Security`,`Personal Freedom`, Governance,
`Social Capital`,`Investment Environment`, `Enterprise Conditions`,
`Infrastructure and Market Access`, `Economic Quality`,`Living Conditions`
,Health,Education,`Natural Environment`)
x=model.matrix(DD_Tot_rate~.,df_pillar_2021)[,-1]
y= df_pillar_2021$DD_Tot_rate
grid=10^seq(10,-2,length=100)
ridge.mod=glmnet(x,y,alpha=0,lambda=grid)
n = dim(coef(ridge.mod))[1]
set.seed(1)
train=sample(1:nrow(x),nrow(x)/2)
test=(-train)
y.test=y[test]
lasso.mod=glmnet(x[train,],y[train],alpha = 1,lambda = grid)
plot(lasso.mod)
set.seed(1)
cv.out=cv.glmnet(x[train,],y[train],alpha=1)
plot(cv.out)
bestlam=cv.out$lambda.min
lasso.pred=predict(lasso.mod,s=bestlam ,newx=x[test,])
mean((lasso.pred-y.test)^2)
## [1] 56.8474
out=glmnet(x,y,alpha=1,lambda=grid)
lasso.coef=predict(out,type="coefficients",s=bestlam)[1:n,]
lasso.coef
## (Intercept) SystemOut
## -15.04242914 0.00000000
## POPULATION `Safety and Security`
## 0.00000000 0.00000000
## `Personal Freedom` Governance
## 0.03442232 0.00000000
## `Social Capital` `Investment Environment`
## 0.00000000 0.00000000
## `Enterprise Conditions` `Infrastructure and Market Access`
## 0.00000000 0.00000000
## `Economic Quality` `Living Conditions`
## 0.00000000 0.26760387
## Health Education
## 0.00000000 0.03918518
## `Natural Environment`
## 0.00000000
noquote(names(lasso.coef[lasso.coef!=0]))
## [1] (Intercept) `Personal Freedom` `Living Conditions`
## [4] Education
Modeling the lasso variables with population and system on Deceased Donor Rates. Improvement on R-squared value from initial model.
# step log Euro
lm.lasso<-lm(DD_Tot_rate~POPULATION+System+`Personal Freedom`+`Living Conditions`+Education, data = df_2021)
summary(lm.lasso)
##
## Call:
## lm(formula = DD_Tot_rate ~ POPULATION + System + `Personal Freedom` +
## `Living Conditions` + Education, data = df_2021)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.5226 -4.0391 -0.1112 2.4458 22.0122
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -54.80807 13.00936 -4.213 0.00011 ***
## POPULATION 0.05800 0.01907 3.041 0.00381 **
## SystemOut 5.91400 2.29617 2.576 0.01314 *
## `Personal Freedom` 0.06786 0.08007 0.847 0.40093
## `Living Conditions` 0.49236 0.27504 1.790 0.07974 .
## Education 0.20647 0.22973 0.899 0.37325
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.619 on 48 degrees of freedom
## Multiple R-squared: 0.523, Adjusted R-squared: 0.4733
## F-statistic: 10.53 on 5 and 48 DF, p-value: 7.329e-07
vif(lm.lasso)
## POPULATION SystemOut `Personal Freedom` `Living Conditions`
## 1.137221 1.226029 2.022171 4.273425
## Education
## 4.534479
Stepwise reduction on the model created from the lasso reduction.
Model is significant with a p-value <0.05 and R-squared = 0.4713. Significant p-values for Population, System, and Living Conditions.
ANOVA shows significant F-values for System and Living Conditions, but not Population. All predictor variables in model have vif within limits.
# stepwise reduction of lasso model
step.lasso<-step(lm.lasso, direction = 'both')
## Start: AIC=224.95
## DD_Tot_rate ~ POPULATION + System + `Personal Freedom` + `Living Conditions` +
## Education
##
## Df Sum of Sq RSS AIC
## - `Personal Freedom` 1 41.70 2828.3 223.76
## - Education 1 46.90 2833.5 223.86
## <none> 2786.6 224.96
## - `Living Conditions` 1 186.04 2972.7 226.44
## - System 1 385.12 3171.8 229.94
## - POPULATION 1 536.84 3323.5 232.47
##
## Step: AIC=223.76
## DD_Tot_rate ~ POPULATION + System + `Living Conditions` + Education
##
## Df Sum of Sq RSS AIC
## - Education 1 85.61 2914.0 223.37
## <none> 2828.3 223.76
## + `Personal Freedom` 1 41.70 2786.6 224.96
## - `Living Conditions` 1 218.83 3047.2 225.78
## - System 1 515.96 3344.3 230.81
## - POPULATION 1 582.64 3411.0 231.87
##
## Step: AIC=223.37
## DD_Tot_rate ~ POPULATION + System + `Living Conditions`
##
## Df Sum of Sq RSS AIC
## <none> 2914.0 223.37
## + Education 1 85.61 2828.3 223.76
## + `Personal Freedom` 1 80.41 2833.5 223.86
## - System 1 505.71 3419.7 230.01
## - POPULATION 1 586.07 3500.0 231.26
## - `Living Conditions` 1 2083.28 4997.2 250.49
summary(step.lasso)
##
## Call:
## lm(formula = DD_Tot_rate ~ POPULATION + System + `Living Conditions`,
## data = df_2021)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.3643 -4.7710 -0.8451 3.4521 23.2526
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -62.45254 11.92386 -5.238 3.26e-06 ***
## POPULATION 0.06014 0.01897 3.171 0.00259 **
## SystemOut 6.44592 2.18821 2.946 0.00488 **
## `Living Conditions` 0.81375 0.13610 5.979 2.36e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.634 on 50 degrees of freedom
## Multiple R-squared: 0.5012, Adjusted R-squared: 0.4713
## F-statistic: 16.75 on 3 and 50 DF, p-value: 1.158e-07
anova(step.lasso)
## Analysis of Variance Table
##
## Response: DD_Tot_rate
## Df Sum Sq Mean Sq F value Pr(>F)
## POPULATION 1 106.67 106.67 1.8303 0.182178
## System 1 738.33 738.33 12.6688 0.000826 ***
## `Living Conditions` 1 2083.28 2083.28 35.7466 2.361e-07 ***
## Residuals 50 2913.96 58.28
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
vif(step.lasso)
## POPULATION SystemOut `Living Conditions`
## 1.120234 1.109173 1.042420
Shapiro-wilk normality test is just barely within limits at 0.065. Q-Q normality strays at end points of residual plot. Appears some clustering in the residuals~fitted plots.
# normality tests
shapiro.test(step.lasso$residuals)
##
## Shapiro-Wilk normality test
##
## data: step.lasso$residuals
## W = 0.95943, p-value = 0.06498
lmplot(step.lasso)
Observation 34 (United States) shows to have a significant influence from the Cook’s distance value. Iceland (14) and Japan (18) appear to have a large influence on each variable.
plot(case(step.lasso),step.lasso,par.strip.text=list(cex=1.2),
layout=c(3,3), main.cex=1.6, col=likertColor(2)[2], lwd=4)
## Noteworthy Observations
## Student del resid 14 18
## deleted std dev 14 18 29
## h 34 38 46 54
## Cook's distance 34
## dffits 14 18 29 34 54
## DFBETAS (Intercept) 14 18 34 46 54
## DFBETAS POPULATION 14 18 34
## DFBETAS SystemOut 14 18 29
## DFBETAS `Living Conditions` 14 18 34 46 54
# resid
residual.plots.lattice(step.lasso, X=model.matrix(step.lasso)[,-1],
pch=19, col=likertColor(2)[2])
formula = DD_Tot_rate ~ POPULATION + System + Living Conditions
The variables with significant p- values are on predicting Deceased Donor rates from the model are: Population, Living Conditions, and System. Significant F-value variables are Living Conditions and System. The model is significant in p-value and has an R-squared value of 0.4713.
Inference from the model would be for every one million increase in population, the deceased donor rate would increase 0.06. For every point increase on the LPI pillar: Living Conditions, the deceased donor rate would increase 0.81. Switching to an opt-out policy would increase deceased donor rates by 6.4.
Based on the initial model, it can be inferred that the LPI score, population size, and donor policy system play a significant role in donor rates. Taking it one step further, the final model narrows down the predictors to population size, system, and the LPI pillar of Living Conditions. For countries wanting to increase the rates of deceased donors, focusing on increasing population size and improving living conditions can be implemented in tandem with changing to an opt-out policy.
Notably, countries with opt-in policies have higher rates of Living Donor Transplants, while opt-out policies have higher rates of Deceased Donor Transplants.
Therefore, it could be inferred that countries with opt-in policies have larger rates on living donors and countries with opt-out policies have higher rates of deceased donors. When considering a policy change for a country, the historical availability of living vs. deceased donor rates should be assessed as this could be impacted.
This model covers about half of the proportion of variance for predicting deceased donor rates. Some limitations of the model are the number of countries included and the response variable itself. The response variable measures the amount of deceased donors, but not the amount of living donors. A response variable measuring the rates of total donors (living+deceased) would more accurately depict the impact of the system policy. Some countries were not included in this study due to reliability issues in accurately for donor/transplant rates.
Future potential studies could include an inclusion of death rates to support the deceased donor rates, living donor rates, and time-series analysis of countries that changed policies.
Transplant Activity from the Global Observatory and Donation and Transplantation (GODT) https://www.transplant-observatory.org
Prosperity Scores from the Legatum Prosperity Index (LPI) https://www.prosperity.com
The initial dataset was expanded upon to include opt-in/opt-out policies for more countries from the GODT dataset
Initial Dataset: https://www.kidney-international.org/article/S0085-2538(19)30185-1/fulltext
UPDATES BELOW:
NETHERLANDS: https://www.government.nl/topics/organ-tissue-donation/new-donor-act-active-donor-registration
ARGENTINA: https://dataspace.princeton.edu/handle/88435/dsp01b8515r42f
COLOMBIA: https://www.loc.gov/item/global-legal-monitor/2016-09-06/colombia-law-on-presumptive-organ-donation/
Czech Republic: https://kst.cz/en/about-transplants/who-is-the-donor/
India: https://www.organindia.org/pledge-to-be-an-organ-donor/
Thailand: https://www.chula.ac.th/en/news/36135/
Iran: https://www.centreforpublicimpact.org/case-study/organ-donations-in-iran
Croatia: https://gov.hr/en/organ-donation/782
Saudi Arabia: https://saudigazette.com.sa/article/606575
Ecuador: https://america.cgtn.com/2019/02/10/an-organ-donation-law-saves-lives-in-ecuador
Bosnia and Herzegovina: https://snagalokalnog.ba/en/more-and-more-citizens-of-bosnia-and-herzegovina-want-to-donate-organs/
Philippines: https://www.paalam.ph/help-support/how-organ-donations-work
UAE: https://u.ae/en/information-and-services/health-and-fitness/organ-donation-and-transplant
Bulgaria: https://bnr.bg/en/post/101538347/more-than-1000-bulgarians-are-waiting-for-an-organ-transplant
Malaysia: https://says.com/my/lifestyle/organ-donation-in-malaysia
Malta: https://www.laferla.com.mt/blog-post/organ-donation-in-malta-and-gozo
Kuwait: https://248am.com/mark/information/become-an-organ-donor/
Paraguay, Bolivia: https://www.sciencedirect.com/science/article/pii/S174391912030251X#tbl1
Spain: https://www.medrxiv.org/content/10.1101/2021.09.17.21263724v1.full
Scotland: https://www.organdonation.nhs.uk/uk-laws/organ-donation-law-in-scotland/
Wales: https://www.organdonation.nhs.uk/uk-laws/organ-donation-law-in-wales/
Northern Ireland: https://www.organdonation.nhs.uk/uk-laws/organ-donation-law-in-northern-ireland/