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

如何在GAM模型的predict()输出中保留Country_Name字段?

解决GAM预测结果保留Country_Name字段的方法

直接将预测结果与原数据的Country_Name字段合并即可,predict()函数默认仅返回预测值向量,不会自动关联原数据的其他字段,以下是具体实现方式:

方法1:基于训练数据生成预测并合并

如果你是对训练数据economy_df生成预测,直接提取原数据的Country_Name和预测结果组合成数据框:

# 生成预测值(使用type="response"得到原始尺度的预测,对应模型的log链接)
predictions <- predict(mod, data = economy_df, type = "response")

# 组合成目标格式的结果
output_df <- data.frame(
  Country_Name = economy_df$Country_Name,
  prediction = predictions
)

# 查看结果
print(output_df)

方法2:基于新数据生成预测并合并

如果是对新数据集(比如new_economy_df)预测,确保新数据包含Country_Name字段(模型中包含该变量,必须提供),然后同样合并:

# 假设new_economy_df是包含所有模型变量的新数据
new_predictions <- predict(mod, data = new_economy_df, type = "response")

new_output_df <- data.frame(
  Country_Name = new_economy_df$Country_Name,
  prediction = new_predictions
)

注意事项

  • 你的模型中Country_Name作为分类固定效应变量存在,所以预测时输入的数据必须包含该字段,否则predict()会报错。
  • type="response"参数是因为模型使用了gaussian(link="log"),如果不加这个参数,返回的是对数尺度的预测值,可根据需求选择是否添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:50:23