【发布时间】:2016-04-13 19:45:57
【问题描述】:
我有一系列未来的日期。我想使用关于尚未安排的事件的标准偏差和平均值的假设来“预测”该事件在任何给定日期发生的未来概率。假设我有一个 min/max 日期为 1/8/16 和 2/3/16 的 Pandas DF。我目前只是在所有日子里以相同的概率运行 (.037 ...)。
我把它放在一个看起来像这样的数据框中(我已经手动填写了所需的Standard_dev_assisted_probability):
Poss_Date Equal_probability Standard_dev_assisted_probability
1/8/2016 0.037037 min date in poss date range
1/9/2016 0.037037
1/10/2016 0.037037
1/11/2016 0.037037 -1st dv / two thirds border
1/12/2016 0.037037
1/13/2016 0.037037
1/14/2016 0.037037
1/15/2016 0.037037
1/16/2016 0.037037
1/17/2016 0.037037
... ...
1/22/2016 0.037037 mean / peak of distribution
... ...
2/1/2016 .03707 +~1std dev
2/3/2016 0.037037 max date in poss range
如果我们假设未来分布的“平均值”是1/22/16,而标准的开发时间是 11 天......
有没有办法将它们插入 Pandas DF 并让它返回一个有概率的列?显然,66% 的概率应该在 1/22 周围分配 +/- 11 天,正态分布等。
我正在用伪代码进行成像,它会是这样的:
df['Probability']=df.applystandarddev(column=dates,mean=1/22,stddv=11)
如果我们不需要“考虑”超过平均值的简短时间段,那就太好了。显然,平均值之前的时间比平均值之后的时间长,但我认为这是图书馆处理的统计游戏的一部分,等等。
【问题讨论】:
-
看来你会识别分布。鉴于您的参数选择,我猜您正在考虑正态分布?我也认为指数、帕累托可能也是合理的选择。
-
@David Maust 我很高兴能使用正态分布开始。我什至想不出具体该怎么做-
-
也许有一种方法可以使用 scipy.norm(index_of_mean,std_dev) 然后在其他索引方法的位置使用某种概率....
-
我认为
scipy.stats.distribution.norm.cdf会这样做。从一天开始时的 CDF 中减去一天结束时的 CDFday+1。这就是当天的概率。稍后我会发布一个示例,除非有人想打败我。 -
非常感谢。如果使用 pandas 索引而不是日期对象或类似的东西来实现这一点要容易得多,我认为这也同样有效。如果我这样选择并且可能不必调整任何代码,它也可能允许我过滤掉周末之类的事情。作为一种总是计算指数而不是日期的概率可能......保持这些东西的独立性。不确定这是否是一个半生不熟的想法
标签: python numpy pandas scipy dataframe