Difference between revisions of "Benefit-risk assessment of Baltic herring and salmon intake"
m (→Dependencies) |
(→Calculations: doesn't work yet) |
||
Line 102: | Line 102: | ||
=== Calculations === | === Calculations === | ||
This section will have the actual health benefit-risk model (schematically described in the above figure) written with R. The code will utilise all variables listed in the above Dependencies section. Model results are presented as tables and figures when those are available. | This section will have the actual health benefit-risk model (schematically described in the above figure) written with R. The code will utilise all variables listed in the above Dependencies section. Model results are presented as tables and figures when those are available. | ||
+ | |||
+ | <rcode graphics=1> | ||
+ | # This is code Op7748/ on page [[Benefit-risk assessment of Baltic herring and salmon intake]] | ||
+ | |||
+ | library(OpasnetUtils) | ||
+ | library(reshape2) | ||
+ | library(ggplot2) | ||
+ | library(rjags) | ||
+ | |||
+ | objects.latest("Op_en3104", code_name = "preprocess") # [[EU-kalat]] | ||
+ | |||
+ | # Hierarchical Bayes model. | ||
+ | |||
+ | # PCDD/F concentrations in fish. | ||
+ | # It uses the sum of PCDD/F (Pcdsum) as the total concentration of dioxin in fish. | ||
+ | # Cong_j is the fraction of a congener from pcdsum. | ||
+ | # pcdsum is log-normally distributed. cong_j follows Dirichlet distribution. | ||
+ | # pcdsum depends on age of fish, fish species and catchment area, but we only have species now so other variables are omitted. | ||
+ | # cong_j depends on fish species. | ||
+ | |||
+ | # Fish intake in humans | ||
+ | # Data from data.frame survey from page [[Goherr: Fish consumption study]] | ||
+ | # Start with salmon questions 46:49 (amounts eaten) | ||
+ | # Some preprocessing should be moved away from this code. | ||
+ | # Model assumes that questionnaire data follows binomial distribution with parameter p and max value 9. | ||
+ | # p depends on country (4 groups), sex (2), age (2) that are known individually. | ||
+ | # We should test whether sex makes a difference or whether it can be omitted. | ||
+ | # Predicted p for each question, determined by the group, are produced from the bayes model. | ||
+ | # p is used to sample answers, which are then combined with estimates of amounts related to each answer. | ||
+ | # Total amount eaten of each fish per modelled individual is finally calculated. | ||
+ | |||
+ | objects.latest("Op_en7749", "preprocess") | ||
+ | for (i in 46:49) { | ||
+ | survey[[i]] <- as.character(survey[[i]]) | ||
+ | } | ||
+ | survey[,46:49][is.na(survey[,46:49])] <- "" | ||
+ | # This row takes data and converts it to numbers. But what should be done is to take | ||
+ | # each variable, remove NA, order answers meaningfully and then convert to numbers. | ||
+ | answer <- as.data.frame(lapply(survey[46:49], FUN = function(x) as.numeric(as.factor(x)))) | ||
+ | |||
+ | survey$Row <- 1:nrow(survey) | ||
+ | survey$Weighting <- as.double(levels(survey$Weighting))[survey$Weighting] | ||
+ | survey$Ages <- ifelse(as.numeric(as.character(survey$Age)) < 46, "18-45",">45") | ||
+ | agel <- unique(survey$Ages) | ||
+ | countryl <- unique(survey$Country) | ||
+ | genderl <- unique(survey$Gender) | ||
+ | |||
+ | ######## ADDED | ||
+ | conl <- unique(eu@output$Congener) | ||
+ | fisl <- unique(eu@output$Fish) | ||
+ | fishsamples <- reshape( | ||
+ | eu@output, | ||
+ | v.names = "euResult", | ||
+ | idvar = "THLcode", | ||
+ | timevar = "Congener", | ||
+ | drop = c("Matrix", "euSource"), | ||
+ | direction = "wide" | ||
+ | ) | ||
+ | |||
+ | mod <- textConnection(" | ||
+ | model{ | ||
+ | for(s in 1:S) { # s = fish sample | ||
+ | pcdsum[s] ~ dlnorm(mu[fis[s]], tau[fis[s]]) | ||
+ | cong[s,] ~ ddirch(alpha[fis[s]]) * pcdsum[s] | ||
+ | } | ||
+ | for(f in 1:F) { # f = fish species | ||
+ | mu[f] ~ dunif(-3,3) | ||
+ | tau[f] <- pow(sigma[k], -2) | ||
+ | sigma[f] ~ dunif(0, 10) | ||
+ | pcdsum.pred[f] ~ dlnorm(mu[f], tau[f]) # Model prediction | ||
+ | } | ||
+ | for(j in 1:J) { # j = congener | ||
+ | alpha[j] ~ dunif(0,1000) | ||
+ | } | ||
+ | for(q in 1:Q) { # q = multiple choice question in the questionnaire | ||
+ | for(u in 1:U) { # u = observation in the questionnaire | ||
+ | ans[u,q] ~ dbin(p[q,age[u],country[u],gender[u]], 9) | ||
+ | } | ||
+ | p[q] ~ dunif(0,1) | ||
+ | } | ||
+ | } | ||
+ | ") | ||
+ | |||
+ | jags <- jags.model( | ||
+ | mod, | ||
+ | data = list( | ||
+ | D = length(result(eu)), | ||
+ | J = length(conl), | ||
+ | F = length(fisl), | ||
+ | cong = array(fishsamples[3:ncol(fishsamples)]), | ||
+ | con = match(eu@output$Congener, conl), | ||
+ | fis = match(eu@output$Fish, fisl), | ||
+ | U = nrow(survey), | ||
+ | Q = ncol(answer), | ||
+ | ans = answer, | ||
+ | age = match(survey$Ages, agel), | ||
+ | country = match(survey$Country, countryl), | ||
+ | gender = match(survey$Gender, genderl) | ||
+ | ), | ||
+ | n.chains = 4, | ||
+ | n.adapt = 100 | ||
+ | ) | ||
+ | |||
+ | update(jags, 100) | ||
+ | samps <- jags.samples(jags, c('mu', 'pred'), 1000) | ||
+ | summary(samps) | ||
+ | oprint(head(jags$data)) | ||
+ | |||
+ | if(FALSE){ | ||
+ | samps <- jags.samples(jags, c('mu', 'pred'), 1000) | ||
+ | pl <- melt(array(samps$pred, dim = c(length(conl), length(fisl), 1000, 4), | ||
+ | dimnames = list( | ||
+ | Congener = conl, | ||
+ | Fish = fisl, | ||
+ | Iter = 1:1000, | ||
+ | Seed = 1:4 | ||
+ | ) | ||
+ | )) | ||
+ | |||
+ | ggplot(pl, aes(x = value, colour = Fish))+geom_density(size = 1) + | ||
+ | facet_wrap(~ Congener, scale = "free_y") + coord_cartesian(xlim = c(-1.5,1.5)) | ||
+ | |||
+ | ggplot(pl[pl$Fish %in% c("Baltic herring", "Rainbow trout", "Pike-perch", "Pike", "Salmon", "Sprat") , ], aes(x = value, colour = Fish))+geom_density(size = 1) + | ||
+ | facet_wrap(~ Congener, scale = "free_y") + coord_cartesian(xlim = c(-1.5,1.5)) | ||
+ | |||
+ | samps.coda <- coda.samples(jags, c('mu', 'pred'), 1000) | ||
+ | |||
+ | out <- data.frame( | ||
+ | Congener = conl, | ||
+ | Fish = rep(fisl, each = length(conl)), | ||
+ | Param = rep(c("mu", "pred"), each = length(conl)*length(fisl)), | ||
+ | Value = (summary(samps.coda)[[1]][,1]) | ||
+ | ) | ||
+ | |||
+ | oprint(out) | ||
+ | |||
+ | ggplot(out[out$Param == "mu", ], aes(x = Congener, y = Value, colour = Fish, group = Fish)) + | ||
+ | geom_line() + labs(title = "Congener amounts in fish compared with TCDD", y = "Log_10 ratio") | ||
+ | |||
+ | tef <- Ovariable("tef", ddata = "Op_en4017", subset = "TEF values") | ||
+ | tef <- EvalOutput(tef) | ||
+ | |||
+ | #levels(eu$Congener) <- gsub("HCDD", "HxCDD", levels(eu$Congener)) | ||
+ | #levels(eu$Congener) <- gsub("HCDF", "HxCDF", levels(eu$Congener)) | ||
+ | #levels(eu$Congener) <- gsub("CoPCB", "PCB", levels(eu$Congener)) | ||
+ | euteq <- eu * tef | ||
+ | } # IF FALSE | ||
+ | </rcode> | ||
== References == | == References == |
Revision as of 09:48, 22 February 2017
This page is a assessment.
The page identifier is Op_en7748 |
---|
Moderator:Arja (see all) |
This page is a stub. You may improve it into a full page, and then a rating bar will appear here. |
Upload data
|
Contents
Scope
This assessment is part of the WP5 work in Goherr project. Purpose is to evaluate health benefits and risks caused of eating Baltic herring and salmon in four Baltic sea countries (Denmark, Estonia, Finland and Sweden). This assessment is currently on-going.
Question
What are the current population level health benefits and risks of eating Baltic herring and salmon in Finland, Estonia, Denmark and Sweden? How would the health effects change in the future, if consumption of Baltic herring and salmon changes due to actions caused by different management scenarios of Baltic sea fish stocks?
Intended use and users
Results of this assessment are used to inform policy makers about the health impacts of fish. Further, this assessment will be combined with the results of the other Goherr WPs to produce estimates of future health impacts of Baltic fish related to different policy options. Especially, results of this assessment will be used as input in the decision support model built in Goherr WP6.
Participants
- National institute for health and welfare (THL)
- Goherr project group
Boundaries
- Four baltic sea countries (Denmark, Estonia, Finland, Sweden)
- Current situation (fish use year 2016, pollutant levels in fish year 2010?)
- Estimation for future (year 2020?)
Decisions and scenarios
Management scenarios developed in Goherr WP3 frames the following boundaries to the use and consumption of Baltic herring and salmon as human food. Effect of these scenarios to the dioxin levels and the human food use will be evalauted quantitatively and feed into the health benefit-risk model to assess the health effect changes.
- Scenario 1: “Transformation to sustainability”
- Hazardous substances, including dioxins, are gradually flushed out and the dioxin levels in Baltic herring are below or close to the maximum allowable level.
- Fish stocks are allowed to recover to levels, which makes maximum sustainable yield possible and increases the total catches of wild caught fish. The catches of salmon by commercial fisheries has stabilized at low level, while the share of recreational catch increases slightly.
- The use of the Baltic herring catch for food increases. A regional proactive management plan for the use of catch has increased the capacity of the fishing fleets to fish herring for food and through product development and joint marketing, have increased consumer demand for Baltic herring.
- Scenario 2: “Business-as-usual”
- The commercial catches of salmon continue to decrease. The demand for top predatory species, such as salmon and cod remains high, while the demand for herring decreased further as a result of demographic changes.
- Most of the herring catch are used for fish meal and oil production in the region.
- The use of Baltic herring from the southern parts of the Baltic Sea where the dioxin contents are not likely to exceed the maximum allowable level, are prioritised for human consumption. In the absence of the demand in many of the Baltic Sea countries, majority of the herring intended for direct human consumption are exported to Russia.
- Scenario 3: “Inequality”
- The nutrient and dioxins levels continue to decrease slowly.
- The commercial catches of salmon have decreased further as the general attitudes favour recreational fishing, which has also resulted in decreased demand.
- The herring catches have increased slightly, but the availability of herring suitable for human consumption remains low due to both, dioxin levels that remain above the maximum allowable limit in the northern Baltic Sea and the poor capacity to fish for food.
- The use of the catch varies between countries. In Estonia, for example, where the whole catch has been traditionally used for human consumption, there is no significant change in this respect, but in Finland, Sweden and Denmark, herring fishing is predominantly feed directed.
- Scenario 4: “Transformation to protectionism”
- The level of hazardous substances also increases as emission sources are not adequately addressed.
- Commercial salmon fisheries disappears almost completely from the Baltic Sea, although restocking keeps small scale fisheries going.
- Many of the Baltic herring stocks are also fished above the maximum sustainable yield and total catches are declining.
- Owing to the growing dioxin levels detected in herring, majority of the catch is used for aquaculture.
Timing
- Model development during 2016 and 2017
- First set of results in March 2017, draft publication in March 2018
Answer
This section will be updated as soon as preliminary results are available
Results
Conclusions
Rationale
Stakeholders
- Policy makers
- Food safety authorities
- Fisheries management
- Researchers
- Food safety
- Health
- NGO's
- WWF
- Active consumers
- Marine Stewardship Council
- Baltic sea fishers and producers?
Dependencies
Content of all variable pages below are preliminary and will be updated when this assessment proceeds.
- Toxic equivalency factor (TEF)
- Consumption of fish
- Pollutant and fatty acid levels
- Persistent organic pollutant levels in Baltic herring
- Persistent organic pollutant levels in Baltic salmon
- Nutrient levels in fish --# : Includes three tables, content modelled with Analytica years ago. How to update these? --Arja (talk) 07:20, 20 October 2016 (UTC)
- Risk functions of health effects
- Background health data (incidences and DALY)
- Disability weights of health effects
- Length of disease
Analyses
Indices
- Country (Denmark, Estonia, Finland, Sweden)
- Year (current, future)
- Sex
- Age (categories?)
- Fish species (Baltic herring, Baltic salmon)
- Health end-point (ICD-10 code?, name? something else? --# : This need to be matched for disability weight, duration of disease, background incidence and disease burden data, dose-responses --Arja (talk) 09:39, 22 September 2016 (UTC)
- Compound (pollutant, fatty acid) --# : This needs to be matched with dose-responses --Arja (talk) 09:39, 22 September 2016 (UTC)
Calculations
This section will have the actual health benefit-risk model (schematically described in the above figure) written with R. The code will utilise all variables listed in the above Dependencies section. Model results are presented as tables and figures when those are available.
References
Keywords
See also
- Risk and Benefit Assessment of Herring and Salmonid Fish from the Baltic Sea Area
- Swedish Market Basket 2010
- Riksmaten 2010
- Danskernes kostvaner 2011-2013