def test_dummies(panel): data = PanelData(panel) edummy = data.dummies() assert edummy.shape == (77, 11) assert np.all(edummy.sum(0) == 7) tdummy = data.dummies(group='time') assert tdummy.shape == (77, 7) assert np.all(tdummy.sum(0) == 11) tdummy_drop = data.dummies(group='time', drop_first=True) assert tdummy_drop.shape == (77, 6) assert np.all(tdummy.sum(0) == 11) with pytest.raises(ValueError): data.dummies('unknown')
def test_dummies(mi_df): data = PanelData(mi_df) edummy = data.dummies() assert edummy.shape == (77, 11) assert np.all(edummy.sum(0) == 7) tdummy = data.dummies(group="time") assert tdummy.shape == (77, 7) assert np.all(tdummy.sum(0) == 11) tdummy_drop = data.dummies(group="time", drop_first=True) assert tdummy_drop.shape == (77, 6) assert np.all(tdummy.sum(0) == 11) with pytest.raises(ValueError): data.dummies("unknown")
mod = PanelOLS(y, x, weights=data.w, entity_effects=True) mod.fit() mod = PanelOLS(data.y, data.x, weights=data.w, time_effects=True) mod.fit() mod = PanelOLS(data.y, data.x, weights=data.w, time_effects=True, entity_effects=True) mod.fit() missing = y.isnull | x.isnull | w.isnull y.drop(missing) x.drop(missing) w.drop(missing) x.dataframe.iloc[:, 0] = 1 ydw = y.demean(weights=w) xdw = x.demean(weights=w) d = x.dummies('entity', drop_first=False) root_w = np.sqrt(w.values2d) wd = root_w * d wdx_direct = root_w * x.values2d - wd @ np.linalg.lstsq(wd, root_w * x.values2d)[0] print(np.abs(wdx_direct[0] - xdw.values2d[0]) > 1e-14) mux = (w.values2d * x.values2d).sum(0) / w.values2d.sum() muy = (w.values2d * y.values2d).sum(0) / w.values2d.sum() xx = xdw.values2d + root_w * mux yy = ydw.values2d + root_w * muy.squeeze() print(np.linalg.lstsq(xx, yy)[0]) yyy = root_w * y.values2d xxx = root_w * x.values2d ddd = root_w * x.dummies(drop_first=True) zzz = root_w * np.ones_like(y.values2d)