如何保存fixest::feols回归的估计样本以计算描述统计量?
如何用fixest::feols保存估计样本并计算描述统计量
在fixest中,obs(model)返回的是估计样本对应的行号整数向量,我们可以通过两种简单方式将其转化为可用的筛选条件,实现类似Stata中e(sample)的效果:
方法一:直接提取估计样本数据集
先运行回归并获取保留样本的行号,再从原数据框中提取对应行,之后就可以对这个子集直接计算描述统计:
library(fixest) # 示例:带缺失值的模拟数据 iris_data = iris iris_data$Sepal.Length[1:10] = NA # 拟合回归 reg_model = feols(Sepal.Width ~ Sepal.Length, data = iris_data) # 获取估计样本的行号 est_rows = obs(reg_model) # 提取估计样本 est_sample = iris_data[est_rows, ] # 计算描述统计量 # 比如因变量的均值、标准差 mean(est_sample$Sepal.Width) sd(est_sample$Sepal.Width) # 或者整体汇总 summary(est_sample)
方法二:生成布尔型样本标识向量
如果不想单独提取数据集,可以生成一个和原数据行数一致的布尔向量,标记哪些行属于估计样本,直接用于筛选计算:
# 创建初始全为FALSE的布尔向量 in_est_sample = rep(FALSE, nrow(iris_data)) # 将估计样本对应的位置设为TRUE in_est_sample[est_rows] = TRUE # 直接用向量筛选计算 # 示例:计算因变量在估计样本中的均值 mean(iris_data$Sepal.Width[in_est_sample]) # 或者筛选指定变量做汇总 summary(iris_data[in_est_sample, c("Sepal.Width", "Sepal.Length")])
这两种方法都能精准定位到回归时实际使用的样本,满足描述统计的需求,你可以根据后续操作的便利性选择合适的方式。
内容的提问来源于stack exchange,提问作者Macaulay
相关产品推荐
相关产品推荐

