#1. histogram 
X<-read.table("C:/Users/Marija/Desktop/OPS/suicide.txt")
x<-X$V1
par(mfrow=c(2,2))
n<-length(x)
f<-hist(x, xlim=c(-200,1000), freq = FALSE)

#Sturdzisovo prvilo (Sturges' rule): h=R/(1+log2(n))
broj<-ceiling(1+log2(n)) #ceo deo + 1 
sirina<-diff(range(x)/broj)
breaks<-min(x)+sirina*0:broj
hist(x, breaks = breaks, xlim=c(-200,1000), main="Sturdzesovo pravilo", freq = FALSE)

#Skotovo pravilo (Scott's rule): h=3.5*sd*n^(-1/3)
h1<-3.5*sd(x)*n^(-1/3)
m<-min(x)
M<-max(x)
broj1<-ceiling((M-m)/h1)
breaks<-m+h1*0:broj1
hist(x, breaks = breaks, xlim=c(-200,1000), main="Skotovo pravilo", freq = FALSE)

#Fridman-Diakonisovo pravilo (Freedman-Diaconis rule): h=2*IQR*n^(-1/3)
h2<-2*IQR(x)*n^(-1/3)
broj2<-ceiling((M-m)/h2)
breaks<-m+h2*0:broj2
hist(x, breaks = breaks,xlim=c(-200,1000), main="Fridman-Diakonisovo pravilo", freq = FALSE)

#malo pomeren histogram u odnosu na poslednji
breaks<-m+h2*0:broj2-30
hist(x, breaks = breaks,xlim=c(-200,1000), main="Fridman-Diakonisovo pravilo", freq = FALSE)

#2. naivna ocena
X<-read.table("C:/Users/Marija/Desktop/OPS/oldFaithful.txt")
x<-X$V1
n<-length(x)
par(mfrow=c(2,2))
hist(x, xlim=c(0,6), freq = FALSE)
#histogram po Sturdzisovom pravilu
broj<-ceiling(1+log2(n)) #ceo deo + 1 
sirina<-diff(range(x)/broj)
breaks<-min(x)+sirina*0:broj
hist(x, breaks=breaks, xlim = c(0,6), freq = FALSE)

h<-0.25 #ugladjenost
#jezgro za naivnu ocenu
K<-function(t){
  if(abs(t)<1)
    return(1/2)
  else
    return(0)
}
y<-seq(1,6,0.01) #tacke u kojima se racuna gustina
#ocena gustine
fo<-c()
for(j in 1:length(y)){
  suma<-0
  for(i in 1:n){
    suma<-suma+K((y[j]-x[i])/h)
    fo[j]<-suma/(n*h)
  }
}
plot(y,fo,type="l")



