Круговое распределение плотности данных

Я пытаюсь определить, в какой момент в течение года наблюдалось 80% наблюдений за размножением птиц. Как правило, я отвечал бы на такой вопрос, находя медиану или квартили, но как мне справиться с ситуациями, когда 80% наблюдений относятся к 285–366-м дням (високосный год) и распространяются на 30-й день?

Данные являются круглыми, и день 365 близок к дню 366 так же, как и день 1.

Я читаю руководство для CircStats и циркуляр, но я действительно мог бы помочь с этим.

Мои вопросы: какое самое короткое количество дней составляет 50% наблюдений и каковы начальный и конечный день этого периода?

Вот некоторые фиктивные данные:

library(CircStats)
#dummy data
obsDay<-c(rep(1:30,10),rep(45:65,2),65:180,
    rep(181:265,2),rep(266:330,4),rep(331:366,6))
#density plot
plot(density(obsDay))
#convert data to Radians
obsRadians <-(obsDay/366*360)*3.1459 / 180
#make a circular plot
circ.plot(obsRadians, stack=TRUE, bins=100,shrink=1.8)

1 ответ

Решение

Я разобрался с решением. С фиктивными данными дни, когда 80% данных являются наиболее плотными, находятся между 6 октября и 23 июля.

library(circular)
library(CircStats)
obsDay<-c(rep(1:30,10),rep(45:65,2),65:180,rep(181:265,2),rep(266:330,4),rep(331:366,6))
#density plot
plot(density(obsDay))
#convert data to Radians
obsRadians <-(obsDay/366*360)*pi / 180
#make a circular plot
circ.plot(obsRadians, stack=TRUE, bins=100,shrink=1.8)
quant<-quantile.circular(obsRadians,c(0.10,.90)) ## for interval of 80% of obs
start<-(quant[[1]]*180/pi)/360*366 #convert radians to days - Aug 27
end<-(quant[[2]]*180/pi)/360*366 # March1
Другие вопросы по тегам