"rmse_" + rate_type, "mae_" + rate_type, "mare_" + rate_type, "pc_" + rate_type, "time_" + rate_type, ] output = pandas.DataFrame(pl.zeros((1, len(stats))), columns=stats) output["seed"] = replicate failure = [] # load new model model = mu.load_new_model(model_num, area, data_type) # replace invalid uncertainty with 10% of data set model = mu.create_uncertainty(model, rate_type) # withhold 25% of data model.input_data, test_ix = mu.test_train(model.input_data, data_type, replicate) try: # create pymc nodes for model and fit the model model.vars += dismod3.ism.age_specific_rate(model, data_type, area, "male", 2005, rate_type=rate_type) # fit the model, using a hill-climbing alg to find an initial value # and then sampling from the posterior with MCMC start = time.clock() dismod3.fit.fit_asr(model, data_type, iter=iter, thin=thin, burn=burn) elapsed = time.clock() - start # extract posterior predicted values for data pred = pandas.DataFrame( model.vars[data_type]["p_pred"].stats()["mean"], columns=["mean"], index=model.input_data.index ) pred_ui = pandas.DataFrame( model.vars[data_type]["p_pred"].stats()["95% HPD interval"],
def test_load_datatype(): data_types = list(pl.unique(model2.input_data['data_type'])) assert data_types == [data_type] def test_uncertainty_binom(): assert pl.all(model2.input_data['effective_sample_size'] >= 0) def test_uncertainty_binom_value(): assert pl.all(pl.array(model2.input_data.ix[nan_ix,'effective_sample_size']).round(2) == round(ten_percent,2)) def test_uncertainty_normal(): assert pl.all(model1.input_data['standard_error'] >= 0) # now that uncertainty tests passed, can test test_train function and creation of vars model.input_data, test_ix = mu.test_train(model.input_data, data_type, 23) model1.input_data, test_ix1 = mu.test_train(model1.input_data, data_type, 23) model.vars += dismod3.ism.age_specific_rate(model, data_type, test_area, 'male', 2005, rate_type=rate_type) def test_test_train_se(): assert pl.all(model1.input_data.ix[test_ix1,'standard_error'] == pl.inf) def test_test_train_ess(): assert pl.all(model1.input_data.ix[test_ix1,'effective_sample_size'] == 0) def test_replicate(): assert test_ix == test_ix1 def test_vars(): assert model.vars[data_type] != {}