library(faraway) par(mfrow=c(1,3)) #vidi ?exa plot (y ~ x, exa, main="Primjer A") lines(m ~ x, exa) #vidi ?exb plot(y ~ x, exb, main="Primjer B") lines(m ~ x, exb) #vidi ?faithful plot(waiting ~ eruptions, faithful,main="old Faithful") ######### gcv za loess S_diag <- function(x1, sp, d){ ## za kovarijate x1 i span=s, vraca dijagonalu ## matrice S koja zadovaljava y_hat=Sy, ## za vektor odziva y, pri cemu ## koristimo lokalnu polinomijalnu regresiju reda d ## uputa: koristite funkciju loess za specificne odabire ## vektora y n=length(x1) s=matrix(NA, n,n) for (i in 1:n) { ## definiraj y tako da rezultat donje naredbe # zaista bude i-ti stupac matrice S y= s[,i]=loess(y~x1, span=sp, degree=d)$fitted } return(diag(s)) } pomocna_GCV <- function(x1, y1, sp,d){ ## za kovarijate x1 i odzive y1, vraca ## GCV procjenu greske za lokalnu polin. regresiju ## reda d uz span=sp ## uputa: koristite S_diag } mojGCV <- function(x1, y1, span,d){ ## span: niz vrijednosti za parametar span ## funkcija vraca parametar iz span koji daje ## najmanju GCV gresku m = length(span) gcv = rep(0, m) for(i in 1:m){ gcv[i] = pomocna_GCV(x1, y1, span[i],d) } return(span[which.min(gcv)]) } #######