%negloglike calc for statespace model
function NNL = hierarch_like2(theta,rlist,nrlist,year,meanest,numzones,numspps,dtlist,tlist)
t = size(theta,1);
%break the param vector back up into components for like calc
p.a = theta(1:numzones*numspps,1);
p.S_g = theta(numzones*numspps+1:numzones*numspps*2,1);
p.err = theta(numzones*numspps*2+1:numzones*numspps*3,1);
p.R_t = theta(numzones*numspps*3+1:numzones*numspps*3+sum(tlist),1);
p.R_nt = theta(numzones*numspps*3+sum(tlist):t-4,1);
p.R_t_hat = theta(t-3);
p.R_t_hat_err = theta(t-2);
p.R_nt_hat = theta(t-1);
p.R_nt_hat_err = theta(t);
datasize = size(meanest,1);
NNL=0;
y=zeros(datasize,1);
E = zeros(datasize,1);%vector of errors for use in normlike below
for i = 0:numzones-1
for j=1:numspps
if dtlist(i*numspps+j)==1
%now do regression calcs in reserves for TARGETED SPPS
y(rlist(i*numspps+j,2):rlist(i*numspps+j,3),1) = ...
p.a(i*numspps+j) + year(rlist(i*numspps+j,2):rlist(i*numspps+j,3)) .* (p.S_g(i*numspps+j)+ p.R_t(sum(tlist(1:j))));
%now spread out error terms across data bins
E(rlist(i*numspps+j,2):rlist(i*numspps+j,3),1) = p.err(i*numspps+j);
%now do regression calcs outside reserves for TARGETED SPPS
y(nrlist(i*numspps+j,2):nrlist(i*numspps+j,3),1) = ...
p.a(i*numspps+j) + year(nrlist(i*numspps+j,2):nrlist(i*numspps+j,3)).* (p.S_g(i*numspps+j));
E(nrlist(i*numspps+j,2):nrlist(i*numspps+j,3),1) = p.err(i*numspps+j);
else
%now do regression calcs in reserves FOR NON-TARGETED SPPS
y(rlist(i*numspps+j,2):rlist(i*numspps+j,3),1) = ...
p.a(i*numspps+j) + year(rlist(i*numspps+j,2):rlist(i*numspps+j,3)).* (p.S_g(i*numspps+j)+ p.R_nt(sum(tlist(1:j))));
E(rlist(i*numspps+j,2):rlist(i*numspps+j,3),1) = p.err(i*numspps+j);
%now do regression calcs outside reserves FOR NON-TARGETED SPPS
y(nrlist(i*numspps+j,2):nrlist(i*numspps+j,3),1) = ...
p.a(i*numspps+j) + year(nrlist(i*numspps+j,2):nrlist(i*numspps+j,3)).* (p.S_g(i*numspps+j));
E(nrlist(i*numspps+j,2):nrlist(i*numspps+j,3),1) = p.err(i*numspps+j);
end
end
end
q=normpdf(meanest,y,E) + 1e-300;
rt=normpdf(p.R_t,ones(size(p.R_t,1),1)*p.R_t_hat,ones(size(p.R_t,1),1)*p.R_t_hat_err);
rnt=normpdf(p.R_nt,ones(size(p.R_nt,1),1)*p.R_nt_hat,ones(size(p.R_nt,1),1)*p.R_nt_hat_err);
NNL=sum(-log(q))+sum(-log(rt))+sum(-log(rnt));
%NNL = normlike([y,E],meanest); %calc regression specific NNL
%note that err may need to be fixed!!!!!!!!!! Currently shared by the same
%species in both reserve and non reserve sites. this is probably not right