|
1 |
| -using MixedModels, Test |
2 |
| -import GLM: ProbitLink |
| 1 | +using MixedModels |
| 2 | +using Test |
| 3 | + |
| 4 | +using MixedModels: dataset, likelihoodratiotest |
| 5 | +using GLM: ProbitLink |
3 | 6 |
|
4 | 7 | @testset "likelihoodratio test" begin
|
5 |
| - slp = MixedModels.dataset(:sleepstudy); |
| 8 | + slp = dataset(:sleepstudy); |
6 | 9 | fm0 = fit(MixedModel,@formula(reaction ~ 1 + (1+days|subj)),slp);
|
7 | 10 | fm1 = fit(MixedModel,@formula(reaction ~ 1 + days + (1+days|subj)),slp);
|
8 |
| - lrt = MixedModels.likelihoodratiotest(fm0,fm1); |
| 11 | + lrt = likelihoodratiotest(fm0,fm1); |
9 | 12 |
|
10 | 13 | @test [deviance(fm0), deviance(fm1)] == lrt.deviance
|
11 |
| - @test deviance(fm0) - deviance(fm1) == first(lrt.tests.deviancediff) |
12 |
| - @test first(lrt.tests.dofdiff) == 1 |
| 14 | + @test deviance(fm0) - deviance(fm1) == only(lrt.tests.deviancediff) |
| 15 | + @test only(lrt.tests.dofdiff) == 1 |
13 | 16 | @test sum(map(length,lrt.tests)) == 3
|
14 | 17 | @test sum(map(length,lrt.pvalues)) == 1
|
15 | 18 | @test sum(map(length,lrt.models)) == 4
|
16 | 19 | @test length(lrt.formulae) == 2
|
17 | 20 | show(IOBuffer(),lrt);
|
| 21 | + @test :pvalues in propertynames(lrt) |
18 | 22 |
|
19 | 23 |
|
20 | 24 | # mix of REML and ML
|
21 | 25 | fm0 = fit(MixedModel,@formula(reaction ~ 1 + (1+days|subj)),slp, REML=true);
|
22 |
| - @test_throws ArgumentError MixedModels.likelihoodratiotest(fm0,fm1) |
| 26 | + @test_throws ArgumentError likelihoodratiotest(fm0,fm1) |
23 | 27 |
|
24 | 28 | # differing FE with REML
|
25 | 29 | fm1 = fit(MixedModel,@formula(reaction ~ 1 + days + (1+days|subj)),slp, REML=true);
|
26 |
| - fm10 = fit(MixedModel,@formula(reaction ~ 1 + days + (1|subj)),slp, REML=true); |
27 |
| - @test_throws ArgumentError MixedModels.likelihoodratiotest(fm0,fm1); |
| 30 | + |
| 31 | + @test_throws ArgumentError likelihoodratiotest(fm0,fm1) |
28 | 32 |
|
29 | 33 | contra = MixedModels.dataset(:contra);
|
30 | 34 | gm0 = fit(MixedModel, @formula(use ~ 1+age+urban+livch+(1|urbdist)), contra, Bernoulli(), fast=true);
|
31 | 35 | gm1 = fit(MixedModel, @formula(use ~ 1+age+abs2(age)+urban+livch+(1|urbdist)), contra, Bernoulli(), fast=true);
|
32 |
| - lrt = MixedModels.likelihoodratiotest(gm0,gm1); |
| 36 | + lrt = likelihoodratiotest(gm0,gm1); |
33 | 37 | @test [deviance(gm0), deviance(gm1)] == lrt.deviance
|
34 |
| - @test deviance(gm0) - deviance(gm1) == first(lrt.tests.deviancediff) |
| 38 | + @test deviance(gm0) - deviance(gm1) == only(lrt.tests.deviancediff) |
35 | 39 | @test first(lrt.tests.dofdiff) == 1
|
36 |
| - @test sum(map(length,lrt.tests)) == 3 |
37 |
| - @test sum(map(length,lrt.pvalues)) == 1 |
38 |
| - @test sum(map(length,lrt.models)) == 4 |
| 40 | + @test sum(length, lrt.tests) == 3 |
| 41 | + @test sum(length, lrt.pvalues) == 1 |
| 42 | + @test sum(length, lrt.models) == 4 |
39 | 43 | @test length(lrt.formulae) == 2
|
40 | 44 |
|
41 | 45 | # mismatched links
|
42 | 46 | gm_probit = fit(MixedModel, @formula(use ~ 1+age+urban+livch+(1|urbdist)), contra, Bernoulli(), ProbitLink(), fast=true);
|
43 |
| - @test_throws ArgumentError MixedModels.likelihoodratiotest(gm0,gm_probit) |
| 47 | + @test_throws ArgumentError likelihoodratiotest(gm0,gm_probit) |
44 | 48 |
|
45 | 49 | # mismatched families
|
46 | 50 | gm_poisson = fit(MixedModel, @formula(use ~ 1+age+urban+livch+(1|urbdist)), contra, Poisson(), fast=true);
|
|
0 commit comments