tests/testthat/test-hessian.R

test_that("Test Hessian calculations", {
    r1 <- nnet::multinom(race~factor(age_24)+female, data=fl, trace=FALSE)
    expect_lt(max(abs(multHessian(r1)-nnet:::multinomHess(r1))), 1e-8)

    K <- 3
    D <- factor(c(rep(c(2, 1, 1, 0, 0, 0), K), rep(c(2, 0, 0, 0, 0, 1), K)))
    S <- factor(rep(1:(length(D)/4), each=4))
    r2 <- nnet::multinom(D~S, weights=seq_along(S), trace=FALSE)
    r3 <- nnet::multinom(race~factor(age_24)+female, weight=W2C0, data=fl,
                         trace=FALSE)
    expect_lt(max(abs(multHessian(r2)-nnet:::multinomHess(r2))), 1e-8)
    expect_lt(max(abs(multHessian(r3)-nnet:::multinomHess(r3))), 3e-8)
    r4 <- nnet::multinom(I(race=="White")~factor(age_24)+female, weight=W2C0,
                         data=fl, trace=FALSE)
    expect_lt(max(abs(multHessian(r4)-nnet:::multinomHess(r4))), 1e-8)
})

Try the multe package in your browser

Any scripts or data that you put into this service are public.

multe documentation built on Sept. 11, 2024, 5:20 p.m.