################################################################################ # Matrix Models for Population Management & Conservation # 2022 # University of Aberdeen ################################################################################ # EXERCISE 5: Sampling variance of population growth rate, the Barn sSwallow model # Simple version #================ Baseline parameter values #=== survival s0=0.2; s1=0.5; s2=0.65; #===fecundities f1=3/2; f2=6/2; n.sims = 5000 #Scenario 2 new.lambda.2 = NA for (i in 1:n.sims){ s0 = rnorm(n = 1, mean = .2 , sd = .0) #scenario 2 sigma(s0)=0 s1 = rnorm(n = 1, mean = .5 , sd = .02) #scenario 2 sigma(s1)=.02 s2 = rnorm(n = 1, mean = .65, sd = .02) #scenario 2 sigma(s2)=.02 #========================== #===== matrix M=matrix(c(s0*f1, s0*f2, s1, s2) ,2,2,byrow=T); tmp=eigen(M); V=tmp$values; U=tmp$vectors; #[U,V]=eigs(M); #=== eigs gives eigenvalues (here both real) lambda0=max(abs(diag(V))); #print(lambda0) new.lambda.2[i] = lambda0 } hist(new.lambda.2) mean.lambda.2 = mean(new.lambda.2) sd.lambda.2 = sd(new.lambda.2) z=(mean.lambda.2 - 1)/sd.lambda.2 ##95% CI. Check to see if CI straddles 1 cat('\n95% Confidence interval:', c(mean.lambda.2-1.96*sd.lambda.2, mean.lambda.2+1.96*sd.lambda.2),'\n') cat('z-statistic:',z,'\n') cat('proportion lambda>1.0:',sum(new.lambda.2>1)/n.sims,'\n')