在AnyLogic中从导入数据库运行多迭代重复实验遇问题求助
简便实现方案
1. 按日期拆分独立实验,避免存储冲突
放弃在单次ParameterVariations实验内循环处理所有日期,直接按日期维度拆分实验:
- 从数据库提取20天数据并按日期分组,为每个日期创建单独的
ParameterVariations实验 - 每个实验仅对应单一日程数据,设置重复次数(建议至少30次,满足95%置信区间的统计样本要求)
- 实验输出自动绑定对应日期,无需手动在迭代中处理存储,工具会按实验维度自动归档数据
2. 批量生成实验的快捷代码(适配支持API的实验平台)
如果手动创建20个实验繁琐,用批量脚本快速生成:
import pandas as pd import your_experiment_platform_api as exp_api # 从数据库读取并分组数据 db_conn = your_database_connection() # 替换为你的数据库连接逻辑 df = pd.read_sql("SELECT * FROM schedule_table", db_conn) daily_groups = df.groupby("date") # 批量创建并启动实验 for date, daily_data in daily_groups: exp = exp_api.create_param_variation_exp( name=f"Daily_Schedule_Exp_{date.strftime('%Y%m%d')}", parameters={"schedule": daily_data.to_dict(orient="records")}, repeat_count=50 # 50次重复足以稳定计算95%置信区间 ) exp.start()
3. 自动计算95%置信区间
实验完成后直接用工具内置功能处理:
- 针对每个日期的实验结果,选择置信区间分析,设置置信水平为95%
- 工具会自动基于重复实验的输出,计算均值、标准差及95%CI上下限
- 一键导出所有日期的统计结果表格,包含日期、均值、95%CI区间值
4. 规避迭代存储错误的核心逻辑
之前的错误大概率是单次实验迭代中重复写入同一存储路径/变量导致的冲突,按日期拆分实验后:
- 每个实验的输出是独立存储单元,不会互相覆盖
- 省去手动迭代存储的代码逻辑,减少出错概率
内容的提问来源于stack exchange,提问作者Simran
相关产品推荐
相关产品推荐

