-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfidenceIntervalCoverage.R
More file actions
57 lines (47 loc) · 1.2 KB
/
confidenceIntervalCoverage.R
File metadata and controls
57 lines (47 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
summ <- function(object){
fb <- fbar(object)
sb <- ssb(object)
rb <- rec(object)
cb <- catch(object)
dnms <- dimnames(fb)
dnms[[1]] <- c("catch", "fbar", "ssb", "rec")
names(dnms)[1] <- "summ"
cb <- cb[rep(1,4)]
cb[2] <- fb
cb[3] <- sb
cb[4] <- rb
dimnames(cb) <- dnms
cb
}
iterQuantile <- function(x, prob=0.5, ...){
return(apply(x, c(1:5), quantile, prob=prob, na.rm = FALSE))
}
# fit
nit <- 250
stk <- cod1
ids <- window(cod.tun[1], end=2013)
fmod <- ~ te(age, year, k=c(4,20)) + s(year, k=3, by=as.numeric(age==1))
qmod <- list(~s(age, k=4))
fit <- sca(stk, ids, fmodel=fmod, qmodel=qmod, fit="assessment")
fitsim <- simulate(fit, nit)
stk <- stk + fitsim
index(ids[[1]]) <- stock.n(stk)[ac(1:5),ac(1983:2013)]*(0.001+runif(100, 0.0005,0.0015))
range(ids[[1]])["endf"] <- 0
lst <- list()
length(lst) <- nit
for(i in 1:nit){
cat(".")
stk0 <- iter(stk, i)
ids0 <- ids
index(ids0[[1]]) <- index(iter(ids[[1]],i))
lst[[i]] <- sca(stk0, ids0, fmodel=fmod, qmodel=list(~1), fit="assessment")
}
lst1 <- lapply(lst, function(x) try(simulate(x, 1000)))
cat(".")
try(
stk <- cod1 +
flq <- summ(stk)
cod.summ <- summ(cod1)
cod.summ > iterQuantile(flq, 0.05) & cod.summ < iterQuantile(flq, 0.95)
)
})