Recruitment Decomposition

Background

Stuff below should all be sex-specific and grid-specific (e.g., grid 1 treatment, grid 1 control, …), even though juvenile survival would be the same for both sexes and all grids. Juvenile population size should be sex- and grid-specific, based on the last set of analyses that you did. And I agree with you that the “p(prepost)+c_Huggins” model provides estimates that are more sensible than the mixture models (and as you point out the mixture parameter is suggestive of something approaching a single group anyway. I am omitting extra superscripts to make this simpler (for me).

\[ \lambda_t = S_t + f_t \]

where:

  • \(\lambda_t\) = monthly population growth rate between sampling occasions t and t+1
  • \(S_t\) = monthly adult survival during t to t+1,
  • \(f_t\) = new recruits of new adults during t to t+1

\[ f_t = \frac{N'_t (S'_t) + I_t}{N_t} \]

where:

  • \(I_t/N_t\) = monthly adult immigration rate new adults between t and t+1
  • \(N'_t\) = young abundance at t,
  • \(S'_t\) = monthly young survival during t to t+1

Would like to compute the following:

  • Immigration rate estimate: \(\widehat{I_t / N_t} = \hat{f}_t - \frac{\hat{N'_t}(S'_t)}{\hat{N_t}}\)
  • In situ reproductive rate estimate: \(\frac{N'_t (S'_t)}{N_t}\)
  • Proportional contribution of in situ reproduction to recruitment:

\(Pr(ISR_t) = \frac{\hat{N'_t}(S'_t)}{\hat{N_t}} / \hat{f}_t = \frac{\hat{f}_t \hat{N'_t}(S'_t)}{\hat{N_t}}\)

Estimates of adult S, f, and N for each grid, occasion and sex can be taken from the temporal symmetry model used to compute recruitment parameters, f, and recruitment MES. Estimates of young survival and abundance can be taken from the recent analyses you did for young animals (just 4 estimates, right? Treatment and control grids for pretreatment and posttreatment periods).

Output of these analyses would be sex- and time-specific estimates of immigration rate \(\widehat{I_t / N_t}\) , in situ reproductive rate \(\frac{N'_t(S'_t)}{N_t}\) and proportional contribution \(Pr(ISR_t)\) , separately for males and females for each grid. Would also like simple arithmetic means of these 3 quantities for the following periods (again by sex and grid), pretreatment (i.e., mean for all pretreatment occasions) and posttreatment.

Get juvenile survival and pop. size estimates…

Model: juv_S(trtXtime+agesex)p(t+mx)pi(t)G=0.vcv

fname1=list.files(paste0(ddir,'juv'),'juv.+vcv')[1]
fname2=paste0(ddir,'juv/',gsub('vcv','out',fname1))
x=readLines(fname2)
i=grep(':S g',x)
rnames=substr(x[i],8,22)
rnames=gsub('c1 a0 t','pre',gsub('c8.2925','post',rnames))
j=grep('gJ',rnames)
v=readMarkVcv(paste0(ddir,'juv/',fname1))$real[j,] ; rownames(v)=rnames[j]
Sy = matrix(unlist(sapply(1:4,
          function(k) rep(v[k,1],rep(c(4,7),4)[k]))),ncol=11,byrow=T)
Sy=apply(apply(Sy,2,rep,each=2), 2, rep, 4)
Sy.se = matrix(unlist(sapply(1:4,
          function(j) rep(v[j,2],rep(c(4,7),4)[j]))),ncol=11,byrow=T)
Sy.se=apply(apply(Sy.se,2,rep,each=2), 2, rep, 4)

i=grep('N-hat',x)+2; j=grep('proc stop',x)-3
grp=as.numeric(substr(x[i:j],1,4))
sess=as.numeric(substr(x[i:j],6,10))
Ny=   t(matrix(as.numeric(substr(x[i:j],12,24)), max(sess), max(grp)))
Ny.se=t(matrix(as.numeric(substr(x[i:j],25,39)), max(sess), max(grp)))
gnames=gsub('age','',gsub('.sex','',gsub('.grid','',gsub('.+=age','',x[grep('glabel',x)]))))
rownames(Ny)=rownames(Ny.se)=gsub(';','',gnames)
Ny=Ny[grep('J',rownames(Ny)),]
Ny.se=Ny.se[grep('J',rownames(Ny)),]
rownames(Sy)=rownames(Sy.se)=rownames(Ny)=rownames(Ny.se)=gsub('J','',rownames(Ny))
Sy[1:4,]=Sy[c(3,4,1,2),]; Ny[1:4,]=Ny[c(3,4,1,2),]
rownames(Sy)[1:4]=rownames(Ny)[1:4]=rownames(Sy)[c(3,4,1,2)]
knitr::kable(round(Sy,4), 'pipe', align='cc',col.names=paste0(1:ncol(Sy)),
             caption=paste('Juvenile Survival',fname2))
Juvenile Survival c:/users/jhines/onedri~1/hines/a/nichols/mpdata/juv/juv_S(trtXtime+agesex)p(t+mx)pi(t)G=0.out
1 2 3 4 5 6 7 8 9 10 11
F1T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
M1T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
F1C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
M1C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
F2C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
M2C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
F2T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
M2T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
F3C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
M3C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
F3T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
M3T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
F4C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
M4C 0.7174 0.7174 0.7174 0.7174 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707 0.6707
F4T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
M4T 0.6176 0.6176 0.6176 0.6176 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390 0.7390
knitr::kable(round(Ny,2), 'pipe', col.names=paste0(1:ncol(Ny)),
             caption=paste('Juvenile Population Sizes',fname2))
Juvenile Population Sizes c:/users/jhines/onedri~1/hines/a/nichols/mpdata/juv/juv_S(trtXtime+agesex)p(t+mx)pi(t)G=0.out
1 2 3 4 5 6 7 8 9 10 11 12
F1T 1.28 1.48 0.00 0.00 8.89 15.62 12.76 5.67 10.48 4.66 1.16 5.25
M1T 1.28 1.48 1.67 0.00 11.11 9.61 6.38 9.07 7.48 4.66 0.00 3.50
F1C 0.00 1.48 1.67 3.63 10.00 4.81 3.19 3.40 4.49 6.22 0.00 0.00
M1C 0.00 1.48 3.35 2.42 2.22 2.40 0.00 5.67 2.99 1.55 2.31 1.75
F2C 3.83 2.96 1.67 3.63 7.77 4.81 4.25 5.67 5.99 4.66 2.31 3.50
M2C 0.00 1.48 0.00 2.42 4.44 6.01 4.25 6.81 5.99 1.55 0.00 0.00
F2T 0.00 0.00 0.00 1.21 1.11 1.20 2.13 2.27 5.99 7.77 2.31 3.50
M2T 0.00 1.48 1.67 2.42 2.22 2.40 6.38 6.81 8.98 9.32 2.31 8.75
F3C 1.28 2.96 1.67 1.21 1.11 3.60 1.06 12.48 2.99 7.77 3.47 3.50
M3C 1.28 1.48 0.00 2.42 5.55 3.60 2.13 11.34 2.99 9.32 0.00 0.00
F3T 2.55 0.00 1.67 0.00 1.11 2.40 10.63 13.61 11.97 6.22 1.16 0.00
M3T 2.55 0.00 0.00 0.00 3.33 8.41 6.38 10.21 8.98 4.66 3.47 0.00
F4C 1.28 2.96 0.00 4.84 8.89 6.01 8.50 9.07 5.99 0.00 0.00 0.00
M4C 0.00 0.00 0.00 3.63 2.22 1.20 2.13 1.13 0.00 0.00 1.16 0.00
F4T 1.28 0.00 0.00 3.63 11.11 4.81 12.76 9.07 8.98 6.22 4.62 1.75
M4T 3.83 2.96 1.67 3.63 3.33 2.40 6.38 10.21 5.99 6.22 4.62 1.75

Get adult survival, recruitment and pop. size estimates…

Model: g1Phi(trtgridXtm+sex)f(trtgridXper+sex)p(t+mx)pi(t)16738.01.vcv

fnames=list.files(paste0(ddir,'pradel2'),'^g[1234].+f.trtgridXper[+]sex[)].+vcv')
phi=phi.se=f=f.se=N=N.se=NULL
for (g in 1:4) {
  fname1=paste0(ddir,'pradel2/',fnames[g])
  x=readLines(gsub('vcv','out',fname1))
  i=grep('time interval',x); j=grep(';',x[i+0:22])[1]
  v=gsub('.+INPUT --- +','',gsub('time interval ','',x[i-1+1:j]))
  v=unlist(strsplit(v,' ')); v=v[v!="0" & nchar(v)>0]; ti=as.numeric(v[1:11])
  
  i=grep(':Phi g',x); ii=grep(':f g',x)
  rnames=substr(x[i],8,22)
  k=grep('a[0135][ .]',rnames)
  rnames[k]=gsub('a.+','pre',rnames[k])
  rnames[-k]=gsub('a.+','post',rnames[-k])
  if (g==1) rnames=gsub('g','',gsub('e ','T',gsub('w ','C',rnames))) 
  if (g>1) rnames=gsub('g','',gsub('e ','C',gsub('w ','T',rnames))) 
  v=readMarkVcv(fname1)$real
  phi=rbind(phi,matrix(v[1:length(i),1], nrow=4, byrow=T))
  phi.se=rbind(phi.se,matrix(v[1:length(i),2], nrow=4, byrow=T))
  f=rbind(f,matrix(unlist(sapply(1:8,
          function(j) rep(v[length(i)+1:length(ii),1][j],rep(c(4,7),4)[j]))),nrow=4,byrow=T))
  f.se=rbind(f.se,matrix(unlist(sapply(1:8,
          function(j) rep(v[length(i)+1:length(ii),2][j],rep(c(4,7),4)[j]))),nrow=4,byrow=T))
 
  i=grep('N-hat',x)+2; j=grep('Lambda Est',x)-1
  grp=as.numeric(substr(x[i:j],1,4))
  sess=as.numeric(substr(x[i:j],6,10))
  N=rbind(N, t(matrix(as.numeric(substr(x[i:j],12,24)), max(sess), max(grp))))
  N.se=rbind(N.se, t(matrix(as.numeric(substr(x[i:j],25,39)), max(sess), max(grp))))
}
rnames=paste0(rep(c('F','M'),8), rep(1:4,each=4), rep(rep(c('C','T'),each=2),4))
rnames[1:4]=c('F1T','M1T','F1C','M1C')
rownames(N)=rownames(N.se)=rownames(f)=rownames(phi)=rnames

print(kable_styling(kable(f,digits=4, valign='t',
                          caption=paste('Adult recruitment:',
                                        gsub('.+/','',fname1)))))
Adult recruitment: g4Phi(trtgridXtm+sex)f(trtgridXper+sex)p(t+mx)pi(t)17852.13.vcv
F1T 0.2271 0.2271 0.2271 0.2271 0.1756 0.1756 0.1756 0.1756 0.1756 0.1756 0.1756
M1T 0.3297 0.3297 0.3297 0.3297 0.1730 0.1730 0.1730 0.1730 0.1730 0.1730 0.1730
F1C 0.2560 0.2560 0.2560 0.2560 0.1979 0.1979 0.1979 0.1979 0.1979 0.1979 0.1979
M1C 0.3716 0.3716 0.3716 0.3716 0.1949 0.1949 0.1949 0.1949 0.1949 0.1949 0.1949
F2C 0.3283 0.3283 0.3283 0.3283 0.1626 0.1626 0.1626 0.1626 0.1626 0.1626 0.1626
M2C 0.3301 0.3301 0.3301 0.3301 0.2204 0.2204 0.2204 0.2204 0.2204 0.2204 0.2204
F2T 0.4090 0.4090 0.4090 0.4090 0.2026 0.2026 0.2026 0.2026 0.2026 0.2026 0.2026
M2T 0.4113 0.4113 0.4113 0.4113 0.2747 0.2747 0.2747 0.2747 0.2747 0.2747 0.2747
F3C 0.3844 0.3844 0.3844 0.3844 0.1620 0.1620 0.1620 0.1620 0.1620 0.1620 0.1620
M3C 0.3631 0.3631 0.3631 0.3631 0.1971 0.1971 0.1971 0.1971 0.1971 0.1971 0.1971
F3T 0.4397 0.4397 0.4397 0.4397 0.1853 0.1853 0.1853 0.1853 0.1853 0.1853 0.1853
M3T 0.4154 0.4154 0.4154 0.4154 0.2255 0.2255 0.2255 0.2255 0.2255 0.2255 0.2255
F4C 0.3026 0.3026 0.3026 0.3026 0.2171 0.2171 0.2171 0.2171 0.2171 0.2171 0.2171
M4C 0.2853 0.2853 0.2853 0.2853 0.1703 0.1703 0.1703 0.1703 0.1703 0.1703 0.1703
F4T 0.3299 0.3299 0.3299 0.3299 0.2368 0.2368 0.2368 0.2368 0.2368 0.2368 0.2368
M4T 0.3111 0.3111 0.3111 0.3111 0.1858 0.1858 0.1858 0.1858 0.1858 0.1858 0.1858
print(kable_styling(kable(phi,digits=4, valign='t', caption=paste('Adult Survival:',
                                        gsub('.+/','',fname1)))))
Adult Survival: g4Phi(trtgridXtm+sex)f(trtgridXper+sex)p(t+mx)pi(t)17852.13.vcv
F1T 0.7917 0.8174 0.8100 0.6846 0.9718 0.8466 0.8375 0.9044 0.8469 0.2471 0.7777
M1T 0.9394 0.9407 0.8856 0.7065 0.8420 0.8387 0.6934 0.7184 0.9207 0.6021 0.6357
F1C 0.7409 0.7711 0.7623 0.6202 0.9629 0.8059 0.7950 0.8768 0.8062 0.1980 0.7247
M1C 0.9211 0.9227 0.8535 0.6443 0.8004 0.7964 0.6298 0.6574 0.8973 0.5324 0.5676
F2C 0.9519 0.8393 0.8634 0.7768 0.8817 0.8374 0.8369 0.8796 0.7599 0.5644 0.8987
M2C 0.6956 0.7792 0.7320 0.6379 0.7389 0.8768 0.8979 0.9455 0.9132 0.4379 0.8696
F2T 0.9252 0.7653 0.7978 0.6849 0.8232 0.7629 0.7622 0.8203 0.6640 0.4472 0.8471
M2T 0.5880 0.6879 0.6304 0.5238 0.6386 0.8163 0.8459 0.9154 0.8679 0.3272 0.8063
F3C 0.7563 0.8399 0.7136 0.9413 0.9061 0.9097 0.8594 0.8175 0.8467 0.6541 0.4905
M3C 0.8000 0.8790 0.7747 0.7353 0.8499 0.8911 0.8229 0.8798 0.8699 0.6721 0.9201
F3T 0.6709 0.7750 0.6206 0.9132 0.8637 0.8687 0.8006 0.7463 0.7839 0.5540 0.3874
M3T 0.7242 0.8267 0.6931 0.6459 0.7881 0.8432 0.7532 0.8278 0.8145 0.5738 0.8833
F4C 0.8638 0.7546 0.7105 0.8378 0.7274 0.7471 0.8557 0.7458 0.5475 0.6122 0.5817
M4C 0.8076 0.8749 0.7168 0.8064 0.8240 0.8899 0.8434 0.9001 0.7513 0.6916 0.8251
F4T 0.8424 0.7216 0.6741 0.8132 0.6921 0.7135 0.8333 0.7120 0.5049 0.5708 0.5395
M4T 0.7796 0.8550 0.6809 0.7783 0.7978 0.8720 0.8194 0.8837 0.7179 0.6540 0.7990
print(kable_styling(kable(N,digits=2, col.names=paste(1:ncol(N)), caption='Adult Population size')))
Adult Population size
1 2 3 4 5 6 7 8 9 10 11 12
F1T 42.29 49.63 40.82 46.30 28.25 65.92 52.93 74.23 59.81 78.31 13.37 11.75
M1T 20.58 32.52 47.35 62.57 88.13 90.13 87.82 69.86 61.23 54.67 29.71 28.83
F1C 42.29 39.36 32.66 41.30 25.99 57.85 45.72 61.13 62.65 69.45 7.43 4.27
M1C 20.58 32.52 68.58 91.35 70.05 64.57 69.78 62.22 49.84 62.06 34.17 11.75
F2C 14.93 26.61 34.15 45.57 57.87 84.59 76.97 73.76 64.94 45.90 23.14 38.10
M2C 11.94 23.81 25.24 22.17 14.47 13.68 19.24 34.71 42.09 49.95 22.04 32.65
F2T 23.88 39.21 37.12 45.57 60.50 65.93 81.24 60.74 64.94 56.69 15.43 29.03
M2T 16.42 22.40 20.79 19.70 27.62 12.44 20.31 41.22 49.30 49.95 9.92 19.96
F3C 16.15 23.81 25.47 21.93 48.16 71.89 79.30 89.09 63.76 52.32 50.96 27.41
M3C 17.23 15.41 25.47 26.31 39.05 47.92 50.46 52.80 62.17 44.63 28.31 67.00
F3T 18.31 26.62 31.13 35.08 58.57 71.89 73.12 83.59 78.11 73.87 32.84 9.14
M3T 19.39 12.61 19.81 21.93 31.24 39.21 43.25 66.00 71.74 53.86 19.25 35.02
F4C 46.26 45.23 34.26 60.11 61.70 68.54 63.87 98.94 67.98 33.19 17.47 14.62
M4C 29.10 27.72 42.42 42.94 53.23 60.23 66.00 77.33 75.70 56.70 37.12 53.17
F4T 35.72 42.31 50.57 25.76 55.65 63.35 48.97 67.10 57.16 20.75 17.47 18.61
M4T 37.04 51.06 71.78 38.03 54.44 58.15 72.38 95.53 84.97 60.85 28.39 41.21

Compute immigration rate estimate

\[\hat{I_t/N_t} = \hat{f_t} - \frac{\hat{N'_t} (S'_t)}{\hat{N_t}}\]

l=ncol(f)
I = f - Ny[,1:l]*Sy[,1:l]/N[,1:l]
print(kable_styling(kable(I,digits=4, col.names=paste(1:ncol(I)), 
                          table.attr = 'class="striped",  format = "html"',
                           caption='Immigration Rates')))
Immigration Rates
1 2 3 4 5 6 7 8 9 10 11
F1T 0.2085 0.2087 0.2271 0.2271 -0.0569 0.0005 -0.0025 0.1191 0.0461 0.1316 0.1117
M1T 0.2914 0.3015 0.3079 0.3297 0.0798 0.0942 0.1193 0.0770 0.0826 0.1099 0.1730
F1C 0.2560 0.2290 0.2192 0.1929 -0.0601 0.1421 0.1511 0.1605 0.1498 0.1378 0.1979
M1C 0.3716 0.3389 0.3365 0.3525 0.1737 0.1700 0.1949 0.1338 0.1547 0.1781 0.1495
F2C 0.1442 0.2484 0.2931 0.2711 0.0725 0.1245 0.1256 0.1111 0.1008 0.0945 0.0956
M2C 0.3301 0.2855 0.3301 0.2517 0.0145 -0.0740 0.0722 0.0889 0.1250 0.1996 0.2204
F2T 0.4090 0.4090 0.4090 0.3926 0.1891 0.1892 0.1833 0.1750 0.1345 0.1014 0.0919
M2T 0.4113 0.3705 0.3616 0.3354 0.2152 0.1319 0.0426 0.1527 0.1401 0.1367 0.1024
F3C 0.3277 0.2952 0.3373 0.3448 0.1465 0.1284 0.1530 0.0681 0.1305 0.0624 0.1164
M3C 0.3100 0.2942 0.3631 0.2971 0.1018 0.1467 0.1689 0.0531 0.1648 0.0570 0.1971
F3T 0.3536 0.4397 0.4065 0.4397 0.1713 0.1606 0.0779 0.0650 0.0720 0.1231 0.1593
M3T 0.3340 0.4154 0.4154 0.4154 0.1467 0.0670 0.1165 0.1112 0.1330 0.1615 0.0924
F4C 0.2828 0.2556 0.3026 0.2448 0.1205 0.1583 0.1278 0.1556 0.1581 0.2171 0.2171
M4C 0.2853 0.2853 0.2853 0.2246 0.1424 0.1570 0.1487 0.1605 0.1703 0.1703 0.1495
F4T 0.3079 0.3299 0.3299 0.2429 0.0893 0.1807 0.0442 0.1368 0.1207 0.0154 0.0411
M4T 0.2473 0.2753 0.2967 0.2522 0.1405 0.1552 0.1206 0.1068 0.1337 0.1103 0.0654

Compute mean immigration rate estimate , pre/post treatment

Imean =  cbind(rowMeans(I[,1:4]),rowMeans(I[,5:11]))
colnames(Imean) = c('pre-treatment','post-treatment')
print(kable_styling(kable(Imean,digits=4,
                          table.attr = 'class="striped",  format = "html"',
                           caption='Mean immigration rate estimates')))
Mean immigration rate estimates
pre-treatment post-treatment
F1T 0.2179 0.0499
M1T 0.3076 0.1051
F1C 0.2243 0.1256
M1C 0.3499 0.1650
F2C 0.2392 0.1035
M2C 0.2994 0.0924
F2T 0.4049 0.1520
M2T 0.3697 0.1317
F3C 0.3262 0.1151
M3C 0.3161 0.1271
F3T 0.4099 0.1185
M3T 0.3950 0.1183
F4C 0.2714 0.1649
M4C 0.2702 0.1570
F4T 0.3026 0.0898
M4T 0.2679 0.1189

Compute In situ reproductive rate estimates

\[ \frac{\hat{N'_t} (S'_t)}{\hat{N_t}}\]

l=ncol(f)
rr =  Ny[,1:l]*Sy[,1:l]/N[,1:l]
print(kable_styling(kable(rr,digits=4, col.names=paste(1:ncol(I)), 
                          table.attr = 'class="striped",  format = "html"',
                           caption='In situ reproductive rates')))
In situ reproductive rates
1 2 3 4 5 6 7 8 9 10 11
F1T 0.0186 0.0184 0.0000 0.0000 0.2325 0.1751 0.1781 0.0565 0.1294 0.0440 0.0639
M1T 0.0383 0.0281 0.0218 0.0000 0.0931 0.0788 0.0537 0.0960 0.0903 0.0630 0.0000
F1C 0.0000 0.0270 0.0368 0.0631 0.2580 0.0557 0.0468 0.0373 0.0481 0.0600 0.0000
M1C 0.0000 0.0327 0.0350 0.0190 0.0213 0.0250 0.0000 0.0611 0.0403 0.0168 0.0454
F2C 0.1840 0.0799 0.0351 0.0572 0.0901 0.0381 0.0371 0.0516 0.0618 0.0681 0.0670
M2C 0.0000 0.0446 0.0000 0.0784 0.2060 0.2944 0.1482 0.1315 0.0954 0.0209 0.0000
F2T 0.0000 0.0000 0.0000 0.0164 0.0136 0.0135 0.0193 0.0276 0.0681 0.1013 0.1108
M2T 0.0000 0.0408 0.0497 0.0759 0.0594 0.1427 0.2321 0.1220 0.1346 0.1379 0.1723
F3C 0.0567 0.0893 0.0471 0.0396 0.0155 0.0336 0.0090 0.0939 0.0315 0.0996 0.0456
M3C 0.0531 0.0690 0.0000 0.0660 0.0954 0.0504 0.0283 0.1441 0.0323 0.1401 0.0000
F3T 0.0861 0.0000 0.0332 0.0000 0.0140 0.0247 0.1074 0.1203 0.1133 0.0622 0.0260
M3T 0.0813 0.0000 0.0000 0.0000 0.0788 0.1585 0.1090 0.1143 0.0925 0.0640 0.1331
F4C 0.0198 0.0470 0.0000 0.0578 0.0966 0.0588 0.0893 0.0615 0.0591 0.0000 0.0000
M4C 0.0000 0.0000 0.0000 0.0607 0.0280 0.0134 0.0216 0.0098 0.0000 0.0000 0.0209
F4T 0.0221 0.0000 0.0000 0.0871 0.1475 0.0561 0.1925 0.0999 0.1161 0.2214 0.1956
M4T 0.0638 0.0358 0.0144 0.0590 0.0452 0.0305 0.0651 0.0790 0.0521 0.0755 0.1204

Mean In situ reproduct rate estimates, pre/post treatment

rrmean =  cbind(rowMeans(rr[,1:4]),rowMeans(rr[,5:11]))
colnames(rrmean) = c('pre-treatment','post-treatment')
print(kable_styling(kable(rrmean,digits=4,
                          table.attr = 'class="striped",  format = "html"',
                           caption='Mean *In situ* reproductive rates')))
Mean In situ reproductive rates
pre-treatment post-treatment
F1T 0.0093 0.1256
M1T 0.0221 0.0678
F1C 0.0317 0.0723
M1C 0.0217 0.0300
F2C 0.0891 0.0591
M2C 0.0308 0.1280
F2T 0.0041 0.0506
M2T 0.0416 0.1430
F3C 0.0582 0.0470
M3C 0.0470 0.0701
F3T 0.0298 0.0668
M3T 0.0203 0.1072
F4C 0.0311 0.0522
M4C 0.0152 0.0134
F4T 0.0273 0.1470
M4T 0.0433 0.0668

Compute Proportional contribution of in situ reproduction to recruitment:

\(Pr(ISR_t) = \frac{\hat{N'_t}(S'_t)}{\hat{N_t}} / \hat{f}_t = \frac{\hat{f}_t \hat{N'_t}(S'_t)}{\hat{N_t}}\)

contR2R =  Ny[,1:l]*Sy[,1:l]/N[,1:l]/f
print(kable_styling(kable(contR2R,digits=4, col.names=paste(1:ncol(I)), 
                          table.attr = 'class="striped",  format = "html"',
                           caption='Proportional contribution of in situ reproduction to recruitment')))
Proportional contribution of in situ reproduction to recruitment
1 2 3 4 5 6 7 8 9 10 11
F1T 0.0821 0.0812 0.0000 0.0000 1.3241 0.9974 1.0144 0.3216 0.7373 0.2506 0.3640
M1T 0.1162 0.0854 0.0662 0.0000 0.5385 0.4556 0.3103 0.5549 0.5222 0.3643 0.0000
F1C 0.0000 0.1055 0.1436 0.2465 1.3038 0.2816 0.2365 0.1887 0.2429 0.3034 0.0000
M1C 0.0000 0.0880 0.0942 0.0512 0.1091 0.1280 0.0000 0.3136 0.2066 0.0861 0.2329
F2C 0.5606 0.2434 0.1071 0.1742 0.5541 0.2343 0.2279 0.3171 0.3802 0.4189 0.4121
M2C 0.0000 0.1352 0.0000 0.2374 0.9343 1.3357 0.6724 0.5965 0.4327 0.0947 0.0000
F2T 0.0000 0.0000 0.0000 0.0401 0.0670 0.0665 0.0954 0.1362 0.3362 0.4998 0.5466
M2T 0.0000 0.0993 0.1208 0.1845 0.2164 0.5197 0.8449 0.4442 0.4900 0.5022 0.6273
F3C 0.1474 0.2322 0.1226 0.1030 0.0955 0.2076 0.0555 0.5797 0.1943 0.6147 0.2818
M3C 0.1463 0.1899 0.0000 0.1818 0.4838 0.2559 0.1433 0.7308 0.1638 0.7107 0.0000
F3T 0.1958 0.0000 0.0755 0.0000 0.0756 0.1333 0.5798 0.6492 0.6112 0.3355 0.1404
M3T 0.1958 0.0000 0.0000 0.0000 0.3495 0.7029 0.4833 0.5069 0.4102 0.2836 0.5905
F4C 0.0654 0.1553 0.0000 0.1910 0.4448 0.2708 0.4113 0.2833 0.2720 0.0000 0.0000
M4C 0.0000 0.0000 0.0000 0.2127 0.1643 0.0785 0.1268 0.0577 0.0000 0.0000 0.1226
F4T 0.0669 0.0000 0.0000 0.2639 0.6228 0.2368 0.8131 0.4221 0.4903 0.9351 0.8263
M4T 0.2052 0.1152 0.0463 0.1896 0.2435 0.1644 0.3506 0.4251 0.2803 0.4064 0.6481

Mean proportional contribution of In situ reproduction to recruitment, pre/post treatment

contR2Rmean =  cbind(rowMeans(contR2R[,1:4]),rowMeans(contR2R[,5:11]))
colnames(contR2Rmean) = c('pre-treatment','post-treatment')
print(kable_styling(kable(contR2Rmean,digits=4,
                          table.attr = 'class="striped",  format = "html"',
                           caption='Mean Proportional contribution of in situ reproduction to recruitment')))
Mean Proportional contribution of in situ reproduction to recruitment
pre-treatment post-treatment
F1T 0.0408 0.7156
M1T 0.0669 0.3923
F1C 0.1239 0.3653
M1C 0.0583 0.1538
F2C 0.2713 0.3635
M2C 0.0932 0.5809
F2T 0.0100 0.2497
M2T 0.1012 0.5207
F3C 0.1513 0.2899
M3C 0.1295 0.3555
F3T 0.0678 0.3607
M3T 0.0489 0.4753
F4C 0.1029 0.2403
M4C 0.0532 0.0786
F4T 0.0827 0.6209
M4T 0.1391 0.3597