.net - 从钟形曲线近似数字?

标签 .net normal-distribution

在这件事上我一直在用头撞墙。

我正在开展一个项目,其中客户拥有一个调用中心,并希望通过输入高峰时段(该小时内所需人员的估计值)来估计事件中半小时内所需的人员数量大概是一个标准差。然后,这应该将值“扇出”到其他槽(在峰值两侧减小)。

如果这是一个图表,x 轴上有半小时时段(1 到 48),y 轴上有所需的人数,这看起来像一条钟形曲线,峰值位于指定的峰值小时。

如何获得每半小时时段所需座位的大概值?任何正确方向的观点都将不胜感激!

附注如果有人知道任何可以执行此操作的库,则使用 .NET 进行工作。

最佳答案

您可以获得概率密度函数的论坛(以及 .NET 库)here

但是,我自己在工作中开发调用中心软件,我可以告诉您 FTE 从来都不是正态分布的。通常有大约 2-3 个重叠的正态分布,一个向左倾斜,一个向右倾斜,具体取决于一天中的时间(清晨、下午晚些时候)和营销事件类型(B2B 到 B2C)。

为了进行更准确的估计,我建议保留调用中心先前事件/负载的历史记录(每半小时间隔的平均负载是多少),然后将其用作分布基线,对其进行缩放以适应预期峰值负载和估计通话时长。这就是我们在 ProtCall 中所做的,通常在实际负载的 90% - 95% 范围内。有时。有时我们会错过十倍。

编辑:

好吧,我花了一点时间来研究如何估计负载,标准分布不会让你一事无成。看看couplescreenshots从我们的图表中,您会看到分布实际上有多么不同。

你需要做什么(基本上):

  1. 对每分钟调用的电话数量进行采样(自 60 秒前以来我们调用了多少个电话)
  2. 将这些示例保存在表中:TimeOfDay、CallsMade
  3. 加载这些样本并缩放它们。 (即,如果我们的总表有 10.000 个调用,而我们估计新事件每天有 4.000 个调用,则将所有值乘以 0.4。您可以 按估计的通话次数或(更准确地说)按每天估计的通话时间分钟数进行缩放)

或者,如果您只有一个表,其中包含每次调用的行条目,您可以简单地:

SELECT count(*),datepart(hour,[CalledOn]) as CalledOn from tableCalls group by datepart(hour,[CalledOn]) 

统计每小时调用的电话数量。它将每小时采样一次,而不是每分钟采样一次,但这可能足以为您提供基线

关于.net - 从钟形曲线近似数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686313/

相关文章:

.net - 为什么我需要 global::here?

c# - 统一配置和相同装配

c# - 如何以正确的方式转义 C# 正则表达式?

c# - 如何在调试应用程序期间定义事务超时

c# - 如何使用 .NET CLI 指定对其他项目的依赖关系?

具有可变上限的 Python 双变量正态 CDF

mysql - 使用 Ruby on Rails 创建 MySQL 数据的正态分布

Python:计算N个多元正态分布的值的可能性

r - 查找 beta 分布和正态分布之间的交集

java - 如何在 Java 中生成连续泊松分布?