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

Fable包不同配置TSLM模型输出相同预测结果问题求助

问题原因排查优先级

  • 测试集预测变量转换后存在缺失值:你模型中所有额外解释变量都做了log()转换,若测试集内的ig_count_imptd、prd_1至prd_4、prd_glmnet存在小于等于0的取值,转换后会生成NaN。fable的forecast()方法遇到缺失的解释变量时,会自动仅使用无缺失的变量(即本案例中的trend()项)生成预测,因此所有模型的输出都会和trend_only模型完全一致。
    验证方法:运行以下代码检查转换后是否存在缺失值:
    test %>% 
      mutate(across(c(ig_count_imptd, prd_1, prd_2, prd_3, prd_4, prd_glmnet), ~log(.x))) %>% 
      is.na() %>% 
      sum()
    
    若返回结果大于0即可确认是该问题。
  • 预测变量与趋势项完全共线性:如果你的prd系列变量本身就是时间趋势的线性函数,那么trend() + log(prd_x)的线性组合和仅trend()的线性组合在预测时完全等价,即使模型系数估计值不同,最终生成的预测值也会完全一致。
    验证方法:对训练集的每个prd变量拟合TSLM(log(prd_x) ~ trend()),查看拟合优度R²是否接近1。
  • 变量名匹配错误:检查test数据框中的预测变量列名是否和训练集完全一致,有没有拼写错误、大小写差异,如果列名不匹配,forecast()会找不到对应的解释变量,同样会仅用trend项做预测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:10