def test_general_demean_oneway(panel):
y = PanelData(panel)
dm1 = y.demean('entity')
g = pd.DataFrame(y.entity_ids, index=y.index)
dm2 = y.general_demean(g)
assert_allclose(dm1.values2d, dm2.values2d)
dm1 = y.demean('time')
g = pd.DataFrame(y.time_ids, index=y.index)
dm2 = y.general_demean(g)
assert_allclose(dm1.values2d, dm2.values2d)
g = pd.DataFrame(np.random.randint(0, 10, g.shape), index=y.index)
dm2 = y.general_demean(g)
g = pd.Categorical(g.iloc[:, 0])
d = pd.get_dummies(g)
dm1 = y.values2d - d @ np.linalg.lstsq(d, y.values2d)[0]
assert_allclose(dm1, dm2.values2d)
评论列表
文章目录