experiments.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:deep-iv 作者: allentran 项目源码 文件源码
def estimate(self, n_sims=20):

        np.random.seed(1692)

        model = feedforward.FeedForwardModel(19, 1, dense_size=10, n_dense_layers=2)

        treatment_effects = []
        ols_betas, ols_ses = [], []
        old_corrs, new_corrs = [], []
        for _ in xrange(n_sims):
            df = self.treatment_gen.simulate_data(True)

            X = np.hstack((self.x, df['new_treat'].values[:, None]))
            Z = np.hstack((self.x, df['instrument'].values[:, None]))

            ols_beta, ols_se = self.fit_ols(df['treatment_effect'], X)
            ols_betas.append(ols_beta)
            ols_ses.append(ols_se)

            new_corr = model.fit(X, Z, df['treatment_effect'].values, instrument=True, batchsize=64)
            if new_corr:
                old_corr = df[['instrument', 'new_treat']].corr().values[0, 1]
                new_corrs.append(new_corr)
                old_corrs.append(old_corr)

            treatment_effects.append(model.get_treatment_effect(X))
            model.reset_params()

        if new_corr:
            logger.info("Old corr: %.2f, New corr: %.2f", np.mean(old_corrs), np.mean(new_corrs))
        logger.info("Treatment effect (OLS): %.3f (%.4f)", np.mean(ols_betas), np.mean(ols_ses))
        logger.info("Treatment effect: %.3f (%.4f)", np.mean(treatment_effects), np.std(treatment_effects))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号