Noter om R
Noter om R
Noter om R
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
C Polyn<strong>om</strong>iel regression og regressionskurve i R<br />
I afsnit 13 så vi hvordan man i R nemt foretager lineær regression med funktionen lm.<br />
Det er næsten lige så nemt at beregne en polyn<strong>om</strong>iel regressionskurve, for eksempel at finde det<br />
andengradspolyn<strong>om</strong>ium der bedst passer til væksthormonforsøgsdatasættet d (se afsnit 13). Man bruger<br />
igen funktionen lm til at finde de koefficienter c, b og a der bedst passer med y = c + bx + ax 2 hvor y<br />
er Kontrol og x er Tid.<br />
> preg preg<br />
Coefficients:<br />
(Intercept) Tid I(Tid^2)<br />
6.318e+00 -2.801e-03 1.523e-06<br />
Det beregnede andengradspolyn<strong>om</strong>ium preg er y = 6.318−0.002801x + 0.000001523x 2 . I kaldet til<br />
lm betyder funktionen I i R-formlen at Tidˆ2 skal betragtes s<strong>om</strong> en variabel der indgår i den lineære<br />
model, ikke s<strong>om</strong> en specifikation i R’s modelsprog, hvor operatoren ˆ har speciel betydning. Hvis man<br />
inkluderer regneudtryk s<strong>om</strong> variable er det altid sikrest at pakke dem ind i I().<br />
For at indtegne polyn<strong>om</strong>iet på plottet over dataene skal man opbygge en vektor m af x-værdier,<br />
såkaldte “støttepunkter”. For hvert af disse beregnes polyn<strong>om</strong>iets y-koordinat ved hjælp af funktionen<br />
predict. Tilsammen udgør m og værdierne beregnet af predict et sæt (x, y)-koordinater for polyn<strong>om</strong>iet,<br />
og de bruges i funktionen lines til at tilføje polyn<strong>om</strong>iet til dataplottet:<br />
> m lines(m, predict(preg, data.frame(Tid=m)), col="red")<br />
Polyn<strong>om</strong>iel regression med hensyn til polyn<strong>om</strong>ier af højere grad, eller med hensyn til andre transformerede<br />
variable, kan laves på samme måde:<br />
> preg3 lines(m, predict(preg3, data.frame(Tid=m)), col="green")<br />
> logreg lines(m, predict(logreg, data.frame(Tid=m)), col="yellow")<br />
121