【问题标题】:How to generate input parameters for a simulation study using a collected data set?如何使用收集的数据集为模拟研究生成输入参数?
【发布时间】:2019-07-03 12:05:56
【问题描述】:

假设我有一个数据集 S,其中包含不同作业的服务时间,例如S={t1,t2,t3,...,tn},其中 ti 是第 i 个作业的服务时间;和 n 我的数据集中的总数。这个 S 只是总体中的一个样本。这里是 300k。我想研究长时间服务的影响,因为有些工作需要很长时间,有些则不需要。我的直觉是根据从真实系统收集的数据来研究这种影响。研究中的系统有数以百万计的工作,这个数字每几秒钟就会增加 100 个新工作。此外,服务时间是通过对本地机器上的作业进行基准测试来衡量的。因此,实际上不断扩展数据集的成本很高。于是,我决定随机抽取300k。

我正在进行模拟实验,我必须生成大量工作及其服务时间(例如数百万),然后进行一些其他计算。

如何在我的模拟中使用 S 作为种群,我遇到了以下问题:

1- 使用 S 本身。我可以使用引导“有替换的样本”或“没有替换的样本”。

2- 将理论分布模型拟合到 S,然后从中提取。

我说的对吗?哪种方法最好(优点和缺点)?第一种方法似乎很简单,每次从 S 中选择一个随机服务时间?可靠吗?感谢任何建议,因为我没有得到统计数据。

【问题讨论】:

    标签: python simulation sampling resampling input-parameters


    【解决方案1】:

    在 2007 年冬季模拟会议上引用 this tutorial

    乍一看,跟踪驱动的模拟似乎很有吸引力。那是 其中历史数据直接用作输入。很难争辩 当真实数据来自 您的模型中使用了真实世界的系统。然而在实践中,这 由于几个原因,往往是一个糟糕的解决方案。历史数据可能 价格昂贵或无法提取。它肯定不可用 数量不限,这大大减少了统计 分析可能。存储要求很高。最后,但不是 至少,不可能评估“假设”?策略或尝试 模拟一个预期系统,即尚不存在的系统。

    1. 模拟的主要用途之一是研究替代配置或策略,而跟踪数据不适合这样做 - 它只能显示您当前的操作方式。追踪数据不能用于研究正在考虑但尚不存在的系统。
    2. Bootstrapping 对现有数据进行重新采样。这消除了数据数量的限制,但有潜在的成本。 Bootstrapping 的前提是您的数据具有代表性和独立性。前者可能不是 300k 观察的问题,但由于成本或可用性问题,当您的样本量较小时经常出现。如果您的数据来自观察结果是序列相关或非同质的时间序列,则后者很重要。在这种情况下,独立随机采样(而不是顺序回放)可能会丢失有关所研究行为的重要信息。
    3. 如果需要连续回放,您又回到了被限制为 300k 观察的状态,而这可能不像您认为的统计测量那样多。方差估计对于计算置信区间的误差范围至关重要,而序列相关性对样本均值的方差有很大的影响。获得有效的置信区间估计可能需要比独立数据多几个数量级的数据。

    总之,分布拟合需要更多的前期工作,但从长远来看通常更有用。

    【讨论】:

    • 谢谢,非常有用。我添加了一些文字来解释更多。对于 2,我知道 bootstrap 假设我的数据具有代表性,但我不确定我的数据是否具有代表性,因为我从庞大的数据集(数以百万计)中采样了 300k。你的意思是引导程序适用于小样本,不像我的那么大?引导很容易,并且在您替换项目时会生成许多样本。为了拟合分布,这是否会产生可能不属于数据集和人口集的工作?我仍然不确定哪种方法最适合我的情况,即使有一些缺点。
    猜你喜欢
    • 2023-03-11
    • 2018-03-31
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多