R-hjelp
til exercise 14 i BSS
#
Les dataene inn i en dataramme, gi navn
til variablene i datarammen og se p� dataene:
kreft<-read.table("http://www.math.uio.no/avdc/kurs/STK4900/data/cancer.dat")
names(kreft)<-c("alder","sig","pyr","cancer")
kreft
#
Dataene i denne oppgaven er de samme som
de som er gitt p� side 80 i BS.
# Men her er det gitt alder i stedet for alder-20. (Det
er en trykkfeil i oppgaven n�r
det
#
der snakkes om "years of cigarette
smoking" i stedet for
alder.).
#
Gj�r variablene i datarammen tilgjengelige:
attach(kreft)
#
PUNKTENE 1 & 2)
# Vi ser f�rst p� modellen E(Y) = n*exp{b0+b1*s+b2*a}, der
#����� Y=antall krefttilfeller (=cancer),
#������ n=antall person�r (= pyr),
# ������s=antall sigaretter per dag (=sig)
#����� �a = alder i �r (=alder)
# Vi kan skrive modellen p� formen E(Y])= exp{1*log(n)+b0+b1*s+b2*a}.
# Alts� inng�r log(n) som en slags "kovariat" der vi vet at regresjonskoeffisienten har verdien 1.
# Dette kalles en OFFSET.
# Vi tilpasser denne modellen og ser p� resultatet:
kreftfit.1<-glm(cancer~offset(log(pyr))+alder+sig, family=poisson)
summary(kreftfit.1)
# Pass p� at du forst�r outputen.
# Er det signifikant effekt av alder og antall sigaretter?
# Det er vanlig � rapportere resultatene av en Poisson regresjon ved �hjelp av
# relativ risiko RR = exp(beta) samt konfidensintervall for relativ risiko. �
# R gj�r ikke dette direkte og vi definerer derfor en funksjon som lager denne tabellen.
# (Funksjonen kan ogs� brukes til � lage tabeller over odds ratio OR for logistisk regresjon.)
# Kopier funksjonen og lim den inn i R:
RRCI<-function(glmobj)
{
� regtab<-summary(glmobj)$coef
� RR<-exp(regtab[,1])
� RRL<-RR*exp(-1.96*regtab[,2])
� RRU<-RR*exp(1.96*regtab[,2])
� cbind(RR,RRL,RRU)
}
# Bruk funksjonen til � beregne relative risker for alder og antall sigaretter
# (og rund av svarene til tre desimaler)
round(RRCI(kreftfit.1),3)
#
Gi en fortokning av hva tabellen
sier deg om
effekten av alder og antall sigaretter
#
PUNKT 3)
#
Vi ser s� p� en modell med andreordens ledd og interaksjon:
kreftfit.3<-glm(cancer~offset(log(pyr))+ alder+I(alder^2)+sig+I(sig^2)+alder:sig, family=poisson)
#
Reduser modellen ved � fjerne
(trinnvis) eventuelle ikke-signifikante kovarter.
#
(Bruk Wald tester fra summary-kommandoen
og/eller devianser fra anova-kommandoen.)
#
Diskuter fortolkningen av den modellen du kommer fram
til.
#
TILLEGGSSP�RSM�L:
# Sigaretter og alder er oppgitt til � ligge i intervaller. Vi kan derfor alternativt
# oppfatte dem som kategoriske variable. En slik modell kan tilpasses med kommanoden
kreftfit.t<-glm(cancer~offset(log(pyr))+factor(alder)+factor(sig), family=poisson)
#
Gi en fortolkning av denne modellen.
(Bruk gjerne
funksjonen RRCI.)
#
Diskuter hvordan modellen
#
i punkt
3 gir en rimelig god tilpassning til dataene.