#84. odredjivanje optimalnog h metodom unakrsne provere funkcije verodostojnosti sa Gausovim jezgrom X<-read.table("C:/Users/Marija/Desktop/OPMS/SDSS1.txt") x<-X[,2] n<-length(x) h<-0.9*min(IQR(x)/1.34,sd(x))*n^(-1/5) Kn<-function(t){ return(exp(-t^2/2)/sqrt(2*pi)) } H<-seq(0.25*h,1.5*h,(1.5*h-0.25*h)/100) fh<-matrix(0,length(H),n) #ocene se odredjuju u svakoj tacki x_i for (j in 1:n){ for (i in 1:n){ if(i!=j){ z<-(x[j]-x[i])/H f<-Kn(z) #jezgro u tacki fh[,j]<-fh[,j]+f/(n*H) #ukupna gustina } } } #funkcija koja se maksimizuje: CV(h)=sum(log(f_{-i}(X_i)))/n suma<-rep(0,length(H)) for(i in 1:length(H)){ suma[i]<-sum(log(fh[i,]))/n } plot(H, suma, type = "l") H[which.max(suma)] #ako se maksimum funkcije CV (suma) nalazi na jednoj od granica onda se siri interval na tu stranu #dok se ne dobije lokalni minimum H<-seq(0.05*h,1.5*h,(1.5*h-0.05*h)/100) fh<-matrix(0,length(H),n) for (j in 1:n){ for (i in 1:n){ if(i!=j){ z<-(x[j]-x[i])/H f<-Kn(z) #jezgro u tacki fh[,j]<-fh[,j]+f/(n*H) #ukupna gustina } } } suma<-rep(0,length(H)) for(i in 1:length(H)){ suma[i]<-sum(log(fh[i,]))/n } plot(H, suma, type = "l") H[which.max(suma)]