创建一个遵循概率分布的日期向量
create a vector of dates that follow a probability distribution
我正在尝试创建一个用于训练目的的假数据集,并且想要一个函数来创建一个匹配特定概率分布的日期向量...即 - 应该有来自特定范围的更多日期 select比另一个。
我知道 select 一系列日期,我可以这样做:
seq(as.Date("1940-12-30"), as.Date("2005-01-04"), by="days")
要分配给一个群体,我可以这样做:
dchisq(x=1:500,df = 100)
或 rlnorm(500,1,.6)
但我在如何从上述特定概率分布之一中绘制 seq()
方面一片空白。那么如何根据模式绘制日期呢?
解决此问题的最简单方法可能是将该问题视为一般抽样问题而不是日期抽样问题。例如,如果您认为问题是选择某个固定日期和目标日期之间的偏移量,则您已将问题转换为加权整数抽样问题,并且您已经知道如何解决该问题。
如果你能描述你想要的每个日期的概率,你可以用样本来做到这一点。下面是一个示例,它使用以年中为中心的高斯分布从 2005 年开始采样。
Y05 = seq(as.Date("2005-01-01"), as.Date("2005-12-31"), by="days")
Prob = dnorm((1:365)*4/365 - 2)
sample(Y05, 10, replace=TRUE, prob=Prob)
我正在尝试创建一个用于训练目的的假数据集,并且想要一个函数来创建一个匹配特定概率分布的日期向量...即 - 应该有来自特定范围的更多日期 select比另一个。
我知道 select 一系列日期,我可以这样做:
seq(as.Date("1940-12-30"), as.Date("2005-01-04"), by="days")
要分配给一个群体,我可以这样做:
dchisq(x=1:500,df = 100)
或 rlnorm(500,1,.6)
但我在如何从上述特定概率分布之一中绘制 seq()
方面一片空白。那么如何根据模式绘制日期呢?
解决此问题的最简单方法可能是将该问题视为一般抽样问题而不是日期抽样问题。例如,如果您认为问题是选择某个固定日期和目标日期之间的偏移量,则您已将问题转换为加权整数抽样问题,并且您已经知道如何解决该问题。
如果你能描述你想要的每个日期的概率,你可以用样本来做到这一点。下面是一个示例,它使用以年中为中心的高斯分布从 2005 年开始采样。
Y05 = seq(as.Date("2005-01-01"), as.Date("2005-12-31"), by="days")
Prob = dnorm((1:365)*4/365 - 2)
sample(Y05, 10, replace=TRUE, prob=Prob)