Ero sivun ”Kotimaisen kalan edistämisohjelma” versioiden välillä
(15 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 33: | Rivi 33: | ||
=== Tulokset === | === Tulokset === | ||
:''Arviointimallin keskeiset tulokset. | [[File:Kotimaisen kalan edistämisen terveysvaikusus.png|500px|thumb|Tautitaakka erilaisissa kalankulutuksen skenaarioissa. Negatiivinen luku tarkoittaa terveyshyötyä.]] | ||
'''Arviointimallin keskeiset tulokset löytyvät [https://drive.google.com/open?id=1FcCOLxOmtIs3unvVFUZPARuJYdYflqWZ tästä HTML-tiedostosta]. | |||
=== Päätelmät === | === Päätelmät === | ||
Kalansyönti vuonna 2017 vähensi tautitaakkaa n. 100 000 haittapainotettua elinvuotta (DALY) Suomessa. Jos kalansyönti lisääntyisi oheisen taulukon mukaisesti, tautitaakka vähenisi edelleen n. 40 000 DALY /a suomalaista kalankulutusta lisäämällä ja n. 35 000 DALY /a kalantuontia lisäämällä. | |||
== Perustelut == | == Perustelut == | ||
Rivi 71: | Rivi 72: | ||
* Kalansyönnin edistämistä suunnataan tietyille väestöryhmille, ja vaikutukset tulevat siellä (mihin?). | * Kalansyönnin edistämistä suunnataan tietyille väestöryhmille, ja vaikutukset tulevat siellä (mihin?). | ||
* Vaikutukset jakautuvat satunnaisessa määrin eri yksilöille. | * Vaikutukset jakautuvat satunnaisessa määrin eri yksilöille. | ||
==== Malliparametrit ==== | |||
Malliparametrit saat näkyviin klikkaamalla. | |||
{{piilotettu| | |||
Kalankulutus on ilmoitettu fileepainona eikä tuorepainona, eli oletetaan että kaikki tämä tulee syödyksi. | |||
<t2b name="Malliparametrit" index="Response,Exposure_agent,Type,Subgroup,Unit" obs="Result" desc="Description" unit="various"> | |||
||amount|Kala:Kirjolohi; Scenario: BAU|Gg /a|6.7|KKE-skenaario | |||
||amount|Kala:Kasvatettu; Scenario: BAU|Gg /a|0.6|KKE-skenaario | |||
||amount|Kala:Silakka; Scenario: BAU|Gg /a|1.6|KKE-skenaario | |||
||amount|Kala:Kaupallinen; Scenario: BAU|Gg /a|3.2|KKE-skenaario | |||
||amount|Kala:Vapaa-ajan; Scenario: BAU|Gg /a|9.9|KKE-skenaario | |||
||amount|Kala:Tuontilohi; Scenario: BAU|Gg /a|23.6|KKE-skenaario | |||
||amount|Kala:Tuontikirjolohi; Scenario: BAU|Gg /a|4.8|KKE-skenaario | |||
||amount|Kala:Muu tuonti; Scenario: BAU|Gg /a|28|KKE-skenaario | |||
||amount|Kala:Kirjolohi; Scenario: Kotimaa|Gg /a|19|KKE-skenaario | |||
||amount|Kala:Kasvatettu; Scenario: Kotimaa|Gg /a|5|KKE-skenaario | |||
||amount|Kala:Silakka; Scenario: Kotimaa|Gg /a|8|KKE-skenaario | |||
||amount|Kala:Kaupallinen; Scenario: Kotimaa|Gg /a|7|KKE-skenaario | |||
||amount|Kala:Vapaa-ajan; Scenario: Kotimaa|Gg /a|10|KKE-skenaario | |||
||amount|Kala:Tuontilohi; Scenario: Kotimaa|Gg /a|32|KKE-skenaario | |||
||amount|Kala:Tuontikirjolohi; Scenario: Kotimaa|Gg /a|5|KKE-skenaario | |||
||amount|Kala:Muu tuonti; Scenario: Kotimaa|Gg /a|28|KKE-skenaario | |||
||amount|Kala:Kirjolohi; Scenario: Tuonti|Gg /a|6.7|KKE-skenaario | |||
||amount|Kala:Kasvatettu; Scenario: Tuonti|Gg /a|2|KKE-skenaario | |||
||amount|Kala:Silakka; Scenario: Tuonti|Gg /a|3|KKE-skenaario | |||
||amount|Kala:Kaupallinen; Scenario: Tuonti|Gg /a|4|KKE-skenaario | |||
||amount|Kala:Vapaa-ajan; Scenario: Tuonti|Gg /a|10|KKE-skenaario | |||
||amount|Kala:Tuontilohi; Scenario: Tuonti|Gg /a|44|KKE-skenaario | |||
||amount|Kala:Tuontikirjolohi; Scenario: Tuonti|Gg /a|10|KKE-skenaario | |||
||amount|Kala:Muu tuonti; Scenario: Tuonti|Gg /a|28|KKE-skenaario | |||
CHD death||BoD|Age:Female 25-69|DALY|9876 (9103 - 10784)|Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv | |||
CHD death||BoD|Age:Male 25-69|DALY|48851 (54035 - 46123)|Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv | |||
CHD death||BoD|Age:Age 25-69|DALY|58727 (63138 - 56907)|Summed from previous | |||
CHD death||BoD|Age:Female 70+|DALY|42750 (41007 - 45909)|Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv | |||
CHD death||BoD|Age:Male 70+|DALY|48150 (46327 - 51255)|Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv | |||
CHD death||BoD|Age:Age 70+|DALY|90900 (87334 - 97164)|Summed from previous | |||
IQ loss||case burden||DALY /IQ|0.11 (0.06 - 0.16)|Arja used 0.013 but here we use Goherr value instead | |||
Cancer morbidity||case burden||DALY/case|0 - 0.28|Goherr assessment | |||
Cancer morbidity||case burden||DALY/case|0 - 0.28|Goherr assessment | |||
Sperm concentration||case burden||DALY/case|0 - 5|Goherr assessment | |||
Yes or no dental defect||case burden||DALY/case|0 - 0.12|Goherr assessment | |||
CHD2 mortality||case burden||DALY /case|5 - 15|Goherr assessment | |||
Stroke mortality||case burden||DALY /case|5 - 15|Goherr assessment | |||
Yes or no dental defect||case burden||DALY /case|0 - 0.12|Goherr assessment | |||
Cancer morbidity||case burden||DALY /case|0.3937391 (0.3566650 - 0.4356150)|Goherr assessment | |||
Vitamin D recommendation||case burden||DALY /case|0.0001 - 0.0101|Goherr assessment | |||
Sperm concentration||case burden||DALY /case|0 - 5|Goherr assessment | |||
Loss in child's IQ points||case burden||DALY /case|0.11 (0.06 - 0.16)|Goherr assessment | |||
|TEQ|exposure|Exposure:To child; Age: Age 1|pg /g|1.65 (0.38 - 3.47)|Ruori code; data from Goherr assessment | |||
|TEQ|exposure|Exposure:To eater; Age: Female 18-45|pg /d|4.79 (1.07 - 11.48)|Ruori code; data from Goherr assessment | |||
|TEQ|exposure|Exposure:To eater; Age: Non female 18-45|pg /d|22.61 (9.43 - 44.75)|Ruori code; data from Goherr assessment | |||
|TEQ|frexposed|Age:Age 1|fraction|1|frexposed is already in the exposure distribution | |||
|TEQ|frexposed|Age:Female 18-45|fraction|1|frexposed is already in the exposure distribution | |||
|TEQ|frexposed|Age:Non female 18-45|fraction|1|frexposed is already in the exposure distribution | |||
IQ loss||incidence|Age:Age 1|IQ /100000py|596000|On average, a population has ca. 6 IQ points per person below 100: mean(abs(rnorm(10000, 100,15)-100))/2 | |||
Cancer morbidity||incidence|Age:Female 18-45|# /100000py|657|Statistics Finland https://tilastot.syoparekisteri.fi/syovat/ applies to all subgroups because cancer is lifetime risk | |||
Cancer morbidity||incidence|Age:Non female 18-45|# /100000py|657|Statistics Finland https://tilastot.syoparekisteri.fi/syovat/ applies to all subgroups because cancer is lifetime risk | |||
Sperm concentration||incidence|Age:Age 1|# /100000py|7000|Male infertility rate is 7 % (Wikipedia) | |||
Yes or no dental defect||incidence|Age:Age 1|# /100000py|22400|Alaluusua et al 2004 found 11/49 cases in two lowest groups | |||
||population|Age:Age 1||50934|Statistics Finland, 2018 https://pxnet2.stat.fi:443/PXWeb/sq/ac3373d0-e303-4c67-b32a-73c6d26df809 | |||
||population|Age:Age 25-64|#|2814305|Statistics Finland | |||
||population|Age:Age 65-74|#|692868|Statistics Finland | |||
||population|Age:Age 25-69|#|3176513|Statistics Finland | |||
||population|Age:Age 70+|#|842629|Statistics Finland | |||
||population|Age:Total population|#|5517919|Statistics Finland | |||
||population|Age:Age 0 (congenital)|#|47663|Statistics Finland | |||
||population|Age:Age 1+ (acquired)|#|5470256|Statistics Finland | |||
||population|Age:Female 18-45|#|923697|Statistics Finland | |||
||population|Age:Non female 18-45|#|4594222|Statistics Finland | |||
</t2b> | |||
<t2b name="Decisions" index="Decision,Option,Variable,Cell,Change" obs="Result" desc="Description" unit="-"> | |||
Adjust|BAU|incidence||Multiply|0.00001|1/100000 py --> 1 py | |||
Adjust|BAU|conc_vit|Nutrient:Vitamin D,Omega3,ALA,DHA|Multiply|0.01|g /100 g --> g /g | |||
Adjust|BAU|conc_vit|Nutrient:Omega3|Multiply|1000|g --> mg | |||
</t2b> | |||
<t2b name="CollapseMarginals" index="Variable,Index,Probs,Function" obs="Dummy" desc="Description" unit="-"> | |||
BoD|incidenceSource,disabilityweightSource,populationSource,BoDSource||sum|1|Remove redundant | |||
PAF|Unit, Exposure, Scaling,Exposcen, ER_function, ERFchoiceSource, exposureSource, bgexposureSource, BWSource, doseSource, thresholdSource, ERFSource, RRSource, frexposedSource, incidenceSource, InpPAFSource||sum|1|Remove redundant | |||
case_burden|case_burdenSource||sum|1|Fill missing Ages | |||
BoDattr|PAFSource, Adjust||sum|1|Remove redundant | |||
expo_indir|f_ingSource, t0.5Source,f_mtocSource, BFSource||sum|1|Remove redundant | |||
exposure|Fish, Kala||sum|1|Remove redundant | |||
dose|Source, concSource, expo_dirSrouce, exposureSource, BWSource, Source.1||sum|1|Remove redundant | |||
ERF|Exposure, Age||sum|1|Remove redundant | |||
threshold|Exposure, Age||sum|1|Remove redundant | |||
</t2b> | |||
}} | |||
Scenario|Action|exposure|Exposure: To child; Age: Age 1|Replace|0.98 (0.17 - 2.9)|Based on RUORI modelling (see code) | |||
Scenario|Action|exposure|Exposure: To eater; Age: Female 18-45|Replace|2.79 (0.56 - 7.08)|Based on RUORI modelling (see code) | |||
Scenario|Action|exposure|Exposure: To eater; Age: Non female 18-45|Replace|11.38 (3.44 - 46.22)|Based on RUORI modelling (see code) | |||
=== Laskenta === | === Laskenta === | ||
Avoimen arvioinnin mallikoodi on kirjoitettu R:llä ja se löytyy [https://github.com/jtuomist/fishhealth Githubista]. | Avoimen arvioinnin mallikoodi on kirjoitettu R:llä ja se löytyy [https://github.com/jtuomist/fishhealth Githubista]. | ||
[[image:Terveysvaikutusten arviointimalli.svg|thumb|400px|Yleiskuva terveysvaikutusten laskentamallista.]] | |||
==== Keskeiset tulosteet ==== | |||
<rcode label="Laske uudestaan mallin perustulokset" graphics=1> | |||
# This is code Op_fi5923/ on page [[Ruori]] | |||
library(OpasnetUtils) | |||
library(ggplot2) | |||
library(thlGraphs) | |||
library(plotly) | |||
openv.setN(10) | |||
objects.latest("Op_fi5923", code_name="model") | |||
# First empty all objects for a fresh start. Otherwise may be problems with CheckDecisions. | |||
oempty(all=TRUE) | |||
InpBoD <- EvalOutput(InpBoD) | |||
InpPAF <- EvalOutput(InpPAF) | |||
utility <- EvalOutput(utility, verbose=TRUE) | |||
# Sample from default and sensitivity scenario about lead threshold. | |||
cat("Elintarvikeperäisen lyijyn vaikutukset herkkyystarkastelussa.\n") | |||
oprint(summary(BoDattr[BoDattr$Exposure_agent=="Lyijy",])) | |||
BoDattr <- CollapseMarginal(BoDattr,"Threshold","sample") | |||
utility <- CollapseMarginal(utility,"Threshold","sample") | |||
levels(BoDattr$Exposure_agent)[levels(BoDattr$Exposure_agent)=="Vihannesvaje"] <- "Kasvisvaje" | |||
#levels(BoDattr$Response) | |||
#[1] "Cancer morbidity" "IQ loss" "Listeriosis" "Liver cancer" | |||
#[5] "Noro infection" "Sperm concentration" "Toxoplasmosis" "Yes or no dental defect" | |||
#[9] "CHD death" "Diet high in sodium" "Diet low in fruits" "Diet low in vegetables" | |||
levels(BoDattr$Response) <- c( | |||
"Syöpä", | |||
"Älykkyysosamäärän lasku", | |||
"Listerioosi", | |||
"Maksasyöpä", | |||
"Noroinfektio", | |||
"Miehen hedelmättömyys", | |||
"Toksoplasmoosi", | |||
"Hammasvaurio", | |||
"Sydäntauti", | |||
"Liika suola", | |||
"Hedelmävaje", | |||
"Kasvisvaje" | |||
) | |||
cat("Elintarvikeperäisiä tautitaakkoja Suomessa arpoen lyijylle oletetun tai matalamman kynnysarvon.\n") | |||
tmp <- summary(oapply(BoDattr[BoDattr$Scenario=="BAU",],NULL,sum,c("Age","Response"))) | |||
oprint(data.frame( | |||
Altiste = tmp$Exposure_agent, | |||
Keskiarvo = signif(tmp$mean,2), | |||
"95 luottamusväli" = paste0(signif(tmp$Q0.025,2)," - ", signif(tmp$Q0.975,2)), | |||
Keskihajonta = signif(tmp$sd,2) | |||
)[rev(match(lev, tmp$Exposure_agent)),]) | |||
cat("Elintarvikeperäisiä tautitaakkoja Suomessa ikä- ja tautiryhmittäin arpoen lyijylle oletetun tai matalamman kynnysarvon.\n") | |||
tmp <- summary(BoDattr[BoDattr$Scenario=="BAU",]) | |||
oprint(data.frame( | |||
Altiste = tmp$Exposure_agent, | |||
Ikä = tmp$Age, | |||
Vaste = tmp$Response, | |||
Keskiarvo = signif(tmp$mean,2), | |||
Mediaani = signif(tmp$median,2), | |||
"95 luottamusväli" = paste0(signif(tmp$Q0.025,2)," - ", signif(tmp$Q0.975,2)), | |||
Keskihajonta = signif(tmp$sd,2) | |||
)) | |||
cat("Ruori-skenaarioiden vaikutus tautitaakkaan\n") | |||
tmp <- summary(utility) | |||
oprint(data.frame( | |||
Altiste = tmp$Exposure_agent, | |||
Keskiarvo = signif(tmp$mean,2), | |||
"95 luottamusväli" = paste0(signif(tmp$Q0.025,2)," - ", signif(tmp$Q0.975,2)), | |||
Keskihajonta = signif(tmp$sd,2) | |||
)[rev(match(lev, tmp$Exposure_agent)),]) | |||
dodge <- position_dodge(width=0.7) | |||
if(FALSE) { | |||
gg <- ggplot(summary(oapply(BoDattr[BoDattr$Scenario=="BAU",],NULL,sum,"Age")), | |||
aes(x=Exposure_agent, weight=unlist(mean), fill=Response))+geom_bar()+ | |||
theme(legend.position = "bottom")+ | |||
labs( | |||
title="Elintarvikkeiden tautitaakkoja Suomessa", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
coord_flip() | |||
print(gg) | |||
gg <- ggplot(summary(oapply(BoDattr, NULL, sum,c("Age","Response"))), | |||
aes(x=Exposure_agent, weight=unlist(mean), fill=Scenario))+geom_bar(position="dodge")+ | |||
coord_flip(ylim=c(0,70000))+ | |||
labs( | |||
title="Elintarvikeperäisiä tautitaakkoja Suomessa", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
geom_errorbar(aes(ymin=unlist(Q0.025),ymax=unlist(Q0.975),group=Scenario),position=dodge, width=0.3)+ | |||
geom_text(aes(label=signif(unlist(mean),2), y=unlist(Q0.975)+5000, group=Scenario), position=dodge) | |||
print(gg) | |||
# Utility of actions | |||
gg <- ggplot(summary(utility),aes(x=Exposure_agent, weight=unlist(mean)))+geom_bar(fill="lightblue")+ | |||
coord_flip(ylim=c(-9000,0))+ | |||
labs( | |||
title="Ruori-skenaarioiden vaikutus tautitaakkaan", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
geom_errorbar(aes(ymin=unlist(Q0.025),ymax=unlist(Q0.975)), width=0.3)+ | |||
geom_text(aes(label=signif(unlist(mean),2), y=unlist(Q0.025)-600)) | |||
print(gg) | |||
} else { | |||
###### RUN THESE ON OWN COMPUTER WITH thlGraphs PACKAGE | |||
# levels(BoDattr$Exposure_agent) | |||
# [1] "Aflatoksiini" "Dioksiini" "Norovirus" "Toksoplasma" | |||
# [5] "Lyijy" "Listeria" "Tyydyttynyt rasva" "Vihannesvaje" | |||
# [9] "Suola" "Hedelmävaje" | |||
levels(BoDattr$Exposure_agent) <- c( | |||
"Aflatoxin","Dioxin","Noro virus","Toxoplasma", "Lead","Listeria", | |||
"Saturated fat","Lack of vegetables","Sodium","Lack of fruits") | |||
thlBarPlot(summary(oapply(BoDattr[BoDattr$Scenario=="BAU",],NULL,sum,"Age")), | |||
xvar=Exposure_agent, yvar=unlist(mean), groupvar=Response, legend.position="bottom", | |||
colors=thlColors(n=12), | |||
title="Elintarvikkeiden tautitaakkoja Suomessa", subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+coord_flip() | |||
thlBarPlot(summary(oapply(BoDattr, NULL, sum,c("Age","Response"))),xvar=Exposure_agent, yvar=unlist(mean), | |||
groupvar=Scenario,stacked=FALSE, ylimits=c(0,70000), | |||
# title="Elintarvikeperäisiä tautitaakkoja Suomessa", | |||
# subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
title="Burden of disease of selected food-mediated risk factors in Finland", | |||
subtitle="Disability-adjusted life years per year (DALY/a)")+ | |||
coord_flip()+ | |||
geom_errorbar(aes(ymin=unlist(Q0.025),ymax=unlist(Q0.975),group=Scenario),position=dodge, width=0.3)+ | |||
geom_text(aes(label=signif(unlist(mean),2), y=unlist(Q0.975)+5000, group=Scenario), position=dodge) | |||
ggsave("Ruori Burden of disease.png",width=10,height=6) | |||
# ggsave("Ruori-tautitaakka.png",width=10,height=6) | |||
# Error bars are not used in this plotly because it is unclear what it means in a stacked bar. | |||
p <-plot_ly( | |||
summary(oapply(BoDattr[BoDattr$Scenario=="BAU",], NULL, sum,c("Age"))), | |||
y=~Exposure_agent, | |||
x=~signif(mean,3), | |||
text=~Response, | |||
name=~Response, | |||
type="bar", | |||
orientation = "h" | |||
) %>% | |||
layout( | |||
barmode="stack", | |||
title="Elintarvikeperäisiä tautitaakkoja Suomessa", | |||
xaxis=list(title="Haittapainotettua elinvuotta vuodessa (DALY/a)"), | |||
yaxis=list(title="") | |||
) | |||
# pushIndicatorGraph(p, 117) | |||
# ggsave("Ruori-tautitaakat.png",width=10/1.2,height=6/1.2) | |||
# Utility of actions | |||
thlBarPlot(summary(utility),xvar=Exposure_agent, yvar=unlist(mean), ylimits=c(-9000,0), | |||
title="Ruori-skenaarioiden vaikutus tautitaakkaan", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+coord_flip()+ | |||
geom_errorbar(aes(ymin=unlist(Q0.025),ymax=unlist(Q0.975)), width=0.3)+ | |||
geom_text(aes(label=signif(unlist(mean),2), y=unlist(Q0.025)-600)) | |||
# ggsave("Ruori-toimenpideiden vaikutus.png",width=10/1.2,height=6/1.2) | |||
} | |||
</rcode> | |||
==== Arviointimallin alustus ==== | |||
<rcode name="model" label="Alusta koko kalanedistämismalli" graphics=1> | |||
# This is code Op_fi5923/model on page [[Ruori]] | |||
library(OpasnetUtils) | |||
library(ggplot2) | |||
# First empty all objects for a fresh start. Otherwise may be problems with CheckDecisions. | |||
oempty(all=TRUE) | |||
openv.setN(1000) | |||
dat <- opbase.data("Op_fi5923", subset="Malliparametrit")[-1] | |||
dec <- opbase.data("Op_fi5923", subset="Decisions")[-1] | |||
DecisionTableParser(dec) | |||
CTable <- opbase.data("Op_fi5923",subset="CollapseMarginals") | |||
for(i in 1:ncol(CTable)) {CTable[[i]] <- as.character(CTable[[i]])} | |||
CollapseTableParser(CTable) | |||
cat("Laskennassa käytetty data.\n") | |||
oprint(dat) | |||
cat("Tarkastellut päätökset.\n") | |||
oprint(dec) | |||
cat("Aggregoidut marginaalit.\n") | |||
oprint(CTable) | |||
#' prepare adjusts the data table for ovariables. Requires function subgrouping from code Op_en2031/initiate on page [[Exposure-response function]] | |||
#' @param dat data.frame | |||
#' @param type type of data that is used. Must match content in column Type | |||
#' @param drop columns to remove | |||
#' @return data.frame | |||
prepare <- function(dat, type=NULL, drop=NULL) { | |||
out <- dat | |||
if(!is.null(type)) out <- out[out$Type %in% type , ] | |||
if(!is.null(drop)) out <- out[!colnames(out) %in% drop] | |||
return(subgrouping(out)) | |||
} | |||
objects.latest("Op_en2031", code_name="subgrouping") # [[Exposure-response function]] subgrouping | |||
population <- Ovariable("population", data = prepare(dat,"population",c("Type","Exposure_agent","Response","Unit"))) | |||
exposure <- Ovariable("exposure", data = prepare(dat, "exposure", c("Type","Response"))) | |||
frexposed <- Ovariable("frexposed", data=prepare(dat, "frexposed", c("Type","Response","Unit"))) | |||
incidence <- Ovariable("incidence", data = prepare(dat,"incidence",c("Type","Exposure_agent","Unit"))) | |||
ERFChoice <- Ovariable( | |||
"ERFchoice", | |||
data=data.frame( | |||
Response=c("IQ loss","Liver cancer","Yes or no dental defect","Cancer morbidity","Sperm concenctration"), | |||
Exposure_agent=c("Lead","Aflatoxin","TEQ","TEQ","TEQ"), | |||
Result=1) | |||
) | |||
case_burden <- Ovariable("case_burden", data= prepare(dat,"case burden",c("Type","Exposure_agent","Unit"))) | |||
InpPAF <- EvalOutput(Ovariable("InpPAF", data = prepare(dat,"PAF","Type"))) | |||
InpBoD <- EvalOutput(Ovariable("InpBoD", data = prepare(dat, "BoD", c("Type","Exposure_agent")))) | |||
objects.latest("Op_en2261",code_name="BoDattr2") # [[Health impact assessment]] | |||
#levels(BoDattr$Exposure_agent) | |||
#[1] "Aflatoxin" "Lead" "TEQ" "Fruits" "Listeria" "Noro virus" "Saturated fat" "Sodium" | |||
#[8] "Toxoplasma gondii" "Vegetables" | |||
BoDattrOrigFormula <- BoDattr@formula | |||
BoDattr@formula <- function(...) { | |||
BoDattr <- BoDattrOrigFormula() | |||
levels(BoDattr$Exposure_agent) <- c("Aflatoksiini","Lyijy", "Dioksiini", "Hedelmävaje","Listeria","Norovirus", | |||
"Tyydyttynyt rasva","Suola", "Toksoplasma","Vihannesvaje") | |||
lev <- oapply(BoDattr[BoDattr$Scenario=="BAU",],"Exposure_agent",sum) | |||
lev <- lev$Exposure_agent[order(result(lev))] | |||
BoDattr$Exposure_agent <- factor(BoDattr$Exposure_agent, levels=lev) | |||
return(BoDattr) | |||
} | |||
utility <- Ovariable( | |||
"utility", | |||
dependencies = data.frame(Name="BoDattr"), | |||
formula = function(...) { | |||
out <- BoDattr * Ovariable(data=data.frame(Scenario=c("Action","BAU"),Result=c(1,-1))) | |||
out <- oapply(out, cols=c("Scenario","Response","Age"),FUN=sum) | |||
return(out) | |||
} | |||
) | |||
utility <- EvalOutput(utility) | |||
lev <- levels(BoDattr$Exposure_agent) | |||
cat("exposure\n") | |||
oprint(summary(exposure,marginals=c("Exposure_agent","Age","Scenario")),digits=7) | |||
oprint(exposure@output[exposure$Iter==1,]) | |||
cat("dose\n") | |||
oprint(summary(dose),digits=7) | |||
cat("ERF\n") | |||
oprint(ERF@output[ERF$Iter==1,],digits=7) | |||
cat("incidence\n") | |||
oprint(summary(incidence),digits=7) | |||
cat("frexposed\n") | |||
oprint(summary(frexposed),digits=7) | |||
cat("PAF\n") | |||
oprint(summary(PAF),digits=7) | |||
cat("BoD\n") | |||
oprint(summary(BoD),digits=7) | |||
cat("BoDattr\n") | |||
oprint(summary(BoDattr,marginals=c("Response","Exposure_agent","Scenario","Age")),digits=7) | |||
cat("Vähennyspotentiaali\n") | |||
tmp <- summary(utility, marginals=c("Exposure_agent")) | |||
oprint(tmp[order(unlist(tmp$mean)),]) | |||
objects.store(list=setdiff(ls(), "wiki_username")) | |||
cat("Objects", setdiff(ls(), "wiki_username"), "stored.\n") | |||
################### | |||
# Disease burden | |||
# Sample from default and sensitivity scenario about lead threshold. | |||
cat("Elintarvikeperäisen lyijyn vaikutukset herkkyystarkastelussa.\n") | |||
oprint(summary(BoDattr[BoDattr$Exposure_agent=="Lyijy",])) | |||
BoDattr <- CollapseMarginal(BoDattr,"Threshold","sample") | |||
utility <- CollapseMarginal(utility,"Threshold","sample") | |||
cat("Elintarvikeperäisiä tautitaakkoja Suomessa\n") | |||
tmp <- summary(oapply(BoDattr[BoDattr$Scenario=="BAU",],NULL,sum,c("Age","Response"))) | |||
oprint(data.frame( | |||
Altiste = tmp$Exposure_agent, | |||
Keskiarvo = signif(tmp$mean,2), | |||
"95 luottamusväli" = paste0(signif(tmp$Q0.025,2)," - ", signif(tmp$Q0.975,2)), | |||
Keskihajonta = signif(tmp$sd,2) | |||
)[rev(match(lev, tmp$Exposure_agent)),]) | |||
cat("Ruori-skenaarioiden vaikutus tautitaakkaan\n") | |||
tmp <- summary(utility) | |||
oprint(data.frame( | |||
Altiste = tmp$Exposure_agent, | |||
Keskiarvo = signif(tmp$mean,2), | |||
"95 luottamusväli" = paste0(signif(tmp$Q0.025,2)," - ", signif(tmp$Q0.975,2)), | |||
Keskihajonta = signif(tmp$sd,2) | |||
)[rev(match(lev, tmp$Exposure_agent)),]) | |||
dodge <- position_dodge(width=0.7) | |||
ggplot(summary(oapply(BoDattr[BoDattr$Scenario=="BAU",],NULL,sum,"Age")), | |||
aes(x=Exposure_agent, weight=unlist(mean), fill=Response))+geom_bar()+ | |||
theme(legend.position = "bottom")+ | |||
labs( | |||
title="Elintarvikkeiden tautitaakkoja Suomessa", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
coord_flip() | |||
ggplot(summary(oapply(BoDattr, NULL, sum,c("Age","Response"))), | |||
aes(x=Exposure_agent, weight=unlist(mean), fill=Scenario))+geom_bar(position="dodge")+ | |||
coord_flip(ylim=c(0,70000))+ | |||
labs( | |||
title="Elintarvikeperäisiä tautitaakkoja Suomessa", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
geom_errorbar(aes(ymin=unlist(Q0.025),ymax=unlist(Q0.975),group=Scenario),position=dodge, width=0.3)+ | |||
geom_text(aes(label=signif(unlist(mean),2), y=unlist(Q0.975)+5000, group=Scenario), position=dodge) | |||
# Utility of actions | |||
ggplot(summary(utility),aes(x=Exposure_agent, weight=unlist(mean)))+geom_bar(fill="lightblue")+ | |||
coord_flip(ylim=c(-9000,0))+ | |||
labs( | |||
title="Ruori-skenaarioiden vaikutus tautitaakkaan", | |||
subtitle="Haittapainotettua elinvuotta vuodessa (DALY/a)")+ | |||
geom_errorbar(aes(ymin=unlist(Q0.025),ymax=unlist(Q0.975)), width=0.3)+ | |||
geom_text(aes(label=signif(unlist(mean),2), y=unlist(Q0.025)-600)) | |||
################ Insight network | |||
gr <- scrape(type="assessment") | |||
objects.latest("Op_en3861", "makeGraph") # [[Insight network]] | |||
gr <- makeGraph(gr) | |||
#export_graph(gr, "ruori.svg") | |||
render_graph(gr) | |||
</rcode> | |||
== Katso myös == | == Katso myös == |
Nykyinen versio 18. tammikuuta 2021 kello 13.11
Moderaattori:Jouni (katso kaikki)
Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
Kysymys
Mikä olisi kalansyönnin lisääntymisen terveysvaikutus Suomessa?
Oletettu käyttö ja käyttäjät
Tässä arvioinnissa tarkastellaan skenaarioita, joissa suomalaisten kalansyöntiä lisättäisiin kotimaisen kalan edistämisohjelmalla. Tietoja käyttäisivät mm. Luke, MMM ja YM.
Osallistujat
- Jouni Tuomisto, THL
Rajaus
Tilannetta tarkastelleen toisaalta toteutuneeseen 2017 tilanteeseen ja toisaalta skenaarioihin vuodelle 2027, kun on joko lisätty kotimaisen kalan tuotantoa tai tuontia.
Vaihtoehdot
- Kotimaisen kalan käytön lisääminen
- Viljellyn kalan tuonnin lisääminen
Aikataulu
Alustavia arvioita pyritään tuottamaan maaliskuun 2020 aikana.
Vastaus
Tulokset
Arviointimallin keskeiset tulokset löytyvät tästä HTML-tiedostosta.
Päätelmät
Kalansyönti vuonna 2017 vähensi tautitaakkaa n. 100 000 haittapainotettua elinvuotta (DALY) Suomessa. Jos kalansyönti lisääntyisi oheisen taulukon mukaisesti, tautitaakka vähenisi edelleen n. 40 000 DALY /a suomalaista kalankulutusta lisäämällä ja n. 35 000 DALY /a kalantuontia lisäämällä.
Perustelut
Data
Kalaryhmä | BAU 2017 | Kotimainen edistäminen | Tuonnin edistäiminen |
---|---|---|---|
Kirjolohi suomalainen | 11 | 45 | 11 |
Kasvatettu muu suomalainen | 1 | 8 | 3 |
Silakka | 4 | 18 | 8 |
Kaupallinen luonnonkala | 6 | 12 | 8 |
Vapaa-ajan saalis | 20 | 20 | 20 |
Tuontilohi | 36 | 38 | 67 |
Tuontikirjolohi | 8 | 8 | 17 |
Muu tuonti | 28 | 28 | 28 |
Eräs keskeisistä terveysvaikutuksiin vaikuttavista oletuksista on, kuka lisääntyneen kalan söisi. Mahdollisia tapoja ajatella:
- Syöntiä muutetaan nykysyönnin suhteessa.
- Jokainen suomalainen syö vakiomäärän kalaa enemmän.
- Kalansyönnin edistämistä suunnataan tietyille väestöryhmille, ja vaikutukset tulevat siellä (mihin?).
- Vaikutukset jakautuvat satunnaisessa määrin eri yksilöille.
Malliparametrit
Malliparametrit saat näkyviin klikkaamalla.
Näytä yksityiskohdat | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kalankulutus on ilmoitettu fileepainona eikä tuorepainona, eli oletetaan että kaikki tämä tulee syödyksi.
|
Scenario|Action|exposure|Exposure: To child; Age: Age 1|Replace|0.98 (0.17 - 2.9)|Based on RUORI modelling (see code)
Scenario|Action|exposure|Exposure: To eater; Age: Female 18-45|Replace|2.79 (0.56 - 7.08)|Based on RUORI modelling (see code)
Scenario|Action|exposure|Exposure: To eater; Age: Non female 18-45|Replace|11.38 (3.44 - 46.22)|Based on RUORI modelling (see code)
Laskenta
Avoimen arvioinnin mallikoodi on kirjoitettu R:llä ja se löytyy Githubista.