0

我有一个关于 beta 分布和随机变量的问题。我的数据包括 2012 年至 2016 年每小时的绩效数据。我每月重新计算数据,所以我每个月只有一个值。之后,我创建了一个新的 df,其中包含一个月的所有值,如我的代码示例所示。

import numpy as np
import pandas as pd
from scipy.stats import beta
import matplotlib.pyplot as plt

output = pd.read_csv("./data/external/power_output_hourly.csv", delimiter=",", parse_dates=True, index_col=[0])
print(output.head())

output_month = output.resample('1M').sum()
print(output_month.head())

jan = output_month[:1]
jan = jan.append(output_month[12:13])
jan = jan.append(output_month[24:25])
jan = jan.append(output_month[36:37])
jan = jan.append(output_month[48:49])
print(jan)

...

months = [jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, dez] 

我的下一步是根据每个月的过去值从 beta 分布中提取随机数。因此,我想使用scipy包和numpy.random. 问题是,我不知道如何...我只需要 20 个数字,但我不知道如何确定ab值。我只需要尝试随机值还是可以从我过去的数据中提取相应的值?我感谢每一个帮助!

4

1 回答 1

0

尝试使用 拟合(=找到参数)每个月的 beta 分布scipy.stats.beta.fit(MONTH)。有关其输出的简短描述,请参见此处,或阅读源代码以获取详细信息(不幸的是,文档记录不佳)。

仅供参考,在这篇文章中找到了更多关于拟合 beta 分布的讨论,因为我自己并没有经常使用这个函数。

于 2018-06-28T21:15:07.030 回答