Esempio n. 1
0
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')
Esempio n. 2
0
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")
Esempio n. 3
0
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)