~scipystats/+junk/skipper-revjp

« back to all changes in this revision

Viewing changes to nipy/fixes/scipy/stats/models/tests/test_glm.py

  • Committer: joep
  • Date: 2009-08-14 18:42:43 UTC
  • mfrom: (1799.1.16 skipper-working)
  • Revision ID: josef.pktd@gmail.com-20090814184243-lpqb7e2gz3p2qa1n
merge with skipper, one conflict in comment

Show diffs side-by-side

added added

removed removed

Lines of Context:
87
87
 
88
88
    def test_pearsonX2(self):
89
89
        if isinstance(self.res2, RModel):
90
 
            raise SkipTest("Results are from RModel wrapper")
 
90
            raise SkipTest("Results ar(tmp_arr[:,np.newaxis]==data[col]).astype(float)e from RModel wrapper")
91
91
        self.check_pearsonX2(self.res1.pearsonX2, self.res2.pearsonX2)
92
92
 
93
93
class test_glm_gaussian(check_model_results):
367
367
        self.res2 = RModel(data.endog, data.exog, r.glm, 
368
368
            family=r.Gamma(link="log"))
369
369
        self.res2.null_deviance = 27.92207137420696 # From R (bug in rpy)
370
 
        self.res2.bic = -154.1582
 
370
        self.res2.bic = -154.1582 # from Stata
371
371
 
372
372
    def setup(self):
373
373
        if skipR:
378
378
 
379
379
    def check_resids(self, resids1, resids2):
380
380
        assert_almost_equal(resids1, resids2, DECIMAL)
381
 
 
 
381
    
382
382
    def check_aic_R(self, aic1, aic2):
383
383
        assert_almost_equal(aic1, aic2, DECIMAL_none)
384
384
 
397
397
        self.res2 = RModel(data.endog, data.exog, r.glm,
398
398
            family=r.Gamma(link="identity"))
399
399
        self.res2.null_deviance = 27.92207137420696 # from R, Rpy bug
400
 
 
 
400
        
401
401
    def setup(self):
402
402
        if skipR:
403
403
            raise SkipTest, "Rpy not installed."
413
413
 
414
414
    def check_loglike(self, llf1, llf2):
415
415
        assert_almost_equal(llf1, llf2, DECIMAL_least)
416
 
    
 
416
 
417
417
    def check_bic(self, bic1, bic2):
418
418
        assert_almost_equal(bic1, bic2, DECIMAL)
419
419
 
420
 
 
421
420
class test_glm_poisson(check_model_results):
422
421
    def __init__(self):
423
422
        '''
461
460
#class test_glm_poisson_power(check_model_results):
462
461
#    pass
463
462
 
464
 
#FIXME: remove comment when finished
465
463
#@dec.slow
466
464
class test_glm_invgauss(check_model_results):
467
465
    def __init__(self):
479
477
        self.res1 = GLM(self.res2.endog, self.res2.exog, \
480
478
                family=models.family.InverseGaussian()).fit()
481
479
 
 
480
    def setup(self):
 
481
        if skipR:
 
482
            raise nose.SkipTest('requires rpy')
 
483
        
482
484
    def check_params(self, params1, params2):
483
485
        assert_almost_equal(params1, params2, DECIMAL)
484
486
 
517
519
        self.res2 = RModel(data.endog, data.exog, r.glm, 
518
520
            family=r.inverse_gaussian(link="log"))
519
521
        self.res2.null_deviance = 335.1539777981053 # from R, Rpy bug
 
522
        self.res2.llf = -12162.72308 # from Stata, R's has big rounding diff
 
523
                                     # common across Gamma implementation
520
524
 
521
525
    def setup(self):
522
 
#        if skipR:
523
 
        if True:
 
526
        if skipR:
524
527
            raise SkipTest, "Rpy not installed."
525
528
 
526
529
    def check_params(self, params1, params2):
529
532
    def check_resids(self, resids1, resids2):
530
533
        assert_almost_equal(resids1, resids2, DECIMAL)
531
534
 
 
535
    @dec.knownfailureif(True, "Big rounding difference vs. R")
532
536
    def check_aic_R(self, aic1, aic2):
533
537
        assert_almost_equal(aic1, aic2, DECIMAL)
534
538
 
535
539
    def check_loglike(self, llf1, llf2):
 
540
        llf1 = self.res1.model.family.logL(self.res1.model.y, 
 
541
                self.res1.mu, scale=1)
536
542
        assert_almost_equal(llf1, llf2, DECIMAL)
537
543
    
538
 
    def check_bic(self, bic1, bic2):
539
 
        assert_almost_equal(bic1, bic2, DECIMAL)
540
 
 
541
544
class test_glm_invgauss_identity(check_model_results):
542
545
    def __init__(self):
543
546
        from model_results import medpar1
548
551
        self.res2 = RModel(data.endog, data.exog, r.glm, 
549
552
            family=r.inverse_gaussian(link="identity"))
550
553
        self.res2.null_deviance = 335.1539777981053 # from R, Rpy bug
 
554
        self.res2.llf = -12163.25545    # from Stata, big diff with R
551
555
 
552
556
    def setup(self):
553
 
#        if skipR:
554
 
        if True:
 
557
        if skipR:
555
558
            raise SkipTest, "Rpy not installed."
556
559
 
557
560
    def check_params(self, params1, params2):
560
563
    def check_resids(self, resids1, resids2):
561
564
        assert_almost_equal(resids1, resids2, DECIMAL)
562
565
 
 
566
    @dec.knownfailureif(True, "Big rounding difference vs R")
563
567
    def check_aic_R(self, aic1, aic2):
564
568
        assert_almost_equal(aic1, aic2, DECIMAL)
565
569
 
566
570
    def check_loglike(self, llf1, llf2):
 
571
        llf1 = self.res1.model.family.logL(self.res1.model.y, 
 
572
                self.res1.mu, scale=1)
567
573
        assert_almost_equal(llf1, llf2, DECIMAL)
568
574
    
569
 
    def check_bic(self, bic1, bic2):
570
 
        assert_almost_equal(bic1, bic2, DECIMAL)
571
 
 
572
575
class test_glm_negbinomial(check_model_results):
573
576
    def __init__(self):
574
577
        '''