You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

面板数据Fixed Effects与Random Effects分析:R实现及技术咨询

针对德国联邦议院议员发言时长面板数据的FE/RE分析R操作指南

1. 变量转换的判断与操作

  • 因变量(发言时长):先通过hist(panel_data$speech_duration)查看分布,如果数据呈现右偏(多数议员发言短,少数人时长显著偏高),建议做对数转换以削弱极端值干扰,操作:panel_data$log_speech <- log(panel_data$speech_duration + 1)(加1是为了处理发言时长为0的情况)。
  • 分类自变量(如性别):必须转换为因子类型,否则R会将其误作连续变量处理,操作:panel_data$gender <- factor(panel_data$gender, levels = c("male", "female"), labels = c("男性", "女性"))。
  • 连续自变量(如年龄):若初步判断年龄对发言时长的影响是非线性的(比如中年议员发言更长),可构造年龄平方项:panel_data$age_sq <- panel_data$age^2。
  • 时间变量:若要捕捉时间趋势,可将年份转换为因子:panel_data$year <- factor(panel_data$year),或直接加入时间虚拟变量。

2. R中固定效应与随机效应的核心命令

首先安装并加载专门用于面板分析的plm包:

install.packages("plm")
library(plm)

假设你的面板数据框名为panel_data,个体标识为议员ID(mp_id),时间标识为年份(year):

  • 固定效应模型(FE):采用within模型控制个体异质性
fe_model <- plm(log_speech ~ gender + age + age_sq, 
                data = panel_data, 
                model = "within", 
                index = c("mp_id", "year"))
  • 随机效应模型(RE):
re_model <- plm(log_speech ~ gender + age + age_sq, 
                data = panel_data, 
                model = "random", 
                index = c("mp_id", "year"))
  • Hausman检验(模型选择):判断FE/RE哪种更适配数据
hausman_test <- phtest(fe_model, re_model)
summary(hausman_test)

3. 生成易解读的结果输出

可以用modelsummary包生成简洁美观的对比表格,先安装加载:

install.packages("modelsummary")
library(modelsummary)

生成FE与RE的对比结果表,自定义系数名称和显著性标记:

modelsummary(list("固定效应模型" = fe_model, "随机效应模型" = re_model),
             stars = TRUE,
             coef_rename = c("gender女性" = "女性",
                             "age" = "年龄",
                             "age_sq" = "年龄平方"),
             gof_map = c("nobs", "r.squared", "adj.r.squared"))

若需查看模型细节,直接用基础命令输出:

summary(fe_model)
summary(re_model)

内容的提问来源于stack exchange,提问作者CorinnaW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 03:52:44