Klasseaktiviteter Dag 4

Relaterede dokumenter
Løsning til øvelsesopgaver dag 4 spg 5-9

Klasseøvelser dag 2 Opgave 1

Løsning til eksamensopgaven i Basal Biostatistik (J.nr.: 1050/06)

Lineær og logistisk regression

Vi ønsker at konstruere normalområder for stofskiftet, som funktion af kropsvægten.

Det kunne godt se ud til at ikke-rygere er ældre. Spredningen ser ud til at være nogenlunde ens i de to grupper.

Analysestrategi. Lektion 7 slides kompileret 27. oktober :24 p.1/17

MPH specialmodul Epidemiologi og Biostatistik

To samhørende variable

Kursus 02323: Introducerende Statistik. Forelæsning 8: Simpel lineær regression. Peder Bacher

Statistik Lektion 4. Variansanalyse Modelkontrol

1 Hb SS Hb Sβ Hb SC = , (s = )

Anvendt Statistik Lektion 7. Simpel Lineær Regression

Udleveret 1. oktober, afleveres senest ved øvelserne i uge 44 (29. oktober-1. november)

Kursus 02402/02323 Introducerende Statistik

Vi vil analysere effekten af rygning og alkohol på chancen for at blive gravid ved at benytte forskellige Cox regressions modeller.

Løsning til eksaminen d. 14. december 2009

Oversigt. 1 Motiverende eksempel: Højde-vægt. 2 Lineær regressionsmodel. 3 Mindste kvadraters metode (least squares)

Faculty of Health Sciences. Regressionsanalyse. Simpel lineær regression, Lene Theil Skovgaard. Biostatistisk Afdeling

Anvendt Statistik Lektion 8. Multipel Lineær Regression

Lineær regression i SAS. Lineær regression i SAS p.1/20

Lineær regression. Simpel regression. Model. ofte bruges følgende notation:

Epidemiologi og biostatistik. Uge 3, torsdag. Erik Parner, Institut for Biostatistik. Regressionsanalyse

Multipel Lineær Regression

Økonometri: Lektion 7 Emne: Prædiktionsintervaller, RESET teset, proxy variable og manglende data.

Forelæsning 11: Kapitel 11: Regressionsanalyse

Oversigt. 1 Gennemgående eksempel: Højde og vægt. 2 Korrelation. 3 Regressionsanalyse (kap 11) 4 Mindste kvadraters metode

Statistik og Sandsynlighedsregning 2. IH kapitel 12. Overheads til forelæsninger, mandag 6. uge

Faculty of Health Sciences. Logistisk regression: Kvantitative forklarende variable

Epidemiologi og biostatistik. Uge 3, torsdag. Erik Parner, Afdeling for Biostatistik. Eksempel: Systolisk blodtryk

Normalfordelingen. Statistik og Sandsynlighedsregning 2

12. september Epidemiologi og biostatistik. Forelæsning 4 Uge 3, torsdag. Niels Trolle Andersen, Afdelingen for Biostatistik. Regressionsanalyse

6. SEMESTER Epidemiologi og Biostatistik Opgaver til Uge 1 (fredag)

Opgavebesvarelse, brain weight

enote 5: Simpel lineær regressions analyse Kursus 02402/02323 Introducerende Statistik Oversigt

Multipel regression. M variable En afhængig (Y) M-1 m uafhængige / forklarende / prædikterende (X 1 til X m ) Model

Træningsaktiviteter dag 3

Basal statistik for sundhedsvidenskabelige forskere, efterår 2014 Udleveret 30. september, afleveres senest ved øvelserne i uge 44 (

1 Regressionsproblemet 2

Modelkontrol i Faktor Modeller

men nu er Z N((µ 1 µ 0 ) n/σ, 1)!! Forkaster hvis X 191 eller X 209 eller

Opgaver til kapitel 3

Besvarelse af opgave om Vital Capacity

For at få 8 linjer ud, skal dette specifiseres i kommandoen ved at sætte antal lig 8 n=8:

Mindste kvadraters tilpasning Prædiktion og residualer Estimation af betinget standardafvigelse Test for uafhængighed Konfidensinterval for hældning

Modul 6: Regression og kalibrering

Program. Modelkontrol og prædiktion. Multiple sammenligninger. Opgave 5.2: fosforkoncentration

Program. Konfidensinterval og hypotesetest, del 2 en enkelt normalfordelt stikprøve I SAS. Øvelse: effekt af diæter

3.600 kg og den gennemsnitlige fødselsvægt kg i stikprøven.

Økonometri: Lektion 5. Multipel Lineær Regression: Interaktion, log-transformerede data, kategoriske forklarende variable, modelkontrol

Morten Frydenberg 14. marts 2006

Basal statistik for lægevidenskabelige forskere, forår Udleveret 12. februar, afleveres senest ved øvelserne i uge 10 (6.-9.

Løsning eksamen d. 15. december 2008

Normalfordelingen. Det centrale er gentagne målinger/observationer (en stikprøve), der kan beskrives ved den normale fordeling: 1 2πσ

Skriftlig Eksamen ST501: Science Statistik Mandag den 11. juni 2007 kl

Statistik II 4. Lektion. Logistisk regression

Besvarelse af juul2 -opgaven

Morten Frydenberg 26. april 2004

Reeksamen i Statistik for biokemikere. Blok

Filen indeholder 45 linier, først en linie med variabelnavnene (bw og rmr) og derefter 44 datalinier, hver med disse to oplysninger.

1 Ensidet variansanalyse(kvantitativt outcome) - sammenligning af flere grupper(kvalitativ

Basal Statistik - SPSS

Hvad skal vi lave? Model med hovedvirkninger Model med vekselvirkning F-test for ingen vekselvirkning. 1 Kovariansanalyse. 2 Sammenligning af modeller

Phd-kursus i Basal Statistik, Opgaver til 1. uge Opgave 1: Sundby

6. SEMESTER Epidemiologi og Biostatistik Opgaver til Uge 1 (fredag)

Opgavebesvarelse, brain weight

Øvelser til basalkursus, 2. uge

Basal statistik for sundhedsvidenskabelige forskere, efterår 2015 Udleveret 29. september, afleveres senest ved øvelserne i uge 44 (

Statistik Lektion 16 Multipel Lineær Regression

Normalfordelingen. Statistik og Sandsynlighedsregning 2

Simpel Lineær Regression

Statistik og Sandsynlighedsregning 2. Repetition og eksamen. Overheads til forelæsninger, mandag 7. uge

grupper(kvalitativ exposure) Variation indenfor og mellem grupper F-test for ingen effekt AnovaTabel Beregning af p-værdi i F-fordelingen

Økonometri Lektion 1 Simpel Lineær Regression 1/31

Basal statistik for lægevidenskabelige forskere, forår 2012 Udleveret 6.marts, afleveres senest ved øvelserne i uge 15 (

Statistik Lektion 17 Multipel Lineær Regression

Program: 1. Repetition: p-værdi 2. Simpel lineær regression. 1/19

Filen indeholder 45 linier, først en linie med variabelnavnene (bw og rmr) og derefter 44 datalinier, hver med disse to oplysninger.

Basal Statistik. Simpel lineær regression. Simpel lineær regression. Data. Faculty of Health Sciences

Kvadratisk regression

I dag. Statistisk analyse af en enkelt stikprøve: LR test og t-test, modelkontrol, R Sandsynlighedsregning og Statistik (SaSt)

Lineære sammenhænge, residualplot og regression

Eksamen i Statistik for biokemikere. Blok

Basal Statistik. Simpel lineær regression. Simpel lineær regression. Data. Faculty of Health Sciences

Faculty of Health Sciences. Basal Statistik. Regressionsanalyse i R. Lene Theil Skovgaard. 25. februar 2019

Anvendt Statistik Lektion 9. Variansanalyse (ANOVA)

Basal Statistik - SPSS

Opgave 11.4 side 316 (7ed: 11.4, side 352 og 6ed: 11.2, side 345)

Program. 1. Varianskomponent-modeller (Random Effects) 2. Transformation af data. 1/12

Kvantitative metoder 2

Anvendt Statistik Lektion 9. Variansanalyse (ANOVA)

Økonometri: Lektion 6 Emne: Heteroskedasticitet

Muligheder: NB: test for µ 1 = µ 2 i model med blocking ækvivalent med parret t-test! Ide: anskue β j som stikprøve fra normalfordeling.

Opgavebesvarelse, brain weight

Generelle lineære modeller

UNDERVISNINGSEFFEKT-MODELLEN 2006 METODE OG RESULTATER

Løsning til eksamen d.27 Maj 2010

Basal Statistik - SPSS

Eksamen ved. Københavns Universitet i. Kvantitative forskningsmetoder. Det Samfundsvidenskabelige Fakultet

Uge 43 I Teoretisk Statistik, 21. oktober Forudsigelser

Transkript:

Klasseaktiviteter Dag 4 Bemærk at jeg i denne løsning ikke altid har output med. Tanken er, at I skal se løsningen og selv prøve at køre kommandoerne (og dermed undgår jeg også at dette dokument bliver alt for langt). Opgave 1 1.1 Vi indlæser rmr.dbf data i R: library( foreign ) d <- read.dbf( 'rmr.dbf' ) head( d ) Og undersøger for en god ordens skyld for manglende observationer: summary( d ) Der er ingen missing values. 1.2 Vi er interesseret i at modellere stofskifte som funktion af kropsvægten. Derfor bliver rmr vores respons (Y) og bw vores forklarende variabel (X). Plottet laves med: plot(d$bw, d$rmr, xlab="body weight", ylab="resting metabolic rate" )

1.3 Vi formulerer en model for at beskrive forholdet mellem kropsvægt og stofskifte. Da plottet viser en lineær trend, fitter vi rmr som en lineær funktion af body weight: lm1 <- lm( rmr ~ bw, data=d ) summary( lm1 ) Vi finder et intercept på 811.23 med tilhørende SE på 76.98. Interceptet svarer til middelværdien vi får ved at ekstrapolere regressionslinien til en person med en body weight på 0 og har derfor ikke nogen fortolkning. Vi får en hældning på 7.06 kcal pr. dag pr. kilo med tilhørende SE på 0.98. Effekten af kropsvægt er højsignifikant, da p-værdien er mindre end 0.0001. Konfidensintervallet bestemmes ved kommandoen confint(): confint( lm1 ) Dvs for hvert ekstra kilo øges RMR med 7.06 kcal pr dag, 95% CI (5.09;9.03 ), p<.0001. 1.4 Vi tilføjer den prædikterede regressionslinje, samt konfidensintervallet til plottet i opgave 1.2. Først skal vi definere en dataframe med den forklarende variabel, som er bw. Vi er interesserede i

at få fittet en linje over det samme body weight interval som tidligere og benytter kommandoen range, til at finde dette interval. range( d$bw ) Intervallet for bw er (43.1;143.3) og vi laver derfor en dataframe som indeholder en bw-variabel som løber fra 43 til 143. newbw <- data.frame( bw=43:143 ) Vi kan nu regne konfidens- og prædiktionsintervallet ved brug af predict: clim <- predict(lm1, newbw, interval="confidence") plim <- predict(lm1, newbw, interval="prediction") Og vi plotter disse op mod vores data ved hjælp af plot() og matlines(): plot( d$rmr~d$bw, xlab="body weight", ylab="resting metabolic rate" ) matlines( newbw$bw, clim, lty=c(1,2,2), col=c(1,"red","red") ) matlines( newbw$bw, plim, lty=c(1,2,2), col=c(1,"blue","blue") ) 1.5 For at finde det forventede stofskifte for en kvinde med en vægt på 70 kg kan vi igen benytte predict(). Først skal vi danne et nyt datasæt ved brug af data.frame(), hvor den forklarende variabel sættes lig 70.

bw70 <- data.frame( bw=70 ) predict( lm1, bw70, interval="confidence" ) Her er den første værdi fit prædikteret RMR for en kvinde på 70 kg. Mere lavpraktisk kunne man indsætte tallet 70 i sin estimerede regressionsmodel: 811.2267+7.0595*70 og få det samme resultat. For at konkludere om der er en forskel i stofskifte for mænd og kvinder med en vægt på 70 kg kan vi sammenligne deres konfidensintervaller. Konfidensintervallet for kvinder på 70 kg findes til (1256.40; 1354.40) kcal/dag, mens konfidensintervallet for mænd på 70 kg er oplyst at være (1360;1452) kcal/dag. Da intervallerne ikke overlapper er der forskel på det gennemsnitlige stofskifte for mænd og kvinder på 70 kg. Denne sammenligning kan også besvares ud fra plottet i samme opgave, hvor vi tilføjer et punkt (et grønt +) som angiver det nedre konfidensinterval for mænd. plot( d$rmr~d$bw, xlab="body weight", ylab="resting metabolic rate" ) matlines( newbw$bw, clim, lty=c(1,2,2), col=c(1,"red","red")) matlines( newbw$bw, plim, lty=c(1,2,2), col=c(1,"blue","blue")) points( 70, 1360, pch=3, col='green' )

Uden den helt store nøjagtighed kan vi se at den nedre grænse for mænds konfidensinterval ikke ligger i kvinders konfidensinterval. 1.6 Vi bestemmer den prædikterede RMR for en kvinde på 80 kg. For at få finde et 95%-prædiktionsinterval (normalområde) for rmr skriver vi interval="prediction" i vores predict-kommando. bw80 <- data.frame( bw=80 ) predict( lm1, bw80, interval="prediction" ) Estimatet for en kvinde på 80 kg er 1375.99 kcal/dag med et prædiktionsinterval på (1053.56;1698.41). Med en rmr på 950 kcal pr. dag ligger kvinden uden for vores 95% interval. Hun bliver derfor diagnosticeret med et for lavt stofskifte. Vi ser på plottet med prædiktionsintervallet og ser at bredden på vores prædiktionsinterval er over 500 ligegyldigt hvilken vægt kvinden har. Grænserne ser ret konstante ud og for vores kvinde på 80 kg er bredden af prædiktionsintervallet 1698.4-1053.6=644.8 kcal/dag. Vi kan derfor ikke have en nøjagtighed på +/-250 kcal/dag. Vores prædiktionsgrænser giver et billede af spredningen for vores variabel (her rmr) og det vil derfor ikke være muligt at få et smallere prædiktionsinterval, fordi denne spredning er 'biologisk'. Også selvom vi får flere kvinder med i forsøget. 1.7 Vi evaluerer vores models antagelser (normalitet, linearitet og homogenitet): Vi starter med at vurdere normaliteten og laver et QQ-plot: plot( lm1, which=2, pch=19)

Der er muligvis en svag hængekøjeform (som muligvis kan forbedres ved at logaritmetransformere rmr). For at undersøge den lineære antagelse laver vi et plot af residualerne mod den forklarende variabel. Idet vi kun har en variabel i spil her, er det det samme som at plotte residualerne som funktion af de fitted værdier / prædiktionerne (dvs i stedet for som funktion af bw plotter vi som funktion af bw, dvs det er bare en anden skala). plot( lm1, which=1, pch=19 )

Men vi kunne lave plottet selv som funktion af bw ved at benytte residualerne og selv lave plottet vha. scatter.smooth()-kommandoen: scatter.smooth( residuals(lm1) ~ d$bw, lpars=list(col='red',lwd=2) ) abline( h=0, col='grey', lwd=.5 )

Der er lidt støj i halerne, men det er forventeligt, da data er tyndt besat her og kurven derfor bliver usikkert bestemt. Plottet af residualerne mod fittede værdier ovenfor benyttes til at vurdere homogeniten og her er der ikke umiddelbart nogle tegn på afvigelser. Vi kan supplere vurderingen af linearitet ved et kvadratledstest: d$bw2 <- d$bw^2 lm2 <- lm( rmr ~ bw + bw2, data=d) summary(lm2) Med en p-værdi på 0.46 er der ikke noget tegn på, at associationen mellem body weight og rmr ikke skulle være lineær. Opgave 2 2.1 Vi indlæser data og undersøger, om der er nogle missing values: d <- read.dbf('vitamind.dbf') summary(d)

Da der ikke er angivet NA's for nogle af variablene i ovenstående summary, har vi altså ikke nogen missing values. Antallet af deltagere fra hvert land fås med table(d$country) dvs 54 finske og 65 polske kvinder. 2.2 For hvert land laver vi en illustration af associationen mellem BMI og vitamin D. Vi sørger for at gøre plottene sammenlignelige ved at vælge samme x- og y-akse og sætte plottene ved siden af hinanden med par(mfrow=c(1,2)) dfi <- subset(d, country==2) dpo <- subset(d, country==6) par(mfrow=c(1,2)) scatter.smooth( dfi$vitd ~ dfi$bmi, pch=19, xlim=c(18,44),ylim=c(0,100), lpars=c(lwd=2,col=2)) scatter.smooth( dpo$vitd ~ dpo$bmi, pch=19, xlim=c(18,44),ylim=c(0,100), lpars=c(lwd=2,col=4) )

Associationen ser meget lineær ud for Finland, hvorimod den for Polen ikke er helt så entydig. Vi noterer også, at spredningen ser ud til at være større for de finske kvinder. 2.3 Vi udfører en simpel lineær regression for hvert land for sig og husker også at bestemme konfidensinterval: lm0.fi <- lm( vitd ~ bmi, data=dfi ) summary(lm0.fi) confint(lm0.fi) lm0.po <- lm( vitd ~ bmi, data=dpo ) summary(lm0.po) confint(lm0.po) I begge tilfælde ser vi en negativ association, som dog ikke er signifikant. Vi undersøger om antagelsen om normalfordeling, varianshomogenitet og linearitet er opfyldt for hvert land for sig: Finland: par(mfrow=c(1,2)) plot(lm0.fi,which=2) plot(lm0.fi,which=1) Polen: par(mfrow=c(1,2)) plot(lm0.po,which=2) plot(lm0.po,which=1) Begge qq-plots er nydelige, mens der er lidt slinger i residualplottet for Polen. Der er dog ikke tegn på, at variansen falder eller stiger med værdien af de fittede (prædikterede) værdier, hvorfor varianshomogeniteten ikke ser ud til at kunne anfægtes. At kurven krummer kan skyldes, at associationen mellem BMI og vitamin D muligvis ikke er lineær som funktion af BMI for de polske kvinder (jvf scatter plottet ovenfor). Denne afvigelse er dog næppe signifikant. Vi supplerer med et formelt test for linearitet for hver gruppe (bemærk her at jeg ikke definerer kvadratet på BMI i datasættet, men sætter R til selv at regne den ud i lm() ved at sætte et I() omkring): summary( lm( vitd ~ bmi+i(bmi*bmi), data=dfi ) ) summary( lm( vitd ~ bmi+i(bmi*bmi), data=dpo ) ) Bemærk at et andengradspolynomie ikke er den bedste funktion til at finde en afvigelse fra linearitet for de polske kvinder grundet de to kvinder med meget høj BMI og meget lav vitamin D.

2.4 Vi laver nu en illustration af de to estimerede regressionslinier. Igen stiller vi plottene ved siden af hinanden, så linierne er lettere at sammenligne: par(mfrow=c(1,2)) plot( dfi$vitd ~ dfi$bmi, pch=19, xlim=c(18,44),ylim=c(0,100) ) abline( lm0.fi, lwd=2, col=2 ) plot( dpo$vitd ~ dpo$bmi, pch=19, xlim=c(18,44),ylim=c(0,100) ) abline( lm0.po, lwd=2, col=4 ) Vi ser at linierne ser nogenlunde parallelle ud, men at linien for de finske kvinder ser ud til at ligge højere. 2.5 Vi formulerer nu en multivariabel model på det samlede materiale. Land er en kvalitativ variabel og skal derfor indgå som en faktor. lm1 <- lm( vitd ~ factor(country)+bmi, data=d ) summary(lm1) Vi bemærker at der er en forskel på 15 i vitamin D niveauet mellem de to lande (Polen ligger lavest). Forskellen er højsignifikant. Vi bemærker også, at hældningen nu er blevet signifikant -

vitamin D falder med 0.78 for en stigning af BMI på 1. Det skyldes, at vi nu kan estimere hældningen pba et større materiale, end når vi ser på hvert materiale for sig. Husk konfidensintervaller her når tallene rapporteres! En anden måde at fitte modellen på er ved at lave en dummy-variabel for land. En dummyvariabel er en variabel, som kun har kode 0 og 1. For en sådan variabel er det ligegyldigt om vi betragter den som kvantitativ og laver regression på den eller sætter den ind i analysen som en faktor (hvorfor??). Hvis vi vil have Finland som reference kan vi definere d$polen <-0 d$polen[ d$country==6 ] <- 1 og derefter benytte denne variabel som en regressionsvariabel: lm1a <- lm( vitd ~ polen+bmi, data=d ) summary(lm1a) Vi får samme resultat, hvis vi sætter factor() omkring Polen (fordi laveste niveau 0 bliver referencen). 1. Sammenligning af en finsk og en polsk kvinde hver med et BMI på 25: a+c*25 - (a+b+c*25) = -b = 14.95 således at den finske har et forventet vitamin D niveau som er 15 enheder højere end den finske. Vi kan lave den samme sammenligning for to kvinder hver især med et BMI på 30 - og får igen de 14.95. 2. Sammenligning af to finske kvinder med BMI på hhv 25 og 30: a+c*30 - (a+c*25) = 5*c = 5*(-.78) = -3.92. Dvs den 'tykke kvinde' har et forventet vitamin D niveau som er 3.9 lavere end den 'normalvægtige kvinde'. 3. Samme sammenligning for Polske kvinder: a+b+c*30 - (a+b+c*25) = 5*c = 5*(-.78) = -3.92. 2.6 Vi inkluderer nu også alder i modellen: lm3 <- lm( vitd ~ factor(country) + bmi +age, data=d ) summary(lm3) og ser at der - justeret for land og bmi - ikke er nogen association mellem alder og vitamin D niveau. 2.7 Vi har antaget, at både alder og BMI kan indgå lineært i modellen. Vi har ovenfor undersøgt BMi for hvert land for sig i en model hvor vi ikke to højde for alder. Vi udfører nu et check baseret på hele materialet. Vi ser derfor på residualplottene:

scatter.smooth( residuals(lm3) ~ d$bmi, lpars = c(lwd=2) ) scatter.smooth( residuals(lm3) ~ d$age, lpars = c(lwd=2) )

hvor vi ikke ser nogen tydelig tendens til krumninger (måske lidt slinger for BMI (som nok stammer fra de polske kvinder)). Vi supplerer med kvadratledstest (her tilføjes begge kvadratled på en gang, og vi forsøger at fjerne dem en af gangen): lm4 <- lm( vitd ~ factor(country) + bmi + age + I(age*age) + I(bmi*bmi), data=d ) summary( lm4 ) og ser at vi må fjerne kvadratleddet for alder med p=0.85. lm5 <- lm( vitd ~ factor(country) + bmi + age + I(bmi*bmi), data=d ) summary( lm5 ) Heller ingen problemer med lineariten for BMI. Vores endelige model er derfor den, hvor både alder og BMI indgår lineært (lm3). 2.8 Vi vil nu prædiktere en regressionsline for polske kvinder på 72 år. Vi illustrerer den for passende valgte BMI-værdier, her mellem 20 og 40 (skal helst passe med data range, så vi ikke ekstrapolerer vores model): pdata <- data.frame( age=72, country=6, bmi=20:40) p1 <- predict( lm3, newdata=pdata, interval='prediction') p2 <- predict( lm3, newdata=pdata, interval='confidence')

plot( 20:40, p1[,1], ylim=c(-20,100), type='l') matlines( 20:40, p1, lwd=2, col=c(1,2,2), lty=1) matlines( 20:40, p2, lwd=2, col=c(1,4,4), lty=2) Vi ser, at referenceområdet i den tunge ende af BMI-skala'en ryger under 0. Det giver selvfølgelig ikke mening, da man ikke kan have negative vitamin D niveauer. En måde at undgå dette på er ved at logaritme-transformere outcome. Når man regner tilbage til den oprindelige skala med antilog (potens) får man altid noget positivt. Vi kan prøve: d$logvitd <- log(d$vitd) lm3a <- lm( logvitd ~ factor(country) + bmi +age, data=d ) p1 <- exp( predict( lm3a, newdata=pdata, interval='prediction') ) p2 <- exp( predict( lm3a, newdata=pdata, interval='confidence') ) plot( 20:40, p1[,1], ylim=c(-20,100), type='l') matlines( 20:40, p1, lwd=2, col=c(1,2,2), lty=1) matlines( 20:40, p2, lwd=2, col=c(1,4,4), lty=2) abline( h=0, col='gray')

og ser at referenceområdet nu holder sig pænt over 0. NB: Selve den prædikterede kurve (den sorte) kan ikke længere fortolkes som en middelværdi - men svarer faktisk til medianen! Undersøger du hvordan modellen passer med logaritmetransformationen, vil du se at normalfordelingsantagelsen bliver problematisk. Og derfor giver referenceområdet ikke mening, fordi dette beregnes under forudsætningen af en normalfordeling. Vi kan derfor ikke lave et fornuftigt referenceområde på baggrund af nogle af disse modeller! Opgave 3 # 3.2 d0 <- read.dbf('framingham.dbf') d <- subset( d0, sex==1 ) # 3.3 scatter.smooth( d$sbp ~ d$chol, lpars = c(lwd=2, col='red') ) scatter.smooth( d$sbp ~ d$age, lpars = c(lwd=2, col='red') ) # 3.4 lm1 <- lm( sbp ~ age+chol, data=d) summary(lm1) confint( lm1 ) # CI for icp (age) indeholder 80.35 (.49) -> ingen signifikant forskel

# Nedre grænse CI chol fra artiklen.166-1.96*.043=0.08. Dvs CI'erne overlapper i halen # Supplerer derfor med et formelt test: T=(0.05605-0.166) / sqrt( 0.02243^2 + 0.0433^2 ) 2*pnorm( T ) # og vi må afvise at hældningerne er ens / de har en større hældning end vores. # Vi ved intet om populationerne og kan derfor ikke diskutere hvorfor # 3.5 lm2 <- lm( sbp ~ I(age/10)+chol, data=d) summary(lm2) # 3.6 plot( lm1, which=2 ) plot( lm1, which=1 ) scatter.smooth( residuals(lm1) ~ d$chol, lpars = c(lwd=2, col='red') ) scatter.smooth( residuals(lm1) ~ d$age, lpars = c(lwd=2, col='red') ) # lav også gerne kvadratledstest... # 3.7 lm3 <- lm( log(sbp) ~ I(age/10)+chol, data=d) plot( lm3, which=2 ) # lidt bedre men absolut ikke perfekt plot( lm3, which=1 ) # også lidt bedre (ikke så tæt i bunden / ikke så flagrende værdier for oven) scatter.smooth( residuals(lm3) ~ d$chol, lpars = c(lwd=2, col='red') ) scatter.smooth( residuals(lm3) ~ d$age, lpars = c(lwd=2, col='red') ) # og kvadratledstest her... # Effekter omregnet til procent (4.87% hhv 0.04%) 100*( exp(coef(lm3))-1 ) # effekten af chol er meget lille: men det giver ikke mening at omregne fra mmol/l til mol/l # fordi chol-skalaen derved sprænges (max værdi er 386) 100*( exp(confint(lm3))-1 ) # 3.8 # Jeg ville vælge log, fordi modellen passer en anelse bedre. Omvendt er det måske # standard i litteraturen ikke at bruge log - i så fald er det et godt argument # for at lade være, fordi forbedringen med log ikke var stor