Ero sivun ”Radonin terveysvaikutukset” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(→‎Kaava: malli alkaa olla harjakorkeudessa mutta bugeja on)
Rivi 43: Rivi 43:
library(ggplot2)
library(ggplot2)


N <- 10
objects.latest('Op_en6007', code_name = 'answer') # [[OpasnetUtils/Drafts]] fetches fillna function.
 
N <- 2


objects.latest('Op_fi3907', code_name = 'alusta') # [[Suomen kunnat]], ovariable kunnat.
objects.latest('Op_fi3907', code_name = 'alusta') # [[Suomen kunnat]], ovariable kunnat.


objects.latest('Op_fi2759', code_name = 'alusta') # [[Radon sisäilmassa]], ovariable radonpit, data.frame radon.
objects.latest('Op_fi2759', code_name = 'alusta') # [[Radon sisäilmassa]], ovariable radonpit, data.frame radon.
objects.latest('Op_fi3912', code_name = 'alusta') # [[Syöpäkuolleisuus Suomessa]], ovariable syopakuolleisuus.


objects.latest('Op_fi2761', code_name = 'alusta') # [[Talotyypit Suomessa]], ovariable talot.
objects.latest('Op_fi2761', code_name = 'alusta') # [[Talotyypit Suomessa]], ovariable talot.


objects.latest('Op_fi3912', code_name = 'alusta') # [[Syöpäkuolleisuus Suomessa]], ovariable syopakuolleisuus.
# Summaa taloista pois perhekoko ja muodosta uusi ovariable asukkaat.


levels(talot@output$Talotyyppi) <- ifelse(
levels(talot@output$Talotyyppi) <- ifelse(
Rivi 58: Rivi 62:
"Pientalo"
"Pientalo"
)
)
talot@output <- dropall(talot@output)
dat <- as.data.frame(as.table(tapply(talot@output$Result, talot@output[c("Kunta", "Talotyyppi")], sum)))
colnames(dat)[colnames(dat) == "Freq"] <- "Result"
asukkaat <- EvalOutput(Ovariable("asukkaat", data = dat), N = N)


syopakuolleisuus@data <- syopakuolleisuus@data[syopakuolleisuus@data$Primaaripaikka == "Keuhkot, henkitorvi" , ] # ICD.10.koodi == "C33-34"
syopakuolleisuus@data <- syopakuolleisuus@data[syopakuolleisuus@data$Primaaripaikka == "Keuhkot, henkitorvi" , ] # ICD.10.koodi == "C33-34"
Rivi 63: Rivi 71:
radonpit <- EvalOutput(radonpit, N = N)
radonpit <- EvalOutput(radonpit, N = N)
kunnat <- EvalOutput(kunnat, N = N)
kunnat <- EvalOutput(kunnat, N = N)
# talot <- EvalOutput(talot, N = N) # talot on valmiiksi evaluoitu, ei saa evaluoida uudestaan!
syopakuolleisuus <- EvalOutput(syopakuolleisuus, N = N)
syopakuolleisuus <- EvalOutput(syopakuolleisuus, N = N)


väestöosuus <- EvalOutput(Ovariable("väestöosuus",  # Tupakoivien osuus väestöstä.
tupakointi <- EvalOutput(Ovariable("tupakointi",  # Tupakoivien osuus väestöstä. Result-sarake summautuu ykköseen.
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),  
Tupakka = rep(c("Kyllä", "Ei"), each = 2),  
Result = c(0.22, 0.16, 0.78, 0.84)
Result = c(0.11, 0.08, 0.39, 0.42)
)
)
), N = N)
), N = N)
Rivi 85: Rivi 92:
aluevastaavuus <- EvalOutput(Ovariable("aluevastaavuus", data = dat))
aluevastaavuus <- EvalOutput(Ovariable("aluevastaavuus", data = dat))


väestö <- kunnat * talot * väestöosuus * aluevastaavuus
väestö <- kunnat * asukkaat * aluevastaavuus
 
 
altistus <- orbind(
tupakkaaltistus * EvalOutput(Ovariable(data = data.frame(Altiste = "Tupakka", Result = 1)), N = N),
radonpit * EvalOutput(Ovariable(data = data.frame(Altiste = "Radon", Result = 1)), N = N)
)
altistus <- EvalOutput(Ovariable("altistus", data = altistus), N = N)


oprint(summary(radonalt, marginals = c("Maakunta", "Talotyyppi")))
oprint(summary(radonalt, marginals = c("Maakunta", "Talotyyppi")))


ERF <- EvalOutput(Ovariable("ERF", data = data.frame(Altiste = c("Radon", "Tupakka"), Result = c(1.006, 20))), N = N)
tausta.altistus <- 0 # Radonille voisi olla 5.
RR <- exp(log(ERF) * (altistus - tausta.altistus))


rr.radon <- 1.0016
väestöosuus <- 1
rr.tupakka <- 20
tausta.altistus <- 5


PAF <- väestöosuus * (RR - 1) / (väestöosuus * (RR - 1) + 1)
PAF@output <- fillna(PAF@output, c("Tupakka", "Talotyyppi"))


#out <- merge(out, tausta.sairastuvuus)
#taustariski@output <- taustariski@output[taustariski@output$Tupakka == "Kyllä" , colnames(taustariski@output) != "Tupakka"]
#out <- merge(out, tupakoivat)
#out$Asukkaita <- out$Asukkaita/2 * ifelse(out$Tupakka == "Kyllä", out$Tupakoivien.osuus, 1-out$Tupakoivien.osuus)


taustariski <- 1 - väestöosuus * (rr.tupakka - 1) / (väestöosuus * (rr.tupakka - 1) +1)
vaikutus <- väestö * syopakuolleisuus * tupakointi * PAF /100000


taustariski@output <- taustariski@output[taustariski@output$Tupakka == "Kyllä" , colnames(taustariski@output) != "Tupakka"]
ggplot(asukkaat@output, aes(x = asukkaatResult)) + geom_density()
ggplot(altistus@output, aes(x = altistusResult)) + geom_density()
ggplot(altistus@output, aes(x = altistusResult, fill = Altiste)) + geom_density()
ggplot(vaikutus@output, aes(weight = vaikutusResult, fill = Altiste)) + geom_bar()
ggplot(vaikutus@output, aes(weight = Result, x = Altiste)) + geom_bar()


kokonaisvaikutus <- exp(log(rr.tupakka) * tupakkaaltistus + log(rr.radon) * radonpit)
kokonaisvaikutus <- exp(log(rr.tupakka) * tupakkaaltistus + log(rr.radon) * radonpit)

Versio 16. marraskuuta 2013 kello 10.47





Kysymys

Mitkä ovat radonin terveysvaikutukset Suomessa?

Vastaus

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?

Kaava

n:

talo:

tupakka:

vaste:

+ Näytä koodi

  • Päivittäin tupakoivien osuus Suomessa: Tupakoivat [1]
  • Tupakan annosvaste: UK: päivittäin tupakoivia 22 % Miehet, 20 % Naiset. Tämä aiheuttaa 88 % ja 84 % keuhkosyövistä vastaavasti. [2] Tämän perusteella voidaan laskea riskisuhde RR = AF / (EF(RR-1)+1), missä AF on attributable fraction eli altisteen aiheuttama osuus koko tautikuormasta ja EF on altistuneiden osuus koko väestöstä. Tämän perusteella päivittäisen tupakoinnin riskisuhteeksi keuhkosyövälle saadaan 20 - 30. (Laskennassa käytetään 20:tä.)
Maakunnat ja sairaanhoitopiirit(-)
ObsMaakuntaSairaanhoitopiiri
1AhvenanmaaÅland
2Etelä-KarjalaEtelä-Karjala
3Etelä-PohjanmaaEtelä-Pohjanmaa
4Etelä-SavoEtelä-Savo
5UusimaaHelsinki ja Uusimaa
6Itä-Uusimaa
7Itä-Savo
8KainuuKainuu
9Kanta-HämeKanta-Häme
10Keski-PohjanmaaKeski-Pohjanmaa
11Keski-SuomiKeski-Suomi
12Koko maa
13KymenlaaksoKymenlaakso
14Länsi-Pohja
15LappiLappi
16Päijät-HämePäijät-Häme
17PirkanmaaPirkanmaa
18Pohjanmaa
19Pohjois-KarjalaPohjois-Karjala
20Pohjois-PohjanmaaPohjois-Pohjanmaa
21Pohjois-SavoPohjois-Savo
22SatakuntaSatakunta
23Vaasa
24Varsinais-SuomiVarsinais-Suomi
25Yhteensä

Katso myös

Viitteet


Aiheeseen liittyviä tiedostoja

<mfanonymousfilelist></mfanonymousfilelist>