Ero sivun ”Radonin terveysvaikutukset” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
p (→‎Laskenta: myös linkkejä lisätty)
(→‎Laskenta: tyyliviilausta)
Rivi 110: Rivi 110:
name:verbose|description:Haluatko nähdä välivaiheet?|type:selection|options:FALSE;En;TRUE;Kyllä|default:FALSE
name:verbose|description:Haluatko nähdä välivaiheet?|type:selection|options:FALSE;En;TRUE;Kyllä|default:FALSE
">
">
N <- 100
N <- 1
erottelu1 <- 'Maakunta'
erottelu1 <- 'Maakunta'
erottelu2 <- 'Causes'
erottelu2 <- 'Causes'
Rivi 118: Rivi 118:
library(ggplot2)
library(ggplot2)


rm(radonpit, disincidence, exposurenew, envir = openv)
rm(radonpit, disincidence, exposure, envir = openv)


################################## YLEISET OSIOT
################################## YLEISET OSIOT
Rivi 190: Rivi 190:
########## OSA 2: ALTISTUS
########## OSA 2: ALTISTUS


bkgrexposure <- 0 # Radonille voisi olla 5.
bgexposure <- 0 # Radonille voisi olla 5.


# RADON
# RADON
Rivi 248: Rivi 248:
"attrcases",  
"attrcases",  
"ERF",  
"ERF",  
"exposurenew",  
"exposure",  
"bkgrexposure"
"bgexposure"
)),
)),
formula = function(...) {
formula = function(...) {


population2 <- unkeep(population, sources = TRUE, prevresults = TRUE)
population2 <- unkeep(population, sources = TRUE, prevresults = TRUE)
disbkgr <- attrcases / population2
disbg <- attrcases / population2
disbkgr@output <- disbkgr@output[!is.nan(result(disbkgr)) & ! grepl("\\+", disbkgr@output$Causes) , ]
disbg@output <- disbg@output[!is.nan(result(disbg)) & ! grepl("\\+", disbg@output$Causes) , ]
diskbkgr <- unkeep(disbkgr, cols = c("Tupakoija", "Causes"))
disbg <- unkeep(disbg, cols = c("Tupakoija", "Causes"))


RR <- unkeep(exp(log(ERF) * (exposurenew - bkgrexposure)), sources = TRUE, prevresults = TRUE)
RR <- unkeep(exp(log(ERF) * (exposure - bgexposure)), sources = TRUE, prevresults = TRUE)
RR <- oapply(RR, cols = "Pollutant", FUN = prod)
RR <- oapply(RR, cols = "Pollutant", FUN = prod)
casescen <- disbkgr * population2 * RR
casescen <- disbg * population2 * RR


return(casescen)
return(casescen)
Rivi 266: Rivi 266:
)
)


exposurenew <- exposure * EvalOutput(Ovariable("Policy", data = data.frame(
exposurebau <- exposure # Tallennetaan nykyaltistus ennen kuin siihen aletaan tehdä skenaariomuutoksia.
 
exposure <- exposure * EvalOutput(Ovariable("Policy", data = data.frame(
Radonleikkaus = c("BAU", "Yli 400 leikataan", "Yli 200 leikataan"),  
Radonleikkaus = c("BAU", "Yli 400 leikataan", "Yli 200 leikataan"),  
Result = 1
Result = 1
)))
)))


result(exposurenew) <- ifelse(
result(exposure) <- ifelse(
exposurenew@output$Radonleikkaus == "Yli 400 leikataan" &  
exposure@output$Radonleikkaus == "Yli 400 leikataan" &  
exposurenew@output$Pollutant == "Radon" &
exposure@output$Pollutant == "Radon" &
result(exposurenew) > 400,
result(exposure) > 400,
400,
400,
result(exposurenew)
result(exposure)
)
)


result(exposurenew) <- ifelse(
result(exposure) <- ifelse(
exposurenew@output$Radonleikkaus == "Yli 200 leikataan" &  
exposure@output$Radonleikkaus == "Yli 200 leikataan" &  
exposurenew@output$Pollutant == "Radon" &
exposure@output$Pollutant == "Radon" &
result(exposurenew) > 200,
result(exposure) > 200,
200,
200,
result(exposurenew)
result(exposure)
)
)


exposurenew <- exposurenew * EvalOutput(Ovariable("Policy2", data = data.frame(
exposure <- exposure * EvalOutput(Ovariable("Policy2", data = data.frame(
Tupakkarajoitus = c("BAU", "5 % vähenemä tupakoinnissa"),  
Tupakkarajoitus = c("BAU", "5 % vähenemä tupakoinnissa"),  
Result = 1
Result = 1
)))
)))


result(exposurenew) <- ifelse(
result(exposure) <- ifelse(
exposurenew@output$Tupakkarajoitus == "5 % vähenemä tupakoinnissa" &  
exposure@output$Tupakkarajoitus == "5 % vähenemä tupakoinnissa" &  
exposurenew@output$Pollutant == "Tupakka",
exposure@output$Pollutant == "Tupakka",
result(exposurenew) * 0.95,
result(exposure) * 0.95,
result(exposurenew)
result(exposure)
)
)


ggplot(exposurenew@output, aes(x = Radonleikkaus, y = Result)) + geom_boxplot() + labs(y = "Radonpitoisuus (Bq/m3)")
ggplot(exposure@output, aes(x = Radonleikkaus, y = Result)) + geom_boxplot() + labs(y = "Radonpitoisuus (Bq/m3)")
 


casescen <- EvalOutput(casescen)
casescen <- EvalOutput(casescen)


#ggplot(disbkgr@output, aes(x = Result, colour = Sukupuoli)) + geom_density()
#ggplot(disbkgr@output, aes(x = Result, colour = Talotyyppi)) + geom_density()
ggplot(casescen@output, aes(x = Tupakkarajoitus, weight = casescenResult, fill = Radonleikkaus)) + geom_bar(position = "dodge") + labs(y = "Keuhkosyöpäkuolemia (Lung ca deaths) (#/a)")
ggplot(casescen@output, aes(x = Tupakkarajoitus, weight = casescenResult, fill = Radonleikkaus)) + geom_bar(position = "dodge") + labs(y = "Keuhkosyöpäkuolemia (Lung ca deaths) (#/a)")
#ggplot(casescen@output, aes(x = Tupakoija, weight = Result, fill = Radonleikkaus)) + geom_bar()


########### TÄMÄ POIS TAI KORJATTAVA
#result(exposurenew) <- ifelse(
# exposurenew@output$Tupakkarajoitus == "5 % tupakkavähenemä radonpientaloissa" &
# exposurenew@output$Pollutant == "Tupakka" &
# exposurenew@output$Talotyyppi == "Pientalo" &
# exposurenew@output$radonpit > 100,
# result(exposurenew) * 0.95,
# result(exposurenew)
#)


####################### OUTPUT GRAPHS AND TABLES
####################### OUTPUT GRAPHS AND TABLES
Rivi 324: Rivi 314:


ggplot(attrcases@output, aes(weight = attrcasesResult / N, x = Causes, fill = Talotyyppi)) + geom_bar(position = 'stack') + labs(y = "Keuhkosyöpäkuolemia (lung cancer deaths) (#/a)")
ggplot(attrcases@output, aes(weight = attrcasesResult / N, x = Causes, fill = Talotyyppi)) + geom_bar(position = 'stack') + labs(y = "Keuhkosyöpäkuolemia (lung cancer deaths) (#/a)")
ggplot(attrcases@output, aes(weight = attrcasesResult / N, x = Causes, fill = Radontoimi)) + geom_bar(position = 'dodge') + labs(y = "Keuhkosyöpäkuolemia (lung cancer deaths) (#/a)")


ggplot(attrcases@output, aes(weight = attrcasesResult / N, x = Causes, fill = Tupakoija)) +
ggplot(attrcases@output, aes(weight = attrcasesResult / N, x = Causes, fill = Tupakoija)) +
Rivi 390: Rivi 378:
"ERF", # Exposure-response function
"ERF", # Exposure-response function
"exposure", # Total exposure to an agent or pollutant
"exposure", # Total exposure to an agent or pollutant
"bkgrexposure" # Background exposure to an agent (a level below which you cannot get in practice)
"bgexposure" # Background exposure to an agent (a level below which you cannot get in practice)
)),
)),
Rivi 396: Rivi 384:


# First calculate risk ratio and remove redundant columns because they cause harm when operated with itself.
# First calculate risk ratio and remove redundant columns because they cause harm when operated with itself.
RR <- unkeep(exp(log(ERF) * (exposure - bkgrexposure)), prevresults = TRUE, sources = TRUE)  
RR <- unkeep(exp(log(ERF) * (exposure - bgexposure)), prevresults = TRUE, sources = TRUE)  
PAF <- (RR - 1) / RR  
PAF <- (RR - 1) / RR  


Rivi 432: Rivi 420:
}
}
}
}
return(out)
return(out)
}
}
Rivi 437: Rivi 426:




# Mielenkiintoinen graafi, mutta laskenta on ongelmallinen. Tarkoituksena oli kaivella altistustieto
############################
# Ylävirran muuttujista takaisin riskimuuttujaan ja plotata niitä vastakkain.
 
# Tämän laskennan on tarkoitus palauttaa altistustieto riskimuuttujaan. Mutta mieti parempi toteutus. Entä sisällyttäminen
# attributable fractioniin (AF)?
 
#rad <- exposure * EvalOutput(Ovariable(data = data.frame(Pollutant = "Radon"  , Result = 1)))
#rad <- exposure * EvalOutput(Ovariable(data = data.frame(Pollutant = "Radon"  , Result = 1)))
#tup <- exposure * EvalOutput(Ovariable(data = data.frame(Pollutant = "Tupakka", Result = 1)))
#tup <- exposure * EvalOutput(Ovariable(data = data.frame(Pollutant = "Tupakka", Result = 1)))
Rivi 446: Rivi 438:
#temp <- totrisk * tup * rad * 0
#temp <- totrisk * tup * rad * 0
#temp@output$tupakkaaltistusResult <- as.factor(temp@output$tupakkaaltistusResult)
#temp@output$tupakkaaltistusResult <- as.factor(temp@output$tupakkaaltistusResult)
#ggplot(temp@output, aes(x = radonpitResult, y = totriskResult, colour = tupakkaaltistusResult)) + geom_point() + scale_x_log10() + scale_y_log10()
#ggplot(temp@output, aes(x = radonpitResult, y = totriskResult, colour = tupakkaaltistusResult)) + geom_point() + #scale_x_log10() + scale_y_log10()


#### hirisk on alaryhmä, jolla henkilökohtainen riski on erityisen suuri. Huom1 Tämä EI OLE väestöpainotettu otos,  
#### hirisk on alaryhmä, jolla henkilökohtainen riski on erityisen suuri. Huom1 Tämä EI OLE väestöpainotettu otos,  
Rivi 452: Rivi 444:
# voi saada aikaan isoja riskejä.
# voi saada aikaan isoja riskejä.


hirisk <- totrisk
#hirisk <- totrisk
hirisk@output <- hirisk@output[result(hirisk) > 1E-5 , ]
#hirisk@output <- hirisk@output[result(hirisk) > 1E-5 , ]
nrow(totrisk@output)
#nrow(totrisk@output)
nrow(hirisk@output)
#nrow(hirisk@output)
summary(hirisk@output)
#summary(hirisk@output)


ggplot(totrisk@output, aes(x = Maakunta, y = totriskResult * 1E6, fill = Tupakoija)) + geom_boxplot(point = 1) + labs(title = "Keuhkosyöpäriski maakunnittain", y = "Kuoleman riski (Risk of death) (micromort/a)") + coord_flip(ylim = c(-2, 50))
#ggplot(totrisk@output, aes(x = Maakunta, y = totriskResult * 1E6, fill = Tupakoija)) + geom_boxplot(point = 1) +  
#labs(title = "Keuhkosyöpäriski maakunnittain", y = "Kuoleman riski (Risk of death) (micromort/a)") + coord_flip(ylim = c(-2, 50))


</rcode>
</rcode>

Versio 30. huhtikuuta 2014 kello 10.12





Kysymys

Mitkä ovat radonin terveysvaikutukset Suomessa? Erityisesti pitäisi tarkastella näitä kysymyksiä:

  • Mikä on radonin kokonaistautitaakka?
  • Kuinka suuri on radonin ja tupakan yhteisvaikutus?
    • Onko kyseessä riippumaton, additiivinen, multiplikatiivinen tai yhteisvaikutus, ja mitä nämä tarkoittavat?
  • Miten radonin tautitaakka jakautuu erilaisissa asunnoissa asuvien kesken (esim. yli tai alle 300 Bq/m3)?
  • Mitä eri toimenpiteitä olisi mahdollista tehdä radonin tautitaakan pienentämiseksi?
    • Mitä muita vaikutuksia näillä toimepiteillä on (kustannukset, kiellot, elämäntapamuutokset, terveyssynergiat?)
  • Mitkä arvoarvostelmat määräävät sitä, mitkä toimepidevaihtoehdoista näyttäytyvät suositeltavina?

Vastaus

Radonin kokonaistautitaakka näyttäisi olevan 1973 DALY /vuosi (ks. Tautitaakka Suomessa ja SETURI/TEKAISU: Sisäilman radonin tautitapausmäärä ja tautitaakka arviot

Kuinka suuri on radonin ja tupakan yhteisvaikutus?

  • Riippumaton: BoD = Tr + Tt - T(r ja t)
  • Additiivinen: BoD = BG * RRr * RRt
  • Multiplikatiivinen: BoD > BG * RRr * RRt
  • Yhteisvaikutus: jotain muuta vai mikä tahansa noista?

Jossa

  • BoD: burden of disease eli tautitaakka
  • T: tapausmäärä (ilmoitettuna DALYina)
  • r: radon
  • t: tupakka
  • BG: taustariski

Ne asunnot, joissa radonpitoisuus on yli 300 Bq/m3, johtavat arviolta 65-80 keuhkosyöpätapaukseen vuodessa. Näistä pelkän radonin aiheuttamia on noin kymmenen tapausta (loput: radon + tupakka). Tämän verran siis vähenisivät tapaukset , jos kaikki 300 Bq/m3 ylitykset korjattaisiin tasolle 0 Bq/m3.

Jos yli 300 Bq/m3 radonpitoisuudet korjataan tasolle 300 Bq/m3, vähenevät keuhkosyöpätapaukset noin 25-40 tapauksella vuodessa (näistä 3- 5 keuhkosyöpää on pelkän radonin aiheuttamaa).

Arvioinnissa on otettu huomioon 300 Bq/m3 ylittävän väestön altistusarvion epätarkkuus 95% luottamusvälillä (10%). Kaikkien radonin (tai radon+tupakka) aiheuttamien keuhkosyöpien määrä, 300 kpl vuodessa, on oletettu tässä arvioinnissa tarkaksi, vaikka vaihteluväli onkin 100 – 600 tapausta. Eli näihin lukuihin täytyy suhtautua lähinnä suuntaa antavina.R↻

Toimenpiteitä radonin tautitaakan pienentämiseksi?

  • Radontuuletus kaikkiin uusiin rakennuksiin.
  • Radontuuletusvalmius kaikkiin uusiin rakennuksiin, tuuletus vain jos mittaus osoittaa korkeita pitoisuuksia.
  • Radontuuletus myös vanhoihin rakennuksiin.
  • Tupakointikielto.
  • Kansalaistiedotus.
  • Radonmittausten kannustaminen tiedolla tai rahallisella tuella.
  • Edellä mainittujen toimien kohdistaminen vain tupakoiviin.
  • Edellä mainittujen toimien kohdistaminen vain radonalueille.

Radontoimepiteiden muita kuin terveysvaikutuksia:

  • Kustannukset.
  • Kiellot ja itsemääräämisoikeus.
  • Elämäntapamuutokset.
  • Vaikutusten kohdistuminen erilaisena kansalaiseen, lähimmäiseen tai yhteiskuntaan.

Arvoarvostelmia:

  • Tautitaakkaa on pienennettävä.
  • Tautitaakkaa on pienennettävä kaikilla toimilla, jotka ovat halvempia kuin 10000 € / DALY (tai jokin muu raja).
  • Kansalaisten itsemääräämisoikeuteen ei saa puuttua.
  • Kansalaisia ja erityisesti lapsia on suojeltava altisteilta, jonka määrään ei voi itse vaikuttaa.

Näkökulmia radonhaitan torjuntaan

Perustelut

Vastaus on alustava, ja malli pitäisi tarkistaa ennen kuin vankkoja päätelmiä tehdään. Kehityskohteita:

  • Maakuntien ja kuntien yhdistäminen pitäisi tehdä jotenkin älykkäästi skräpätystä datasta eikä tässä koodissa.
  • Itä-Uudenmaan kunnat voisi korjata näin: out$Kunta[out$Kunta %in% c("Mäntsälä", "Pornainen", "Porvoo", "etc", "", "", "")] <- "Itä-Uusimaa"
  • Radonpitoisuudet pitää sämplätä maakunnittain, ei kunnittain kuten nyt. Pienillä ännän arvoilla tulee isoja eroja kuntien välille, mutta se on pelkkää harhaa.
  • Epävarmuudet voiti ottaa myös annosvasteisiin.
  • Pitoisuusjakaumat voisi toteuttaa oikeasti jakaumina olettaen esim. lognormaalijakauman epävarmoilla parametreilla joka maakuntaan. Nyt kuvaajiin tulee harhaisia piikkejä. Jos olisi alkuperäisdata, niin voisi tehdä pikku Bayes-mallin.
  • Kartan piirtäminen ja muutamat muut jutut voisi tehdä funktioiksi ja pistää jollekin järkevälle sivulle, josta ne inkludeerataan tähän.
  • Miksi yksikköriski näyttää tosi isolta, mutta kun summataan yli koko väestön, talo*tupakointikohtaiset luvut näyttävät tosi pieniltä.
  • Pitäisi katsoa, onko puuttuvia arvoja, jotka mergatessa slaissaavat dataa pois.
  • Satunnaistaminen pitäisi tehdä sellaisissa vaiheissa, että se olisi nopeaa.
  • Miten pitäisi käsitellä asuntojen radonpitoisuuksien vaihtelu vs. epävarmuus syöpäriskistä? Meneekö 2DMC liian raskaaksi ja onko siitä vastaavaa hyötyä? Voiko saman toteuttaa 1DMC:na siten, että haluttu epävarmuus käsitellään vaihteluna eri tavalla kuin muut?

Päätösvaihtoehdot

  • Tupakointi vähenee yhden prosenttiyksikön
Päätökset(-)
ObsDecision makerDecisionOptionVariableCellChangeValueDescription
1ValtioRadontoimiBAUexposurenewPollutant:RadonMultiply1Business as usual
2ValtioRadontoimiRadontalkootexposurenewPollutant:RadonMultiply0.5Raju vähennys

Laskenta

N:

Minkä tekijän mukaan haluat erotella terveysvasteen (x-akseli)?:

Minkä toisen tekijän mukaan haluat erotella terveysvasteen (väri)?:

Haluatko nähdä välivaiheet?:

+ Näytä koodi

Katso myös
  • Elvira Vaclavik Bräuner • Claus E. Andersen • Helle P. Andersen • Peter Gravesen • Morten Lind • Kaare Ulbak • Ole Hertel •

Joachim Schüz • Ole Raaschou-Nielsen. Is there any interaction between domestic radon exposure and air pollution from traffic in relation to childhood leukemia risk? Cancer Causes Control (2010) 21:1961–1964 DOI 10.1007/s10552-010-9608-4

Sivuja, joissa on mahdollisesti mallissa käytettävää tietoa

Riippuvuudet

Riippuvuudet

Katso myös

Viitteet


Aiheeseen liittyviä tiedostoja

<mfanonymousfilelist></mfanonymousfilelist>