w<-c(rep(1,797),rep(2,301),rep(3,77),rep(4,17),rep(5,6),6,7) ### Το παράδειγμα αφορά τη συχνότητα εμφάνισης λέξεων σε ένα κείμενο. #### π.χ. 797 λέξεις εμφανίζονται 1 φορά, 301 λέξεις εμφανίζονται 2 φορές κοκ. ### προσαρμόζουμε περικομμένη Poisson loglikelihood <- function(data,lambda) { logl<-sum(data)*log(lambda)-length(data)*log(exp(lambda)-1)-sum(log(factorial(data))) return(logl) } lambda1 <- seq(0.1,3, by=0.01) loglik=rep(NA, length(lambda1)) for (i in 1:length(lambda1)) { loglik[i]=loglikelihood(w, lambda1[i]) } F<-function(data,lambda){ Fx<-mean(data)-mean(data)*exp(-lambda)-lambda return(Fx) } devF<-function(data,lambda){ dFx<-mean(data)*exp(-lambda)-1 return(dFx) } lambda0<-0.4 test<-3 while (test!=10) { lambda.new<-lambda0-F(w,lambda0)/devF(w,lambda0) if (abs(lambda.new-lambda0)<=10^(-6)) { test<-10} else { print(lambda.new-lambda0) lambda0<-lambda.new } }