Ero sivun ”Radonin terveysvaikutukset” versioiden välillä
Siirry navigaatioon
Siirry hakuun
(→Kaava) |
(→Kaava) |
||
Rivi 27: | Rivi 27: | ||
<rcode graphics=1 embed=1 variables=" | <rcode graphics=1 embed=1 variables=" | ||
name: | name:N|default:100| | ||
name:talo|type:selection|options:'Kerrostalo';Kerrostalo;'Pientalo';Pientalo|default:'Pientalo'| | name:talo|type:selection|options:'Kerrostalo';Kerrostalo;'Pientalo';Pientalo|default:'Pientalo'| | ||
name:tupakka|type:selection|options:'Kyllä';Kyllä;'Ei';Ei| | name:tupakka|type:selection|options:'Kyllä';Kyllä;'Ei';Ei| | ||
Rivi 44: | Rivi 44: | ||
collapsemarg <- function(object, marginals, fun = sum) { | collapsemarg <- function(object, marginals, fun = sum) { | ||
object@output <- dropall(object@output) | object@output <- dropall(object@output) | ||
temp <- as.data.frame(as.table(tapply(result(object), object@output[marginals], fun))) | temp <- as.data.frame(as.table(tapply(result(object), object@output[marginals], fun))) | ||
colnames(temp)[colnames(temp) == "Freq"] <- "Result" | colnames(temp)[colnames(temp) == "Freq"] <- "Result" | ||
out <- EvalOutput(Ovariable(object@name, data = temp)) | out <- EvalOutput(Ovariable(object@name, data = temp)) | ||
return(out) | return(out) | ||
} | } | ||
objects.latest('Op_en6007', code_name = 'answer') # [[OpasnetUtils/Drafts]] fetches fillna function. | objects.latest('Op_en6007', code_name = 'answer') # [[OpasnetUtils/Drafts]] fetches fillna function. | ||
###### VÄESTÖ | ###### VÄESTÖ | ||
Rivi 63: | Rivi 66: | ||
# Summaa taloista pois perhekoko ja muodosta uusi ovariable asukkaat. | # Summaa taloista pois perhekoko ja muodosta uusi ovariable asukkaat. | ||
talot@output <- talot@output[talot@output$Kunta == "Akaa" , ] ########### POISTA TÄMÄ | #talot@output <- talot@output[talot@output$Kunta == "Akaa" , ] ########### POISTA TÄMÄ | ||
levels(talot@output$Talotyyppi) <- ifelse( | levels(talot@output$Talotyyppi) <- ifelse( | ||
Rivi 73: | Rivi 76: | ||
talot <- collapsemarg(talot, c("Kunta", "Talotyyppi"), sum) | talot <- collapsemarg(talot, c("Kunta", "Talotyyppi"), sum) | ||
kunnat <- EvalOutput(kunnat, N = N) | kunnat <- EvalOutput(kunnat, N = N) | ||
Rivi 97: | Rivi 98: | ||
väestö <- kunnat * talot * aluevastaavuus * tupakointi | väestö <- kunnat * talot * aluevastaavuus * tupakointi | ||
cat("Väestö\n") | |||
oprint(head(väestö@output)) | |||
cat("Kunnat\n") | |||
oprint(head(kunnat@output)) | |||
cat("Talot\n") | |||
oprint(head(talot@output)) | |||
cat("Aluevastaavuus\n") | |||
oprint(head(aluevastaavuus@output)) | |||
cat("Tupakointi\n") | |||
oprint(head(tupakointi@output)) | |||
###### altistus | ###### altistus | ||
Rivi 121: | Rivi 134: | ||
#colnames(temp)[colnames(temp) == "altistusResult"] <- "Result" | #colnames(temp)[colnames(temp) == "altistusResult"] <- "Result" | ||
#temp <- EvalOutput(Ovariable("temp", data = temp)) | #temp <- EvalOutput(Ovariable("temp", data = temp)) | ||
cat("Altistus\n") | |||
oprint(head(altistus@output)) | |||
######## Syöpäkuolleisuus | ######## Syöpäkuolleisuus | ||
Rivi 129: | Rivi 145: | ||
syopakuolleisuus <- EvalOutput(syopakuolleisuus, N = N) | syopakuolleisuus <- EvalOutput(syopakuolleisuus, N = N) | ||
cat("Syöpäkuolleisuus\n") | |||
oprint(head(syopakuolleisuus@output)) | |||
####### Relative risk | ####### Relative risk | ||
Rivi 137: | Rivi 156: | ||
RR <- exp(log(ERF) * (altistus - tausta.altistus)) # Relative risk given the exposures | RR <- exp(log(ERF) * (altistus - tausta.altistus)) # Relative risk given the exposures | ||
cat("ERF\n") | |||
oprint(head(ERF@output)) | |||
cat("RR\n") | |||
oprint(head(RR@output)) | |||
####### taustariski | ####### taustariski | ||
# Calculate subgroup-specific background risks by first calculating a temporary burden estimate. | # Calculate subgroup-specific background risks by first calculating a temporary burden estimate. | ||
# temp is a population-weighted | # temp is a population-weighted average of relative risks. The actual disease risk is divided by this value and then multiplied | ||
# by the subgroup-specific relative risk. In this way, the total burden of all subgroups equals to what is actually seen. | # by the subgroup-specific relative risk. In this way, the total burden of all subgroups equals to what is actually seen. | ||
kokonaisvaikutus <- | temp <- collapsemarg(RR, c("Maakunta", "Iter", "Tupakka", "Talotyyppi"), prod) | ||
temp1 <- temp * väestö # Population-weighted sum of the relative risk. | |||
temp1 <- collapsemarg(temp1, c("Sairaanhoitopiiri", "Sukupuoli", "Iter"), sum) # Aggregate to the same indices as kokonaisvaikutus. | |||
temp2 <- (temp * 0 + 1) * väestö # Population-weighted sum of ones with the same dimensions. | |||
temp2 <- collapsemarg(temp2, c("Sairaanhoitopiiri", "Sukupuoli", "Iter"), sum) | |||
tausta <- syopakuolleisuus / (temp1 / temp2) # syopakuolleisuus without any exposure | |||
cat("Taustariski\n") | |||
oprint(head(tausta@output)) | |||
########### PAF | ########### PAF | ||
väestöosuus <- 1 | väestöosuus <- 1 | ||
PAF <- väestöosuus * (RR - 1) / (väestöosuus * (RR - 1) + 1) | PAF <- väestöosuus * (RR - 1) / (väestöosuus * (RR - 1) + 1) | ||
######### vaikutus | ######### vaikutus | ||
Rivi 166: | Rivi 193: | ||
vaikutus@output <- vaikutus@output[!is.na(vaikutus@output$Result) , ] | vaikutus@output <- vaikutus@output[!is.na(vaikutus@output$Result) , ] | ||
vaikutusrr <- väestö * tausta * RR | kokonaisvaikutuspaf <- collapsemarg(vaikutus, c("Iter", "Tupakka", "Talotyyppi", "Altiste"), sum) | ||
RRkok <- collapsemarg(RR, c("Iter", "Tupakka", "Maakunta", "Talotyyppi"), prod) | |||
vaikutusrr <- väestö * tausta * RRkok | |||
kokonaisvaikutusrr <- collapsemarg(vaikutusrr, c("Iter", "Tupakka", "Talotyyppi"), sum) | |||
cat("PAF\n") | |||
oprint(head(PAF@output)) | |||
cat("VaikutusPAF\n") | |||
oprint(head(vaikutus@output)) | |||
cat("Kokonaisvaikutus PAF-menetelmällä\n") | |||
oprint(head(kokonaisvaikutuspaf@output)) | |||
cat("RRkok\n") | |||
oprint(head(RRkok@output)) | |||
cat("VaikutusRR\n") | |||
oprint(head(vaikutusrr@output)) | |||
cat("Kokonaisvaikutus RR-menetelmällä\n") | |||
oprint(head(kokonaisvaikutusrr@output)) | |||
geombar <- function(object, title = "", y = "", x = "") { | |||
out <- ggplot(object@output, aes(weight = Result, x = Tupakka, fill = Talotyyppi)) + geom_bar(position = "dodge") + | |||
theme_grey(base_size = 24) + | |||
labs( # label names | |||
title = title, | |||
y = y, | |||
x = x | |||
) | |||
return(out) | |||
} | |||
geombar(vaikutus, title = "Vaikutus PAF-menetelmällä") | |||
geombar(vaikutusrr, title = "Vaikutus RR-menetelmällä") | |||
ggplot(väestö@output, aes(x = Talotyyppi, weight = Result)) + geom_bar() + labs(title = "Väestö") | |||
ggplot( | ggplot(altistus@output[altistus@output$Altiste == "Radon" , ], aes(x = altistusResult, fill = Talotyyppi)) + geom_density(alpha = 0.2) | ||
Versio 17. marraskuuta 2013 kello 08.04
Moderaattori:Jouni (katso kaikki)
Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
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
- 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ä.)
Obs | Maakunta | Sairaanhoitopiiri |
---|---|---|
1 | Ahvenanmaa | Åland |
2 | Etelä-Karjala | Etelä-Karjala |
3 | Etelä-Pohjanmaa | Etelä-Pohjanmaa |
4 | Etelä-Savo | Etelä-Savo |
5 | Uusimaa | Helsinki ja Uusimaa |
6 | Itä-Uusimaa | |
7 | Itä-Savo | |
8 | Kainuu | Kainuu |
9 | Kanta-Häme | Kanta-Häme |
10 | Keski-Pohjanmaa | Keski-Pohjanmaa |
11 | Keski-Suomi | Keski-Suomi |
12 | Koko maa | |
13 | Kymenlaakso | Kymenlaakso |
14 | Länsi-Pohja | |
15 | Lappi | Lappi |
16 | Päijät-Häme | Päijät-Häme |
17 | Pirkanmaa | Pirkanmaa |
18 | Pohjanmaa | |
19 | Pohjois-Karjala | Pohjois-Karjala |
20 | Pohjois-Pohjanmaa | Pohjois-Pohjanmaa |
21 | Pohjois-Savo | Pohjois-Savo |
22 | Satakunta | Satakunta |
23 | Vaasa | |
24 | Varsinais-Suomi | Varsinais-Suomi |
25 | Yhteensä |
Katso myös
- heande:Radon sisäilma altistus Suomi
- op_en:Radon
- Suomen kunnat
- Radon sisäilmassa
- Talotyypit Suomessa
Viitteet
Aiheeseen liittyviä tiedostoja
<mfanonymousfilelist></mfanonymousfilelist>