如何包含年份固定效应(在每日面板数据中)

How to include year fixed effect (in a daily panel data)

我正在处理一个面板数据集,其中包括 450 家公司 5 年的每日股票 return 和 5 年的每日 ESG 评分(基于动量)。我想根据每日 ESG 分数对股票 return 进行回归,保持公司和年度固定效应。我在 python 中使用了 linearmodels.panel 函数,并在 运行 具有实体和时间效应的回归之前设置了 index('Stock ticker", "Date") 。在回归结果中,数字实体显示 450,这是完美的,但时间段显示 1800。我想知道 python 是如何捕捉时间效应的?它是基于年份还是其他方式?我想要的是一年的固定效应,其中对于特定年份,所有公司都会有相同的指标变量。有人可以帮我以正确的方式做到这一点吗? the image shows the format of the data, where panel is based on daily returns

听起来您的模型正在捕捉日固定效应而不是年度固定效应。发生这种情况是因为您将 Date 设置为索引,所以您告诉 Python 您希望每个日期有一个固定效果。

您必须创建一个仅包含年份的新列。即,将日期列转换为日期时间格式(参见pandas.to_datetime),然后:

# Extract year from Date
df['Year'] = pd.DatetimeIndex(df['Date']).year

# Set indices
df = df.set_index(['Ticker','Year'])

然后运行你的模型。

我推荐使用 linearmodels.PanelOLS 因为那个模块是 specifically made for fitting fixed effects models.

为了将来参考,post 您的代码和可复制的示例,以便我们可以更轻松地帮助您。