R-funksjon for kryssvalidert R2 (se sidene 49-52 i BS)

 

 

# Nedenfor er det gitt en funksjon som beregner kryssvalidert R2 (se sidene 49-52 i BS)

# Kopier komandoene og lim dem inn i komandovinduet til R:

 

kryssvalidR2<-function(lmobj,y=lmobj$y,x=lmobj$x)

{

a=t(x)%*%x

d=diag(1/eigen(a)$values)

e=eigen(a)$vector

inv.a=e %*% d %*% t(e)

v<-diag(x%*%inv.a%*%t(x))

SSkryss<-sum((lmobj$res/(1-v))^2)

SStot<-sum((y-mean(y))^2)

R2kryss<-1-SSkryss/SStot

R2kryss

}

 

 

# For bruke funksjonen tilpasser du f�rst en line�r regresjonsmodell ved

# en kommando av formen lmobj<-lm(y~x1+x2+x3+x4+x5, x=T, y=T)

# (merk at du m� ha med opsjonene "x=T" og "y=T")

# S� beregner du kryssvalidert R2 ved kommandoen kryssvalidR2(lmobj)