Nothing
context("Bass Diffusion model")
suppressWarnings(RNGversion("3.5.0"))
set.seed(1122333)
dat <- rdiffnet(200, 20)
# ------------------------------------------------------------------------------
test_that("bass fits the right thing", {
ans0 <- coef(fitbass(dat))
dat <- cumulative_adopt_count(dat)["prop",]
Times <- 1:length(dat)
# Objective function
objf <- function(par, Times, dat) {
sum((dat - bass_F(Times, par[1], par[2]))^2)
}
# Gradient of objf
grad <- function(par, Times, dat) {
g <- bass_dF(par[1], par[2], Times)
val <- (bass_F(Times, par[1], par[2]) - dat)
c(sum(g[1,]*val), sum(g[2,]*val))
}
# Fitting using optim
ans1 <- stats::optim(
c(p = dat[1], q = .5),
objf, grad, method="L-BFGS-B", lower = 1e-5, Times = Times, dat = dat
)$par
# Expectations
expect_equal(unname(ans1), unname(ans0), tol = .001)
})
test_that("diffnet_bass methods", {
ans <- fitbass(dat)
expect_silent(plot(ans))
expect_output(print(ans), "Nonlinear")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.