EU-kalat: Difference between revisions

From Opasnet
Jump to navigation Jump to search
(→‎Bayes model for dioxin concentrations: now works but mixing is still not great)
Line 229: Line 229:
* Model run 11.10.2017 with small and large herring [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=ICIWZTUZR6rlNwuD] (removed in update)
* Model run 11.10.2017 with small and large herring [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=ICIWZTUZR6rlNwuD] (removed in update)
* Model run 12.3.2018: bugs fixed with data used in Bayes. In addition, redundant fish species removed and Omega assumed to be the same for herring and salmon. [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=k0n2CFnjdGBklm9E]
* Model run 12.3.2018: bugs fixed with data used in Bayes. In addition, redundant fish species removed and Omega assumed to be the same for herring and salmon. [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=k0n2CFnjdGBklm9E]
* Model run 22.3.2018 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=NqCI8GcaBkyqGRwH] Model does not mix well. Use thinning?
* Model run 22.3.2018 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=2jX2XxWpiIEZPyzJ] Model does not mix well. Thinning gives little help?
 
Warning messages:
1: In reshapeWide(data, idvar = idvar, timevar = timevar, varying = varying, :
multiple rows match for Compound=PCDDF: first taken
2: In reshapeWide(data, idvar = idvar, timevar = timevar, varying = varying, :
multiple rows match for Compound=PCB: first taken
Error in jags.model(mod, data = list(S = nrow(eu3), C = C, Fi = Fi, cong = log(cong), :
RUNTIME ERROR:
Compilation error on line 5.
Index out of range taking subset of cong


<rcode name="bayes" label="Sample Bayes model (for developers only)" graphics=1>
<rcode name="bayes" label="Sample Bayes model (for developers only)" graphics=1>
Line 328: Line 318:
   #        below.LOQ[i,j] ~ dinterval(-cong[i,j], -LOQ[j])
   #        below.LOQ[i,j] ~ dinterval(-cong[i,j], -LOQ[j])
   cong[i,1:C] ~ dmnorm(muind[i,], Omega[,])
   cong[i,1:C] ~ dmnorm(muind[i,], Omega[,])
   muind[i,1:C] <- mu[fis[i],1:C] + lenp[fis[i]]*length[i] + timep*year[i]
   muind[i,1:C] <- mu[fis[i],1:C] + lenp[fis[i]]*length[i] # + timep*year[i]
   }
   }
    
    
   # Priors for parameters
   # Priors for parameters
  timep ~ dnorm(-0.1, 1) # Time trend
timep ~ dnorm(0, 0.0001) # Time trend. We don't want to use it yet


   for(i in 1:Fi) { # Fi = fish species
   for(i in 1:Fi) { # Fi = fish species
   lenp[i] ~ dnorm(0,0.0001) # length parameter  
   lenp[i] ~ dnorm(0,0.0001) # length parameter  
   pred[i,1:C] ~ dmnorm(mu[i,1:C]+lenp[i]*lenpred[i]+timep*timepred, Omega[,]) # Model prediction
   pred[i,1:C] ~ dmnorm(mu[i,1:C]+lenp[i]*lenpred[i], Omega[,]) # Model prediction. Not used: +timep*timepred
   for(j in 1:C) {  
   for(j in 1:C) {  
     mu[i,j] ~ dnorm(0, 0.0001) # mu1[j], tau1[j]) # Congener-specific mean for fishes
     mu[i,j] ~ dnorm(0, 0.0001) # mu1[j], tau1[j]) # Congener-specific mean for fishes
Line 353: Line 343:
     cong = log(cong),
     cong = log(cong),
     length = eu3$Length,
     length = eu3$Length,
    year = eu3$Year,
#    year = eu3$Year,
     fis = match(eu3$Fish, fisl),
     fis = match(eu3$Fish, fisl),
     lenpred = c(170, 860),
     lenpred = c(170, 860),
    timepred = 2009,
#    timepred = 2009,
     Omega0 = diag(C)/100000
     Omega0 = diag(C)/100000
   ),
   ),
Line 363: Line 353:
)
)


update(jags, 100)
update(jags, 1000)


samps.j <- jags.samples(
samps.j <- jags.samples(
Line 374: Line 364:
     'pred' # predicted concentration for year 2009 and 17 cm herring, 80 cm salmon
     'pred' # predicted concentration for year 2009 and 17 cm herring, 80 cm salmon
   ),  
   ),  
#  thin=1000,
   N
   N
)
)
Line 386: Line 377:
   lenp.mean = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = mean),
   lenp.mean = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = mean),
   lenp.sd = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = sd),
   lenp.sd = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = sd),
   mu = apply(samps.j$mu[,,,1], MARGIN = 1:2, FUN = mean),
   mu = apply(samps.j$mu[,,,1], MARGIN = 1:2, FUN = mean)
  timep.mean = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = mean),
timep.mean = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = mean),
  timep.sd = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = sd)
timep.sd = apply(samps.j$lenp[,,1], MARGIN = 1, FUN = sd)
)
)


Line 417: Line 408:
coda.j <- coda.samples(
coda.j <- coda.samples(
   jags,  
   jags,  
   c('mu', 'pred', 'timep','lenp'),  
   c('mu', 'pred','lenp'),
#  thin=1000,
   N
   N
)
)


plot(coda.j)  
plot(coda.j)  
coda.o <- coda.samples(
  jags,
  c('Omega'),
  N
)
plot(coda.o)
</rcode>
</rcode>



Revision as of 06:20, 22 March 2018


EU-kalat is a study, where concentrations of PCDD/Fs, PCBs, PBDEs and heavy metals have been measured from fish

Question

The scope of EU-kalat study was to measure concentrations of persistent organic pollutants (POPs) including dioxin (PCDD/F), PCB and BDE in fish from Baltic sea and Finnish inland lakes and rivers. [1] [2] [3].

Answer

Dioxin concentrations in Baltic herring.

The original sample results can be acquired from Opasnet base. The study showed that levels of PCDD/Fs and PCBs depends especially on the fish species. Highest levels were on salmon and large sized herring. Levels of PCDD/Fs exceeded maximum level of 4 pg TEQ/g fw multiple times. Levels of PCDD/Fs were correlated positively with age of the fish.

Mean congener concentrations as WHO2005-TEQ in Baltic herring can be printed out with this link or by running the codel below.

+ Show code

Rationale

Data

Data was collected between 2009-2010. The study contains years, tissue type, fish species, and fat content for each concentration measurement. Number of observations is 285.

There is a new study EU-kalat 3, which will produce results in 2016.

Calculations

Preprocess

  • Preprocess model 22.2.2017 [4]
  • Model run 25.1.2017 [5]
  • Model run 22.5.2017 with new ovariables euRaw, euAll, euMain, and euRatio [6]
  • Model run 23.5.2017 with adjusted ovariables euRaw, eu, euRatio [7]
  • Model run 11.10.2017: Small herring and Large herring added as new species [8]
  • Model rerun 15.11.2017 because the previous stored run was lost in update [9]
  • Model run 21.3.2018: Small and large herring replaced by actual fish length [10]

+ Show code

Bayes model for dioxin concentrations

  • Model run 28.2.2017 [11]
  • Model run 28.2.2017 with corrected survey model [12]
  • Model run 28.2.2017 with Mu estimates [13]
  • Model run 1.3.2017 [14]
  • Model run 23.4.2017 [15] produces list conc.param and ovariable concentration
  • Model run 24.4.2017 [16]
  • Model run 19.5.2017 without ovariable concentration [17] ⇤--#: . The model does not mix well, so the results should not be used for final results. --Jouni (talk) 19:37, 19 May 2017 (UTC) (type: truth; paradigms: science: attack)
----#: . Maybe we should just estimate TEQs until the problem is fixed. --Jouni (talk) 19:37, 19 May 2017 (UTC) (type: truth; paradigms: science: comment)
  • Model run 22.5.2017 with TEQdx and TEQpcb as the only Compounds [18]
  • Model run 23.5.2017 debugged [19] [20] [21]
  • Model run 24.5.2017 TEQdx, TECpcb -> PCDDF, PCB [22]
  • Model run 11.10.2017 with small and large herring [23] (removed in update)
  • Model run 12.3.2018: bugs fixed with data used in Bayes. In addition, redundant fish species removed and Omega assumed to be the same for herring and salmon. [24]
  • Model run 22.3.2018 [25] Model does not mix well. Thinning gives little help?

+ Show code

Initiate conc_pcddf

  • Model run 19.5.2017 [26]
  • Model run 23.5.2017 with bugs fixed [27]
  • Model run 12.10.2017: TEQ calculation added [28]
  • Model rerun 15.11.2017 because the previous stored run was lost in update [29]
  • 12.3.2018 adjusted to match the same Omega for all fish species [30]

+ Show code

⇤--#: . These codes should be coherent with POPs in Baltic herring. --Jouni (talk) 12:14, 7 June 2017 (UTC) (type: truth; paradigms: science: attack)

See also

References

  1. A. Hallikainen, H. Kiviranta, P. Isosaari, T. Vartiainen, R. Parmanne, P.J. Vuorinen: Kotimaisen järvi- ja merikalan dioksiinien, furaanien, dioksiinien kaltaisten PCB-yhdisteiden ja polybromattujen difenyylieettereiden pitoisuudet. Elintarvikeviraston julkaisuja 1/2004. [1]
  2. E-R.Venäläinen, A. Hallikainen, R. Parmanne, P.J. Vuorinen: Kotimaisen järvi- ja merikalan raskasmetallipitoisuudet. Elintarvikeviraston julkaisuja 3/2004. [2]
  3. Anja Hallikainen, Riikka Airaksinen, Panu Rantakokko, Jani Koponen, Jaakko Mannio, Pekka J. Vuorinen, Timo Jääskeläinen, Hannu Kiviranta. Itämeren kalan ja muun kotimaisen kalan ympäristömyrkyt: PCDD/F-, PCB-, PBDE-, PFC- ja OT-yhdisteet. Eviran tutkimuksia 2/2011. ISSN 1797-2981 ISBN 978-952-225-083-4 [3]