(4 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 ===
:''Vastaus arvioinnin pääkysymykseen ja muihin kysymyksiin tulosten perusteella.
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 77:
Rivi 78:
{{piilotettu|
{{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">
<t2b name="Malliparametrit" index="Response,Exposure_agent,Type,Subgroup,Unit" obs="Result" desc="Description" unit="various">
||amount|Kala:Kirjolohi; Scenario: BAU|Gg /a|11|KKE-skenaario
||amount|Kala:Kirjolohi; Scenario: BAU|Gg /a|6.7 |KKE-skenaario
||amount|Kala:Kasvatettu; Scenario: BAU|Gg /a|1|KKE-skenaario
||amount|Kala:Kasvatettu; Scenario: BAU|Gg /a|0.6 |KKE-skenaario
||amount|Kala:Silakka; Scenario: BAU|Gg /a|4|KKE-skenaario
||amount|Kala:Silakka; Scenario: BAU|Gg /a|1.6 |KKE-skenaario
||amount|Kala:Kaupallinen; Scenario: BAU|Gg /a|6|KKE-skenaario
||amount|Kala:Kaupallinen; Scenario: BAU|Gg /a|3.2 |KKE-skenaario
||amount|Kala:Vapaa-ajan; Scenario: BAU|Gg /a|20|KKE-skenaario
||amount|Kala:Vapaa-ajan; Scenario: BAU|Gg /a|9.9 |KKE-skenaario
||amount|Kala:Tuontilohi; Scenario: BAU|Gg /a|36|KKE-skenaario
||amount|Kala:Tuontilohi; Scenario: BAU|Gg /a|23.6 |KKE-skenaario
||amount|Kala:Tuontikirjolohi; Scenario: BAU|Gg /a|8|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:Muu tuonti; Scenario: BAU|Gg /a|28|KKE-skenaario
||amount|Kala:Kirjolohi; Scenario: Kotimaa|Gg /a|45|KKE-skenaario
||amount|Kala:Kirjolohi; Scenario: Kotimaa|Gg /a|19 |KKE-skenaario
||amount|Kala:Kasvatettu; Scenario: Kotimaa|Gg /a|8|KKE-skenaario
||amount|Kala:Kasvatettu; Scenario: Kotimaa|Gg /a|5 |KKE-skenaario
||amount|Kala:Silakka; Scenario: Kotimaa|Gg /a|18|KKE-skenaario
||amount|Kala:Silakka; Scenario: Kotimaa|Gg /a|8 |KKE-skenaario
||amount|Kala:Kaupallinen; Scenario: Kotimaa|Gg /a|12|KKE-skenaario
||amount|Kala:Kaupallinen; Scenario: Kotimaa|Gg /a|7 |KKE-skenaario
||amount|Kala:Vapaa-ajan; Scenario: Kotimaa|Gg /a|20|KKE-skenaario
||amount|Kala:Vapaa-ajan; Scenario: Kotimaa|Gg /a|10 |KKE-skenaario
||amount|Kala:Tuontilohi; Scenario: Kotimaa|Gg /a|38|KKE-skenaario
||amount|Kala:Tuontilohi; Scenario: Kotimaa|Gg /a|32 |KKE-skenaario
||amount|Kala:Tuontikirjolohi; Scenario: Kotimaa|Gg /a|8|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:Muu tuonti; Scenario: Kotimaa|Gg /a|28|KKE-skenaario
||amount|Kala:Kirjolohi; Scenario: Tuonti|Gg /a|11|KKE-skenaario
||amount|Kala:Kirjolohi; Scenario: Tuonti|Gg /a|6.7 |KKE-skenaario
||amount|Kala:Kasvatettu; Scenario: Tuonti|Gg /a|3|KKE-skenaario
||amount|Kala:Kasvatettu; Scenario: Tuonti|Gg /a|2 |KKE-skenaario
||amount|Kala:Silakka; Scenario: Tuonti|Gg /a|8|KKE-skenaario
||amount|Kala:Silakka; Scenario: Tuonti|Gg /a|3 |KKE-skenaario
||amount|Kala:Kaupallinen; Scenario: Tuonti|Gg /a|8|KKE-skenaario
||amount|Kala:Kaupallinen; Scenario: Tuonti|Gg /a|4 |KKE-skenaario
||amount|Kala:Vapaa-ajan; Scenario: Tuonti|Gg /a|20|KKE-skenaario
||amount|Kala:Vapaa-ajan; Scenario: Tuonti|Gg /a|10 |KKE-skenaario
||amount|Kala:Tuontilohi; Scenario: Tuonti|Gg /a|67|KKE-skenaario
||amount|Kala:Tuontilohi; Scenario: Tuonti|Gg /a|44 |KKE-skenaario
||amount|Kala:Tuontikirjolohi; Scenario: Tuonti|Gg /a|17|KKE-skenaario
||amount|Kala:Tuontikirjolohi; Scenario: Tuonti|Gg /a|10 |KKE-skenaario
||amount|Kala:Muu tuonti; Scenario: Tuonti|Gg /a|28|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:Female 25-69|DALY|9876 (9103 - 10784)|Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv
Rivi 109:
Rivi 112:
CHD death||BoD|Age:Male 70+|DALY|48150 (46327 - 51255)|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
CHD death||BoD|Age:Age 70+|DALY|90900 (87334 - 97164)|Summed from previous
dummy||case burden|Age:Female 25-69|DALY /case|0|Needed for case_burden to cover all Ages
IQ loss||case burden||DALY /IQ|0.11 (0.06 - 0.16)|Arja used 0.013 but here we use Goherr value instead
dummy||case burden|Age:Female 70+|DALY /case|0|Needed for case_burden to cover all Ages
Cancer morbidity||case burden||DALY/case|0 - 0.28|Goherr assessment
dummy||case burden|Age:Male 25-69|DALY /case|0|Needed for case_burden to cover all Ages
Cancer morbidity||case burden||DALY/case|0 - 0.28|Goherr assessment
dummy||case burden|Age:Male 70+|DALY /case|0|Needed for case_burden to cover all Ages
Sperm concentration||case burden||DALY/case|0 - 5|Goherr assessment
dummy||case burden|Age:Age 25-64|DALY /case|0|Needed for case_burden to cover all Ages
Yes or no dental defect||case burden||DALY/case|0 - 0.12|Goherr assessment
dummy||case burden|Age:Age 65-74|DALY /case|0|Needed for case_burden to cover all Ages
IQ loss||case burden|Age:Age 1|DALY /IQ|0.11 (0.06 - 0.16)|Arja used 0.013 but here we use Goherr value instead
Cancer morbidity||case burden|Age:Female 18-45|DALY/case|0 - 0.28|Goherr assessment
Cancer morbidity||case burden|Age:Non female 18-45|DALY/case|0 - 0.28|Goherr assessment
Sperm concentration||case burden|Age:Age 1|DALY/case|0 - 5|Goherr assessment
Yes or no dental defect||case burden|Age:Age 1|DALY/case|0 - 0.12|Goherr assessment
CHD2 mortality||case burden||DALY /case|5 - 15|Goherr assessment
CHD2 mortality||case burden||DALY /case|5 - 15|Goherr assessment
Stroke mortality||case burden|5 - 15|DALY /case||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
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
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
Vitamin D recommendation||case burden||DALY /case|0.0001 - 0.0101|Goherr assessment
Sperm concentration||case burden|0 - 5|DALY /case||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
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 child; Age: Age 1|pg /g|1.65 (0.38 - 3.47)|Ruori code; data from Goherr assessment
Rivi 132:
Rivi 129:
|TEQ|frexposed|Age:Age 1|fraction|1|frexposed is already in the exposure distribution
|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: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
|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
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:Female 18-45|# /100000py|657|Statistics Finland https://tilastot.syoparekisteri.fi/syovat/ applies to all subgroups because cancer is lifetime risk
Rivi 152:
Rivi 149:
<t2b name="Decisions" index="Decision,Option,Variable,Cell,Change" obs="Result" desc="Description" unit="-">
<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|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:Vitamin D,Omega3,ALA,DHA|Multiply|0.01|g /100 g --> g /g
Adjust|BAU|conc_vit|Exposure_agent: Omega3|Multiply|1000|g --> mg
Adjust|BAU|conc_vit|Nutrient :Omega3|Multiply|1000|g --> mg
</t2b>
</t2b>
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
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
Tautitaakka erilaisissa kalankulutuksen skenaarioissa. Negatiivinen luku tarkoittaa terveyshyötyä.
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
Kalansyönti Suomessa eri skenaarioissa (milj kg/a kokonaiskalana)
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.
Malliparametrit(various) Obs Response Exposure_agent Type Subgroup Unit Result Description 1 amount Kala:Kirjolohi; Scenario: BAU Gg /a 6.7 KKE-skenaario 2 amount Kala:Kasvatettu; Scenario: BAU Gg /a 0.6 KKE-skenaario 3 amount Kala:Silakka; Scenario: BAU Gg /a 1.6 KKE-skenaario 4 amount Kala:Kaupallinen; Scenario: BAU Gg /a 3.2 KKE-skenaario 5 amount Kala:Vapaa-ajan; Scenario: BAU Gg /a 9.9 KKE-skenaario 6 amount Kala:Tuontilohi; Scenario: BAU Gg /a 23.6 KKE-skenaario 7 amount Kala:Tuontikirjolohi; Scenario: BAU Gg /a 4.8 KKE-skenaario 8 amount Kala:Muu tuonti; Scenario: BAU Gg /a 28 KKE-skenaario 9 amount Kala:Kirjolohi; Scenario: Kotimaa Gg /a 19 KKE-skenaario 10 amount Kala:Kasvatettu; Scenario: Kotimaa Gg /a 5 KKE-skenaario 11 amount Kala:Silakka; Scenario: Kotimaa Gg /a 8 KKE-skenaario 12 amount Kala:Kaupallinen; Scenario: Kotimaa Gg /a 7 KKE-skenaario 13 amount Kala:Vapaa-ajan; Scenario: Kotimaa Gg /a 10 KKE-skenaario 14 amount Kala:Tuontilohi; Scenario: Kotimaa Gg /a 32 KKE-skenaario 15 amount Kala:Tuontikirjolohi; Scenario: Kotimaa Gg /a 5 KKE-skenaario 16 amount Kala:Muu tuonti; Scenario: Kotimaa Gg /a 28 KKE-skenaario 17 amount Kala:Kirjolohi; Scenario: Tuonti Gg /a 6.7 KKE-skenaario 18 amount Kala:Kasvatettu; Scenario: Tuonti Gg /a 2 KKE-skenaario 19 amount Kala:Silakka; Scenario: Tuonti Gg /a 3 KKE-skenaario 20 amount Kala:Kaupallinen; Scenario: Tuonti Gg /a 4 KKE-skenaario 21 amount Kala:Vapaa-ajan; Scenario: Tuonti Gg /a 10 KKE-skenaario 22 amount Kala:Tuontilohi; Scenario: Tuonti Gg /a 44 KKE-skenaario 23 amount Kala:Tuontikirjolohi; Scenario: Tuonti Gg /a 10 KKE-skenaario 24 amount Kala:Muu tuonti; Scenario: Tuonti Gg /a 28 KKE-skenaario 25 CHD death BoD Age:Female 25-69 DALY 9876 (9103 - 10784) Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv 26 CHD death BoD Age:Male 25-69 DALY 48851 (54035 - 46123) Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv 27 CHD death BoD Age:Age 25-69 DALY 58727 (63138 - 56907) Summed from previous 28 CHD death BoD Age:Female 70+ DALY 42750 (41007 - 45909) Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv 29 CHD death BoD Age:Male 70+ DALY 48150 (46327 - 51255) Z:\Projects\RUORI\tautitaakka\Rasvat\IHD_data_IHME.csv 30 CHD death BoD Age:Age 70+ DALY 90900 (87334 - 97164) Summed from previous 31 IQ loss case burden DALY /IQ 0.11 (0.06 - 0.16) Arja used 0.013 but here we use Goherr value instead 32 Cancer morbidity case burden DALY/case 0 - 0.28 Goherr assessment 33 Cancer morbidity case burden DALY/case 0 - 0.28 Goherr assessment 34 Sperm concentration case burden DALY/case 0 - 5 Goherr assessment 35 Yes or no dental defect case burden DALY/case 0 - 0.12 Goherr assessment 36 CHD2 mortality case burden DALY /case 5 - 15 Goherr assessment 37 Stroke mortality case burden DALY /case 5 - 15 Goherr assessment 38 Yes or no dental defect case burden DALY /case 0 - 0.12 Goherr assessment 39 Cancer morbidity case burden DALY /case 0.3937391 (0.3566650 - 0.4356150) Goherr assessment 40 Vitamin D recommendation case burden DALY /case 0.0001 - 0.0101 Goherr assessment 41 Sperm concentration case burden DALY /case 0 - 5 Goherr assessment 42 Loss in child's IQ points case burden DALY /case 0.11 (0.06 - 0.16) Goherr assessment 43 TEQ exposure Exposure:To child; Age: Age 1 pg /g 1.65 (0.38 - 3.47) Ruori code; data from Goherr assessment 44 TEQ exposure Exposure:To eater; Age: Female 18-45 pg /d 4.79 (1.07 - 11.48) Ruori code; data from Goherr assessment 45 TEQ exposure Exposure:To eater; Age: Non female 18-45 pg /d 22.61 (9.43 - 44.75) Ruori code; data from Goherr assessment 46 TEQ frexposed Age:Age 1 fraction 1 frexposed is already in the exposure distribution 47 TEQ frexposed Age:Female 18-45 fraction 1 frexposed is already in the exposure distribution 48 TEQ frexposed Age:Non female 18-45 fraction 1 frexposed is already in the exposure distribution 49 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 50 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 51 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 52 Sperm concentration incidence Age:Age 1 # /100000py 7000 Male infertility rate is 7 % (Wikipedia) 53 Yes or no dental defect incidence Age:Age 1 # /100000py 22400 Alaluusua et al 2004 found 11/49 cases in two lowest groups 54 population Age:Age 1 50934 Statistics Finland, 2018 https://pxnet2.stat.fi:443/PXWeb/sq/ac3373d0-e303-4c67-b32a-73c6d26df809 55 population Age:Age 25-64 # 2814305 Statistics Finland 56 population Age:Age 65-74 # 692868 Statistics Finland 57 population Age:Age 25-69 # 3176513 Statistics Finland 58 population Age:Age 70+ # 842629 Statistics Finland 59 population Age:Total population # 5517919 Statistics Finland 60 population Age:Age 0 (congenital) # 47663 Statistics Finland 61 population Age:Age 1+ (acquired) # 5470256 Statistics Finland 62 population Age:Female 18-45 # 923697 Statistics Finland 63 population Age:Non female 18-45 # 4594222 Statistics Finland
Decisions(-) Obs Decision Option Variable Cell Change Result Description 1 Adjust BAU incidence Multiply 0.00001 1/100000 py --> 1 py 2 Adjust BAU conc_vit Nutrient:Vitamin D,Omega3,ALA,DHA Multiply 0.01 g /100 g --> g /g 3 Adjust BAU conc_vit Nutrient:Omega3 Multiply 1000 g --> mg
CollapseMarginals(-) Obs Variable Index Probs Function Dummy Description 1 BoD incidenceSource,disabilityweightSource,populationSource,BoDSource sum 1 Remove redundant 2 PAF Unit, Exposure, Scaling,Exposcen, ER_function, ERFchoiceSource, exposureSource, bgexposureSource, BWSource, doseSource, thresholdSource, ERFSource, RRSource, frexposedSource, incidenceSource, InpPAFSource sum 1 Remove redundant 3 case_burden case_burdenSource sum 1 Fill missing Ages 4 BoDattr PAFSource, Adjust sum 1 Remove redundant 5 expo_indir f_ingSource, t0.5Source,f_mtocSource, BFSource sum 1 Remove redundant 6 exposure Fish, Kala sum 1 Remove redundant 7 dose Source, concSource, expo_dirSrouce, exposureSource, BWSource, Source.1 sum 1 Remove redundant 8 ERF Exposure, Age sum 1 Remove redundant 9 threshold Exposure, Age sum 1 Remove redundant
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 .
Yleiskuva terveysvaikutusten laskentamallista.
Keskeiset tulosteet
+ Näytä koodi - Piilota koodi
# 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)
}
Arviointimallin alustus
+ Näytä koodi - Piilota koodi
# 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)
Katso myös
Lähteet