Ero sivun ”Radonin terveysvaikutukset” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(→‎Laskenta: PAF/laskenta uudistettu)
Rivi 85: Rivi 85:
name:erottelu1|description:Minkä tekijän mukaan haluat erotella terveysvasteen (x-akseli)?|type:selection|
name:erottelu1|description:Minkä tekijän mukaan haluat erotella terveysvasteen (x-akseli)?|type:selection|
options:
options:
'Tupakka';Tupakka;
'Tupakoija';Tupakoija;
'Talotyyppi';Talotyyppi;
'Talotyyppi';Talotyyppi;
'Sukupuoli';Sukupuoli;
'Sukupuoli';Sukupuoli;
Rivi 93: Rivi 93:
options:
options:
'Altiste';Altiste;
'Altiste';Altiste;
'Tupakka';Tupakka;
'Tupakoija';Tupakoija;
'Talotyyppi';Talotyyppi;
'Talotyyppi';Talotyyppi;
'Sukupuoli';Sukupuoli;
'Sukupuoli';Sukupuoli;
Rivi 137: Rivi 137:
data = data.frame(
data = data.frame(
Sukupuoli = rep(c("Miehet", "Naiset"), 2),  
Sukupuoli = rep(c("Miehet", "Naiset"), 2),  
Tupakka = rep(c("Kyllä", "Ei"), each = 2),  
Tupakoija = rep(c("Kyllä", "Ei"), each = 2),  
Result = c(0.11, 0.08, 0.39, 0.42)
Result = c(0.11, 0.08, 0.39, 0.42)
)
)
Rivi 177: Rivi 177:


tupakkaaltistus <- Ovariable("tupakkaaltistus",  
tupakkaaltistus <- Ovariable("tupakkaaltistus",  
data = data.frame(Tupakka = c("Kyllä", "Ei"), Altiste = "Tupakka", Result = c(1, 0))
data = data.frame(Tupakoija = c("Kyllä", "Ei"), Altiste = "Tupakka", Result = c(1, 0))
)
)


Rivi 191: Rivi 191:


out <- out[!colnames(out) %in% c("tupakkaaltistusSource", "radonpitSource")]
out <- out[!colnames(out) %in% c("tupakkaaltistusSource", "radonpitSource")]
out <- fillna(out, c("Tupakka", "Maakunta", "Talotyyppi")) # Tätä on muutettava, jos toiseen lisätään indeksejä.
out <- fillna(out, c("Tupakoija", "Maakunta", "Talotyyppi")) # Tätä on muutettava, jos toiseen lisätään indeksejä.


return(out)
return(out)
Rivi 209: Rivi 209:
tausta.altistus <- 0 # Radonille voisi olla 5.
tausta.altistus <- 0 # Radonille voisi olla 5.


RR <- Ovariable("RR",
#RR <- Ovariable("RR",
dependencies = data.frame(Name = c("ERF", "altistus", "tausta.altistus")),
# dependencies = data.frame(Name = c("ERF", "altistus", "tausta.altistus")),
formula = function(...) {
# formula = function(...) {
 
#
out <- exp(log(ERF) * (altistus - tausta.altistus)) # Relative risk given the exposures
# out <- exp(log(ERF) * (altistus - tausta.altistus)) # Relative risk given the exposures
#
out <- unkeep(oapply(out, cols = "Altiste", FUN = prod), sources = TRUE)
# out <- unkeep(oapply(out, cols = "Altiste", FUN = prod), sources = TRUE)
 
#
return(out)
# return(out)
}
# }
)
#)


### SYÖPÄKUOLLEISUUS
### SYÖPÄKUOLLEISUUS
Rivi 240: Rivi 240:
vaestoosuus <- temp3 / sum(result(temp3 * 1))
vaestoosuus <- temp3 / sum(result(temp3 * 1))


vaikutuspaf <- Ovariable("vaikutuspaf",  
#vaikutuspaf <- Ovariable("vaikutuspaf",  
dependencies = data.frame(Name = c("vaestoosuus", "RR", "väestö", "syopakuolleisuus")),
# dependencies = data.frame(Name = c("vaestoosuus", "RR", "väestö", "syopakuolleisuus")),
formula = function(...) {
# formula = function(...) {
#
# PAF <- vaestoosuus * (RR - 1) / (vaestoosuus * (RR - 1) + 1)
#
# out <- väestö * PAF * syopakuolleisuus
#
# return(out)
# }
#)


PAF <- vaestoosuus * (RR - 1) / (vaestoosuus * (RR - 1) + 1)
#vaikutuspaf <- EvalOutput(vaikutuspaf)


out <- väestö * PAF * syopakuolleisuus
#PAF <- Ovariable("PAF",
# dependencies = data.frame(Name = c("vaestoosuus", "RR", "väestö", "syopakuolleisuus")),
# formula = function(...) {
#
# out <- vaestoosuus * (RR - 1) / (vaestoosuus * (RR - 1) + 1)
#
# #out <- väestö * PAF * syopakuolleisuus
#
# return(out)
# }
#)


return(out)
out <- Ovariable("out",
}
dependencies = data.frame(Name = c("ERF", "altistus", "väestö")),
)
formula = function(...) {


vaikutuspaf <- EvalOutput(vaikutuspaf)
PAF <- unkeep(exp(log(ERF) * altistus), prevresults = TRUE, sources = TRUE) # Aluksi laske RR ja poista turhat.
PAF <- (PAF - 1) / PAF # Kun ovariablea operoidaan itsensä kanssa, ylimääräiset sarakkeet aiheuttava harmia.


PAF <- Ovariable("PAF",
altisteet <- unique(altistus@output$Altiste)
dependencies = data.frame(Name = c("vaestoosuus", "RR", "väestö", "syopakuolleisuus")),
altisteet <- levels(altisteet)[altisteet]
formula = function(...) {


out <- vaestoosuus * (RR - 1) / (vaestoosuus * (RR - 1) + 1)
out <- 1
 
for(i in 1:length(altisteet)) {
#out <- väestö * PAF * syopakuolleisuus
# Yksittäisen altisteen attributable fraction yhdistetään kaikkien altisteiden yhteis-PAFiin, johon tulee
# 2^n riviä (n = altisteiden lukumäärä). Altiste on joko - (puuttuu) tai + (se mikä kyseisessä solussa on).
temp <- Ovariable(data = data.frame(
Altiste = altisteet[i],
Exp1 = c(paste(altisteet[i], "-", sep = ""), paste(altisteet[i], "+", sep = "")),
Result = c(-1, 1) # Altisteen puutosta merkataan tilapäisesti negatiivisella luvulla.
))
temp <- temp * PAF
result(temp) <- ifelse(result(temp) > 0, result(temp), 1 + result(temp))
result(temp) <- ifelse(result(temp) == 1 & grepl("\\+", temp@output$Exp1), 0, result(temp))
temp <- unkeep(temp, prevresults = TRUE, sources = TRUE)
out <- out * temp
out <- unkeep(out, cols = "Altiste", sources = TRUE, prevresults = TRUE)
if(i == 1) {
colnames(out@output)[colnames(out@output) == "Exp1"] <- "Exposures"
} else {
out@output$Exposures <- paste(out@output$Exposures, out@output$Exp1)
out@output$Exp1 <- NULL
}
}


return(out)
return(out)
}
}
)
)
out <- EvalOutput(out)
oprint(head(out@output))


if(verbose) {
if(verbose) {
Rivi 303: Rivi 348:
}
}


ggplot(vaikutuspaf@output, aes(weight = vaikutuspafResult / N, x = Tupakka, fill = Talotyyppi)) +
keisit <- väestö * out
 
ggplot(keisit@output, aes(weight = Result / N, x = Exposures, fill = Talotyyppi)) +
geom_bar(position = 'dodge')
 
ggplot(out@output, aes(weight = Result / N, x = Exposures, fill = Talotyyppi)) +
geom_bar(position = 'dodge')
 
ggplot(keisit@output, aes(weight = väestöResult / N, x = Exposures, fill = Talotyyppi)) +
geom_bar(position = 'dodge')
geom_bar(position = 'dodge')



Versio 27. huhtikuuta 2014 kello 12.32





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?

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

Riippuvuudet

Katso myös

Viitteet


Aiheeseen liittyviä tiedostoja

<mfanonymousfilelist></mfanonymousfilelist>