@@ -231,6 +231,7 @@ test_that("coarse meshes with zeros in simulation still return fields #370", {
231
231
})
232
232
233
233
test_that(" simulate without observation error works for binomial likelihoods #431" , {
234
+ skip_on_cran()
234
235
mesh <- make_mesh(pcod , c(" X" , " Y" ), cutoff = 30 )
235
236
fit.dg <- sdmTMB(density ~ 1 ,
236
237
data = pcod , mesh = mesh , family = delta_gamma(type = " standard" )
@@ -247,7 +248,7 @@ test_that("simulate without observation error works for binomial likelihoods #43
247
248
expect_gt(min(s.dg ), 0 )
248
249
m <- apply(s.dg , 1 , mean )
249
250
p <- predict(fit.dg , newdata = qcs_grid )
250
- expect_gt(cor(plogis(p $ est1 ) * exp(p $ est2 ), m ), 0.95 )
251
+ expect_gt(cor(plogis(p $ est1 ) * exp(p $ est2 ), m ), 0.98 )
251
252
252
253
fit.b <- sdmTMB(present ~ 1 ,
253
254
data = pcod , mesh = mesh , family = binomial()
@@ -266,7 +267,7 @@ test_that("simulate without observation error works for binomial likelihoods #43
266
267
p <- predict(fit.b , newdata = qcs_grid )
267
268
expect_gt(cor(plogis(p $ est ), m ), 0.95 )
268
269
269
- # with size specified
270
+ # with size specified (but wrong length at first)
270
271
expect_error({simulate(
271
272
fit.b ,
272
273
newdata = qcs_grid ,
@@ -275,15 +276,41 @@ test_that("simulate without observation error works for binomial likelihoods #43
275
276
size = c(1 , 2 , 3 )
276
277
)}, regexp = " size" )
277
278
279
+ set.seed(1 )
280
+ w <- sample(1 : 9 , size = nrow(qcs_grid ), replace = TRUE )
278
281
s.b1 <- simulate(
279
282
fit.b ,
280
283
newdata = qcs_grid ,
284
+ type = " mle-mvn" ,
285
+ mle_mvn_samples = " multiple" ,
286
+ nsim = 50 ,
287
+ observation_error = FALSE ,
288
+ seed = 23859 ,
289
+ size = w
290
+ )
291
+ expect_true(max(s.b1 ) > 1 )
292
+ expect_equal(mean(s.b1 [1 ,]), m [1 ] * w [1 ])
293
+ expect_equal(mean(s.b1 [51 ,]), m [51 ] * w [51 ])
294
+ })
295
+
296
+ test_that(" simulate without observation error works for binomial likelihoods and Poisson-link delta" , {
297
+ skip_on_cran()
298
+ skip_on_ci()
299
+ mesh <- make_mesh(pcod , c(" X" , " Y" ), cutoff = 30 )
300
+ fit.dg <- sdmTMB(density ~ 1 ,
301
+ data = pcod , mesh = mesh , family = delta_gamma(type = " poisson-link" )
302
+ )
303
+ s.dg <- simulate(
304
+ fit.dg ,
305
+ newdata = qcs_grid ,
281
306
type = " mle-mvn" , # fixed effects at MLE values and random effect MVN draws
282
307
mle_mvn_samples = " multiple" , # take an MVN draw for each sample
283
- nsim = 50 , # increase this for more stable results
308
+ nsim = 200 , # increase this for more stable results
284
309
observation_error = FALSE , # do not include observation error
285
- seed = 23859 ,
286
- size = sample(1 : 9 , size = nrow(qcs_grid ), replace = TRUE )
310
+ seed = 23859
287
311
)
288
- expect_false(identical(s.b , s.b1 ))
312
+ expect_gt(min(s.dg ), 0 )
313
+ m <- apply(s.dg , 1 , mean )
314
+ p <- predict(fit.dg , newdata = qcs_grid )
315
+ expect_gt(cor(exp(p $ est1 ) * exp(p $ est2 ), m ), 0.98 )
289
316
})
0 commit comments