-1

如何将随机性引入每日时间序列?我有什么选择?

dataset = data.frame(days = as.Date(seq(from = as.Date("2021-01-01"),
                                        to   = as.Date("2025-12-31"), by = 1)),
                     obs  = rnorm(1826, mean = 1, sd = 2))

虽然这个时间序列是用 rnorm 创建的,但我有一个观察值的每日数据集。

4

1 回答 1

1

如果您想使用给定的最小值或最大值进行采样,我会使用runif. 如果这是不可能的,您可以从正态分布中提取,然后在两侧切断。但是,截断样本的均值和 sd 保持等于您在 中指定的值并非易事rnorm。此外,正态分布并没有真正的最小值和最大值,尽管概率在远距离处变小。

这个 R-Help 线程提供了一些很好的指针,用于从具有最小值和最大值的正态分布生成数字:

http://r.789695.n4.nabble.com/how-to-generate-a-normal-distribution-with-mean-1-min-0-2-max-0-8-td3481450.html

这表明生成大量数字并截断是一个糟糕的解决方案,而且效率低下。

于 2012-09-23T15:21:27.060 回答