我想模拟一些“假设”计算的温度数据。问题是,我只有 10 个实际温度数据值的时间序列。我想使用温度作为模拟的输入,所以我需要一种方法来生成大量与原始 10 个值一致的温度值。假设它们来自正态分布可能是可以的,但我不知道均值或方差。
我无法证明这一点,但我怀疑这 10 个值是否能很好地代表整个温度范围。如果我使用该sample函数进行模拟,如下所示,我只能取回原始值。那看起来不太对劲。如果我使用该rnorm函数,我知道我不知道方差,所以我认为这也不对。所以,我只剩下rt函数(t 分布)了。
下面是一个问题的模型。
ori <- rnorm(n=10, mean=65, sd=5) #original 10 data points
num.sam <- sample(x=ori, size=100, replace = TRUE) #simulation using sample
num.tdis <- mean(ori) + (rt(n=100, df=10) * sd(ori)) #simulation using a t distribution
hist(ori, breaks=40:90)
hist(num.sam, breaks=40:90)
hist(num.tdis, breaks=40:90)
我的问题是,
当我只有数据(均值和方差未知),并且可以合理地假设数据来自正态分布时,是否可以使用 t 分布生成模拟数据?
对于这种情况,我唯一
rnorm用于模拟的时间是如果我知道方差(不是从数据估计的方差),对吗?如果 t 分布模拟在这些条件下是可以的,是否有任何条件最好只对数据进行采样(例如 100 个原始数据点、200 个等)?
编辑:
- 既然我用原始数据来估计均值和方差,那代码第三行(for)的自由度是不是
rt(...)应该从10降到9?还是8?