f_red =function(pars,peddata){ u1 <- pars[1] u2 <- pars[2] u3 <- pars[3] u4 <- pars[4] u5 <- pars[5] u6 <- pars[6] M <- sum(peddata[16:22]) lambdas <- c(exp(u6),exp(u5),exp(u5),exp(u5),exp(u5), exp(u4),exp(u4+log(2)),exp(u4),exp(u3),exp(u3), exp(u2),exp(u2),exp(u2),exp(u2),exp(u1)) lambdamiss <- c(exp(u1)+exp(u2),exp(u2)+exp(u3), exp(u2)+exp(u4),exp(u2)+exp(u4+log(2))+exp(u5), exp(u3)+exp(u5),exp(u4)+exp(u5),exp(u5)+exp(u6)) sum(log(dpois(peddata[1:15],lambdas)))+ (M>0)*sum(log(dpois(peddata[16:22],lambdamiss))) } ## First order derivative ## df_red = function(pars,peddata){ u1 <- pars[1] u2 <- pars[2] u3 <- pars[3] u4 <- pars[4] u5 <- pars[5] u6 <- pars[6] M <- sum(peddata[16:22]) lambdas <- c(exp(u6),exp(u5),exp(u5),exp(u5),exp(u5), exp(u4),exp(u4+log(2)),exp(u4),exp(u3),exp(u3), exp(u2),exp(u2),exp(u2),exp(u2),exp(u1)) lambdamiss <- c(exp(u1)+exp(u2),exp(u2)+exp(u3), exp(u2)+exp(u4),exp(u2)+exp(u4+log(2))+exp(u5), exp(u3)+exp(u5),exp(u4)+exp(u5),exp(u5)+exp(u6)) c( # dl/du1 sum(peddata[15]-lambdas[15])+(M>0)*(peddata[16]*lambdas[15]/lambdamiss[1]-lambdas[15]), # dl/du2 sum(peddata[11:14]-lambdas[11:14])+(M>0)*sum(peddata[16:19]*lambdas[14:11]/lambdamiss[1:4]-lambdas[14:11]), # dl/du3 sum(peddata[9:10]-lambdas[9:10])+(M>0)*sum(peddata[c(17,20)]*lambdas[10:9]/lambdamiss[c(2,5)]-lambdas[10:9]), # dl/du4 sum(peddata[6:8]-lambdas[6:8])+(M>0)*sum(peddata[c(19,18,21)]*lambdas[c(7,8,6)]/lambdamiss[c(4,3,6)]-lambdas[c(7,8,6)]), # dl/du5 sum(peddata[2:5]-lambdas[2:5])+(M>0)*sum(peddata[19:22]*lambdas[c(5,3,4,2)]/lambdamiss[c(4:7)]-lambdas[c(5,3,4,2)]), # dl/du6 sum(peddata[1]-lambdas[1])+(M>0)*sum(peddata[22]*lambdas[1]/lambdamiss[7]-lambdas[1]) ) }