#************************************************************************************* ###################################################################################### #Paramater-Specific Design Matrix Specification: #User must identify "model" ###################################################################################### #************************************************************************************* model=1; nstd_survival=(nsample-1)*ngroup; nstd_capture=nsample*ngroup; nstd_tagloss=sum((nsample-1):1)*ngroup; nstd_entry=nsample*ngroup; nstd_bstar=nstd_entry; #nstd_release=nsample*ngroup nstd=sum(nstd_survival,nstd_capture,nstd_tagloss,nstd_entry)#nstd_release is also summed into nstd if it is accounted for by the model if(model==1 || model==4)# parameters vary across groups (except bstars, they vary across sample times only) { survival.design<- survival.design_1 survival.design<- as.matrix(survival.design); capture.design<- capture.design_1 capture.design<- as.matrix(capture.design); tagloss.design<- tag.design_1 tagloss.design<- as.matrix(tagloss.design); bstar.design<- bstar_1 bstar.design<- as.matrix(bstar.design); nbeta_survival=ncol(survival.design); nbeta_capture=ncol(capture.design); nbeta_tagloss=ncol(tagloss.design); nbeta_bstar=ncol(bstar.design); nbeta_entry=nbeta_bstar; bflag=0; #31/1/2013 added to determine if b* varies by group for DF count and AIC calc } if(model==2 || model==5)#parameters vary across groups and sample times (bstars vary only across sample times) { survival.design<- survival.design_2 survival.design<- as.matrix(survival.design); capture.design<- capture.design_2 capture.design<- as.matrix(capture.design); tagloss.design<- tag.design_2 tagloss.design<- as.matrix(tagloss.design); bstar.design<- bstar_1 bstar.design<- as.matrix(bstar.design); nbeta_survival=ncol(survival.design); nbeta_capture=ncol(capture.design); nbeta_tagloss=ncol(tagloss.design); nbeta_bstar=ncol(bstar.design); nbeta_entry=nbeta_bstar; bflag=0; } if(model==3 || model==6)#do NOT vary across groups or sample times, (except bstars vary across sample times) { survival.design<- survival.design_3 survival.design<- as.matrix(survival.design); capture.design<- capture.design_3 capture.design<- as.matrix(capture.design); tagloss.design<- tag.design_3 tagloss.design<- as.matrix(tagloss.design); bstar.design<- bstar_1 bstar.design<- as.matrix(bstar.design); nbeta_survival=ncol(survival.design); nbeta_capture=ncol(capture.design); nbeta_tagloss=ncol(tagloss.design); nbeta_bstar=ncol(bstar.design); nbeta_entry=nbeta_bstar; } if(model==7)#do NOT vary across groups, DO vary across sample times (for testing data#2 and data#5 w/o considering group heterogeneity) { survival.design<- survival.design_7; survival.design<- as.matrix(survival.design); capture.design<- capture.design_7 capture.design<- as.matrix(capture.design); tagloss.design<- tag.design_7 tagloss.design<- as.matrix(tagloss.design); bstar.design<- bstar_1 bstar.design<- as.matrix(bstar.design); nbeta_survival=ncol(survival.design); nbeta_capture=ncol(capture.design); nbeta_tagloss=ncol(tagloss.design); nbeta_bstar=ncol(bstar.design); nbeta_entry=nbeta_bstar; bflag=0; } nbeta= sum(nbeta_survival,nbeta_capture,nbeta_tagloss,nbeta_bstar) ###################################################################################### #Creation of the DESIGN MATRIX (from the parameter-specific design matrices) ###################################################################################### design_matrix=make_design_matrix(survival.design,capture.design,tagloss.design, bstar.design,nstd,nbeta,nstd_survival,nbeta_survival,nstd_capture,nbeta_capture,nstd_tagloss,nbeta_tagloss) #************************************************************************************* ###################################################################################### #Initialization of standard parameters: #std_survival= matrix (ngroup x (nsample-1)) #std_capture= matrix (ngroup x nsample) #std_tagloss= 3D array (ngroup x (nsample-1) x (nsample-1)) -- the 2nd dimension corresponds to the first sample time at which the animal was captured and the 3rd dimension corresponds to the last sample time at which the animal was captured ###################################################################################### #************************************************************************************* std_survival= matrix(0.85,nrow=ngroup,ncol=(nsample-1)); std_capture= matrix(0.85,nrow=ngroup,ncol=nsample); for(j in 1:nsample) { std_capture[2,j]=0.8; } std_tagloss= array(0.25,dim=c(ngroup,(nsample-1),(nsample-1))); for(g in 1:ngroup) { for(f in 1:(nsample-1)) { for(j in 1:(nsample-1)) { if(j=f) { std_tagloss[g,f,j]=std_parms[index] index=(index+1); } } } } std_tagloss std_bstar=matrix(std_parms[(nstd_survival+nstd_capture+nstd_tagloss+1):length(std_parms)],nrow=ngroup,ncol=nsample,byrow=TRUE); std_bstar std_entry=matrix(nrow=ngroup,ncol=nsample); for(g in 1:ngroup) { for(j in 1:nsample) { std_entry[g,j]= bstar_to_b(g,j,std_bstar,nsample,ngroup)} } std_entry ###################################################################################### Cov_std= COV(design_matrix,Hess,std_parms) #Covariance Cov_std1=matrix(data=0,nrow=nstd+1,ncol=nstd+1) Cov_std1[1:nstd,1:nstd]=Cov_std[,1:nstd] ##Add Nhat into the parameters Var_std= VAR(design_matrix,Hess,std_parms) ###################################################################################### std.err=sqrt(Var_std) std.err ###################################################################################### AIC=calc_AIC(design_matrix,lmax,nbeta, bflag) AIC lmax nbeta ###################################################################################### N_est = matrix(data=NA,nrow=ngroup,ncol=nsample); for(g in 1:ngroup){ for(j in 1:nsample){ N_est[g,j] = N_est_func(std_survival,std_capture,std_entry,j,g,ngroup,nsample,nobs) } } N_est P_0 = P_0_func(std_survival,std_capture, std_tagloss,std_entry,ngroup,nsample) Nhat = vector (mode="double",length=ngroup) for (g in 1:ngroup) {Nhat[g]=nobs[g]/(1-P_0[g]) } Nhat