Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
b = (x.T @ z) @ (x.T @ z).T
a
b
np.linalg.inv(a) @ b
np.trace(np.linalg.inv(a) @ b)
30
30
data = generate_data(0, 'pandas', ntk=(101, 3, 5), other_effects=1, const=False)
y = PanelData(data.y)
x = PanelData(data.x)
w = PanelData(data.w)
x.dataframe.iloc[:, 0] = 1
mod = PanelOLS(data.y, data.x, weights=data.w)
mod.fit()
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)
lm.WARN_ON_MISSING = False
from linearmodels import utility
utility.missing_warning(np.array([True, True, False]))
from linearmodels.panel import PanelOLS, RandomEffects, PooledOLS, FamaMacBeth
from linearmodels.datasets import wage_panel
import statsmodels.api as sm
data = wage_panel.load()
data = data.set_index(['nr','year'])
dependent = data.lwage
exog = sm.add_constant(data[['expersq','married','union']])
out = FamaMacBeth(dependent, exog).fit()
print(out)
raise NotImplementedError
mod = PanelOLS(dependent, exog, entity_effects=True, time_effects=True)
res = mod.fit(cov_type='unadjusted')
res2 = mod.fit(cov_type='robust')
exog = sm.add_constant(data[['exper', 'expersq','married','union']])
mod = PanelOLS(dependent, exog, entity_effects=True)
res3 = mod.fit(cov_type='clustered',cluster_entity=True)
mod = RandomEffects(dependent, exog)
res4 = mod.fit(cov_type='robust')
from linearmodels.panel.results import compare
exog = sm.add_constant(data[['exper', 'expersq','married','union']].copy())
import pandas as pd
exog['year'] = pd.Categorical(data.reset_index()['year'])
mod = PooledOLS(dependent, exog)
res5 = mod.fit(cov_type='robust')
print(compare([res,res2, res3, res4, res5]))
b
np.linalg.inv(a) @ b
np.trace(np.linalg.inv(a) @ b)
30
30
data = generate_data(0, 'pandas', ntk=(101, 3, 5), other_effects=1, const=False)
y = PanelData(data.y)
x = PanelData(data.x)
w = PanelData(data.w)
x.dataframe.iloc[:, 0] = 1
mod = PanelOLS(data.y, data.x, weights=data.w)
mod.fit()
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)
np.trace(np.linalg.inv(a) @ b)
30
30
data = generate_data(0, 'pandas', ntk=(101, 3, 5), other_effects=1, const=False)
y = PanelData(data.y)
x = PanelData(data.x)
w = PanelData(data.w)
x.dataframe.iloc[:, 0] = 1
mod = PanelOLS(data.y, data.x, weights=data.w)
mod.fit()
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]
from linearmodels.panel import PanelOLS, RandomEffects, PooledOLS, FamaMacBeth
from linearmodels.datasets import wage_panel
import statsmodels.api as sm
data = wage_panel.load()
data = data.set_index(['nr','year'])
dependent = data.lwage
exog = sm.add_constant(data[['expersq','married','union']])
out = FamaMacBeth(dependent, exog).fit()
print(out)
raise NotImplementedError
mod = PanelOLS(dependent, exog, entity_effects=True, time_effects=True)
res = mod.fit(cov_type='unadjusted')
res2 = mod.fit(cov_type='robust')
exog = sm.add_constant(data[['exper', 'expersq','married','union']])
mod = PanelOLS(dependent, exog, entity_effects=True)
res3 = mod.fit(cov_type='clustered',cluster_entity=True)
mod = RandomEffects(dependent, exog)
res4 = mod.fit(cov_type='robust')
from linearmodels.panel.results import compare
exog = sm.add_constant(data[['exper', 'expersq','married','union']].copy())
import pandas as pd
exog['year'] = pd.Categorical(data.reset_index()['year'])
mod = PooledOLS(dependent, exog)
res5 = mod.fit(cov_type='robust')
print(compare([res,res2, res3, res4, res5]))
print(data.columns)
from linearmodels.panel.data import PanelData
30
data = generate_data(0, 'pandas', ntk=(101, 3, 5), other_effects=1, const=False)
y = PanelData(data.y)
x = PanelData(data.x)
w = PanelData(data.w)
x.dataframe.iloc[:, 0] = 1
mod = PanelOLS(data.y, data.x, weights=data.w)
mod.fit()
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)
res = mod.fit(small_sample=True)
print(res.variance_decomposition)
mod = RandomEffects(data.y_light, data[['intercept', 'x1_light','x2_light','x3_light','x4_light','x5_light']])
res = mod.fit()
import numpy as np
from statsmodels.datasets import grunfeld
data = grunfeld.load_pandas().data
data.year = data.year.astype(np.int64)
from linearmodels import PanelOLS
etdata = data.set_index(['firm', 'year'])
mod2 = PanelOLS(etdata.invest, etdata[['value', 'capital']], entity_effects=True)
res2 = mod2.fit(debiased=True)
import numpy as np
x = np.random.randn(10, 2)
p = np.zeros((10, 10))
p[:5, :5] = 1 / 5
p[5:, 5:] = 1 / 5
z = np.zeros((10, 2))
z[:5, 0] = 1
z[5:, 1] = 1
a = x.T @ p @ x
b = (x.T @ z) @ (x.T @ z).T
import numpy as np
from statsmodels.datasets import grunfeld
p[5:, 5:] = 1 / 5
z = np.zeros((10, 2))
z[:5, 0] = 1
z[5:, 1] = 1
a = x.T @ p @ x
b = (x.T @ z) @ (x.T @ z).T
import numpy as np
from statsmodels.datasets import grunfeld
data = grunfeld.load_pandas().data
data.year = data.year.astype(np.int64)
from linearmodels import PanelOLS
etdata = data.set_index(['firm', 'year'])
res = PanelOLS(etdata.invest, etdata[['value', 'capital']], entity_effects=True).fit(debiased=True)
x = np.random.randn(10, 2)
p = np.zeros((10, 10))
p[:5, :5] = 1 / 5
p[5:, 5:] = 1 / 5
p
x
x.T @ p
x.T @ p @ x
x
x.T @ p @ x
x.mean(0)
x.sum(0)
x.sum(0)[:, None].T
x.sum(0)[:, None]
x.sum(0)[:, None] @ x.sum(0)[:, None].T
x.sum(0)[:, None] @ x.sum(0)[:, None].T / 5
from linearmodels.iv import IV2SLS, IVGMM, IVGMMCUE, IVLIML
from linearmodels.panel import (BetweenOLS, FamaMacBeth, FirstDifferenceOLS,
PanelOLS, PooledOLS, RandomEffects)
from linearmodels.system import IV3SLS, SUR, IVSystemGMM
__all__ = ['between_ols', 'random_effects', 'first_difference_ols',
'pooled_ols', 'panel_ols', 'iv_2sls', 'iv_gmm', 'iv_gmm_cue',
'iv_liml', 'sur', 'iv_3sls', 'iv_system_gmm']
iv_2sls = IV2SLS.from_formula
iv_liml = IVLIML.from_formula
iv_gmm = IVGMM.from_formula
iv_gmm_cue = IVGMMCUE.from_formula
panel_ols = PanelOLS.from_formula
pooled_ols = PooledOLS.from_formula
between_ols = BetweenOLS.from_formula
first_difference_ols = FirstDifferenceOLS.from_formula
random_effects = RandomEffects.from_formula
fama_macbeth = FamaMacBeth.from_formula
sur = SUR.from_formula
iv_3sls = IV3SLS.from_formula
iv_system_gmm = IVSystemGMM.from_formula