我有一个向量,表示发生了一系列事件的时间(在午夜过后的几秒钟内),我想绘制一天中这些事件的密度。这是一种方法:
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))
问题在于它会使端点密度错误,因为这是一个循环函数。如果您连续绘制3个周期,您会看到中间期间的真实密度:
den <- density(c(rs, rs+60*60*24, rs+2*60*60*24), cut=0)
plot(den, ylim=range(0,den$y))
我的问题是,是否有一些[更好]的方法可以从原始数据中获取中间块的密度,而不会像我那样将观察次数增加三倍。我当然需要提供期间的长度,以防在终点附近没有任何观察结果。
答案 0 :(得分:0)
我不认为你的证据表明曲线看起来与重复样条拟合的一部分相似是令人信服的。您应该检查在小时边界指定中断的同一对象上的hist()结果。 logspline函数允许使用hte数据上的指定边界计算密度估计值:
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)
更合适,因为它正确地捕获了这样一个事实,即当天的密度低于当天的第一天,而三天的密度图没有真正正确地捕获。