Ejemplo n.º 1
0
    def setup_class(self):
        # replicating OLS by GMM - high agreement
        self.params_tol = [1e-11, 1e-12]
        self.bse_tol = [1e-13, 1e-13]
        exog = exog_st  # with const at end
        res_ols = OLS(endog, exog).fit()
        #Note: start is irrelevant but required
        start = np.ones(len(res_ols.params))
        nobs, k_instr = instrument.shape
        w0inv = np.dot(exog.T, exog) / nobs
        #w0 = np.linalg.inv(w0inv)

        mod = gmm.LinearIVGMM(endog, exog, exog)
        res = mod.fit(
            start,
            maxiter=0,
            inv_weights=w0inv,
            #optim_method='bfgs', optim_args={'gtol':1e-6},
            weights_method='iid',
            wargs={
                'centered': False,
                'ddof': 'k_params'
            },
            has_optimal_weights=True)
        self.res1 = res

        #from results_gmm_griliches import results_onestep as results
        #self.res2 = results
        self.res2 = res_ols
Ejemplo n.º 2
0
    def setup_class(cls):
        # replicating OLS by GMM - high agreement
        cls.params_tol = [1e-11, 1e-12]
        cls.bse_tol = [1e-12, 1e-12]
        exog = exog_st  # with const at end
        res_ols = OLS(endog, exog).fit()
        #Note: start is irrelevant but required
        start = np.ones(len(res_ols.params))
        nobs, k_instr = instrument.shape
        w0inv = np.dot(exog.T, exog) / nobs
        #w0 = np.linalg.inv(w0inv)

        mod = gmm.LinearIVGMM(endog, exog, exog)
        res = mod.fit(
            start,
            maxiter=0,
            inv_weights=w0inv,
            #optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0},
            optim_args={'disp': 0},
            weights_method='iid',
            wargs={
                'centered': False,
                'ddof': 'k_params'
            },
            has_optimal_weights=True)

        # fix use of t distribution see #2495 comment
        res.use_t = True
        res.df_resid = res.nobs - len(res.params)
        cls.res1 = res

        #from .results_gmm_griliches import results_onestep as results
        #cls.res2 = results
        cls.res2 = res_ols
Ejemplo n.º 3
0
    def setup_class(self):
        # compare to Stata default options, onestep GMM
        # this uses maxiter=1, one iteration in loop
        self.params_tol = [5e-9, 1e-9]
        self.bse_tol = [5e-10, 1e-10]
        exog = exog_st  # with const at end
        start = OLS(endog, exog).fit().params
        nobs, k_instr = instrument.shape
        w0inv = np.dot(instrument.T, instrument) / nobs
        #w0 = np.linalg.inv(w0inv)

        mod = gmm.LinearIVGMM(endog, exog, instrument)
        res = mod.fit(start,
                      maxiter=1,
                      inv_weights=w0inv,
                      optim_method='bfgs',
                      optim_args={'gtol': 1e-6},
                      wargs={'centered': False},
                      has_optimal_weights=False)
        self.res1 = res

        mod = gmm.IVGMM(endog, exog, instrument)
        res = mod.fit(start,
                      maxiter=1,
                      inv_weights=w0inv,
                      optim_method='bfgs',
                      optim_args={'gtol': 1e-6},
                      wargs={'centered': False},
                      has_optimal_weights=False)
        self.res3 = res

        from results_gmm_griliches import results_onestep as results
        self.res2 = results