def test_fama_macbeth(data): res = FamaMacBeth(data.y, data.x).fit(debiased=True) y = PanelData(data.y) x = PanelData(data.x) missing = y.isnull | x.isnull y.drop(missing) x.drop(missing) y = y.dataframe x = x.dataframe times = y.index.levels[1] params = [] for t in times: _y = y.xs(t, level=1) _x = x.xs(t, level=1) if _x.shape[0] < _x.shape[1]: continue _x = _x.loc[_y.index] params.append(lstsq(_x.values, _y.values, rcond=None)[0]) params = np.array(params).squeeze() all_params = params params = params.mean(0) assert_allclose(params.squeeze(), res.params) assert_allclose(all_params, res.all_params.dropna(how="all")) e_params = all_params - params[None, :] ntime = e_params.shape[0] cov = e_params.T @ e_params / ntime / (ntime - 1) assert_allclose(cov, np.asarray(res.cov)) access_attributes(res)
def test_fama_macbeth_kernel_smoke(data): FamaMacBeth(data.y, data.x).fit(cov_type="kernel") FamaMacBeth(data.y, data.x).fit(cov_type="kernel", kernel="bartlett") FamaMacBeth(data.y, data.x).fit(cov_type="kernel", kernel="newey-west") FamaMacBeth(data.y, data.x).fit(cov_type="kernel", kernel="parzen") FamaMacBeth(data.y, data.x).fit(cov_type="kernel", kernel="qs") FamaMacBeth(data.y, data.x).fit(cov_type="kernel", bandwidth=3) res = FamaMacBeth(data.y, data.x).fit(cov_type="kernel", kernel="andrews") access_attributes(res)
def test_fama_macbeth_kernel_smoke(data): FamaMacBeth(data.y, data.x).fit(cov_type='kernel') FamaMacBeth(data.y, data.x).fit(cov_type='kernel', kernel='bartlett') FamaMacBeth(data.y, data.x).fit(cov_type='kernel', kernel='newey-west') FamaMacBeth(data.y, data.x).fit(cov_type='kernel', kernel='parzen') FamaMacBeth(data.y, data.x).fit(cov_type='kernel', kernel='qs') FamaMacBeth(data.y, data.x).fit(cov_type='kernel', bandwidth=3) res = FamaMacBeth(data.y, data.x).fit(cov_type='kernel', kernel='andrews') access_attributes(res)
def test_results_access(data): mod = PanelOLS(data.y, data.x, entity_effects=True) res = mod.fit() access_attributes(res) mod = PanelOLS(data.y, data.x, other_effects=data.c) res = mod.fit() access_attributes(res) mod = PanelOLS(data.y, data.x, time_effects=True, entity_effects=True) res = mod.fit() access_attributes(res) mod = PanelOLS(data.y, data.x) res = mod.fit() access_attributes(res) const = PanelData(data.y).copy() const.dataframe.iloc[:, :] = 1 const.dataframe.columns = ["const"] mod = PanelOLS(data.y, const) res = mod.fit() access_attributes(res)
def test_results_access(data): mod = PooledOLS(data.y, data.x) res = mod.fit(debiased=False) access_attributes(res) mod = PooledOLS(data.y, data.x) res = mod.fit(debiased=True) access_attributes(res) if not isinstance(data.x, pd.DataFrame): return x = data.y.copy() x.iloc[:, :] = 1 mod = PooledOLS(data.y, x) res = mod.fit(debiased=False) access_attributes(res)
def test_results_access(data): mod = FirstDifferenceOLS(data.y, data.x) res = mod.fit(debiased=False) access_attributes(res)
def test_results_access(data): mod = RandomEffects(data.y, data.x) res = mod.fit(debiased=False) access_attributes(res)
def test_results_access(data): mod = BetweenOLS(data.y, data.x) res = mod.fit(debiased=False) access_attributes(res)