linearmodels与statsmodels的标准误差估计结果差异问询
面板数据分析中聚类标准误差的差异问题
在面板数据分析场景下,使用linearmodels的PanelOLS与statsmodels的ols进行聚类标准误差估计时,参数估计值高度接近,但标准误差(SE)估计结果差异显著。以下是可复现代码及对应结果:
linearmodels PanelOLS 实现
import pandas as pd import numpy as np # 构造面板数据索引:外层为个体,内层为时间 entity = list(map(chr, range(65, 91))) time = list(pd.date_range('1-1-2014', freq='A', periods=4)) index = pd.MultiIndex.from_product([entity, time]) df = pd.DataFrame(np.random.randn(26*4, 2), index=index, columns=['y','x']) from linearmodels.panel import PanelOLS mod = PanelOLS(df.y, df.x, entity_effects=True) res = mod.fit(cov_type='clustered', cluster_entity=True) print(res)
运行结果:
- 参数估计值:
-0.1425 - 标准误差估计值:
0.1396
statsmodels OLS 实现
import statsmodels.formula.api as smf df = df.reset_index() lm = smf.ols('y ~ x - 1 + C(level_0)', df).fit(cov_type='cluster', cov_kwds={'groups': df['level_0']}) print(lm.params['x'], lm.bse['x'])
运行结果:
- 参数估计值:
-0.14249279008084645 - 标准误差估计值:
0.16390753835717325
可见二者的标准误差结果差距明显。
内容的提问来源于stack exchange,提问作者StatsNoob
相关产品推荐
相关产品推荐

