绘制周期函数的密度

  • 本文关键字:周期函数 绘制
  • 更新时间 :
  • 英文 :


我有一个向量,表示一系列事件发生的时间(以午夜过后的秒为单位),我想绘制这些事件在一天中的密度。这里有一种方法:

rs <- 60*60*24*c(rbeta(5000, 2, 5), runif(10000, 0, 1))
den <- density(rs, cut=0)
plot(den, ylim=range(0,den$y))

这样做的问题在于端点密度是错误的,因为这是一个循环函数。如果你连续画出三个周期你会看到中间周期的真实密度:

den <- density(c(rs, rs+60*60*24, rs+2*60*60*24), cut=0)
plot(den, ylim=range(0,den$y))

我的问题是,是否有一些[更好的]方法可以从原始数据中获得中间块的密度,而无需像我所做的那样将观察次数增加三倍。我当然需要提供周期的长度,以防在端点附近没有任何观察值。

我不认为你的证据表明曲线应该看起来像重复样条拟合的一部分是令人信服的。您应该检查同一对象上的hist()的结果,其中您在小时边界指定了中断。对数样条函数允许在数据的指定边界上计算密度估计:

hist( c(c(rs, rs+60*60*24, rs+2*60*60*24), breaks= 24*3 )
require(logspline)
?logspline
fit <- logspline(c(rs), lbound=0, ubound=60*60*24)
plot(fit)

更适合,因为它正确地捕捉到了一天结束的密度低于一天开始的事实,这在三天密度图中并没有真正正确地捕捉到

最新更新