makePiFuns.RdThese are factory functions that generate piFuns with the required defaults, which are enclosed within the environment of the piFun. See the main entry for piFuns.
makeRemPiFun(times) makeCrPiFun(nOcc) makeCrPiFunMb(nOcc) makeCrPiFunMh(nOcc)
| times | a vector of times for each interval, |
|---|---|
| nOcc | the number of survey occasions |
makeRemPiFun produces a piFun for a removal model with the required number of occasions and potentially varying time intervals. The input to the piFun must be probabilities per unit time. This is a generalisation of the piFun in the Examples section of piFuns.
makeCrPiFun produces a piFun for a standard capture-recapture model, M0, Mt or Mx. Probabilities of detection may vary across occasions. See Kery & Royle (2016) section 7.8.1.
makeCrPiFunMb produces a piFun for a capture-recapture model with a behavioral response after the first capture, Mb. Probabilities of detection are constant across occasions. The first column is the probability of detection for animals not caught before, column #2 is for animals after the first capture. The remaining columns are ignored. See Kery & Royle (2016) section 7.8.2.
makeCrPiFunMh produces a piFun for a capture-recapture model with individual heterogeneity in detection probability, Mh, using a logit-normal distribution. Probabilities of detection are constant across occasions. The first column is the mean of the logit-normal on the probability scale. Cell p[1, 2] is a value in [0, 1] which controls the spread of the distribution. The remaining cells are ignored. See Kery & Royle (2016) section 7.8.3.
A piFun with the appropriate defaults.
Kery, M., Royle, J. A. (2016) Applied Hierarchical Modeling in Ecology Vol 1.
# Generate piFuns and check their behaviour: # makeRemPiFun # ============ ( pRem <- matrix(0.4, nrow=5, ncol=3) )#> [,1] [,2] [,3] #> [1,] 0.4 0.4 0.4 #> [2,] 0.4 0.4 0.4 #> [3,] 0.4 0.4 0.4 #> [4,] 0.4 0.4 0.4 #> [5,] 0.4 0.4 0.4#> [,1] [,2] [,3] #> [1,] 0.64 0.28224 0.07171338 #> [2,] 0.64 0.28224 0.07171338 #> [3,] 0.64 0.28224 0.07171338 #> [4,] 0.64 0.28224 0.07171338 #> [5,] 0.64 0.28224 0.07171338#> [1] "instRemPiFun" "times"#> [1] 2 3 5#> [,1] [,2] [,3] #> [1,] 0.6637637 0.5758327 0.6403992 #> [2,] 0.5244821 0.3480286 0.2322364 #> [3,] 0.3729590 0.6832623 0.7975949 #> [4,] 0.9435243 0.4058678 0.5724019 #> [5,] 0.1423031 0.4589708 0.7250769myPi(pRem)#> [,1] [,2] [,3] #> [1,] 0.8869451 0.104427050 0.0085759318 #> [2,] 0.7738827 0.163453100 0.0459472419 #> [3,] 0.6068196 0.380686735 0.0124894616 #> [4,] 0.9968105 0.002520589 0.0006593558 #> [5,] 0.2643560 0.619142977 0.1163180616#> [1] 5 3 2myPi(pRem)#> [,1] [,2] [,3] #> [1,] 0.9957024 3.969601e-03 2.855596e-04 #> [2,] 0.9756872 1.757494e-02 2.766143e-03 #> [3,] 0.9030652 9.385461e-02 2.954012e-03 #> [4,] 0.9999994 4.540331e-07 9.846123e-08 #> [5,] 0.5358383 3.906542e-01 6.795155e-02#> Error : You have 3 occasions, but piFun expects 4.#> [,1] [,2] [,3] [,4] #> [1,] 0.02888708 0.5003932 0.4580120 0.6708692 #> [2,] 0.72325781 0.6464060 0.6268303 0.1121477 #> [3,] 0.62242657 0.8807434 0.7629524 0.4150688 #> [4,] 0.48111159 0.6747469 0.5870138 0.8419171 #> [5,] 0.51192018 0.8137893 0.7388630 0.6318430myPi(pRem)#> [,1] [,2] [,3] [,4] #> [1,] 0.02888708 0.7287164 0.203804717 3.844279e-02 #> [2,] 0.72325781 0.2421415 0.032802667 8.060690e-04 #> [3,] 0.62242657 0.3722035 0.005298372 6.662969e-05 #> [4,] 0.48111159 0.4639954 0.051026427 3.866165e-03 #> [5,] 0.51192018 0.4711559 0.016622507 2.993351e-04#> [1] 1.490521e-04 9.919918e-04 4.897749e-06 3.817222e-07 2.038310e-06#> 001 010 011 100 101 110 111 #> [1,] 0.144 0.144 0.096 0.144 0.096 0.096 0.064 #> [2,] 0.144 0.144 0.096 0.144 0.096 0.096 0.064myPi # Look at the function#> function (p) #> { #> if (ncol(p) != nOcc) #> stop("You have ", ncol(p), " occasions, but piFun expects ", #> nOcc, ".", call. = FALSE) #> out <- matrix(NA, nrow(p), nrow(combs)) #> colnames(out) <- histories #> q <- t(p) #> for (i in 1:ncol(out)) { #> temp <- (1 - q) * (1 - combs[i, ]) + q * combs[i, ] #> out[, i] <- apply(temp, 2, prod) #> } #> return(out) #> } #> <bytecode: 0x55aec0aa6ac8> #> <environment: 0x55aec0a96898>#> [1] "combs" "crPiFun" "histories" "nOcc"#> [1] "001" "010" "011" "100" "101" "110" "111"#> 001 010 011 100 101 110 111 #> [1,] 0.3475385 0.023902881 0.06454031 0.09922076 0.2679065 0.01842598 0.0497521 #> [2,] 0.1719135 0.007413497 0.05544683 0.06618910 0.4950397 0.02134781 0.1596640#> Error : You have 5 occasions, but piFun expects 3.myPi <- makeCrPiFun(5) ( tmp <- myPi(p) )#> 00001 00010 00011 00100 00101 00110 #> [1,] 0.008010499 0.08222948 0.01033147 0.020570767 0.002584551 0.026530963 #> [2,] 0.020777933 0.03782340 0.14986132 0.002492283 0.009874754 0.017975648 #> [3,] 0.230914909 0.03715307 0.12491692 0.008137138 0.027358877 0.004401908 #> [4,] 0.017759341 0.02343414 0.02182141 0.114900342 0.106992934 0.141181354 #> 00111 01000 01001 01010 01011 01100 #> [1,] 0.003333401 0.0651786396 0.008189169 0.084063568 0.010561908 0.0210295873 #> [2,] 0.071221888 0.0009164312 0.003631021 0.006609781 0.026188825 0.0004355357 #> [3,] 0.014800199 0.0234641803 0.078891819 0.012693304 0.042677725 0.0027800440 #> [4,] 0.131465294 0.0067132529 0.006251249 0.008248767 0.007681089 0.0404446654 #> 01101 01110 01111 10000 10001 10010 #> [1,] 0.002642198 0.027122722 0.003407751 0.081295312 0.010214099 0.104849902 #> [2,] 0.001725650 0.003141311 0.012446290 0.008915179 0.035323117 0.064300936 #> [3,] 0.009347129 0.001503907 0.005056471 0.030456922 0.102402981 0.016476134 #> [4,] 0.037661275 0.049695523 0.046275492 0.005391851 0.005020786 0.006625123 #> 10011 10100 10101 10110 10111 11000 #> [1,] 0.013173543 0.026229557 0.003295532 0.033829337 0.004250383 0.083108562 #> [2,] 0.254768796 0.004236957 0.016787381 0.030559147 0.121079371 0.001557961 #> [3,] 0.055396444 0.003608546 0.012132740 0.001952098 0.006563389 0.010405573 #> [4,] 0.006169184 0.032483749 0.030248226 0.039913716 0.037166866 0.001897920 #> 11001 11010 11011 11100 11101 11110 #> [1,] 0.010441919 0.107188525 0.013467372 0.0268145941 0.003369037 0.0345838830 #> [2,] 0.006172846 0.011236828 0.044521797 0.0007404239 0.002933657 0.0053403248 #> [3,] 0.034985863 0.005629053 0.018926133 0.0012328558 0.004145137 0.0006669321 #> [4,] 0.001767305 0.002332028 0.002171539 0.0114342074 0.010647309 0.0140495395 #> 11111 #> [1,] 0.004345185 #> [2,] 0.021159071 #> [3,] 0.002242375 #> [4,] 0.013082654#> [1] 0.06375658 0.00524413 0.06867923 0.01907186#> [,1] [,2] [,3] #> [1,] 0.7 0.3 NA #> [2,] 0.7 0.3 NA #> [3,] 0.7 0.3 NA #> [4,] 0.7 0.3 NA #> [5,] 0.7 0.3 NAmyPi <- makeCrPiFunMb(3) myPi(pMb)#> 001 010 011 100 101 110 111 #> [1,] 0.063 0.147 0.063 0.343 0.147 0.147 0.063 #> [2,] 0.063 0.147 0.063 0.343 0.147 0.147 0.063 #> [3,] 0.063 0.147 0.063 0.343 0.147 0.147 0.063 #> [4,] 0.063 0.147 0.063 0.343 0.147 0.147 0.063 #> [5,] 0.063 0.147 0.063 0.343 0.147 0.147 0.063#> [,1] [,2] [,3] #> [1,] 0.76270563 0.9157759 0.08428396 #> [2,] 0.28199297 0.9824122 0.31757486 #> [3,] 0.75788209 0.9982782 0.17615453 #> [4,] 0.05325693 0.0422988 0.60653164 #> [5,] 0.57807647 0.5035473 0.41674278myPi(pMb)#> 001 010 011 100 101 110 #> [1,] 0.04294690 0.0152433666 0.165742385 5.410407e-03 0.058827807 0.058827807 #> [2,] 0.14537699 0.0035610568 0.198911878 8.722925e-05 0.004872411 0.004872411 #> [3,] 0.04442787 0.0003159483 0.183180879 2.246862e-06 0.001302689 0.001302689 #> [4,] 0.04773538 0.0482878985 0.002132732 4.884681e-02 0.002157418 0.002157418 #> [5,] 0.10290886 0.1210868315 0.122817234 1.424758e-01 0.144511843 0.144511843 #> 111 #> [1,] 6.396396e-01 #> [2,] 2.721609e-01 #> [3,] 7.552745e-01 #> [4,] 9.528669e-05 #> [5,] 1.465770e-01#> [,1] [,2] [,3] [,4] [,5] #> [1,] 0.3466903 0.16490402 0.6602055 0.7106252 0.6511188 #> [2,] 0.1021695 0.12765760 0.4369987 0.7968697 0.8602657 #> [3,] 0.7033585 0.05116885 0.6471055 0.5551394 0.9583013#> Error : You have 5 occasions, but piFun expects 3.myPi <- makeCrPiFunMb(5) myPi(pMb)#> 00001 00010 00011 00100 00101 00110 #> [1,] 0.063156508 0.08073008 0.0159415394 0.10319358 0.020377342 0.020377342 #> [2,] 0.066389375 0.06450467 0.0094395412 0.06267348 0.009171566 0.009171566 #> [3,] 0.005446336 0.01742053 0.0009394597 0.05572094 0.003004936 0.003004936 #> 00111 01000 01001 01010 01011 01100 #> [1,] 0.004023856 0.13190765 0.026047427 0.026047427 0.005143511 0.026047427 #> [2,] 0.001342157 0.06089427 0.008911198 0.008911198 0.001304055 0.008911198 #> [3,] 0.000162051 0.17822781 0.009611522 0.009611522 0.000518333 0.009611522 #> 01101 01110 01111 10000 10001 10010 #> [1,] 0.005143511 0.005143511 1.015674e-03 0.16861153 0.033295238 0.033295238 #> [2,] 0.001304055 0.001304055 1.908339e-04 0.05916556 0.008658222 0.008658222 #> [3,] 0.000518333 0.000518333 2.795281e-05 0.57007563 0.030743206 0.030743206 #> 10011 10100 10101 10110 10111 11000 #> [1,] 0.006574716 0.033295238 0.006574716 0.006574716 1.298290e-03 0.033295238 #> [2,] 0.001267034 0.008658222 0.001267034 0.001267034 1.854164e-04 0.008658222 #> [3,] 0.001657929 0.030743206 0.001657929 0.001657929 8.940927e-05 0.030743206 #> 11001 11010 11011 11100 11101 11110 #> [1,] 0.006574716 0.006574716 1.298290e-03 0.006574716 1.298290e-03 1.298290e-03 #> [2,] 0.001267034 0.001267034 1.854164e-04 0.001267034 1.854164e-04 1.854164e-04 #> [3,] 0.001657929 0.001657929 8.940927e-05 0.001657929 8.940927e-05 8.940927e-05 #> 11111 #> [1,] 2.563697e-04 #> [2,] 2.713362e-05 #> [3,] 4.821689e-06#> [,1] [,2] [,3] #> [1,] 0.4 0.3 NA #> [2,] 0.4 NA NA #> [3,] 0.4 NA NA #> [4,] 0.4 NA NA #> [5,] 0.4 NA NAmyPi <- makeCrPiFunMh(3) myPi(pMh)#> 001 010 011 100 101 110 111 #> [1,] 0.135958 0.135958 0.09500389 0.135958 0.09500389 0.09500389 0.07810148 #> [2,] 0.135958 0.135958 0.09500389 0.135958 0.09500389 0.09500389 0.07810148 #> [3,] 0.135958 0.135958 0.09500389 0.135958 0.09500389 0.09500389 0.07810148 #> [4,] 0.135958 0.135958 0.09500389 0.135958 0.09500389 0.09500389 0.07810148 #> [5,] 0.135958 0.135958 0.09500389 0.135958 0.09500389 0.09500389 0.07810148#> [,1] [,2] [,3] #> [1,] 0.2663681 0.3 NA #> [2,] 0.8225699 NA NA #> [3,] 0.2183991 NA NA #> [4,] 0.7497923 NA NA #> [5,] 0.4351382 NA NAmyPi(pMh)#> 001 010 011 100 101 110 #> [1,] 0.13663372 0.13663372 0.05551761 0.13663372 0.05551761 0.05551761 #> [2,] 0.02972235 0.02972235 0.11743572 0.02972235 0.11743572 0.11743572 #> [3,] 0.12868059 0.12868059 0.04125804 0.12868059 0.04125804 0.04125804 #> [4,] 0.05065804 0.05065804 0.13452786 0.05065804 0.13452786 0.13452786 #> [5,] 0.13147928 0.13147928 0.10441266 0.13147928 0.10441266 0.10441266 #> 111 #> [1,] 0.02660072 #> [2,] 0.54962635 #> [3,] 0.01562281 #> [4,] 0.42193741 #> [5,] 0.09752819#> [,1] [,2] [,3] [,4] [,5] #> [1,] 0.07829616 0.3 NA NA NA #> [2,] 0.64917947 NA NA NA NA #> [3,] 0.48075350 NA NA NA NA #> [4,] 0.26099908 NA NA NA NA #> [5,] 0.60791933 NA NA NA NA#> Error : You have 5 occasions, but piFun expects 3.#> [1] 0.65348685 0.01063023 0.05276275 0.23401921 0.01673811