Lung cancer cases due to radon in Europe: Difference between revisions

From Opasnet
Jump to navigation Jump to search
mNo edit summary
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{variable|moderator=Teemu R|stub=Yes}}
{{variable|moderator=Teemu R|stub=Yes}}
[[Category:Code under inspection]]


== Scope ==
== Scope ==
Line 9: Line 10:
== Definition ==
== Definition ==


*Lung cancer cases calculated from radon concentration using <nowiki><math>cases = impact function * concentration * population</math></nowiki>. IF taken from HEIMTSA and INTARESE (Darby 2004; Darby 2005).  
*Lung cancer cases calculated from radon concentration using <nowiki><math>cases = relative risk * background rate of cases * concentration * population</math></nowiki>. RR taken from HEIMTSA and INTARESE (Darby 2004; Darby 2005).  
*The referenced impact function is scaled down in assuming only 4.6% of population is exposed, but we assume all are exposed.  
** Background rate of new lung cancers is assumed constant for the whole Europe: 58.2 cases per 100,000 population (Globocan 2008, crude rate).
** Linear no threshold model assumed.
** In a given iteration, radon concentrations are assumed equal in all residences in a country.


=== Data ===
=== Data ===
Line 19: Line 22:
*[[Population of Europe by Country|Population of Europe]]
*[[Population of Europe by Country|Population of Europe]]
*Lung cancer mortality in Europe (from [[WHO mortality data]])
*Lung cancer mortality in Europe (from [[WHO mortality data]])
*ERF of radon exposure on lung cancer mortality ([[:heande:ERFs of several pollutants]]), impact function on the same page used for code below.
*ERF of radon exposure on lung cancer ([[:heande:ERFs of several pollutants]])


=== Unit ===
=== Unit ===
Line 27: Line 30:
=== Formula ===
=== Formula ===


==== R code ====
*This code features [[R]] functions described on pages [[Opasnet Base Connection for R]] and [[Operating intelligently with multidimensional arrays in R]].


*This code features R functions described on pages [[Opasnet Base Connection for R]] and [[Operating intelligently with multidimensional arrays in R]].
<rcode>
*Possible extensions, to accomodate more complex models, are left commented out with # for now.
library(OpasnetBaseUtils)
 
conc <- op_baseGetData("opasnet_base", "Op_en4713")
<nowiki>
#library(ff)
#mortlocs <- op_baseGetLocs("opasnet_base", "Op_en2778")
#mort <- op_baseGetData("opasnet_base", "Op_en2778", include = mortlocs[grep("C34|1034|UE15|All Ages", mortlocs$loc),"loc_id"])
#poplocs <- op_baseGetLocs("opasnet_base", "Op_en4691")
pop <- op_baseGetData("opasnet_base", "Op_en4691", include = 1367, exclude = c(1435, 1436))
pop <- op_baseGetData("opasnet_base", "Op_en4691", include = 1367, exclude = c(1435, 1436))
#countries <- c("AT", "BE", "BG", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GR", "HU", "IE", "IS", "IT", "LT", "LU",
erf <- op_baseGetData("opasnet_base", "Erac2987", include = 48847)
# "LV", "MT", "NL", "NO", "PL", "PT", "RO", "SE", "SI", "SK", "UK")
countries <- c("Austria", "Belgium", "Bulgaria", "Switzerland", "Cyprus", "Czech Republic", "Germany", "Denmark", "Estonia", "Spain",  
countries <- c("Austria", "Belgium", "Bulgaria", "Switzerland", "Cyprus", "Czech Republic", "Germany", "Denmark", "Estonia", "Spain",  
"Finland", "France", "Greece", "Hungary", "Ireland", "Iceland", "Italy", "Lithuania", "Luxembourg", "Latvia", "Malta", "Netherlands",  
"Finland", "France", "Greece", "Hungary", "Ireland", "Iceland", "Italy", "Lithuania", "Luxembourg", "Latvia", "Malta", "Netherlands",  
"Norway", "Poland", "Portugal", "Romania", "Sweden", "Slowenia", "Slovakia", "United Kingdom")
"Norway", "Poland", "Portugal", "Romania", "Sweden", "Slowenia", "Slovakia", "United Kingdom")
conc <- op_baseGetData("opasnet_base", "Op_en4713")
levels(pop[,"CountryID"]) <- countries #Country IDs converted to names for compatibility
levels(pop[,"CountryID"]) <- countries
colnames(pop)[4] <- "Country"
colnames(pop)[4] <- "Country"
colnames(pop)[8] <- "Population"
colnames(pop)[7] <- "Population"
#y <- 0
#mort0 <- mort[1,]
#temp <- mort[1,]
#for (i in 1:length(levels(mort[,"Country"]))) {
# icountry <- levels(mort[,"Country"])[i]
# temp <- mort[mort[,"Country"] == icountry&mort[,"Age"] == "All Ages"&mort[,"Year"] == as.character(max(as.numeric(as.character(mort[
# mort[, "Country"] == icountry, "Year"])))),]
# if(nrow(temp)>0) mort0[(y+1):(y+nrow(temp)),] <- temp[,]
# y <- nrow(mort0)
#}
#mort0 <- mort0[,c(3,4,5,6,7,9)]
pop <- pop[,c(3,4,5,6,7,8)]
#conc <- conc[,c(2,3,4,5)]
#mort0array <- DataframeToArray(mort0)
levels(pop[,"Age"])[1] <- "All Ages" #Fixed to match mortality format
#popxmort0 <- IntArray(pop, mort0array, "Mortality")
#ffpopxmort0 <- ffdf(Age=as.ff(popxmort0[,1]), Country=as.ff(popxmort0[,2]), Rate=as.ff(popxmort0[,3]), Sex=as.ff(popxmort0[,4]),
# Year=as.ff(popxmort0[,5]), Population=as.ff(popxmort0[,6]), Cause=as.ff(factor(popxmort0[,7])), List=as.ff(factor(popxmort0[,8])),
# Mortality=as.ff(popxmort0[,9]))
concarray <- DataframeToArray(conc)
concarray <- DataframeToArray(conc)
#meanconcarray <- apply(concarray, c(2,3), mean)
popxconc <- IntArray(pop, concarray, "Concentration")#[1:1000,,,]
#ffconcarray <- as.ff(concarray)
erfarray <- DataframeToArray(erf[,c("obs","Result")])
popxconc <- IntArray(pop, concarray[1:1000,,,], "Concentration")
popxconcxerf <- IntArray(popxconc, erfarray, "ERF")
#popxmort0xconc <- IntArray(popxmort0, concarray[1:1000,,])
lungmortality <- data.frame(popxconcxerf[,c("obs","Country","policy","Year","Age","Sex")], Result = popxconcxerf[,"ERF"] * 58.2 *
#y <- 1
popxconcxerf[,"Concentration"] / 100 * popxconcxerf[, "Population"] / 100000)
#temp <- IntArray(ffpopxmort0[1,], concarray)
</rcode>
#ffpopxmort0xconc <- temp[]
 
#for (i in 1:(nrow(ffpopxmort0)%/%5)) {
====An alternative code for Finland====
# temp[] <- IntArray(ffpopxmort0[(1+(i-1)*5):(i*5),], concarray)
 
# ffpopxmort0xconc[y:(y+nrow(temp)-1)] <- temp[]
This code uses the summary table approach for obtaining data. The data sources are the same except [[ERF for long-term indoor exposure to radon and lung cancer]] (summary table [[:Category:Exposure-response functions]]) and [[Exposure to indoor radon in Finland]] (summary table [[:Category:Exposures]]).
# y <- y + nrow(temp)
 
#}
<rcode include="page:OpasnetBaseUtils|name:generic" variables="
#for (i in list(1=1:5, 2=8:3)) print(i[1]+i[2])
name:show|description:Which exposure parameters do you want to see?|type:checkbox|options:1;Actual population average in Finland;2;Guidance value for new apartments;3;Guidance value for old apartments|default:1;2;3
k <- rnorm(nrow(popxconc), 0.16, (0.31-0.05)/3.92)*58.2 #RR * background rate
">
lungmortality <- data.frame(popxconc[,c("obs","Country","policy","Year","Age","Rate","Sex")], Result = k * popxconc[,  
 
"Concentration"] / 100 * popxconc[, "Population"] / 100000)</nowiki>
cat("Get data from Opasnet Base.\n")
 
library(OpasnetBaseUtils)
library(xtable)
 
conc <- summary.bring("Op_en1619")[show, ] # Summary table Category:Exposures
erf <- summary.bring("Op_en1914") # Summary table Category:Exposure-response functions
pop <- summary.bring("Op_en2154") # Summary table Category:Population characteristics
bg <- summary.bring("Op_en1620") # Summary table Category:Health effects
 
cat("Adjust data for the model.\n")
 
print(xtable(conc), type = 'html')
print(xtable(erf), type = 'html')
print(xtable(pop), type = 'html')
print(xtable(bg), type = 'html')
 
out <- merge(conc, erf)
out <- merge(out, pop)
out <- merge(out, bg)
 
out$ERF <- as.numeric(substr(out$ERF, 1, 6))
out$Exposure <- as.numeric(substr(out$Exposure, 1, 3))
out$Response <- as.numeric(out$Response)
 
cat("Run the actual model.\n")
 
out <- dropall(out)
tst <- rep(TRUE, ncol(out)) # tst: are all values in a column the same?
for(i in 1:ncol(out)){tst[i] <- nlevels(as.factor(out[, i])) == 1}
print(xtable(t(out[1, tst])), type = 'html')
 
out$Out <- (out$ERF - 1) / out$ERF * out$Exposure * out$Response * out$Amount / 100000
for(i in 1:ncol(out)){tst[i] <- nlevels(as.factor(out[, i])) == 1}
print(xtable(out[, !tst]), type = 'html')
 
</rcode>


== Result ==
== Result ==
Line 94: Line 107:
!Policy!!2010!!2020!!2030!!2050
!Policy!!2010!!2020!!2030!!2050
|----
|----
|BAU || 37091 (36015-38167) || 44370 (43124-45616) || 50295 (48582-52008) || 54519 (52653-56386)
|BAU || 42691 (22042-95542) || 51138 (24733-111979) || 57618 (25785-137181) || 62461 (27023-143632)
|----
|----
|All || NA || 45737 (44244-47230) || 58804 (56731-60878) || 68994 (66156-71832)
|All || NA || 53385 (25402-130453) || 68338 (28863-171718) || 81873 (31372-239696)
|----
|----
|Biomass || NA || NA || NA || 69412 (66698-72125)
|Biomass || NA || NA || NA || 81849 (32497-218247)
|----
|----
|Insulation || NA || NA || NA || 68539 (65955-71124)
|Insulation || NA || NA || NA || 80534 (32445-236962)
|----
|----
|Renovation || NA || NA || NA || 80139 (76838-83440)
|Renovation || NA || NA || NA || 94075 (35396-288323)
|----
|----
|}
|}
Line 110: Line 123:
! Country of observation!! Mean!! SD
! Country of observation!! Mean!! SD
|----
|----
|| Austria|| 954|| 866
| Austria
| 1105
| 1146
|----
|----
|| Belgium|| 733|| 566
| Belgium
| 857
| 796
|----
|----
|| Bulgaria|| 265|| 279
| Bulgaria
| 303
| 382
|----
|----
|| Switzerland|| 1389|| 2101
| Switzerland
| 1636
| 2835
|----
|----
|| Cyprus|| 8|| 9
| Cyprus
| 10
| 14
|----
|----
|| Germany|| 4080|| 2857
| Germany
| 4754
| 4305
|----
|----
|| Denmark|| 326|| 300
| Denmark
| 382
| 408
|----
|----
|| Estonia|| 190|| 177
| Estonia
| 222
| 239
|----
|----
|| Spain|| 7491|| 14273
| Spain
| 8245
| 15249
|----
|----
|| Finland|| 699|| 563
| Finland
| 805
| 792
|----
|----
|| France|| 6903|| 8818
| France
| 8204
| 12176
|----
|----
|| Greece|| 725|| 708
| Greece
| 857
| 977
|----
|----
|| Hungary|| 1374|| 1558
| Hungary
| 1583
| 1985
|----
|----
|| Ireland|| 463|| 439
| Ireland
| 533
| 580
|----
|----
|| Italy|| 4355|| 3537
| Italy
| 5035
| 5117
|----
|----
|| Lithuania|| 191|| 176
| Lithuania
| 223
| 233
|----
|----
|| Luxembourg|| 59|| 47
| Luxembourg
| 68
| 64
|----
|----
|| Latvia|| 195|| 196
| Latvia
| 229
| 289
|----
|----
|| Malta|| 38|| 38
| Malta
| 43
| 50
|----
|----
|| Netherlands|| 445|| 217
| Netherlands
| 504
| 338
|----
|----
|| Norway|| 492|| 463
| Norway
| 566
| 667
|----
|----
|| Poland|| 1914|| 1387
| Poland
| 2175
| 1864
|----
|----
|| Portugal|| 1020|| 889
| Portugal
| 1183
| 1208
|----
|----
|| Romania|| 1063|| 1039
| Romania
| 1233
| 1357
|----
|----
|| Sweden|| 1206|| 1233
| Sweden
| 1353
| 1475
|----
|----
|| Slovakia|| 514|| 494
| Slovakia
| 586
| 661
|----
|----
|| '''Total'''|| '''37091'''||  
|| '''Total'''|| '''42691'''||  
|----
|----
|}
|}

Latest revision as of 10:58, 26 August 2013

Scope

Mortality due to indoor radon concentrations.

  • Spatial: Europe
  • Temporal: years 2010-2050

Definition

  • Lung cancer cases calculated from radon concentration using <math>cases = relative risk * background rate of cases * concentration * population</math>. RR taken from HEIMTSA and INTARESE (Darby 2004; Darby 2005).
    • Background rate of new lung cancers is assumed constant for the whole Europe: 58.2 cases per 100,000 population (Globocan 2008, crude rate).
    • Linear no threshold model assumed.
    • In a given iteration, radon concentrations are assumed equal in all residences in a country.

Data

Dependencies

Unit

cases per year

Formula

+ Show code

An alternative code for Finland

This code uses the summary table approach for obtaining data. The data sources are the same except ERF for long-term indoor exposure to radon and lung cancer (summary table Category:Exposure-response functions) and Exposure to indoor radon in Finland (summary table Category:Exposures).

Which exposure parameters do you want to see?:
Actual population average in Finland
Guidance value for new apartments
Guidance value for old apartments

+ Show code

Result

{{#opasnet_base_link:Op_en4715}}


Lung cancer cases in Europe due to indoor radon in residences (mean and 95% confidence interval).
Year
Policy 2010 2020 2030 2050
BAU 42691 (22042-95542) 51138 (24733-111979) 57618 (25785-137181) 62461 (27023-143632)
All NA 53385 (25402-130453) 68338 (28863-171718) 81873 (31372-239696)
Biomass NA NA NA 81849 (32497-218247)
Insulation NA NA NA 80534 (32445-236962)
Renovation NA NA NA 94075 (35396-288323)
Lung cancer cases attributable to indoor radon in residences in Europe, year 2010.
Country of observation Mean SD
Austria 1105 1146
Belgium 857 796
Bulgaria 303 382
Switzerland 1636 2835
Cyprus 10 14
Germany 4754 4305
Denmark 382 408
Estonia 222 239
Spain 8245 15249
Finland 805 792
France 8204 12176
Greece 857 977
Hungary 1583 1985
Ireland 533 580
Italy 5035 5117
Lithuania 223 233
Luxembourg 68 64
Latvia 229 289
Malta 43 50
Netherlands 504 338
Norway 566 667
Poland 2175 1864
Portugal 1183 1208
Romania 1233 1357
Sweden 1353 1475
Slovakia 586 661
Total 42691

See also

Keywords

References


Related files

<mfanonymousfilelist></mfanonymousfilelist>