11
11
from scipy import stats
12
12
from statsmodels .base .model import GenericLikelihoodModel
13
13
14
- from numpy .testing import assert_array_less , assert_almost_equal , assert_allclose
14
+ from numpy .testing import (assert_array_less , assert_almost_equal ,
15
+ assert_allclose , assert_ )
15
16
16
17
class MyPareto (GenericLikelihoodModel ):
17
18
'''Maximum Likelihood Estimation pareto distribution
@@ -183,11 +184,7 @@ def nlnlike(self, params, endog):
183
184
alpha = endog
184
185
sig = self .signal .pdf (alpha )
185
186
bkg = self .background .pdf (alpha )
186
- sumlogl = np .sum (
187
- np .ma .log (
188
- (n_sig * sig ) + (n_bkg * bkg )
189
- )
190
- )
187
+ sumlogl = np .sum (np .log ((n_sig * sig ) + (n_bkg * bkg )))
191
188
sumlogl -= n_tot
192
189
return - sumlogl
193
190
@@ -200,28 +197,29 @@ def setup_class(cls):
200
197
pdf_a = stats .halfcauchy (loc = 0 , scale = 1 )
201
198
pdf_b = stats .uniform (loc = 0 , scale = 100 )
202
199
203
- n_a = 30
204
- n_b = 1000
200
+ n_a = 50
201
+ n_b = 200
205
202
params = [n_a , n_b ]
206
203
207
- X = np .concatenate ([
208
- pdf_a .rvs (size = n_a ),
209
- pdf_b .rvs (size = n_b ),
210
- ])[:, np .newaxis ]
204
+ X = np .concatenate ([pdf_a .rvs (size = n_a ),
205
+ pdf_b .rvs (size = n_b ),
206
+ ])[:, np .newaxis ]
211
207
cls .X = X
212
208
cls .params = params
213
209
cls .pdf_a = pdf_a
214
210
cls .pdf_b = pdf_b
215
211
216
212
def test_fit (self ):
213
+ np .random .seed (42 )
217
214
llh_noexog = TwoPeakLLHNoExog (self .X ,
218
215
signal = self .pdf_a ,
219
216
background = self .pdf_b )
220
217
221
218
res = llh_noexog .fit ()
222
- assert np .allclose (res .params , self .params , rtol = 1e-1 )
223
- assert np .isnan (res .df_resid )
219
+ assert_allclose (res .params , self .params , rtol = 1e-1 )
220
+ # TODO: nan if exog is None,
221
+ assert_ (np .isnan (res .df_resid ))
224
222
res_bs = res .bootstrap (nrep = 50 )
225
- assert res_bs is not None
226
- smry = res . summary ()
227
- assert smry is not None
223
+ assert_allclose ( res_bs [ 2 ]. mean ( 0 ), self . params , rtol = 1e-1 )
224
+ # SMOKE test,
225
+ res . summary ()
0 commit comments