使用R语言Bass扩散模型处理年度数据时遇‘vOut未找到’错误求助
解决R语言diffusion包运行Bass模型时的"Object 'vOut' not found"错误
问题重现
运行以下代码时触发错误:
library(diffusion) years <- c(2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023) adopters <- c(1000, 2500, 6000, 13000, 28000, 45000, 72000, 110000) bass_model <- diffusion(years, adopters, type = "bass")
错误信息:
Error in structure(list(type = type, call = sys.call(), w = w, y = y, : Object 'vOut' not found
解决方案
这个错误的核心原因是diffusion函数的第一个参数(时间变量)需要是从1开始的连续整数索引,而非实际年份数值。调整时间参数格式即可解决,具体步骤如下:
- 将实际年份替换为从1开始的时间索引序列
- 重新运行模型
修改后的代码:
library(diffusion) # 生成对应年份的连续时间索引(1对应2016,2对应2017,以此类推) time_index <- seq_along(years) adopters <- c(1000, 2500, 6000, 13000, 28000, 45000, 72000, 110000) # 拟合Bass模型 bass_model <- diffusion(time_index, adopters, type = "bass") # 查看模型结果 summary(bass_model)
补充说明
如果调整参数后仍报错,建议先更新diffusion包到最新版本:
update.packages("diffusion")
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

