我的频率值随时间(x
轴单位)而变化,如下图所示。经过一些归一化后,这些值可以被视为某些分布的密度函数的数据点。
问:假设这些频率点来自 Weibull 分布T
,如何将最佳 Weibull 密度函数拟合到这些点,从而从中推断出分布T
参数?
sample <- c(7787,3056,2359,1759,1819,1189,1077,1080,985,622,648,518,
611,1037,727,489,432,371,1125,69,595,624)
plot(1:length(sample), sample, type = "l")
points(1:length(sample), sample)
更新。为了防止被误解,我想补充一点解释。通过说我的频率值随时间(x
轴单位)而变化,我的意思是我有数据表明我有:
- 7787 价值实现 1
- 3056 价值 2 的实现
- 2359 次实现价值 3 ... 等
实现我的目标的某种方式(我认为不正确)将是创建一组这些实现:
# Loop to simulate values
set.values <- c()
for(i in 1:length(sample)){
set.values <<- c(set.values, rep(i, times = sample[i]))
}
hist(set.values)
lines(1:length(sample), sample)
points(1:length(sample), sample)
并fitdistr
用于set.values
:
f2 <- fitdistr(set.values, 'weibull')
f2
为什么我认为这是不正确的方式,为什么我要寻找更好的解决方案R
?
在上面介绍的分布拟合方法中,假设这
set.values
是我从分布中实现的完整集合T
在我原来的问题中,我知道密度曲线第一部分的点 - 我不知道它的尾巴,我想估计尾巴(以及整个密度函数)