Ero sivun ”Radonin terveysvaikutukset” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(koodia alettu korjata. Nyt rikki)
(koodia siirretty sivuille Radon sisäilmassa ja Talotyypit Suomessa)
Rivi 39: Rivi 39:
default:12
default:12
">
">
library(sorvi)
library(sorvi)
library(OpasnetUtils)
library(OpasnetUtils)
library(ggplot2)
library(ggplot2)


kunnat <- opbase.data("Op_fi3907") # [[Suomen kunnat]]
objects.latest('Op_fi3907', code_name = 'alusta') # [[Suomen kunnat]], ovariable kunnat.
colnames(kunnat)[colnames(kunnat) == "Result"] <- "Maakunta"
 
# Luonnos uudemmaksi tavaksi kaivaa data.
 
rad <- opbase.data("Op_fi2759") # [[Radon sisäilmassa]]
 
colnames(rad)[colnames(rad) == "Havainto"] <- "Observation"
#rad <- tidy(rad, objname = "radon", direction = "long")
#print(xtable(rad), type = 'html')
 
oprint(head(rad))
 
radon <- opbase.data("op_fi2759")#[, 3:6]
head(radon)
#radon$Result <- ifelse(is.na(radon$Result.Text), radon$Result, as.numeric(as.character(radon$Result.Text)))
#radon <- radon[, 1:3]
colnames(radon)[3] <- "r"
#head(radon)
radon <- radon[substr(radon$Havainto, 1, 7) != "kaikki.", ]
radon <- radon[radon$Maakunta != "Yhteensä", ]
#print(xtable(reshape(radon, idvar = "Maakunta", timevar = "Havainto", direction = "wide")), type = 'html')
 
radon$Talo <- ifelse(substr(radon$Havainto, 1, 3) == "pt.", "Pientalo", "Kerrostalo")
radon$P <- substr(radon$Havainto, 4, 10)
 
radon <- radon[, colnames(radon)!="Havainto"]
radon <- reshape(radon, idvar = c("Maakunta", "Talo"), timevar = "P", direction = "wide")
radon[is.na(radon)] <- 0
#print(xtable(radon), type = 'html')
 
j <- 2/3 # c( rep(2/3, 8), 3/4, rep(2/3, 9), 3/4, rep(2/3, 21))
X2 <- radon$r.max
for(i in 1:nrow(radon)) {X2[i] <- min(radon$r.max[i], (radon$r.med[i] + 201)/2)}
X <- data.frame(P1 = radon$r.med, P2 = X2, P3 = radon$r.max, P4 = 201, P5 = 351, P6 = 401, P7 = 601, P8 = 801)
P <- data.frame(
P1 = 50,
P2 = (50 - radon$r.y200),
P3 = (radon$r.y800)*(1-j),
P4 = (radon$r.y200 - radon$r.y400)*j,
P5 = (radon$r.y200 - radon$r.y400)*(1-j),
P6 = (radon$r.y400 - radon$r.y800)*j,
P7 = (radon$r.y400 - radon$r.y800)*(1-j),
P8 = (radon$r.y800)*j)/100
 
#X <- data.frame(P1 = radon$r.Mediaani, P2 = radon$r.Maksimi, P3 = 201, P4 = 351, P5 = 401, P6 = 601, P7 = 801)
#P <- data.frame(P1 = 50, P2 = radon$r.Yli800*(1-j), P3 = radon$r.Yli200*j, P4 = radon$r.Yli200*(1-j), P5 = radon$r.Yli400*j, P6 = radon$r.Yli400*(1-j), P7 = radon$r.Yli800*j)/100
 
Xsort <- X
for(i in 1:nrow(X)){Xsort[i, ] <- sort.int(t(X[i, ]), index.return=TRUE)[[2]]}
for(i in 1:nrow(X)){X[i, ] <- X[i, t(Xsort[i, ])]}
for(i in 1:nrow(X)){P[i, ] <- P[i, t(Xsort[i, ])]}
#head(radon)
#print(xtable(Xsort), type = 'html')
#print(xtable(P), type = 'html')
 
#head(P)
 
X$P1 <- (radon$r.ka - rowSums((X*P)[, -1])) / 0.5
#print(xtable(X), type = 'html')
#rowSums(X*P)
#rowSums(P)
intP <- P
for(i in 2:ncol(P)){intP[, i] <- rowSums(P[, 1:i])}
#intP
 
out <- data.frame()
 
for(j in 1:n){
 
radoniter <- intP[, 1]
iter <- rowSums(runif(nrow(intP), 0, 1) > intP)+1
for(i in 1:nrow(intP)){radoniter[i] <- X[i, iter[i]]}
radon2 <- data.frame(Maakunta = radon$Maakunta, Talo = radon$Talo, obs = n, Radon = radoniter)
radon2
out <- rbind(out, radon2)
}
#radon2
#head(out)
 
#talot <- opbase.data("Op_fi2761")[, -c(1, 2, 8)]
talot <- opbase.data("Op_fi2761")
 
talot <- talot[talot$Talotyyppi != "Kaikki talotyypit" & talot$Kunta !="KOKO MAA - HELA LANDET" & talot$Asuntokunta != "Kaikki asuntokunnat", ]
talot$Talotyyppi <- ifelse(talot$Talotyyppi=="Asuinkerrostalo", "Kerrostalo", "Pientalo")


#head(talot)
objects.latest('Op_fi2759', code_name = 'alusta') # [[Radon sisäilmassa]], ovariable radonpit.
väki <- data.frame(Asuntokunta = c("1 henk.", "2 henk.", "3 henk.", "4 henk.", "5 henk.", "6 henk.", "7+ henk."), n = 1:7)
talot <- merge(talot, väki)
#head(talot)
talot$Result <- talot$Result * talot$n


talot <- as.data.frame(as.table(tapply(talot$Result, list(talot$Kunta, talot$Talotyyppi), sum)))
colnames(talot) <- c("Kunta", "Talo", "Asukkaita")
#head(talot)
talot <- merge(talot, kunnat)
#head(talot)
out <- merge(out, talot)
#head(out)


rr.radon <- 1.0016
rr.radon <- 1.0016
Rivi 264: Rivi 168:
==Katso myös==
==Katso myös==


* [http://pxweb2.stat.fi/Dialog/varval.asp?ma=010_asas_tau_101_fi&ti=Asuntokunnat+koon+ja+asunnon+talotyypin+mukaan+1985%2D2010&path=../Database/StatFin/asu/asas/&lang=3&multilang=fi] Tilastokeskuksen data asunnoista talotyypeittäin.
* [[:heande:Radon sisäilma altistus Suomi]]
* [[:heande:Radon sisäilma altistus Suomi]]
* [[:op_en:Radon]]
* [[:op_en:Radon]]
* [[Suomen kunnat]]
* [[Suomen kunnat]]
* [[Radon sisäilmassa]]
* [[Radon sisäilmassa]]
* [[Talotyypit Suomessa]]


[[Luokka:Radon]]
[[Luokka:Radon]]

Versio 15. marraskuuta 2013 kello 14.26





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

  • Ikävakioitu (maailman standardiväestöön) syöpäkuolleisuus 100 000 henkilövuotta kohden vuosina 2005-2009 primaaripaikoittain ja sairaanhoitopiireittäin. Keuhkosyöpä miehet [1] naiset [2]
  • Päivittäin tupakoivien osuus Suomessa: Tupakoivat [3]
  • Tupakan annosvaste: UK: päivittäin tupakoivia 22 % Miehet, 20 % Naiset. Tämä aiheuttaa 88 % ja 84 % keuhkosyövistä vastaavasti. [4] 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ä.)

Katso myös

Viitteet


Aiheeseen liittyviä tiedostoja

<mfanonymousfilelist></mfanonymousfilelist>