2011-09-30 8 views
3

나는 여러 사건이 일어난 시간 (초 자정)을 나타내는 벡터를 얻었으며 그날의 밀도를 그래프로 나타내려고한다. 다음과 같은 한 가지 방법이 있습니다.주기 함수의 플롯 밀도

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)) 

내 질문에 원본 데이터로부터의 중간 덩어리의 밀도를 얻을 수있는 몇 가지 [더] 방법은 세 겹으로하지 않고, 거기 여부 내가 한 것처럼 관측 수. 물론 종점 근처에 관측치가없는 경우에는 기간의 길이를 제공해야합니다.

+1

서클 (주기적) 데이터 세트의 밀도를 계산하려면 '순환'패키지 (http://cran.r-project.org/web/packages/circular/)를 살펴보십시오. – Iterator

+1

다음은 블로그 게시물입니다. [원형 또는 구형 데이터 및 밀도 추정] (http://goo.gl/ShjgY)은 계산 및 그래픽 모두에 대해 광범위한 R 코드를 제공합니다. 나는 그것들이 같은 함수라고 생각하지 않는다. @Iterator가 언급했다. (참고로 그 참조에 대해 감사한다.) 그러나 당신이 그 라이브러리를 사용하기로 결정했다 할지라도, 여전히 플롯에 적용 가능해야한다. –

+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) 

더 잘 맞는있는 그 트리플 데이의 밀도 그림으로 실제로 제대로 캡쳐되지는 않습니다.

+0

내가 게시 한 합성 데이터를 사용하면 마감일과 시작일이 같은 밀도가 아니라는 것은 사실입니다. 그러나 제 실제 시간은 "사람들이 하루 중 몇시에 양치질을합니까?"와 같아서 전환 경계를 넘어 부드럽게 움직여야합니다. –