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

STM模型estimateEffect仅返回10年结果,如何获取全部年份数据?

解决STM estimateEffect显示全部年份数据的问题

方法1:用predict函数生成所有年份的估计值

estimateEffect默认只展示平滑项的10个分位点数据,要获取全部年份,可通过predict函数指定目标年份:

  1. 构造包含所有唯一年份的新数据集(需指定基准政党,保证系数计算一致):
new_data <- expand.grid(
  Year = unique(out$meta$Year),  # 提取元数据里的所有年份
  Party = levels(out$meta$Party)[1]  # 选政党变量的基准类别
)
  1. 调用predict获取每个主题在所有年份的估计值:
full_year_results <- predict(prep, newdata = new_data, type = "link")

将full_year_results和new_data合并后,就能查看所有年份的主题效应数据。

方法2:直接提取平滑项的拟合值

也可以从prep对象中手动提取平滑项的完整拟合结果:

  1. 定位目标主题的平滑项(以主题1为例):
target_smooth <- prep$smooths[[1]]$smooths[[1]]
  1. 用smoothTerm函数生成所有年份的拟合值:
year_fit <- smoothTerm(target_smooth, newdata = data.frame(Year = unique(out$meta$Year)))

返回的year_fit包含每个年份的平滑项估计值及置信区间。

关于tidytext的tidy函数失效的说明

tidytext的tidy方法对含平滑项的estimateEffect对象支持有限,因此更推荐使用上述两种STM原生方法获取完整年份数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:29:51